/* =========================================================
   Real Properties — Front-end styles
   ========================================================= */

:root {
	--rp-primary: #1a56db;
	--rp-primary-dark: #1342ad;
	--rp-accent: #f59e0b;
	--rp-wa: #25d366;
	--rp-call: #16a34a;
	--rp-dark: #0f172a;
	--rp-text: #1f2937;
	--rp-muted: #6b7280;
	--rp-border: #e5e7eb;
	--rp-bg: #ffffff;
	--rp-bg-alt: #f8fafc;
	--rp-radius: 12px;
	--rp-radius-sm: 8px;
	--rp-shadow: 0 4px 20px rgba(15, 23, 42, 0.08);
	--rp-shadow-lg: 0 12px 40px rgba(15, 23, 42, 0.12);
	--rp-container: 1200px;
	--rp-font: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--rp-font);
	color: var(--rp-text);
	background: var(--rp-bg);
	line-height: 1.6;
	font-size: 16px;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--rp-primary); text-decoration: none; transition: color .2s; }
a:hover { color: var(--rp-primary-dark); }
h1, h2, h3, h4 { font-weight: 700; line-height: 1.25; color: var(--rp-dark); margin: 0 0 .5em; }

.rp-container { max-width: var(--rp-container); margin: 0 auto; padding: 0 20px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
.rp-skip-link:focus { position: fixed; left: 10px; top: 10px; background: #fff; padding: 10px 16px; z-index: 9999; clip: auto; width: auto; height: auto; }

/* ---------- Buttons ---------- */
.rp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 11px 20px; border-radius: var(--rp-radius-sm); font-weight: 600;
	font-size: 15px; cursor: pointer; border: 1px solid transparent; transition: all .2s;
	white-space: nowrap; line-height: 1;
}
.rp-btn-primary { background: var(--rp-primary); color: #fff; }
.rp-btn-primary:hover { background: var(--rp-primary-dark); color: #fff; }
.rp-btn-wa { background: var(--rp-wa); color: #fff; }
.rp-btn-wa:hover { background: #1eb858; color: #fff; }
.rp-btn-call { background: var(--rp-call); color: #fff; }
.rp-btn-call:hover { color: #fff; opacity: .92; }
.rp-btn-light { background: #fff; color: var(--rp-primary); }
.rp-btn-ghost { background: transparent; border-color: var(--rp-border); color: var(--rp-text); }
.rp-btn-ghost:hover { border-color: var(--rp-primary); color: var(--rp-primary); }
.rp-btn-lg { padding: 14px 28px; font-size: 16px; }
.rp-btn-sm { padding: 8px 14px; font-size: 13px; }
.rp-btn-block { width: 100%; }

/* ---------- Icons (CSS masks via inline SVG data) ---------- */
[class^="rp-ico-"], [class*=" rp-ico-"] {
	display: inline-block; width: 1em; height: 1em; vertical-align: -2px;
	background: currentColor; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain;
}
.rp-ico-call { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z'/%3E%3C/svg%3E"); }
.rp-ico-wa { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 00-8.6 15l-1.3 4.7 4.8-1.3A10 10 0 1012 2zm0 18a8 8 0 01-4.1-1.1l-.3-.2-2.8.8.8-2.8-.2-.3A8 8 0 1112 20zm4.4-6c-.2-.1-1.4-.7-1.6-.8-.2-.1-.4-.1-.5.1-.2.2-.6.8-.8 1-.1.1-.3.2-.5.1-.2-.1-1-.4-1.9-1.2-.7-.6-1.2-1.4-1.3-1.6-.1-.2 0-.4.1-.5l.4-.4c.1-.2.2-.3.2-.5s0-.4-.1-.5l-.7-1.7c-.2-.4-.4-.4-.5-.4h-.5c-.2 0-.4.1-.6.3-.2.2-.8.8-.8 1.9s.8 2.2.9 2.4c.1.2 1.6 2.5 3.9 3.5.5.2 1 .4 1.3.5.5.2 1 .1 1.4.1.4-.1 1.4-.6 1.6-1.1.2-.6.2-1 .1-1.1 0-.1-.2-.2-.4-.3z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 00-8.6 15l-1.3 4.7 4.8-1.3A10 10 0 1012 2z'/%3E%3C/svg%3E"); }
.rp-ico-mail { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2zm8 7L4 6.5V18h16V6.5L12 11z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2zm8 7L4 6.5V18h16V6.5L12 11z'/%3E%3C/svg%3E"); }
.rp-ico-pin { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1112 6a2.5 2.5 0 010 5.5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1112 6a2.5 2.5 0 010 5.5z'/%3E%3C/svg%3E"); }
.rp-ico-search { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.8l-.3-.3a6.5 6.5 0 10-.7.7l.3.3v.8l5 5 1.5-1.5-5-5zm-6 0A4.5 4.5 0 119.5 5a4.5 4.5 0 010 9z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.8l-.3-.3a6.5 6.5 0 10-.7.7l.3.3v.8l5 5 1.5-1.5-5-5zm-6 0A4.5 4.5 0 119.5 5a4.5 4.5 0 010 9z'/%3E%3C/svg%3E"); }
.rp-ico-home { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3L2 12h3v8h6v-6h2v6h6v-8h3z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3L2 12h3v8h6v-6h2v6h6v-8h3z'/%3E%3C/svg%3E"); }

/* ---------- Top bar ---------- */
.rp-topbar { background: var(--rp-dark); color: #cbd5e1; font-size: 13px; }
.rp-topbar-inner { display: flex; justify-content: space-between; align-items: center; height: 40px; }
.rp-topbar-right { display: flex; align-items: center; gap: 16px; }

/* ---------- Header ---------- */
.rp-header { background: #fff; border-bottom: 1px solid var(--rp-border); position: sticky; top: 0; z-index: 200; transition: box-shadow .2s; }
.rp-header.is-stuck { box-shadow: var(--rp-shadow); }
.rp-header-inner { display: flex; align-items: center; gap: 24px; height: 76px; }
.rp-branding img, .custom-logo { max-height: 52px; width: auto; }
.rp-site-title { font-size: 22px; font-weight: 800; color: var(--rp-dark); }
.rp-nav { margin-left: auto; }
.rp-menu { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.rp-menu li { position: relative; }
.rp-menu a { display: block; padding: 10px 14px; color: var(--rp-text); font-weight: 600; font-size: 15px; border-radius: 6px; }
.rp-menu a:hover, .rp-menu .current-menu-item > a { color: var(--rp-primary); background: var(--rp-bg-alt); }
.rp-menu .sub-menu { position: absolute; top: 100%; left: 0; background: #fff; box-shadow: var(--rp-shadow); border-radius: 8px; padding: 8px; min-width: 200px; display: none; list-style: none; z-index: 50; }
.rp-menu li:hover > .sub-menu { display: block; }
.rp-header-cta { display: flex; align-items: center; gap: 14px; }
.rp-header-phone { font-weight: 700; color: var(--rp-dark); display: inline-flex; align-items: center; gap: 6px; }
.rp-nav-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: 0; cursor: pointer; padding: 8px; }
.rp-nav-toggle span { width: 24px; height: 2px; background: var(--rp-dark); transition: .3s; }

/* ---------- Hero ---------- */
.rp-hero { position: relative; }
.rp-hero-slide, .rp-hero-default { min-height: 540px; background-size: cover; background-position: center; display: flex; align-items: center; position: relative; }
.rp-hero-slide::after, .rp-hero-default::after { content: ''; position: absolute; inset: 0; /*background: linear-gradient(120deg, rgba(15,23,42,.78), rgba(15,23,42,.35));*/ }
.rp-hero-default { background: linear-gradient(120deg, #1e3a8a, #1a56db); }
.rp-hero-content { position: relative; z-index: 2; color: #fff; max-width: 680px; padding-bottom: 70px; }
.rp-hero-content h1 { color: #fff; font-size: clamp(28px, 4vw, 48px); margin-bottom: 16px; }
.rp-hero-sub { font-size: 18px; color: #e2e8f0; margin-bottom: 28px; }
.rp-hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.rp-usps { position: relative; z-index: 3; display: flex; gap: 14px; flex-wrap: wrap; margin-top: -50px; padding-bottom: 10px; }
.rp-usps span { background: rgba(255,255,255,.15); color: #fff; backdrop-filter: blur(6px); padding: 6px 14px; border-radius: 30px; font-size: 13px; font-weight: 600; }
.rp-hero-search { position: relative; z-index: 3; margin-top: 18px; transform: translateY(40px); }

/* ---------- Search widget ---------- */
.rp-search { background: #fff; border-radius: var(--rp-radius); box-shadow: var(--rp-shadow-lg); padding: 18px; }
.rp-search-tabs { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.rp-tab { padding: 8px 18px; border-radius: 30px; background: var(--rp-bg-alt); cursor: pointer; font-weight: 600; font-size: 14px; border: 1px solid var(--rp-border); }
.rp-tab input { display: none; }
.rp-tab.active { background: var(--rp-primary); color: #fff; border-color: var(--rp-primary); }
.rp-search-fields { display: grid; grid-template-columns: repeat(4, 1fr) auto; gap: 12px; align-items: end; }
.rp-search-field label { display: block; font-size: 12px; font-weight: 600; color: var(--rp-muted); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .04em; }
.rp-search-field select, .rp-search-field input { width: 100%; padding: 11px 12px; border: 1px solid var(--rp-border); border-radius: var(--rp-radius-sm); font-size: 15px; background: #fff; }
.rp-search-submit { height: 44px; }

/* ---------- Sections ---------- */
.rp-section { padding: 64px 0; }
.rp-section-alt { background: var(--rp-bg-alt); }
.rp-section-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; flex-wrap: wrap; gap: 10px; }
.rp-section-head h2 { font-size: clamp(24px, 3vw, 34px); margin: 0; }
.rp-link-all { font-weight: 600; }

/* ---------- Grids ---------- */
.rp-grid { display: grid; gap: 24px; }
.rp-grid-2 { grid-template-columns: repeat(2, 1fr); }
.rp-grid-3 { grid-template-columns: repeat(3, 1fr); }
.rp-grid-4 { grid-template-columns: repeat(4, 1fr); }

/* ---------- Property card ---------- */
.rp-card { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); overflow: hidden; transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; }
.rp-card:hover { transform: translateY(-4px); box-shadow: var(--rp-shadow-lg); }
.rp-card-media { position: relative; aspect-ratio: 3/2; overflow: hidden; background: var(--rp-bg-alt); }
.rp-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.rp-card:hover .rp-card-media img { transform: scale(1.05); }
.rp-card-badges { position: absolute; top: 12px; left: 12px; display: flex; gap: 6px; flex-wrap: wrap; }
.rp-badge { font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 6px; text-transform: uppercase; letter-spacing: .03em; color: #fff; background: var(--rp-primary); }
.rp-badge-hot { background: #ef4444; }
.rp-badge-featured { background: var(--rp-accent); }
.rp-badge-sold { background: #6b7280; }
.rp-badge-trans { background: var(--rp-primary); }
.rp-card-body { padding: 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.rp-card-price { font-size: 20px; font-weight: 800; color: var(--rp-primary); }
.rp-card-title { font-size: 17px; margin: 0; }
.rp-card-title a { color: var(--rp-dark); }
.rp-card-loc { color: var(--rp-muted); font-size: 14px; margin: 0; display: flex; align-items: center; gap: 5px; }
.rp-card-stats { list-style: none; display: flex; gap: 16px; padding: 10px 0; margin: 0; border-top: 1px solid var(--rp-border); font-size: 13px; color: var(--rp-muted); }
.rp-card-stats strong { color: var(--rp-dark); }
.rp-card-actions { display: flex; gap: 8px; margin-top: auto; }
.rp-card-actions .rp-btn-primary { flex: 1; }

/* ---------- Categories ---------- */
.rp-cats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.rp-cat-card { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); padding: 28px 20px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; transition: .2s; }
.rp-cat-card:hover { border-color: var(--rp-primary); box-shadow: var(--rp-shadow); }
.rp-cat-icon { font-size: 34px; color: var(--rp-primary); }
.rp-cat-title { font-weight: 700; color: var(--rp-dark); }
.rp-cat-count { font-size: 13px; color: var(--rp-muted); }

/* ---------- Why choose us ---------- */
.rp-why-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.rp-why-item { text-align: center; padding: 24px 14px; background: var(--rp-bg-alt); border-radius: var(--rp-radius); }
.rp-why-ico { display: block; width: 48px; height: 48px; margin: 0 auto 12px; border-radius: 50%; background: var(--rp-primary); opacity: .9; }
.rp-why-item h4 { font-size: 15px; margin: 0; }

/* ---------- CTA strip ---------- */
.rp-cta-strip { background: linear-gradient(120deg, var(--rp-primary-dark), var(--rp-primary)); color: #fff; padding: 44px 0; }
.rp-cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.rp-cta-strip h3 { color: #fff; font-size: 26px; margin: 0; }
.rp-cta-strip p { margin: 4px 0 0; color: #dbeafe; }
.rp-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- Testimonials ---------- */
.rp-testimonial { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); padding: 26px; }
.rp-stars { color: var(--rp-accent); margin-bottom: 10px; letter-spacing: 2px; }
.rp-testimonial-text { font-style: italic; color: #374151; }
.rp-testimonial-author { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
.rp-testimonial-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.rp-testimonial-author span { display: block; font-size: 13px; color: var(--rp-muted); }

/* ---------- Blog cards ---------- */
.rp-blog-card { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); overflow: hidden; display: flex; flex-direction: column; }
.rp-blog-thumb { display: block; aspect-ratio: 16/10; background: var(--rp-bg-alt); overflow: hidden; }
.rp-blog-thumb img { width: 100%; height: 100%; object-fit: cover; }
.rp-blog-body { padding: 18px; display: flex; flex-direction: column; gap: 8px; }
.rp-blog-date { font-size: 13px; color: var(--rp-muted); }
.rp-blog-body h2, .rp-blog-body h3 { font-size: 18px; margin: 0; }
.rp-read-more { font-weight: 600; margin-top: auto; }

/* ---------- Archive layout ---------- */
.rp-archive { display: grid; grid-template-columns: 280px 1fr; gap: 30px; padding: 36px 20px 64px; }
.rp-filters { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); padding: 22px; align-self: start; position: sticky; top: 92px; }
.rp-filters-title { font-size: 18px; margin-bottom: 16px; }
.rp-filter-group { margin-bottom: 20px; border-bottom: 1px solid var(--rp-border); padding-bottom: 16px; }
.rp-filter-group h4 { font-size: 14px; margin-bottom: 10px; }
.rp-check { display: flex; align-items: center; gap: 8px; font-size: 14px; margin-bottom: 6px; cursor: pointer; }
.rp-count { color: var(--rp-muted); font-size: 12px; }
.rp-filter-row { display: flex; gap: 8px; }
.rp-filter-group input, .rp-filter-group select { width: 100%; padding: 9px 10px; border: 1px solid var(--rp-border); border-radius: var(--rp-radius-sm); }
.rp-results-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; flex-wrap: wrap; gap: 12px; }
.rp-results-title { font-size: 24px; margin: 0; }
.rp-results-count { color: var(--rp-muted); font-weight: 500; }
.rp-results-tools { display: flex; gap: 12px; align-items: center; }
.rp-sort-form { display: flex; align-items: center; gap: 8px; }
.rp-sort-form select { padding: 9px 12px; border: 1px solid var(--rp-border); border-radius: var(--rp-radius-sm); }
.rp-filter-toggle { display: none; }
.rp-empty { text-align: center; background: var(--rp-bg-alt); padding: 48px 24px; border-radius: var(--rp-radius); }
.rp-empty .rp-lead-form { max-width: 480px; margin: 24px auto 0; text-align: left; }

/* ---------- Pagination ---------- */
.rp-pagination { margin-top: 36px; }
.rp-pagination .nav-links { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.rp-pagination .page-numbers { display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; border: 1px solid var(--rp-border); border-radius: var(--rp-radius-sm); padding: 0 12px; background: #fff; font-weight: 600; }
.rp-pagination .page-numbers.current { background: var(--rp-primary); color: #fff; border-color: var(--rp-primary); }

/* ---------- Single property ---------- */
.rp-single-property { padding: 30px 0 64px; }
.rp-property-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; flex-wrap: wrap; margin-bottom: 16px; }
.rp-property-header h1 { font-size: clamp(24px, 3vw, 34px); margin: 6px 0; }
.rp-property-loc { color: var(--rp-muted); display: flex; align-items: center; gap: 6px; margin: 0; }
.rp-property-price-box { text-align: right; }
.rp-property-price { font-size: 30px; font-weight: 800; color: var(--rp-primary); }
.rp-negotiable { font-size: 13px; color: var(--rp-muted); }
.rp-property-actions-bar { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.rp-gallery { margin-bottom: 36px; }
.rp-gallery-main { border-radius: var(--rp-radius); overflow: hidden; aspect-ratio: 16/9; background: var(--rp-bg-alt); }
.rp-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.rp-gallery-thumbs { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; padding-bottom: 4px; }
.rp-gallery-thumb { border: 2px solid transparent; border-radius: 8px; overflow: hidden; cursor: pointer; padding: 0; background: none; flex: 0 0 auto; width: 110px; height: 74px; }
.rp-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.rp-gallery-thumb.active { border-color: var(--rp-primary); }
.rp-property-layout { display: grid; grid-template-columns: 1fr 360px; gap: 36px; align-items: start; }
.rp-prop-block { margin-bottom: 32px; }
.rp-prop-block h2 { font-size: 22px; border-bottom: 2px solid var(--rp-border); padding-bottom: 10px; margin-bottom: 18px; }
.rp-highlights { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.rp-highlights li { background: var(--rp-bg-alt); border-radius: var(--rp-radius-sm); padding: 14px; }
.rp-hl-label { display: block; font-size: 12px; color: var(--rp-muted); text-transform: uppercase; letter-spacing: .03em; }
.rp-hl-value { font-weight: 700; color: var(--rp-dark); }
.rp-details-table { width: 100%; border-collapse: collapse; }
.rp-details-table th, .rp-details-table td { text-align: left; padding: 12px 14px; border: 1px solid var(--rp-border); }
.rp-details-table th { background: var(--rp-bg-alt); width: 40%; font-weight: 600; }
.rp-amenities { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.rp-amenities li { padding: 10px 14px; background: var(--rp-bg-alt); border-radius: var(--rp-radius-sm); position: relative; padding-left: 32px; }
.rp-amenities li::before { content: '✓'; position: absolute; left: 12px; color: var(--rp-call); font-weight: 700; }
.rp-map { border-radius: var(--rp-radius); overflow: hidden; }
.rp-nearby { columns: 2; }
.rp-video-embed iframe { width: 100%; aspect-ratio: 16/9; border-radius: var(--rp-radius); }
.rp-property-sidebar { position: sticky; top: 92px; }
.rp-inquiry-card { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); padding: 24px; box-shadow: var(--rp-shadow); }

/* ---------- Lead forms ---------- */
.rp-lead-form { display: flex; flex-direction: column; gap: 12px; }
.rp-form-title { font-size: 20px; margin: 0 0 4px; }
.rp-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rp-lead-form input, .rp-lead-form select, .rp-lead-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--rp-border); border-radius: var(--rp-radius-sm); font-size: 15px; font-family: inherit; }
.rp-lead-form textarea { resize: vertical; }
.rp-form-consent { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--rp-muted); }
.rp-form-consent input { width: auto; }
.rp-hp { position: absolute; left: -9999px; }
.rp-form-msg { display: none; padding: 12px 14px; border-radius: var(--rp-radius-sm); font-size: 14px; }
.rp-form-msg.success { display: block; background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.rp-form-msg.error { display: block; background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }

/* ---------- Breadcrumbs ---------- */
.rp-breadcrumbs { background: var(--rp-bg-alt); border-bottom: 1px solid var(--rp-border); font-size: 14px; }
.rp-breadcrumbs ol { display: flex; gap: 8px; list-style: none; margin: 0; padding: 12px 0; flex-wrap: wrap; }
.rp-breadcrumbs li:not(:last-child)::after { content: '/'; margin-left: 8px; color: var(--rp-muted); }
.rp-breadcrumbs .current { color: var(--rp-muted); }

/* ---------- Blog layout / page ---------- */
.rp-blog-layout { display: grid; grid-template-columns: 1fr 300px; gap: 40px; padding: 40px 20px 64px; }
.rp-page-title { font-size: 30px; margin-bottom: 24px; }
.rp-sidebar .widget { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); padding: 20px; margin-bottom: 24px; }
.rp-sidebar .widget-title { font-size: 17px; margin-bottom: 14px; }
.rp-sidebar ul { list-style: none; padding: 0; margin: 0; }
.rp-sidebar li { padding: 6px 0; border-bottom: 1px solid var(--rp-border); }
.rp-single-post { max-width: 820px; }
.rp-post-header h1 { font-size: clamp(26px, 3vw, 38px); }
.rp-post-meta { display: flex; gap: 16px; color: var(--rp-muted); font-size: 14px; margin-bottom: 20px; }
.rp-post-thumb { border-radius: var(--rp-radius); overflow: hidden; margin-bottom: 24px; }
.rp-post-content { font-size: 17px; line-height: 1.8; }
.rp-post-content img { border-radius: var(--rp-radius); margin: 20px 0; }
.rp-post-footer { margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--rp-border); }
.rp-share { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.rp-page { padding: 40px 20px 64px; max-width: 900px; }
.rp-page-content { font-size: 17px; line-height: 1.8; }

/* ---------- About / team ---------- */
.rp-about-hero { background: var(--rp-dark) center/cover; color: #fff; padding: 80px 0; position: relative; }
.rp-about-hero::after { content: ''; position: absolute; inset: 0; background: rgba(15,23,42,.6); }
.rp-about-hero .rp-container { position: relative; z-index: 2; }
.rp-about-hero h1 { color: #fff; font-size: 40px; margin: 0; }
.rp-about .rp-page-content { padding: 40px 20px; max-width: 900px; margin: 0 auto; }
.rp-team-card { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); padding: 18px; text-align: center; }
.rp-team-card img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--rp-radius-sm); margin-bottom: 12px; }
.rp-team-role { color: var(--rp-muted); font-size: 14px; }
.rp-team-links { display: flex; justify-content: center; gap: 14px; margin-top: 12px; font-size: 20px; color: var(--rp-primary); }

/* ---------- Contact ---------- */
.rp-contact { padding: 40px 20px 64px; }
.rp-contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 40px; margin-top: 24px; }
.rp-contact-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.rp-contact-list li { display: flex; align-items: center; gap: 10px; }
.rp-contact-social { display: flex; gap: 12px; margin-top: 18px; }
.rp-contact-form-wrap { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); padding: 28px; box-shadow: var(--rp-shadow); }
.rp-contact-map { margin-top: 36px; border-radius: var(--rp-radius); overflow: hidden; }
.rp-contact-map iframe { width: 100%; min-height: 360px; border: 0; display: block; }

/* ---------- Project ---------- */
.rp-project-banner { background: var(--rp-dark) center/cover; color: #fff; padding: 80px 0; position: relative; }
.rp-project-banner::after { content: ''; position: absolute; inset: 0; background: rgba(15,23,42,.55); }
.rp-project-banner .rp-container { position: relative; z-index: 2; }
.rp-project-banner h1 { color: #fff; }

/* ---------- Footer ---------- */
.rp-footer { background: var(--rp-dark); color: #cbd5e1; padding-top: 56px; margin-top: 40px; }
.rp-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1.4fr 1fr; gap: 36px; padding-bottom: 40px; }
.rp-footer h3, .rp-footer h4, .rp-footer-logo { color: #fff; }
.rp-footer-col h4 { margin-bottom: 16px; font-size: 16px; }
.rp-footer-menu, .rp-footer-contact { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.rp-footer a { color: #cbd5e1; }
.rp-footer a:hover { color: #fff; }
.rp-footer-contact li { display: flex; align-items: center; gap: 8px; }
.rp-footer-social { display: flex; gap: 12px; margin-top: 16px; }
.rp-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 20px 0; }
.rp-footer-bottom-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; font-size: 14px; }
.rp-footer-legal { display: flex; gap: 18px; }

/* ---------- Social icons ---------- */
.rp-soc { width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.12); display: inline-flex; align-items: center; justify-content: center; transition: .2s; position: relative; }
.rp-soc::after { content: ''; width: 16px; height: 16px; background: #fff; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; }
.rp-soc:hover { background: var(--rp-primary); }
.rp-soc-facebook::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 9h3V6h-3c-2 0-3 1.3-3 3v2H8v3h3v7h3v-7h3l1-3h-4V9z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 9h3V6h-3c-2 0-3 1.3-3 3v2H8v3h3v7h3v-7h3l1-3h-4V9z'/%3E%3C/svg%3E"); }
.rp-soc-instagram::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 8a4 4 0 100 8 4 4 0 000-8zm0 6.5A2.5 2.5 0 1112 9a2.5 2.5 0 010 5.5zM16.5 7a1 1 0 100 2 1 1 0 000-2zM12 4c2.7 0 3 0 4.1.1 1 0 1.6.2 2 .4.5.2.9.4 1.3.8.4.4.6.8.8 1.3.2.4.3 1 .4 2C20.9 9 21 9.3 21 12s0 3-.1 4.1c0 1-.2 1.6-.4 2-.2.5-.4.9-.8 1.3-.4.4-.8.6-1.3.8-.4.2-1 .3-2 .4C15 20.9 14.7 21 12 21s-3 0-4.1-.1c-1 0-1.6-.2-2-.4a3.4 3.4 0 01-1.3-.8 3.4 3.4 0 01-.8-1.3c-.2-.4-.3-1-.4-2C3.1 15 3 14.7 3 12s0-3 .1-4.1c0-1 .2-1.6.4-2 .2-.5.4-.9.8-1.3.4-.4.8-.6 1.3-.8.4-.2 1-.3 2-.4C9 4.1 9.3 4 12 4z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 8a4 4 0 100 8 4 4 0 000-8z'/%3E%3C/svg%3E"); }
.rp-soc-youtube::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 8s-.2-1.4-.8-2c-.7-.8-1.5-.8-1.9-.9C16.7 5 12 5 12 5s-4.7 0-7.3.2c-.4 0-1.2 0-1.9.9C2.2 6.6 2 8 2 8S1.8 9.6 1.8 11.2v1.5C1.8 14.4 2 16 2 16s.2 1.4.8 2c.7.8 1.7.8 2.1.9 1.5.1 6.6.2 6.6.2s4.7 0 7.3-.2c.4 0 1.2 0 1.9-.9.6-.6.8-2 .8-2s.2-1.6.2-3.2v-1.5C22.2 9.6 22 8 22 8zM10 14.6V9.4l4.5 2.6L10 14.6z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 14.6V9.4l4.5 2.6L10 14.6z'/%3E%3C/svg%3E"); }
.rp-soc-linkedin::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.9 8H4V20h2.9V8zM5.4 3.5A1.7 1.7 0 105.4 7a1.7 1.7 0 000-3.5zM20 20h-2.9v-5.8c0-1.4-.5-2.3-1.7-2.3-1 0-1.5.6-1.8 1.3-.1.2-.1.5-.1.8V20H10.6V8h2.9v1.3c.4-.6 1.1-1.5 2.7-1.5 2 0 3.5 1.3 3.5 4.1V20z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.9 8H4V20h2.9V8z'/%3E%3C/svg%3E"); }
.rp-soc-twitter::after, .rp-soc-x::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 3h3l-7 8 8 10h-6l-5-6-5 6H3l7-9L2 3h6l4 5 6-5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 3h3l-7 8 8 10h-6l-5-6-5 6H3l7-9L2 3h6l4 5 6-5z'/%3E%3C/svg%3E"); }
.rp-soc-whatsapp::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 00-8.6 15l-1.3 4.7 4.8-1.3A10 10 0 1012 2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 00-8.6 15l-1.3 4.7 4.8-1.3A10 10 0 1012 2z'/%3E%3C/svg%3E"); }

/* ---------- Floating buttons ---------- */
.rp-floating-bar { position: fixed; bottom: 0; left: 0; right: 0; display: none; background: #fff; box-shadow: 0 -2px 16px rgba(0,0,0,.12); z-index: 300; }
.rp-float { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 0; font-size: 11px; font-weight: 600; color: var(--rp-dark); }
.rp-float span:first-child { font-size: 20px; }
.rp-float-wa { color: var(--rp-wa); }
.rp-float-call { color: var(--rp-call); }
.rp-float-enquire { color: var(--rp-primary); }

/* ---------- Modal ---------- */
.rp-modal { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 20px; }
.rp-modal.is-open { display: flex; }
.rp-modal-overlay { position: absolute; inset: 0; background: rgba(15,23,42,.6); }
.rp-modal-box { position: relative; background: #fff; border-radius: var(--rp-radius); padding: 32px; max-width: 460px; width: 100%; z-index: 2; box-shadow: var(--rp-shadow-lg); max-height: 90vh; overflow-y: auto; }
.rp-modal-x { position: absolute; top: 12px; right: 16px; background: none; border: 0; font-size: 28px; line-height: 1; cursor: pointer; color: var(--rp-muted); }

/* ---------- 404 ---------- */
.rp-404 { text-align: center; padding: 80px 20px; }
.rp-404 h1 { font-size: 96px; color: var(--rp-primary); margin: 0; }
.rp-404-actions { display: flex; gap: 12px; justify-content: center; margin: 24px 0; flex-wrap: wrap; }

/* ---------- Search form ---------- */
.rp-searchform { display: flex; gap: 8px; }
.rp-search-input { flex: 1; padding: 11px 14px; border: 1px solid var(--rp-border); border-radius: var(--rp-radius-sm); }
.rp-search-btn { padding: 0 16px; background: var(--rp-primary); color: #fff; border: 0; border-radius: var(--rp-radius-sm); cursor: pointer; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1024px) {
	.rp-search-fields { grid-template-columns: repeat(2, 1fr); }
	.rp-search-submit { grid-column: span 2; }
	.rp-why-grid { grid-template-columns: repeat(3, 1fr); }
	.rp-footer-grid { grid-template-columns: 1fr 1fr; }
	.rp-cats { grid-template-columns: repeat(2, 1fr); }
	.rp-grid-4 { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 860px) {
	.rp-nav { position: fixed; top: 0; right: -100%; width: 80%; max-width: 320px; height: 100vh; background: #fff; box-shadow: var(--rp-shadow-lg); padding: 80px 24px 24px; transition: right .3s; margin: 0; z-index: 250; overflow-y: auto; }
	.rp-nav.is-open { right: 0; }
	.rp-menu { flex-direction: column; gap: 2px; }
	.rp-menu .sub-menu { position: static; display: block; box-shadow: none; padding-left: 16px; }
	.rp-nav-toggle { display: flex; margin-left: auto; order: 3; }
	.rp-header-cta { display: none; }
	.rp-header-inner { gap: 12px; }
	.rp-archive { grid-template-columns: 1fr; }
	.rp-filters { position: fixed; top: 0; left: -100%; width: 86%; max-width: 340px; height: 100vh; z-index: 260; border-radius: 0; overflow-y: auto; transition: left .3s; }
	.rp-filters.is-open { left: 0; }
	.rp-filter-toggle { display: inline-flex; }
	.rp-property-layout { grid-template-columns: 1fr; }
	.rp-property-sidebar { position: static; }
	.rp-blog-layout { grid-template-columns: 1fr; }
	.rp-contact-grid { grid-template-columns: 1fr; }
	.rp-floating-bar { display: flex; }
	body { padding-bottom: 60px; }
}

@media (max-width: 640px) {
	.rp-grid-2, .rp-grid-3, .rp-grid-4 { grid-template-columns: 1fr; }
	.rp-search-fields { grid-template-columns: 1fr; }
	.rp-search-submit { grid-column: 1; }
	.rp-why-grid { grid-template-columns: repeat(2, 1fr); }
	.rp-cats { grid-template-columns: 1fr; }
	.rp-highlights, .rp-amenities { grid-template-columns: 1fr 1fr; }
	.rp-form-row { grid-template-columns: 1fr; }
	.rp-property-header, .rp-property-price-box { width: 100%; text-align: left; }
	.rp-topbar { display: none; }
	.rp-nearby { columns: 1; }
}
