/*
 * Pollachi Property Portal — front-end styles.
 * Palette: Grove #0F7A53, Jaggery #E8A317, Palm #0C3A2D, Ink #1C2B25, Paddy mist #EAF3EE, Night grove #0A2F25, Slate #536860.
 * Type: Catamaran (headings, prices), Hind Madurai (text). Both cover Tamil.
 */

:root {
	--prp-grove: #0F7A53;
	--prp-grove-d: #0A5C3F;
	--prp-amber: #E8A317;
	--prp-amber-d: #C98A0E;
	--prp-palm: #0C3A2D;
	--prp-ink: #1C2B25;
	--prp-mist: #EAF3EE;
	--prp-night: #0A2F25;
	--prp-wash: #F4F8F6;
	--prp-slate: #536860;
	--prp-line: #D6E2DB;
	--prp-wa: #1DA851;
	--prp-danger: #B42318;
	--prp-display: "Catamaran", system-ui, -apple-system, "Segoe UI", sans-serif;
	--prp-body: "Hind Madurai", system-ui, -apple-system, "Segoe UI", sans-serif;
	--prp-radius: 10px;
	--prp-shadow: 0 18px 50px rgba(12, 58, 45, .18), 0 2px 6px rgba(12, 58, 45, .08);
}

/* ---------- Base ---------- */
.prp-view .site-content > .ast-container { display: block; max-width: 100%; padding-left: 0; padding-right: 0; }
.prp-single, .prp-archive, .prp-profile { width: 100%; }
.prp-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; width: 100%; }
.prp-wrap *, .prp-results *, .prp-hero *, .prp-sec *, .prp-single *, .prp-mbar *, .prp-lightbox * { box-sizing: border-box; }
.prp-hero, .prp-sec, .prp-single, .prp-archive, .prp-profile, .prp-results-page, .prp-people-page, .prp-contact, .prp-dash, .prp-submit, .prp-narrow, .prp-shortlist-page {
	font-family: var(--prp-body); color: var(--prp-ink); font-size: 16px; line-height: 1.55;
}
.prp-i { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; vertical-align: middle; }
.prp-hero h1, .prp-hero h2, .prp-sec h2, .prp-sec h3, .prp-single h1, .prp-single h2, .prp-single h3,
.prp-page-title, .prp-h2, .prp-h3, .prp-h4 {
	font-family: var(--prp-display); color: var(--prp-palm); letter-spacing: -.01em; line-height: 1.1; margin: 0;
}
.prp-h2 { font-size: 34px; font-weight: 800; }
.prp-h3 { font-size: 23px; font-weight: 800; margin: 0 0 14px; }
.prp-h4 { font-size: 19px; font-weight: 800; margin: 18px 0 10px; }
.prp-page-title { font-size: 40px; font-weight: 900; margin: 8px 0 10px; }
.prp-lede { color: var(--prp-slate); font-size: 17px; max-width: 62ch; margin: 8px 0 0; }
.prp-lede p { margin: 0 0 8px; }
.prp-muted { color: var(--prp-slate); }
.prp-mini { font-size: 13.5px; color: var(--prp-slate); margin: 6px 0 0; }
.prp-sec { padding: 72px 0; }
.prp-sec--mist { background: var(--prp-mist); }
.prp-sec-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 28px; }
.prp-link, a.prp-link { color: var(--prp-grove); font-weight: 600; text-decoration: none; white-space: nowrap; background: none; border: 0; padding: 0; cursor: pointer; font: inherit; font-weight: 600; }
.prp-link:hover { text-decoration: underline; color: var(--prp-grove-d); }
.screen-reader-text:not(:focus) { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }
.prp-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
[class*="prp-"][hidden] { display: none !important; }
/* Neutralise theme button decoration on portal controls. */
button[class*="prp-"]:not(.prp-shortlist), [class*="prp-"] button:not(.prp-shortlist) { box-shadow: none; text-transform: none; letter-spacing: 0; }

/* ---------- Buttons, chips, tags ---------- */
.prp-btn, a.prp-btn, button.prp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--prp-body); font-weight: 600; font-size: 15px; line-height: 1.2;
	border-radius: 8px; padding: 11px 18px; border: 1.5px solid transparent; cursor: pointer;
	white-space: nowrap; text-decoration: none; box-shadow: none; text-transform: none; letter-spacing: 0;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.prp-btn--green, a.prp-btn--green, button.prp-btn--green { background: var(--prp-grove); color: #fff; }
.prp-btn--green:hover, .prp-btn--green:focus { background: var(--prp-grove-d); color: #fff; }
.prp-btn--amber, a.prp-btn--amber, button.prp-btn--amber { background: var(--prp-amber); color: var(--prp-palm); }
.prp-btn--amber:hover, .prp-btn--amber:focus { background: #F0B53C; color: var(--prp-palm); }
.prp-btn--palm, a.prp-btn--palm { background: var(--prp-palm); color: #fff; }
.prp-btn--palm:hover { background: #072A20; color: #fff; }
.prp-btn--line, a.prp-btn--line, button.prp-btn--line { background: #fff; border-color: var(--prp-line); color: var(--prp-palm); }
.prp-btn--line:hover, .prp-btn--line:focus { border-color: var(--prp-grove); color: var(--prp-grove); background: #fff; }
.prp-btn--white, a.prp-btn--white { background: #fff; color: var(--prp-palm); border-color: #fff; }
.prp-btn--white:hover { background: var(--prp-mist); color: var(--prp-palm); }
.prp-btn--wa, a.prp-btn--wa, button.prp-btn--wa { background: #fff; border-color: var(--prp-wa); color: var(--prp-wa); padding: 9px 12px; }
.prp-btn--wa:hover { background: #EAF8EF; color: #138A42; }
.prp-btn--wafill, a.prp-btn--wafill { background: var(--prp-wa); color: #fff; }
.prp-btn--wafill:hover { background: #158E43; color: #fff; }
.prp-btn--danger { color: var(--prp-danger) !important; }
.prp-btn--block { width: 100%; }
.prp-btn .prp-i { width: 17px; height: 17px; }
.prp-free { display: inline-block; background: var(--prp-palm); color: var(--prp-amber); font-size: 11px; font-weight: 700; border-radius: 4px; padding: 2px 6px 1px; letter-spacing: .02em; line-height: 1.3; }
.prp-free--amber { background: var(--prp-amber); color: var(--prp-palm); }
.prp-chip, a.prp-chip, button.prp-chip {
	display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--prp-line); border-radius: 999px;
	padding: 5px 12px; color: var(--prp-palm); font-weight: 500; background: #fff; font-size: 14px; text-decoration: none; line-height: 1.4;
	font-family: var(--prp-body); cursor: pointer;
}
.prp-chip:hover { border-color: var(--prp-grove); color: var(--prp-grove); }
.prp-chip small { color: var(--prp-slate); font-size: 12px; }
.prp-chip--x .prp-i { width: 14px; height: 14px; }
.prp-tag { display: inline-block; font-size: 12.5px; background: var(--prp-mist); color: var(--prp-grove); border-radius: 5px; padding: 2px 8px; font-weight: 600; line-height: 1.5; }
.prp-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.prp-badges { position: absolute; left: 10px; top: 10px; display: flex; gap: 6px; flex-wrap: wrap; }
.prp-badges--inline { position: static; margin-bottom: 10px; }
.prp-bdg { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; border-radius: 5px; padding: 2px 8px; background: #fff; color: var(--prp-palm); line-height: 1.5; }
.prp-badges--inline .prp-bdg { background: var(--prp-mist); }
.prp-bdg--feat, .prp-badges--inline .prp-bdg--feat { background: var(--prp-amber); color: var(--prp-palm); }
.prp-bdg--sold, .prp-badges--inline .prp-bdg--sold { background: var(--prp-palm); color: #fff; }
.prp-bdg--verified { color: var(--prp-grove); }
.prp-bdg .prp-i { width: 14px; height: 14px; }

/* ---------- Hero ---------- */
.prp-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, #DCEFE5 0%, #EEF7F2 55%, #F6FBF8 100%); padding: 64px 0 210px; }
.prp-hero__sun { position: absolute; right: 16%; top: 70px; width: 230px; height: 230px; border-radius: 50%; background: radial-gradient(circle, #F7D88A 0%, rgba(247, 216, 138, .55) 45%, rgba(247, 216, 138, 0) 70%); pointer-events: none; }
.prp-horizon { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 470px; z-index: 0; pointer-events: none; }
.prp-hero__inner { position: relative; z-index: 2; }
.prp-hero .prp-hero__title { font-size: 68px; font-weight: 900; max-width: 12.5ch; letter-spacing: -.025em; line-height: .98; margin: 0; color: var(--prp-palm); }
.prp-hero__sub { font-size: 19px; color: #2F4A40; margin: 16px 0 0; max-width: 46ch; }
.prp-hero__sub b, .prp-hero__sub strong { color: var(--prp-palm); font-weight: 600; }
.prp-search { margin-top: 34px; background: #fff; border-radius: 14px; box-shadow: var(--prp-shadow); max-width: 1040px; }
.prp-tabs { display: flex; gap: 4px; padding: 0 18px; border-bottom: 1px solid var(--prp-line); align-items: center; overflow-x: auto; scrollbar-width: none; }
.prp-tabs::-webkit-scrollbar { display: none; }
.prp-tab, button.prp-tab, a.prp-tab {
	padding: 15px 14px 13px; font-weight: 600; color: var(--prp-slate); border: 0; border-bottom: 3px solid transparent; border-radius: 0;
	font-size: 15.5px; background: none; cursor: pointer; font-family: var(--prp-body); white-space: nowrap; text-decoration: none; line-height: 1.2;
}
.prp-tab:hover { color: var(--prp-palm); background: none; }
.prp-tab.is-on { color: var(--prp-palm); border-bottom-color: var(--prp-grove); }
.prp-tab-post { margin-left: auto; display: flex; gap: 8px; align-items: center; color: var(--prp-palm); font-weight: 600; text-decoration: none; white-space: nowrap; font-size: 15px; }
.prp-tab-post:hover { color: var(--prp-grove); }
.prp-fields { display: grid; grid-template-columns: 1.7fr 1fr 1fr auto; padding: 14px; align-items: stretch; }
.prp-field { padding: 6px 16px; border-right: 1px solid var(--prp-line); display: flex; flex-direction: column; justify-content: center; margin: 0; cursor: text; }
.prp-field:nth-last-of-type(1) { border-right: 0; }
.prp-field__label { font-size: 13px; color: var(--prp-slate); font-weight: 500; }
.prp-field__val { display: flex; align-items: center; gap: 8px; color: var(--prp-palm); }
.prp-field__val .prp-i { color: var(--prp-slate); }
.prp-search .prp-field input, .prp-search .prp-field select {
	border: 0; background: transparent; padding: 2px 0; margin: 0; font: 600 16px/1.4 var(--prp-body); color: var(--prp-palm);
	width: 100%; box-shadow: none; outline: none; min-height: 0; height: auto; appearance: none; -webkit-appearance: none;
}
.prp-search .prp-field select { background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23536860' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right center / 18px; padding-right: 26px; cursor: pointer; }
.prp-search .prp-field input::placeholder { color: #8A9A93; font-weight: 500; }
.prp-field:focus-within { background: var(--prp-wash); border-radius: 8px; }
.prp-search__go { padding: 0 30px; font-size: 16.5px; border-radius: 10px; min-height: 58px; }
.prp-popular { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 0 30px 18px; font-size: 14px; }
.prp-popular > span { color: var(--prp-slate); margin-right: 4px; }

/* ---------- Category tiles ---------- */
.prp-cats { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.prp-cat, a.prp-cat { border: 1px solid var(--prp-line); border-radius: 12px; padding: 18px 16px; display: flex; flex-direction: column; gap: 10px; background: #fff; text-decoration: none; color: var(--prp-ink); transition: border-color .15s ease; }
.prp-cat:hover { border-color: var(--prp-grove); color: var(--prp-ink); }
.prp-cat__ico { width: 44px; height: 44px; border-radius: 10px; background: var(--prp-mist); display: grid; place-items: center; color: var(--prp-grove); }
.prp-cat__ico .prp-i { width: 24px; height: 24px; }
.prp-cat__title { font-family: var(--prp-display); font-size: 18px; font-weight: 800; color: var(--prp-palm); line-height: 1.15; }
.prp-cat__text { font-size: 14px; color: var(--prp-slate); line-height: 1.4; }
.prp-cat--post, a.prp-cat--post { background: var(--prp-amber); border-color: var(--prp-amber); }
.prp-cat--post:hover { border-color: var(--prp-amber-d); }
.prp-cat--post .prp-cat__ico { background: rgba(255, 255, 255, .55); color: var(--prp-palm); }
.prp-cat--post .prp-cat__text { color: #3B3214; }

/* ---------- Listing cards ---------- */
.prp-cards { display: grid; gap: 20px; }
.prp-cards--grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.prp-cards--grid.prp-cols-4 { grid-template-columns: repeat(4, 1fr); }
.prp-cards--grid.prp-cols-3 { grid-template-columns: repeat(3, 1fr); }
.prp-cards--grid.prp-cols-2 { grid-template-columns: repeat(2, 1fr); }
.prp-card { position: relative; border: 1px solid var(--prp-line); border-radius: var(--prp-radius); overflow: hidden; background: #fff; display: flex; flex-direction: column; min-width: 0; }
.prp-card__media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--prp-mist); overflow: hidden; }
.prp-card__media img, .prp-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.prp-card__media .prp-ill { width: 100%; height: 100%; display: block; }
.prp-ill { display: block; width: 100%; height: 100%; }
.prp-shortlist { position: absolute; right: 10px; top: 10px; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, .94); display: grid; place-items: center; color: var(--prp-palm); border: 0; padding: 0; cursor: pointer; z-index: 2; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.prp-shortlist:hover { color: var(--prp-danger); background: #fff; }
.prp-shortlist.is-on { color: #D92D20; }
.prp-shortlist.is-on .prp-i { fill: currentColor; }
.prp-photos { position: absolute; right: 10px; bottom: 10px; background: rgba(12, 58, 45, .78); color: #fff; font-size: 12px; border-radius: 5px; padding: 2px 8px; display: flex; gap: 5px; align-items: center; }
.prp-photos .prp-i { width: 14px; height: 14px; }
.prp-card__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.prp-price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.prp-price b { font-family: var(--prp-display); font-weight: 900; font-size: 25px; color: var(--prp-palm); letter-spacing: -.01em; line-height: 1.1; }
.prp-price small { color: var(--prp-slate); font-size: 13.5px; }
.prp-price--lg b { font-size: 36px; }
.prp-price--lg small { font-size: 15px; }
.prp-card__title { font-family: var(--prp-body) !important; font-size: 16px !important; font-weight: 600 !important; color: var(--prp-ink) !important; line-height: 1.35 !important; margin: 0 !important; letter-spacing: 0 !important;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.prp-card__title a { color: inherit; text-decoration: none; }
.prp-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.prp-card__title a:hover { color: var(--prp-grove); }
.prp-loc { display: flex; gap: 5px; align-items: flex-start; color: var(--prp-slate); font-size: 14px; margin: 0; }
.prp-loc .prp-i { width: 15px; height: 15px; margin-top: 2px; }
.prp-loc--lg { font-size: 16px; }
.prp-specs { list-style: none; margin: 2px 0 0; padding: 10px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 10px; border-top: 1px dashed var(--prp-line); }
.prp-specs li { display: flex; gap: 7px; align-items: center; font-size: 14px; color: var(--prp-ink); font-weight: 500; margin: 0; min-width: 0; }
.prp-specs .prp-i { width: 16px; height: 16px; color: var(--prp-grove); }
.prp-by { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13px; color: var(--prp-slate); margin-top: auto; padding-top: 6px; }
.prp-by b { color: var(--prp-ink); font-weight: 600; display: block; font-size: 13.5px; }
.prp-by > span:last-child { white-space: nowrap; }
.prp-card--promo { border-style: dashed; border-width: 2px; background: var(--prp-wash); justify-content: center; }
.prp-card--promo .prp-card__body { justify-content: center; gap: 12px; padding: 28px 22px; }
.prp-card--promo .prp-cat__ico { background: var(--prp-amber); color: var(--prp-palm); }
.prp-card--promo h3 { font-family: var(--prp-display); font-size: 22px; font-weight: 800; color: var(--prp-palm); margin: 0; line-height: 1.15; }
.prp-card--promo p { margin: 0; color: var(--prp-slate); font-size: 15px; }
.prp-acts { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 4px; position: relative; z-index: 2; }
.prp-acts .prp-btn { padding: 9px 12px; font-size: 14.5px; }
.prp-card.is-sold .prp-card__media img { filter: grayscale(.6); }
/* List layout */
.prp-cards--list { grid-template-columns: 1fr; }
.prp-card--list { flex-direction: row; }
.prp-card--list .prp-card__media { width: 320px; flex: none; aspect-ratio: auto; min-height: 220px; }
.prp-card--list .prp-specs { grid-template-columns: repeat(4, auto); justify-content: start; gap: 6px 22px; }
.prp-card--list .prp-acts { grid-template-columns: auto auto; justify-content: start; }
.prp-card--list .prp-shortlist { left: 274px; right: auto; }

/* ---------- Service areas ---------- */
.prp-areas { border-top: 2px solid var(--prp-palm); }
.prp-area { display: grid; grid-template-columns: 260px 1fr auto; gap: 28px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--prp-line); }
.prp-sec .prp-area__name { font-size: 30px; font-weight: 900; margin: 0; }
.prp-area__name a { color: var(--prp-palm); text-decoration: none; }
.prp-area__name a:hover { color: var(--prp-grove); }
.prp-area__text { color: var(--prp-ink); font-size: 16.5px; max-width: 52ch; margin: 0; }
.prp-area__links { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.prp-more-loc { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; align-items: center; }
.prp-more-loc > span { color: var(--prp-slate); font-size: 14.5px; margin-right: 4px; }

/* ---------- Intro + Post property ---------- */
.prp-split { display: grid; grid-template-columns: 1.25fr 1fr; gap: 56px; align-items: start; }
.prp-prose p { margin: 14px 0 0; font-size: 17px; max-width: 64ch; }
.prp-postpanel { background: var(--prp-amber); border-radius: 16px; padding: 32px; }
.prp-sec .prp-postpanel__title { font-size: 32px; font-weight: 900; }
.prp-postpanel > p { margin: 8px 0 0; color: #3B3214; font-size: 16.5px; }
.prp-steps { list-style: none; margin: 22px 0 24px; padding: 0; display: flex; flex-direction: column; gap: 12px; counter-reset: prp-step; }
.prp-steps li { display: flex; gap: 12px; align-items: center; font-weight: 600; color: var(--prp-palm); counter-increment: prp-step; margin: 0; }
.prp-steps li::before { content: counter(prp-step); width: 28px; height: 28px; border-radius: 50%; background: var(--prp-palm); color: var(--prp-amber); display: grid; place-items: center; font-family: var(--prp-display); font-weight: 800; font-size: 15px; flex: none; }

/* ---------- Property types ---------- */
.prp-types { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--prp-line); margin-top: 6px; }
.prp-type { padding: 26px 28px 6px 0; }
.prp-type + .prp-type { padding-left: 28px; border-left: 1px solid var(--prp-line); }
.prp-sec .prp-type h3 { font-size: 22px; font-weight: 800; }
.prp-type > p { color: var(--prp-slate); font-size: 15px; margin: 6px 0 0; }
.prp-type ul { list-style: none; margin: 14px 0 0; padding: 0; }
.prp-type li { padding: 11px 0; border-top: 1px dashed var(--prp-line); font-size: 15.5px; margin: 0; }
.prp-type li a { display: block; color: var(--prp-ink); text-decoration: none; }
.prp-type li a:hover { color: var(--prp-grove); }
.prp-type li b { color: var(--prp-palm); font-weight: 600; }

/* ---------- Tools ---------- */
.prp-tools { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 20px; }
.prp-tool { border: 1px solid var(--prp-line); border-radius: 12px; padding: 24px; background: #fff; }
.prp-tool h3 { font-family: var(--prp-display); font-size: 21px; font-weight: 800; color: var(--prp-palm); margin: 0; line-height: 1.15; }
.prp-tool > p { font-size: 14.5px; color: var(--prp-slate); margin: 4px 0 0; }
.prp-conv { margin-top: 18px; display: flex; gap: 10px; align-items: stretch; }
.prp-conv__inp { flex: 1; margin: 0; }
.prp-conv__inp input { width: 100%; border: 1.5px solid var(--prp-grove); border-radius: 8px; height: 52px; padding: 0 14px; font: 800 24px/1 var(--prp-display); color: var(--prp-palm); background: #fff; box-shadow: none; }
.prp-conv__unit { margin: 0; }
.prp-conv .prp-conv__unit select { height: 52px; min-width: 110px; }
.prp-conv__out { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 14px; border: 1px solid var(--prp-line); border-radius: 8px; overflow: hidden; }
.prp-conv__out div { padding: 12px 14px; border-right: 1px solid var(--prp-line); border-bottom: 1px solid var(--prp-line); }
.prp-conv__out div:nth-child(2n) { border-right: 0; }
.prp-conv__out div:nth-child(n+3) { border-bottom: 0; }
.prp-conv__out b { display: block; font-family: var(--prp-display); font-weight: 800; font-size: 22px; color: var(--prp-palm); line-height: 1.2; }
.prp-conv__out small { color: var(--prp-slate); font-size: 13.5px; }
.prp-range { display: grid; grid-template-columns: 1fr auto; gap: 6px; font-size: 14.5px; margin: 14px 0 0; align-items: center; color: var(--prp-ink); }
.prp-range b { color: var(--prp-palm); }
.prp-range input[type=range] { grid-column: 1 / -1; width: 100%; margin: 8px 0 4px; padding: 0; border: 0; height: 6px; border-radius: 3px; background: var(--prp-mist); -webkit-appearance: none; appearance: none; outline: none; cursor: pointer; }
.prp-range input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--prp-grove); box-shadow: 0 1px 3px rgba(0,0,0,.15); }
.prp-range input[type=range]::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--prp-grove); }
.prp-range input[type=range]::-moz-range-track { height: 6px; border-radius: 3px; background: transparent; }
.prp-range input[type=range]:focus-visible { outline: 2px solid var(--prp-grove); outline-offset: 4px; }
.prp-emi-out { margin-top: 20px; background: var(--prp-mist); border-radius: 8px; padding: 14px 16px; }
.prp-emi-out small { color: var(--prp-slate); font-size: 13.5px; display: block; }
.prp-emi-out b { display: block; font-family: var(--prp-display); font-weight: 900; font-size: 30px; color: var(--prp-palm); line-height: 1.2; }
.prp-docs { list-style: none; margin: 14px 0 0; padding: 0; }
.prp-docs li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-top: 1px dashed var(--prp-line); font-size: 15px; margin: 0; }
.prp-docs .prp-i { color: var(--prp-grove); margin-top: 3px; }
.prp-docs b { color: var(--prp-palm); font-weight: 600; display: block; }
.prp-docs span { color: var(--prp-slate); display: block; font-size: 13.5px; }

/* ---------- Why ---------- */
.prp-why { display: grid; grid-template-columns: 1fr 2fr; gap: 56px; align-items: start; }
.prp-why__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.prp-sec .prp-why__item h3 { font-size: 20px; font-weight: 800; display: flex; gap: 10px; align-items: flex-start; }
.prp-why__item h3 .prp-i { width: 22px; height: 22px; color: var(--prp-grove); }
.prp-why__item p { margin: 8px 0 0; font-size: 15.5px; }

/* ---------- Blog cards ---------- */
.prp-posts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.prp-pcard, a.prp-pcard { display: block; text-decoration: none; color: var(--prp-ink); }
.prp-pcard__thumb { display: block; aspect-ratio: 16 / 10; border-radius: 10px; overflow: hidden; background: var(--prp-mist); }
.prp-pcard__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.prp-pcard small { display: block; color: var(--prp-slate); font-size: 13.5px; margin-top: 12px; }
.prp-pcard__title { display: block; font-weight: 600; font-size: 17px; color: var(--prp-palm); line-height: 1.35; margin-top: 4px; }
.prp-pcard:hover .prp-pcard__title { color: var(--prp-grove); }

/* ---------- CTA ---------- */
.prp-cta { background: var(--prp-grove); color: #fff; border-radius: 18px; padding: 44px 48px; display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.prp-sec .prp-cta h2 { color: #fff; font-size: 36px; font-weight: 900; }
.prp-cta p { color: #D7EEE2; margin: 8px 0 0; max-width: 56ch; font-size: 16.5px; }
.prp-cta__btns { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }

/* ---------- Results + filters ---------- */
.prp-results-page, .prp-archive, .prp-profile, .prp-people-page, .prp-dash, .prp-submit, .prp-narrow, .prp-shortlist-page { padding-top: 28px; padding-bottom: 64px; }
.prp-results { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 32px; align-items: start; margin-top: 18px; }
.prp-results--nofilters { grid-template-columns: 1fr; }
.prp-filters { position: sticky; top: 96px; max-height: calc(100vh - 110px); overflow: auto; border: 1px solid var(--prp-line); border-radius: 12px; background: #fff; padding: 18px; scrollbar-width: thin; }
.prp-filters__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.prp-filters__title { font-family: var(--prp-display); font-size: 21px; font-weight: 800; color: var(--prp-palm); margin: 0; }
.prp-filters__close { display: none; border: 0; background: none; color: var(--prp-palm); padding: 6px; cursor: pointer; }
.prp-fgroup { border: 0; margin: 0; padding: 14px 0; border-bottom: 1px solid var(--prp-line); min-width: 0; }
.prp-fgroup legend, .prp-fgroup > summary { font-weight: 600; color: var(--prp-palm); font-size: 15px; padding: 0; margin-bottom: 8px; cursor: default; }
.prp-fgroup > summary { cursor: pointer; margin: 0; }
.prp-fgroup[open] > summary { margin-bottom: 8px; }
.prp-filters__acts { display: flex; gap: 8px; padding-top: 14px; }
.prp-filters__acts .prp-btn { flex: 1; }
.prp-results__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.prp-results__count { font-family: var(--prp-display); font-size: 22px; font-weight: 800; color: var(--prp-palm); margin: 0; }
.prp-results__tools { display: flex; gap: 10px; align-items: center; }
.prp-sort select { height: 40px; border: 1px solid var(--prp-line); border-radius: 8px; padding: 0 34px 0 12px; font: 500 14.5px var(--prp-body); color: var(--prp-palm); background-color: #fff; }
.prp-viewtoggle { display: flex; border: 1px solid var(--prp-line); border-radius: 8px; overflow: hidden; }
.prp-viewtoggle button { border: 0; background: #fff; color: var(--prp-slate); padding: 0 10px; height: 38px; cursor: pointer; display: grid; place-items: center; border-radius: 0; }
.prp-viewtoggle button.is-on { background: var(--prp-mist); color: var(--prp-grove); }
.prp-results .prp-filters-open { display: none; }
.prp-chips { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.prp-chips:empty { display: none; }
.prp-chips__clear { font-size: 14px; }
[data-prp-list].is-loading { opacity: .5; pointer-events: none; transition: opacity .15s ease; }
.prp-pagination { display: flex; gap: 6px; justify-content: center; margin-top: 30px; flex-wrap: wrap; }
.prp-pagination .page-numbers { min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--prp-line); border-radius: 8px; color: var(--prp-palm); text-decoration: none; font-weight: 600; padding: 0 10px; background: #fff; }
.prp-pagination .page-numbers.current { background: var(--prp-palm); border-color: var(--prp-palm); color: #fff; }
.prp-pagination a.page-numbers:hover { border-color: var(--prp-grove); color: var(--prp-grove); }
.prp-empty { border: 1px dashed var(--prp-line); border-radius: 12px; padding: 32px; background: #fff; text-align: left; }
.prp-empty h3 { font-family: var(--prp-display); font-size: 22px; font-weight: 800; color: var(--prp-palm); margin: 0 0 6px; }
.prp-empty p { margin: 8px 0 0; color: var(--prp-slate); max-width: 60ch; }
.prp-empty__acts { display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------- Form controls ---------- */
.prp-form { display: flex; flex-direction: column; gap: 12px; }
.prp-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.prp-fl { display: flex; flex-direction: column; gap: 6px; margin: 0; font-size: 14px; color: var(--prp-ink); border: 0; padding: 0; min-width: 0; }
.prp-fl > span, .prp-fl > legend { font-weight: 600; color: var(--prp-palm); font-size: 14px; padding: 0; }
.prp-fl > span small { font-weight: 400; color: var(--prp-slate); }
.prp-help { color: var(--prp-slate); font-size: 12.5px; }
.prp-form input[type=text], .prp-form input[type=email], .prp-form input[type=tel], .prp-form input[type=number], .prp-form input[type=password], .prp-form input[type=url], .prp-form input[type=date], .prp-form input[type=search], .prp-form select, .prp-form textarea,
.prp-filters input[type=search], .prp-filters input[type=number], .prp-filters select, .prp-select select, .prp-input input {
	width: 100%; border: 1px solid var(--prp-line); border-radius: 8px; background: #fff; padding: 10px 12px; min-height: 44px;
	font: 400 15px/1.4 var(--prp-body); color: var(--prp-ink); box-shadow: none; margin: 0;
}
.prp-form textarea { min-height: 90px; resize: vertical; }
.prp-form input:focus, .prp-form select:focus, .prp-form textarea:focus, .prp-filters input:focus, .prp-filters select:focus, .prp-sort select:focus, .prp-conv__inp input:focus {
	border-color: var(--prp-grove); outline: 2px solid rgba(15, 122, 83, .18); outline-offset: 0;
}
.prp-select { display: block; margin: 8px 0 0; }
.prp-select select { appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23536860' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px; padding-right: 32px; height: 44px; }
.prp-sort select { appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23536860' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px; }
.prp-mini.prp-select-label, .prp-select .prp-mini { display: block; margin: 0 0 4px; }
.prp-input { position: relative; display: block; margin: 0; }
.prp-input--icon .prp-i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--prp-slate); }
.prp-input--icon input { padding-left: 38px !important; }
.prp-input--pre .prp-prefix { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--prp-slate); font-weight: 600; }
.prp-input--pre input { padding-left: 28px !important; }
.prp-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.prp-row2 .prp-select { margin: 0; }
.prp-seg { display: flex; flex-wrap: wrap; gap: 0; border: 1px solid var(--prp-line); border-radius: 8px; overflow: hidden; width: fit-content; max-width: 100%; }
.prp-seg label { margin: 0; position: relative; }
.prp-seg input { position: absolute; opacity: 0; pointer-events: none; }
.prp-seg span { display: block; padding: 8px 14px; font-weight: 600; font-size: 14px; color: var(--prp-slate); cursor: pointer; border-right: 1px solid var(--prp-line); background: #fff; }
.prp-seg label:last-child span { border-right: 0; }
.prp-seg input:checked + span { background: var(--prp-mist); color: var(--prp-grove); }
.prp-seg input:focus-visible + span { outline: 2px solid var(--prp-grove); outline-offset: -2px; }
.prp-chipset { display: flex; flex-wrap: wrap; gap: 6px; }
.prp-chipcheck { margin: 0; position: relative; }
.prp-chipcheck input { position: absolute; opacity: 0; pointer-events: none; }
.prp-chipcheck span { display: inline-block; border: 1px solid var(--prp-line); border-radius: 999px; padding: 5px 12px; font-size: 14px; color: var(--prp-palm); background: #fff; cursor: pointer; font-weight: 500; }
.prp-chipcheck input:checked + span { background: var(--prp-palm); border-color: var(--prp-palm); color: #fff; }
.prp-chipcheck input:focus-visible + span { outline: 2px solid var(--prp-grove); outline-offset: 2px; }
.prp-check { display: flex; gap: 10px; align-items: flex-start; margin: 6px 0; font-size: 14.5px; cursor: pointer; color: var(--prp-ink); }
.prp-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--prp-grove); flex: none; }
.prp-consent a { color: var(--prp-grove); }
.prp-form__msg { margin: 0; padding: 10px 12px; border-radius: 8px; font-size: 14.5px; background: var(--prp-mist); color: var(--prp-grove-d); font-weight: 600; }
.prp-form__msg.is-error { background: #FEF3F2; color: var(--prp-danger); }
.prp-notice { padding: 12px 14px; border-radius: 8px; margin: 0 0 14px; font-weight: 500; }
.prp-notice--error { background: #FEF3F2; color: var(--prp-danger); border: 1px solid #FECDCA; }
.prp-notice--success { background: var(--prp-mist); color: var(--prp-grove-d); border: 1px solid #B7DCC7; }
.prp-panel { background: #fff; border: 1px solid var(--prp-line); border-radius: 12px; padding: 22px; }
.prp-narrow { max-width: 640px; }

/* ---------- Breadcrumbs ---------- */
.prp-crumbs ol { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: 13.5px; color: var(--prp-slate); }
.prp-crumbs li { margin: 0; display: flex; gap: 6px; align-items: center; }
.prp-crumbs li + li::before { content: "/"; color: #A7B6AF; }
.prp-crumbs a { color: var(--prp-slate); text-decoration: none; }
.prp-crumbs a:hover { color: var(--prp-grove); text-decoration: underline; }

/* ---------- Single listing ---------- */
.prp-single { padding: 24px 0 72px; }
.prp-single__head { display: flex; justify-content: space-between; gap: 32px; align-items: flex-end; margin: 6px 0 20px; }
.prp-single .prp-single__title { font-size: 38px; font-weight: 900; letter-spacing: -.02em; line-height: 1.08; max-width: 24ch; margin: 0 0 10px; }
.prp-single__price { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; flex: none; }
.prp-single__tools { display: flex; gap: 8px; }
.prp-single__tools .prp-shortlist { position: static; box-shadow: none; border: 1px solid var(--prp-line); width: 40px; height: 40px; }
.prp-iconbtn { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--prp-line); background: #fff; color: var(--prp-palm); display: grid; place-items: center; cursor: pointer; padding: 0; }
.prp-iconbtn:hover { border-color: var(--prp-grove); color: var(--prp-grove); background: #fff; }
.prp-gallery { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 220px 220px; gap: 10px; border-radius: 14px; overflow: hidden; margin-bottom: 28px; }
.prp-gallery--1, .prp-gallery--0 { grid-template-columns: 1fr; grid-template-rows: 440px; }
.prp-gallery--2 { grid-template-rows: 440px; }
.prp-gallery__item { position: relative; border: 0; padding: 0; margin: 0; background: var(--prp-mist); cursor: zoom-in; overflow: hidden; border-radius: 0; display: block; width: 100%; height: 100%; }
.prp-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.prp-gallery__item:hover img { transform: scale(1.02); }
.prp-gallery__item--0 { grid-row: 1 / span 2; }
.prp-gallery--2 .prp-gallery__item--0 { grid-row: auto; }
.prp-gallery__more { position: absolute; right: 12px; bottom: 12px; background: rgba(12, 58, 45, .85); color: #fff; font-weight: 600; font-size: 14px; border-radius: 8px; padding: 6px 12px; }
.prp-single__layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start; }
.prp-facts { list-style: none; margin: 0 0 28px; padding: 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; border: 1px solid var(--prp-line); border-radius: 12px; background: var(--prp-wash); }
.prp-facts li { display: flex; gap: 10px; align-items: flex-start; margin: 0; min-width: 0; }
.prp-facts .prp-i { width: 22px; height: 22px; color: var(--prp-grove); margin-top: 2px; }
.prp-facts small { display: block; font-size: 12.5px; color: var(--prp-slate); }
.prp-facts b { display: block; font-family: var(--prp-display); font-weight: 800; font-size: 17px; color: var(--prp-palm); line-height: 1.2; }
.prp-block { margin: 0 0 32px; }
.prp-content { font-size: 16.5px; line-height: 1.7; }
.prp-content h2, .prp-content h3, .prp-content h4 { font-family: var(--prp-display); color: var(--prp-palm); font-weight: 800; margin: 22px 0 8px; line-height: 1.2; }
.prp-content h2 { font-size: 24px; }
.prp-content h3 { font-size: 20px; }
.prp-content ul { padding-left: 20px; margin: 8px 0 14px; }
.prp-content li { margin: 4px 0; }
.prp-content p { margin: 0 0 12px; }
.prp-content.is-clamped { max-height: 420px; overflow: hidden; position: relative; }
.prp-content.is-clamped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 120px; background: linear-gradient(rgba(255,255,255,0), #fff); }
.prp-readmore { margin-top: 10px; }
.prp-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border: 1px solid var(--prp-line); border-radius: 12px; overflow: hidden; }
.prp-details div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 16px; border-bottom: 1px solid var(--prp-line); font-size: 15px; }
.prp-details div:nth-child(odd) { border-right: 1px solid var(--prp-line); }
.prp-details dt { color: var(--prp-slate); margin: 0; font-weight: 400; }
.prp-details dd { color: var(--prp-ink); margin: 0; font-weight: 600; text-align: right; }
.prp-amenities { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 16px; }
.prp-amenities li { display: flex; gap: 8px; align-items: center; margin: 0; font-size: 15px; }
.prp-amenities .prp-i { color: var(--prp-grove); }
.prp-map { aspect-ratio: 16 / 7; border-radius: 12px; overflow: hidden; background: var(--prp-mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath d='M0 20h40M20 0v40' stroke='%23D6E2DB' stroke-width='1'/%3E%3C/svg%3E"); display: grid; place-items: center; margin: 10px 0; }
.prp-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.prp-video { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; }
.prp-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.prp-single__aside { position: sticky; top: 96px; }
.prp-contactcard { border: 1px solid var(--prp-line); border-radius: 14px; padding: 20px; background: #fff; box-shadow: 0 8px 30px rgba(12, 58, 45, .07); }
.prp-contactcard__who { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
.prp-contactcard__who b { display: block; color: var(--prp-palm); font-size: 16.5px; }
.prp-contactcard__who small { display: block; color: var(--prp-slate); font-size: 13.5px; }
.prp-contactcard__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 4px; }
.prp-contactcard__btns .prp-btn { padding: 11px 10px; font-size: 14.5px; }
.prp-contactcard .prp-h4 { margin-top: 16px; }
.prp-ref { margin-top: 12px; }
.prp-avatar { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; flex: none; background: var(--prp-mist); display: grid; place-items: center; }
.prp-avatar img { width: 100%; height: 100%; object-fit: cover; }
.prp-avatar--lg { width: 96px; height: 96px; }
.prp-initials { font-family: var(--prp-display); font-weight: 900; color: var(--prp-grove); font-size: 18px; }
.prp-avatar--lg .prp-initials { font-size: 32px; }
.prp-similar { margin-top: 56px; }
.prp-similar .prp-cards--grid { grid-template-columns: repeat(4, 1fr); }
.prp-visit-date[hidden] { display: none; }

/* Lightbox */
.prp-lightbox { border: 0; padding: 0; background: rgba(6, 22, 17, .94); width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; color: #fff; }
.prp-lightbox::backdrop { background: rgba(6, 22, 17, .94); }
.prp-lightbox[open] { display: grid; place-items: center; }
.prp-lightbox img { max-width: 92vw; max-height: 84vh; object-fit: contain; border-radius: 6px; }
.prp-lightbox__count { position: absolute; top: 18px; left: 24px; margin: 0; font-weight: 600; }
.prp-lightbox__btn { position: absolute; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.12); color: #fff; display: grid; place-items: center; cursor: pointer; padding: 0; }
.prp-lightbox__btn:hover { background: rgba(255,255,255,.24); color: #fff; }
.prp-lightbox__btn .prp-i { width: 24px; height: 24px; }
.prp-lightbox__prev { left: 18px; top: 50%; transform: translateY(-50%); }
.prp-lightbox__next { right: 18px; top: 50%; transform: translateY(-50%); }
.prp-lightbox__close { right: 18px; top: 14px; }

/* ---------- Profiles & people ---------- */
.prp-profile__head { display: flex; gap: 24px; align-items: center; margin: 8px 0 28px; }
.prp-profile__head .prp-page-title { margin: 0; }
.prp-profile__acts { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.prp-people { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 18px; }
.prp-person { display: flex; gap: 16px; border: 1px solid var(--prp-line); border-radius: 12px; padding: 18px; background: #fff; align-items: center; }
.prp-person__photo { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; background: var(--prp-mist); display: grid; place-items: center; flex: none; text-decoration: none; }
.prp-person__photo img { width: 100%; height: 100%; object-fit: cover; }
.prp-person h3 { font-family: var(--prp-display); font-size: 19px; font-weight: 800; margin: 0; line-height: 1.2; }
.prp-person h3 a { color: var(--prp-palm); text-decoration: none; }
.prp-person__meta { margin: 2px 0 10px; color: var(--prp-slate); font-size: 14px; }
.prp-person__acts { display: flex; gap: 6px; flex-wrap: wrap; }
.prp-person__acts .prp-btn { padding: 7px 12px; font-size: 14px; }

/* ---------- Contact page ---------- */
.prp-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding-top: 36px; padding-bottom: 64px; align-items: start; }
.prp-contact__list { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.prp-contact__list li { display: flex; gap: 14px; align-items: flex-start; margin: 0; }
.prp-contact__list .prp-i { width: 22px; height: 22px; color: var(--prp-grove); margin-top: 4px; }
.prp-contact__list small { display: block; color: var(--prp-slate); font-size: 13.5px; }
.prp-contact__list a, .prp-contact__list span { font-family: var(--prp-display); font-weight: 800; font-size: 20px; color: var(--prp-palm); text-decoration: none; }
.prp-contact__map { grid-column: 1 / -1; aspect-ratio: 16 / 5; border-radius: 14px; overflow: hidden; }
.prp-contact__map iframe { width: 100%; height: 100%; border: 0; }

/* ---------- Auth & dashboard ---------- */
.prp-auth__tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--prp-line); margin: 18px 0 16px; }
.prp-dash__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.prp-dash__acts { display: flex; gap: 8px; }
.prp-dash__tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--prp-line); margin: 22px 0 20px; overflow-x: auto; }
.prp-mylist { display: flex; flex-direction: column; gap: 12px; }
.prp-mylist__row { display: flex; justify-content: space-between; gap: 20px; align-items: center; border: 1px solid var(--prp-line); border-radius: 12px; padding: 16px 18px; background: #fff; }
.prp-mylist__row h3 { font-family: var(--prp-body); font-size: 17px; font-weight: 600; margin: 6px 0 0; color: var(--prp-palm); }
.prp-mylist__row h3 a { color: inherit; text-decoration: none; }
.prp-mylist__stats { display: flex; gap: 6px; align-items: center; color: var(--prp-slate); font-size: 14px; margin: 6px 0 0; }
.prp-mylist__acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.prp-mylist__acts .prp-btn { padding: 8px 12px; font-size: 14px; }
.prp-state { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 5px; padding: 2px 8px; background: var(--prp-mist); color: var(--prp-grove); }
.prp-state--pending { background: #FEF6E4; color: #8A5A00; }
.prp-state--sold, .prp-state--draft { background: #EEF0EF; color: var(--prp-slate); }

/* ---------- Post property form ---------- */
.prp-submit { max-width: 860px; }
.prp-stepper { list-style: none; display: flex; gap: 6px; margin: 22px 0 18px; padding: 0; counter-reset: prp-s; }
.prp-stepper li { flex: 1; counter-increment: prp-s; font-size: 13.5px; font-weight: 600; color: var(--prp-slate); padding-top: 10px; border-top: 3px solid var(--prp-line); margin: 0; }
.prp-stepper li::before { content: counter(prp-s) ". "; }
.prp-stepper li.is-on, .prp-stepper li.is-done { color: var(--prp-palm); border-top-color: var(--prp-grove); }
.prp-step { border: 1px solid var(--prp-line); margin: 0 0 16px; display: flex; flex-direction: column; gap: 16px; }
.prp-step > legend { float: left; width: 100%; padding: 0; margin: 0 0 4px; }
.prp-step > legend + * { clear: both; }
.prp-js .prp-step:not(.is-on) { display: none; }
.prp-typepick { display: flex; flex-direction: column; gap: 12px; }
.prp-typepick__group > .prp-mini { display: block; margin: 0 0 6px; font-weight: 600; }
.prp-grid-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.prp-fl[hidden], .prp-check[hidden] { display: none !important; }
.prp-drop { display: flex; flex-direction: column; align-items: center; gap: 6px; border: 2px dashed var(--prp-line); border-radius: 12px; padding: 24px; text-align: center; cursor: pointer; background: var(--prp-wash); position: relative; color: var(--prp-palm); }
.prp-drop:hover, .prp-drop.is-over { border-color: var(--prp-grove); }
.prp-drop .prp-i { width: 28px; height: 28px; color: var(--prp-grove); }
.prp-drop small { color: var(--prp-slate); }
.prp-drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.prp-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; margin-top: 10px; }
.prp-photo-grid:empty { display: none; }
.prp-photo { position: relative; border-radius: 8px; overflow: hidden; border: 1px solid var(--prp-line); margin: 0; background: #fff; }
.prp-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.prp-photo .prp-check { padding: 4px 8px; margin: 0; font-size: 13px; }
.prp-photo__cover { position: absolute; left: 6px; top: 6px; background: var(--prp-amber); color: var(--prp-palm); font-size: 11px; font-weight: 700; border-radius: 4px; padding: 1px 6px; }
.prp-submit__nav { display: flex; gap: 10px; justify-content: flex-end; position: sticky; bottom: 0; background: linear-gradient(rgba(255,255,255,0), #fff 30%); padding: 18px 0 8px; }
.prp-submit__nav [data-prp-prev] { margin-right: auto; }

/* ---------- Header pieces (Astra HTML elements) ---------- */
.prp-topbar__areas { color: #CFE3D8; font-size: 14px; font-family: var(--prp-body); }
.prp-topbar { display: inline-flex; gap: 22px; align-items: center; font-family: var(--prp-body); font-size: 14px; }
.prp-topbar a { display: inline-flex; gap: 6px; align-items: center; color: #fff !important; text-decoration: none; }
.prp-topbar a:hover { color: var(--prp-amber) !important; }
.prp-topbar .prp-i { width: 16px; height: 16px; }
.prp-head-acts { display: inline-flex; gap: 18px; align-items: center; font-family: var(--prp-body); }
.prp-head-act { display: inline-flex; gap: 6px; align-items: center; font-weight: 600; color: var(--prp-palm) !important; text-decoration: none; font-size: 15px; position: relative; white-space: nowrap; }
.prp-head-acts { white-space: nowrap; flex: none; }
.prp-head-act:hover { color: var(--prp-grove) !important; }
.prp-count { min-width: 18px; height: 18px; border-radius: 9px; background: var(--prp-grove); color: #fff; font-size: 11px; font-weight: 700; display: inline-grid; place-items: center; padding: 0 5px; }
.prp-count[hidden] { display: none; }
.prp-post-btn, a.prp-post-btn { padding: 12px 18px; font-size: 15px; }
@media (max-width: 1320px) {
	.ast-primary-header-bar .prp-head-act span:not(.prp-count) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
	.ast-primary-header-bar .prp-head-acts { gap: 14px; }
}
.prp-post-btn:hover { color: var(--prp-palm) !important; }

/* ---------- Footer pieces ---------- */
.prp-fabout { font-family: var(--prp-body); color: #BCD3C7; font-size: 15px; }
.prp-fabout p { margin: 16px 0 0; max-width: 36ch; line-height: 1.55; color: #BCD3C7; }
.prp-flogo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.prp-flogo .prp-logo-mark { width: 42px; height: 42px; }
.prp-flogo__word { font-family: var(--prp-display); font-weight: 900; font-size: 22px; color: #fff; line-height: .95; }
.prp-flogo__word small { display: block; font-family: var(--prp-body); font-weight: 500; font-size: 12.5px; color: #9DB8AB; margin-top: 4px; }
.prp-fcontact, .prp-fabout .prp-fcontact { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.prp-fcontact li { margin: 0; }
.prp-fcontact a, .prp-fcontact span { display: inline-flex; gap: 10px; align-items: center; color: #fff !important; text-decoration: none; }
.prp-fcontact a:hover { color: var(--prp-amber) !important; }
.prp-fcontact .prp-i { color: var(--prp-amber); }
.prp-fsocial { display: inline-flex; gap: 16px; font-family: var(--prp-body); font-size: 14px; }
.prp-fsocial a { color: #9DB8AB !important; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }
.prp-fsocial a:hover { color: #fff !important; }
.prp-fsocial .prp-i { width: 16px; height: 16px; }

/* ---------- Floating + mobile bar ---------- */
.prp-wa-float { position: fixed; right: 24px; bottom: 24px; width: 58px; height: 58px; border-radius: 50%; background: var(--prp-wa); display: grid; place-items: center; color: #fff !important; box-shadow: 0 8px 24px rgba(0,0,0,.2); z-index: 90; }
.prp-wa-float:hover { background: #158E43; }
.prp-wa-float .prp-i { width: 28px; height: 28px; }
.prp-mbar { display: none; }
.prp-localities { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.prp-localities h3 { width: 100%; font-family: var(--prp-display); color: var(--prp-palm); margin: 0 0 6px; }

/* ---------- Focus & motion ---------- */
.prp-hero a:focus-visible, .prp-sec a:focus-visible, .prp-single a:focus-visible, .prp-results a:focus-visible, .prp-btn:focus-visible, .prp-tab:focus-visible, .prp-shortlist:focus-visible, .prp-iconbtn:focus-visible, .prp-cat:focus-visible, .prp-chip:focus-visible, .prp-gallery__item:focus-visible {
	outline: 2px solid var(--prp-grove); outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	.prp-gallery__item img, .prp-btn, .prp-cat { transition: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.prp-cats { grid-template-columns: repeat(3, 1fr); }
	.prp-cards--grid.prp-cols-4, .prp-similar .prp-cards--grid { grid-template-columns: repeat(2, 1fr); }
	.prp-tools { grid-template-columns: 1fr 1fr; }
	.prp-posts { grid-template-columns: repeat(2, 1fr); }
	.prp-single__layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; }
	.prp-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.prp-people { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
	.prp-results { grid-template-columns: 1fr; }
	.prp-filters { position: fixed; inset: 0 0 0 auto; width: min(380px, 92vw); max-height: none; z-index: 1000; border-radius: 0; transform: translateX(100%); transition: transform .2s ease; box-shadow: -10px 0 40px rgba(0,0,0,.2); }
	.prp-filters.is-open { transform: none; }
	.prp-filters__close { display: block; }
	.prp-results .prp-filters-open { display: inline-flex; }
	.prp-filters__acts { position: sticky; bottom: -18px; background: #fff; padding-bottom: 18px; }
	.prp-single__layout { grid-template-columns: 1fr; }
	.prp-single__aside { position: static; }
	.prp-split, .prp-why, .prp-contact { grid-template-columns: 1fr; gap: 28px; }
	.prp-area { grid-template-columns: 1fr; gap: 6px; }
	.prp-area__links { justify-content: flex-start; margin-top: 6px; }
	.prp-types { grid-template-columns: 1fr; }
	.prp-type, .prp-type + .prp-type { padding: 22px 0 4px; border-left: 0; }
	.prp-type + .prp-type { border-top: 1px solid var(--prp-line); }
	.prp-cta { flex-direction: column; align-items: flex-start; }
	.prp-cta__btns { justify-content: flex-start; }
	.prp-card--list { flex-direction: column; }
	.prp-card--list .prp-card__media { width: 100%; aspect-ratio: 4 / 3; min-height: 0; }
	.prp-card--list .prp-shortlist { left: auto; right: 10px; }
}
@media (max-width: 760px) {
	.prp-wrap { padding: 0 16px; }
	.prp-sec { padding: 48px 0; }
	.prp-h2 { font-size: 27px; }
	.prp-page-title { font-size: 30px; }
	.prp-sec-head { flex-direction: column; align-items: flex-start; gap: 6px; }
	.prp-hero { padding: 36px 0 200px; }
	.prp-hero .prp-hero__title { font-size: 44px; }
	.prp-hero__sub { font-size: 16.5px; }
	.prp-hero__sun { right: -40px; top: 20px; width: 180px; height: 180px; }
	.prp-horizon { height: 300px; }
	.prp-search { margin-top: 24px; }
	.prp-tabs { padding: 0 8px; }
	.prp-tab { padding: 13px 10px 11px; font-size: 14.5px; }
	.prp-tab-post { display: none; }
	.prp-fields { grid-template-columns: 1fr; padding: 8px 12px 12px; }
	.prp-field { border-right: 0; border-bottom: 1px solid var(--prp-line); padding: 10px 4px; }
	.prp-search__go { margin-top: 12px; min-height: 50px; }
	.prp-popular { padding: 0 16px 16px; }
	.prp-popular .prp-chip:nth-of-type(n+3) { display: none; }
	.prp-cats { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.prp-cat { padding: 14px; }
	.prp-cat__text { display: none; }
	.prp-cat__title { font-size: 16.5px; }
	.prp-cards--grid, .prp-cards--grid.prp-cols-4, .prp-cards--grid.prp-cols-3, .prp-cards--grid.prp-cols-2, .prp-similar .prp-cards--grid { grid-template-columns: 1fr; gap: 16px; }
	.prp-sec .prp-area__name { font-size: 26px; }
	.prp-postpanel { padding: 24px; }
	.prp-tools { grid-template-columns: 1fr; }
	.prp-why__list { grid-template-columns: 1fr; gap: 20px; }
	.prp-posts { grid-template-columns: 1fr 1fr; gap: 14px; }
	.prp-pcard__title { font-size: 15px; }
	.prp-cta { padding: 28px 22px; }
	.prp-sec .prp-cta h2 { font-size: 28px; }
	.prp-single__head { flex-direction: column; align-items: flex-start; gap: 12px; }
	.prp-single .prp-single__title { font-size: 28px; }
	.prp-single__price { text-align: left; align-items: flex-start; }
	.prp-price--lg b { font-size: 30px; }
	.prp-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 240px 110px; margin-left: -16px; margin-right: -16px; border-radius: 0; }
	.prp-gallery__item--0 { grid-row: auto; grid-column: 1 / -1; }
	.prp-gallery--1, .prp-gallery--0 { grid-template-columns: 1fr; grid-template-rows: 260px; }
	.prp-gallery--2 { grid-template-rows: 240px 110px; }
	.prp-gallery--2 .prp-gallery__item--1 { grid-column: 1 / -1; }
	.prp-details { grid-template-columns: 1fr; }
	.prp-details div:nth-child(odd) { border-right: 0; }
	.prp-amenities { grid-template-columns: 1fr 1fr; }
	.prp-form__row, .prp-grid-fields { grid-template-columns: 1fr 1fr; }
	.prp-people { grid-template-columns: 1fr; }
	.prp-profile__head { flex-direction: column; align-items: flex-start; }
	.prp-mylist__row { flex-direction: column; align-items: stretch; }
	.prp-mylist__acts { justify-content: flex-start; }
	.prp-contact__map { aspect-ratio: 4 / 3; }
	.prp-stepper li { font-size: 0; }
	.prp-stepper li::before { font-size: 13px; }
	.prp-head-acts .prp-head-act span:not(.prp-count) { display: none; }
	.prp-wa-float { display: none; }
	.prp-mbar { display: grid; grid-template-columns: 1fr 1fr 1.2fr; position: fixed; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid var(--prp-line); z-index: 95; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); gap: 8px; box-shadow: 0 -6px 20px rgba(12, 58, 45, .08); }
	.prp-mbar .prp-btn { padding: 11px 8px; font-size: 14.5px; }
	body { padding-bottom: 70px; }
}
@media (max-width: 420px) {
	.prp-hero .prp-hero__title { font-size: 38px; }
	.prp-form__row, .prp-grid-fields { grid-template-columns: 1fr; }
	.prp-facts { grid-template-columns: 1fr 1fr; padding: 14px; }
	.prp-contactcard__btns { grid-template-columns: 1fr; }
}

/* ---------- Buyer alerts (1.2.0) ---------- */
.prp-alertbar { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; margin: 0 0 16px; padding: 12px 14px; background: #FFF7E6; border: 1px solid #F3D9A4; border-radius: 12px; font-family: var(--prp-body); }
.prp-alertbar__icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--prp-amber); color: var(--prp-palm); }
.prp-alertbar__icon .prp-i { width: 20px; height: 20px; stroke-width: 2; }
.prp-alertbar__text strong { display: block; color: var(--prp-palm); font-size: 15.5px; line-height: 1.25; }
.prp-alertbar__text span { display: block; color: var(--prp-slate); font-size: 13.5px; line-height: 1.35; }
.prp-alertbar .prp-btn { white-space: nowrap; }
.prp-alertdlg { width: min(440px, calc(100vw - 24px)); max-width: none; border: 0; border-radius: 16px; padding: 0; box-shadow: var(--prp-shadow); color: var(--prp-ink); font-family: var(--prp-body); }
.prp-alertdlg::backdrop { background: rgba(6, 22, 17, .5); }
.prp-alertdlg form { position: relative; display: grid; gap: 12px; padding: 24px 22px 20px; }
.prp-alertdlg .prp-h3 { margin: 0; padding-right: 28px; }
.prp-alertdlg__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--prp-amber); color: var(--prp-palm); }
.prp-alertdlg__icon .prp-i { width: 22px; height: 22px; stroke-width: 2; }
.prp-alertdlg__x { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--prp-slate); cursor: pointer; }
.prp-alertdlg__x:hover, .prp-alertdlg__x:focus { background: var(--prp-mist); color: var(--prp-palm); }
.prp-alertdlg__summary { margin: 0; padding: 10px 12px; background: var(--prp-mist); border-radius: 10px; color: var(--prp-palm); font-weight: 600; font-size: 14.5px; line-height: 1.4; }
.prp-alertdlg__push { padding: 10px 12px; margin: 0; border: 1px solid var(--prp-line); border-radius: 10px; font-weight: 600; }
.prp-alertdlg__note { margin: 0; text-align: center; }
.prp-inline-form { display: inline; margin: 0; }
.prp-notice--info { background: #FFF7E6; color: #6B4A00; border: 1px solid #F3D9A4; }
.prp-state--prp_expired { background: #FEF3F2; color: var(--prp-danger); }
.prp-expiry-line { display: flex; align-items: center; gap: 6px; }
.prp-expiry-line .prp-i { width: 15px; height: 15px; color: var(--prp-slate); }
@media (max-width: 600px) {
	.prp-alertbar { grid-template-columns: auto 1fr; }
	.prp-alertbar .prp-btn { grid-column: 1 / -1; justify-content: center; }
	.prp-alertdlg { margin: auto auto 0; border-radius: 16px 16px 0 0; width: 100vw; }
	.prp-alertdlg form { padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
}
