/* ==========================================================================
   Samtastic Portal 3.0.0 -- bold, modern property-portal look.
   White, slate ink, one strong red accent for lead actions, WhatsApp green,
   Plus Jakarta Sans headings. Loads after prestige-base.css (grouped menu
   mechanics) and re-points every token the theme, parent templates and
   Samtastic Core read.
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root,
body.nova.prestige,
body.home.nova.prestige {
	--pt-ink: #0f172a;
	--pt-text: #1e293b;
	--pt-muted: #5b6678;
	--pt-line: #e2e8f0;
	--pt-soft: #f8fafc;
	--pt-soft-2: #f1f5f9;
	--pt-accent: #e03a2c;
	--pt-accent-2: #bf2a1d;
	--pt-accent-soft: #fdecea;
	--pt-wa: #15803d;
	--pt-wa-2: #166534;
	--pt-tg: #1a7fb5;
	--pt-gold: #f59e0b;
	--pt-radius: 14px;
	--pt-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 12px 32px -18px rgba(15, 23, 42, .28);
	--pt-shadow-lg: 0 2px 6px rgba(15, 23, 42, .06), 0 30px 60px -30px rgba(15, 23, 42, .4);
	--pt-head: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--pt-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

	/* Nova / Prestige tokens (base stylesheet) */
	--nv-navy: var(--pt-ink);
	--nv-navy-2: #1e293b;
	--nv-blue: var(--pt-accent);
	--nv-blue-2: var(--pt-accent);
	--nv-blue-ink: var(--pt-accent-2);
	--nv-bg: var(--pt-soft);
	--nv-line: var(--pt-line);
	--nv-muted: var(--pt-muted);
	--nv-radius: var(--pt-radius);
	--nv-shadow: var(--pt-shadow);
	--nv-font: var(--pt-head);
	--ps-navy: var(--pt-ink);
	--ps-navy-2: #1e293b;
	--ps-navy-3: #334155;
	--ps-gold: var(--pt-accent);
	--ps-gold-2: var(--pt-accent-2);
	--ps-gold-ink: var(--pt-accent-2);
	--ps-gold-soft: var(--pt-accent-soft);
	--ps-ivory: var(--pt-soft);
	--ps-line: var(--pt-line);
	--ps-muted: var(--pt-muted);
	--ps-serif: var(--pt-head);
	--ps-sans: var(--pt-sans);
	--ps-shadow: var(--pt-shadow);

	/* Parent template tokens */
	--ink: var(--pt-ink);
	--ink-2: #1e293b;
	--ink-soft: var(--pt-muted);
	--line: var(--pt-line);
	--wash: var(--pt-soft);
	--paper: #fff;
	--gold: var(--pt-accent-2);
	--gold-light: var(--pt-accent);
	--green: var(--pt-wa);
	--display: var(--pt-head);
	--radius: var(--pt-radius);
	--radius-sm: 10px;
	--shadow: var(--pt-shadow);
	--shadow-lg: var(--pt-shadow-lg);
	--sam-gold: var(--pt-accent-2);
	--header-h: 68px;
}

body.prestige { font-family: var(--pt-sans); color: var(--pt-text); background: #fff; -webkit-font-smoothing: antialiased; }
body.prestige h1, body.prestige h2, body.prestige h3, body.prestige h4 { font-family: var(--pt-head); font-weight: 800; letter-spacing: -.02em; color: var(--pt-ink); }
body.prestige .site-main { background: #fff; }
.ps-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* 2. Buttons & links ------------------------------------------------------- */
.ps-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 12px 20px; border-radius: 10px; border: 1px solid transparent; cursor: pointer;
	font: 700 .92rem/1.1 var(--pt-sans); text-decoration: none !important; white-space: nowrap;
	transition: background .15s, transform .15s, box-shadow .15s, border-color .15s, color .15s;
}
.ps-btn:hover { transform: translateY(-1px); }
.ps-btn:active { transform: none; }
.ps-btn:focus-visible { outline: 3px solid rgba(224, 58, 44, .35); outline-offset: 2px; }
.ps-btn--accent { background: var(--pt-accent); color: #fff !important; box-shadow: 0 8px 18px -10px rgba(224, 58, 44, .9); }
.ps-btn--accent:hover { background: var(--pt-accent-2); }
.ps-btn--wa { background: var(--pt-wa); color: #fff !important; box-shadow: 0 8px 18px -10px rgba(21, 128, 61, .9); }
.ps-btn--wa:hover { background: var(--pt-wa-2); }
.ps-btn--tg { background: var(--pt-tg); color: #fff !important; }
.ps-btn--tg:hover { background: #156a98; }
.ps-btn--gold { background: var(--pt-accent); color: #fff !important; }
.ps-btn--line { background: #fff; color: var(--pt-ink) !important; border-color: var(--pt-line); }
.ps-btn--line:hover { border-color: var(--pt-ink); }
.ps-btn--ghost { background: rgba(255, 255, 255, .08); color: #fff !important; border-color: rgba(255, 255, 255, .45); }
.ps-btn--ghost:hover { background: #fff; color: var(--pt-ink) !important; }
.ps-btn--sm { padding: 9px 14px; font-size: .84rem; }
.ps-btn--lg { padding: 15px 26px; font-size: 1rem; }
.ps-btn--block { display: flex; width: 100%; }
.ps-wa-ico { flex-shrink: 0; }
.ps-link { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; cursor: pointer; font: 700 .92rem/1.2 var(--pt-sans); color: var(--pt-accent-2) !important; text-decoration: none; }
.ps-link:hover { text-decoration: underline; }
.ps-link--wa { color: var(--pt-wa) !important; }
.ps-chip { display: inline-flex; align-items: center; padding: 8px 14px; border: 1px solid var(--pt-line); border-radius: 999px; background: #fff; color: var(--pt-ink) !important; font: 600 .85rem/1 var(--pt-sans); text-decoration: none !important; }
.ps-chip:hover { border-color: var(--pt-accent); color: var(--pt-accent-2) !important; }
.ps-kicker { margin: 0 0 10px; font: 800 .74rem/1.2 var(--pt-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--pt-accent); }
.ps-kicker--light { color: #ffb4ab; }

/* 3. Header ------------------------------------------------------------------ */
.ps-topbar { background: var(--pt-ink); color: #cbd5e1; font-size: .78rem; }
.ps-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 34px; }
.ps-topbar__usp { display: flex; gap: 22px; margin: 0; padding: 0; list-style: none; }
.ps-topbar__usp li::before { content: "✓"; margin-right: 6px; color: #4ade80; font-weight: 800; }
.ps-topbar__links { display: flex; align-items: center; gap: 16px; margin: 0; }
.ps-topbar a { display: inline-flex; align-items: center; gap: 5px; color: #fff !important; text-decoration: none; font-weight: 700; }
body.prestige .ps-header { position: sticky; top: 0; z-index: 100; background: #fff; border-bottom: 1px solid var(--pt-line); backdrop-filter: none; }
body.prestige .ps-header.is-stuck { box-shadow: 0 8px 24px -18px rgba(15, 23, 42, .45); }
body.admin-bar.prestige .ps-header { top: 32px; }
.ps-header__main { display: flex; align-items: center; gap: 22px; height: var(--header-h); }
.ps-header__main .nv-brand { flex-shrink: 0; }
body.prestige .custom-logo { max-height: 46px; width: auto; }
body.prestige .nv-brand__mark { background: var(--pt-accent); color: #fff; font-family: var(--pt-head); border-radius: 10px; box-shadow: none; }
body.prestige .nv-brand__name { font-family: var(--pt-head); font-weight: 800; font-size: 1.12rem; color: var(--pt-ink); }
body.prestige .nv-brand__tag { color: var(--pt-muted); }
.ps-search { position: relative; display: flex; align-items: center; flex: 1 1 auto; max-width: 560px; margin: 0 auto; }
.ps-search svg { position: absolute; left: 14px; color: var(--pt-muted); pointer-events: none; }
.ps-search input { width: 100%; height: 44px; padding: 0 92px 0 42px; border: 1.5px solid var(--pt-line); border-radius: 12px; background: var(--pt-soft); font: 500 .95rem var(--pt-sans); color: var(--pt-ink); }
.ps-search input:focus { outline: none; border-color: var(--pt-accent); background: #fff; box-shadow: 0 0 0 4px rgba(224, 58, 44, .12); }
.ps-search button { position: absolute; right: 5px; height: 34px; padding: 0 14px; border: 0; border-radius: 8px; background: var(--pt-ink); color: #fff; font: 700 .82rem var(--pt-sans); cursor: pointer; }
.ps-search--drawer { display: none; }
body.prestige .nv-header__actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.ps-header__nav { border-top: 1px solid var(--pt-line); background: #fff; }
.ps-header__nav .nv-nav { display: flex; align-items: center; gap: 4px; min-height: 48px; }
body.prestige .nv-menu { gap: 2px; }
body.prestige .nv-menu__trigger, body.prestige .nv-menu--custom > li > a { padding: 10px 14px; border-radius: 8px; font: 700 .9rem/1 var(--pt-sans); color: var(--pt-ink); }
body.prestige .nv-menu__trigger:hover, body.prestige .nv-menu__group:focus-within .nv-menu__trigger { background: var(--pt-soft-2); }
body.prestige .nv-menu__group.is-current .nv-menu__trigger { color: var(--pt-accent); }
body.prestige .nv-menu__panel { border-radius: 14px; border: 1px solid var(--pt-line); box-shadow: var(--pt-shadow-lg); }
body.prestige .nv-menu__panel > ul > li > a:hover, body.prestige .nv-menu__col > ul > li > a:hover { background: var(--pt-accent-soft); }
body.prestige .nv-menu__hd { color: var(--pt-accent); }
.ps-nav-free { margin-left: auto; padding: 8px 14px; border-radius: 999px; background: var(--pt-accent-soft); color: var(--pt-accent-2) !important; font: 800 .84rem var(--pt-sans); text-decoration: none; }
.ps-nav-free:hover { background: var(--pt-accent); color: #fff !important; }
.ps-drawer-cta { display: none; }

@media (max-width: 1100px) {
	.ps-topbar__usp li:nth-child(3) { display: none; }
	.ps-search { max-width: 380px; }
}
@media (max-width: 980px) {
	:root, body.nova.prestige { --header-h: 62px; }
	.ps-topbar { display: none; }
	.ps-header__main > .ps-search { display: none; }
	.ps-header__main { justify-content: space-between; }
	.ps-header__nav { border: 0; }
	body.prestige .nv-nav { top: var(--header-h); }
	.ps-search--drawer { display: flex; margin: 6px 0 12px; max-width: none; }
	.ps-search--drawer input { padding-left: 14px; }
	.ps-nav-free { margin: 14px 0 0; text-align: center; }
	.ps-drawer-cta { display: grid; gap: 10px; margin-top: 18px; }
	.ps-header__book { display: none; }
}
@media (max-width: 420px) {
	.ps-header__wa span { display: none; }
	.ps-header__wa { width: 42px; height: 42px; padding: 0; }
}

/* 4. Forms (lead, booking) ---------------------------------------------------- */
.ps-lead { margin: 0; padding: 0; background: none; border: 0; box-shadow: none; }
.ps-lead__title { margin: 0 0 4px; font: 800 1.2rem/1.25 var(--pt-head); color: var(--pt-ink); letter-spacing: -.01em; }
.ps-lead__sub { margin: 0 0 14px; color: var(--pt-muted); font-size: .92rem; line-height: 1.5; }
.ps-lead__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ps-lead__fields .ps-btn { grid-column: 1 / -1; padding: 14px 18px; font-size: 1rem; }
.ps-lead--compact .ps-lead__fields { grid-template-columns: 1fr 1fr; }
.ps-field { display: grid; gap: 5px; margin: 0; font: 700 .74rem/1.2 var(--pt-sans); letter-spacing: .04em; text-transform: uppercase; color: var(--pt-muted); }
.ps-field--full { margin-bottom: 10px; }
.ps-field input, .ps-field select, .ps-field textarea {
	width: 100%; height: 46px; padding: 0 14px; border: 1.5px solid var(--pt-line); border-radius: 10px; background: #fff;
	font: 500 1rem var(--pt-sans); color: var(--pt-ink); text-transform: none; letter-spacing: 0;
}
.ps-field input:focus, .ps-field select:focus { outline: none; border-color: var(--pt-accent); box-shadow: 0 0 0 4px rgba(224, 58, 44, .12); }
.ps-lead .sam-form-status { margin: 10px 0 0; font-weight: 700; font-size: .92rem; }
.ps-lead .sam-form-status:empty { display: none; }
.ps-lead .sam-form-status.is-success { padding: 10px 12px; border-radius: 10px; background: #dcfce7; color: #14532d; }
.ps-lead .sam-form-status.is-error { padding: 10px 12px; border-radius: 10px; background: #fee2e2; color: #7f1d1d; }
.ps-lead__fine { margin: 8px 0 0; font-size: .76rem; color: var(--pt-muted); }
.ps-book fieldset { margin: 0 0 12px; padding: 0; border: 0; min-width: 0; min-inline-size: 0; }
.pt-book__form, .ps-band__form, .pt-hero__card, .ps-launch-cta, .ps-tabs__pane, .ps-modal form { min-width: 0; }
.ps-book legend { margin-bottom: 6px; font: 700 .74rem/1.2 var(--pt-sans); letter-spacing: .04em; text-transform: uppercase; color: var(--pt-muted); }
.ps-book__scroll { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.ps-pill, .ps-day { position: relative; display: inline-flex; margin: 0 4px 6px 0; cursor: pointer; }
.ps-pill input, .ps-day input { position: absolute; opacity: 0; pointer-events: none; }
.ps-pill span, .ps-day span { display: inline-block; padding: 9px 13px; border: 1.5px solid var(--pt-line); border-radius: 10px; background: #fff; font: 700 .84rem/1 var(--pt-sans); color: var(--pt-ink); white-space: nowrap; transition: all .15s; }
.ps-day span { min-width: 76px; text-align: center; }
.ps-pill input:checked + span, .ps-day input:checked + span { border-color: var(--pt-accent); background: var(--pt-accent-soft); color: var(--pt-accent-2); }
.ps-pill input:focus-visible + span, .ps-day input:focus-visible + span { outline: 3px solid rgba(224, 58, 44, .3); }

/* Modal + phone action bar */
.ps-modal { width: min(560px, calc(100vw - 24px)); max-height: calc(100vh - 40px); padding: 26px; border: 0; border-radius: 18px; box-shadow: 0 40px 80px -30px rgba(15, 23, 42, .6); overflow: auto; }
.ps-modal::backdrop { background: rgba(15, 23, 42, .6); backdrop-filter: blur(3px); }
.ps-modal__x { position: absolute; right: 12px; top: 10px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--pt-soft-2); font-size: 22px; cursor: pointer; }
.ps-actionbar { display: none; }
@media (max-width: 680px) {
	.ps-actionbar {
		position: fixed; left: 8px; right: 8px; bottom: calc(66px + env(safe-area-inset-bottom)); z-index: 199;
		display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 6px; padding: 6px; border-radius: 14px;
		background: rgba(255, 255, 255, .97); box-shadow: 0 10px 30px -10px rgba(15, 23, 42, .4); border: 1px solid var(--pt-line);
		transform: translateY(130%); transition: transform .25s;
	}
	.ps-actionbar.is-on { transform: none; }
	.ps-actionbar a, .ps-actionbar button { display: flex; align-items: center; justify-content: center; gap: 6px; height: 42px; border: 0; border-radius: 10px; font: 800 .82rem var(--pt-sans); text-decoration: none; cursor: pointer; }
	.ps-actionbar__wa { background: var(--pt-wa); color: #fff !important; }
	.ps-actionbar__book { background: var(--pt-accent); color: #fff; }
	.ps-actionbar__lead { background: var(--pt-soft-2); color: var(--pt-ink); }
	body.prestige { padding-bottom: calc(120px + env(safe-area-inset-bottom)); }
	.ps-lead__fields, .ps-lead--compact .ps-lead__fields { grid-template-columns: 1fr; }
}
/* App bar WhatsApp tab: green raised button */
@media (max-width: 680px) {
	body.prestige .mobile-app-nav__item.is-active { color: var(--pt-accent); }
	body.prestige .mobile-app-nav__item.ps-appbar-wa { overflow: visible; color: var(--pt-wa); }
	body.prestige .mobile-app-nav__item.ps-appbar-wa svg { box-sizing: content-box; width: 20px; height: 20px; padding: 9px; margin-top: -18px; border-radius: 50%; background: var(--pt-wa); color: #fff; box-shadow: 0 6px 14px -6px rgba(21, 128, 61, 1), 0 0 0 4px #fff; }
}

/* 5. Homepage ------------------------------------------------------------------ */
.pt-section { padding: 72px 0; }
.pt-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
body.prestige .pt-head h2, body.prestige .pt-soon h2, body.prestige .pt-book h2, body.prestige .pt-sell h2 { margin: 0; font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.5rem); line-height: 1.1; }

.pt-hero { position: relative; overflow: hidden; padding: 64px 0 72px; background: linear-gradient(180deg, #fff 0%, var(--pt-soft) 100%); }
.pt-hero::before {
	content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 46%;
	background: var(--pt-hero, linear-gradient(135deg, #1e293b, #0f172a)) center / cover no-repeat;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 30%); mask-image: linear-gradient(90deg, transparent 0, #000 30%);
	opacity: .9;
}
.pt-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); gap: 48px; align-items: center; }
body.prestige .pt-hero__title { margin: 0; font-size: clamp(2.4rem, 1.4rem + 3.6vw, 4.2rem); line-height: 1.02; letter-spacing: -.035em; }
.pt-hero__title span { color: var(--pt-accent); }
.pt-hero__lead { max-width: 560px; margin: 18px 0 26px; font-size: 1.1rem; line-height: 1.6; color: var(--pt-muted); }
.pt-finder { padding: 8px; border-radius: 18px; background: #fff; box-shadow: var(--pt-shadow-lg); border: 1px solid var(--pt-line); }
.pt-finder__tabs { display: flex; gap: 4px; padding: 4px; overflow-x: auto; }
.pt-finder__tabs button { flex: 0 0 auto; padding: 10px 16px; border: 0; border-radius: 10px; background: none; font: 800 .88rem var(--pt-sans); color: var(--pt-muted); cursor: pointer; }
.pt-finder__tabs button.is-active { background: var(--pt-ink); color: #fff; }
.pt-finder__pane { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; align-items: end; padding: 10px 8px 8px; }
.pt-finder__pane[hidden] { display: none; }
.pt-finder__pane label { position: relative; display: grid; gap: 5px; font: 700 .72rem/1 var(--pt-sans); letter-spacing: .05em; text-transform: uppercase; color: var(--pt-muted); }
.pt-finder__wide { grid-column: span 2; }
.pt-finder select, .pt-finder input { width: 100%; height: 50px; padding: 0 14px; border: 1.5px solid var(--pt-line); border-radius: 12px; background: var(--pt-soft); font: 600 1rem var(--pt-sans); color: var(--pt-ink); text-transform: none; letter-spacing: 0; }
.pt-finder select:focus, .pt-finder input:focus { outline: none; border-color: var(--pt-accent); background: #fff; }
.pt-finder .ps-btn { height: 50px; padding: 0 22px; font-size: 1rem; }
.pt-suggest { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; margin: 4px 0 0; padding: 6px; list-style: none; background: #fff; border-radius: 12px; box-shadow: var(--pt-shadow-lg); border: 1px solid var(--pt-line); max-height: 280px; overflow: auto; text-transform: none; letter-spacing: 0; }
.pt-suggest li { padding: 9px 10px; border-radius: 8px; cursor: pointer; font: 600 .92rem var(--pt-sans); color: var(--pt-ink); }
.pt-suggest li small { display: block; font-weight: 500; color: var(--pt-muted); }
.pt-suggest li:hover, .pt-suggest li.is-on { background: var(--pt-accent-soft); }
.pt-hero__card { padding: 26px; border-radius: 18px; background: #fff; box-shadow: var(--pt-shadow-lg); border: 1px solid var(--pt-line); }
.pt-hero__or { margin: 12px 0 0; text-align: center; color: var(--pt-muted); font-size: .9rem; }

.pt-proof { border-bottom: 1px solid var(--pt-line); background: var(--pt-soft); }
.pt-proof__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.pt-proof__grid > div { padding: 22px 16px; text-align: center; }
.pt-proof__grid > div + div { border-left: 1px solid var(--pt-line); }
.pt-proof strong { display: block; font: 800 clamp(1.7rem, 1.2rem + 1.4vw, 2.3rem)/1 var(--pt-head); color: var(--pt-ink); letter-spacing: -.02em; }
.pt-proof span span, .pt-proof strong + span { font-size: .82rem; color: var(--pt-muted); }
.pt-proof strong + span { display: block; margin-top: 6px; }

.pt-tools { padding: 40px 0 8px; }
.pt-tools__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pt-tile { display: grid; grid-template-columns: 44px 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 16px; border: 1px solid var(--pt-line); border-radius: 14px; background: #fff; text-decoration: none !important; transition: border-color .15s, box-shadow .15s, transform .15s; }
.pt-tile:hover { border-color: var(--pt-accent); box-shadow: var(--pt-shadow); transform: translateY(-2px); }
.pt-tile__ico { grid-row: span 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--pt-accent-soft); font-size: 1.3rem; }
.pt-tile strong { font: 800 .98rem/1.2 var(--pt-head); color: var(--pt-ink); }
.pt-tile small { color: var(--pt-muted); font-size: .82rem; }

.pt-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.pt-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--pt-line); border-radius: 16px; background: #fff; transition: box-shadow .2s, transform .2s; }
.pt-card:hover { box-shadow: var(--pt-shadow-lg); transform: translateY(-3px); }
.pt-card__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--pt-soft-2); }
.pt-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.pt-card:hover .pt-card__media img { transform: scale(1.05); }
.pt-card__ph { position: absolute; inset: 0; background: linear-gradient(135deg, #e2e8f0, #cbd5e1); }
.pt-badge { position: absolute; left: 10px; top: 10px; padding: 5px 10px; border-radius: 6px; background: var(--pt-ink); color: #fff; font: 800 .68rem/1 var(--pt-sans); letter-spacing: .06em; text-transform: uppercase; }
.pt-badge--selling, .pt-badge--launching { background: var(--pt-accent); }
.pt-badge--preview { background: var(--pt-gold); color: var(--pt-ink); }
.pt-badge--fully_sold { background: #64748b; }
.pt-card__body { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 16px; }
.pt-card__meta { margin: 0 0 4px; font: 700 .74rem/1.3 var(--pt-sans); color: var(--pt-muted); text-transform: uppercase; letter-spacing: .05em; }
body.prestige .pt-card__title { margin: 0; font-size: 1.12rem; line-height: 1.25; }
.pt-card__title a { color: var(--pt-ink); text-decoration: none; }
.pt-card__price { margin: 8px 0 2px; font: 800 1.15rem var(--pt-head); color: var(--pt-accent-2); }
.pt-card__facts { margin: 0 0 14px; font-size: .84rem; color: var(--pt-muted); }
.pt-card__cta { display: flex; gap: 8px; margin-top: auto; }
.pt-card__cta .ps-btn { flex: 1; }

.pt-soon { background: var(--pt-soft); }
.pt-soon__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.pt-cal { margin: 22px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.pt-cal a { display: flex; align-items: center; gap: 16px; padding: 12px 16px 12px 12px; border: 1px solid var(--pt-line); border-radius: 14px; background: #fff; color: var(--pt-ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.pt-cal a:hover { border-color: var(--pt-accent); box-shadow: var(--pt-shadow); }
.pt-cal__date { flex: 0 0 56px; height: 56px; display: grid; place-content: center; text-align: center; border-radius: 12px; background: var(--pt-accent-soft); color: var(--pt-accent-2); font: 800 .72rem/1.1 var(--pt-sans); text-transform: uppercase; }
.pt-cal__date b { display: block; font: 800 1.35rem/1 var(--pt-head); }
.pt-cal__name { flex: 1; display: flex; flex-direction: column; font: 800 1rem var(--pt-head); }
.pt-cal__name small { font: 500 .84rem var(--pt-sans); color: var(--pt-muted); margin-top: 3px; }
.pt-cal__go { color: var(--pt-muted); }
.ps-alerts { padding: 26px; border-radius: 18px; background: var(--pt-ink); color: #cbd5e1; }
.ps-alerts h3 { margin: 0 0 8px; color: #fff; font-size: 1.45rem; }
.ps-alerts p { margin: 0 0 18px; }
.ps-alerts .ps-kicker { color: #7dd3fc; }
.ps-alerts__act { display: grid; gap: 12px; }
.ps-alerts__email { color: var(--pt-text); }

.pt-book__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 48px; align-items: start; }
.pt-agent__about { margin: 14px 0; color: var(--pt-muted); font-size: 1.02rem; line-height: 1.65; }
.pt-agent__about p { margin: 0 0 .8em; }
.pt-checks { margin: 0 0 18px; padding: 0; list-style: none; display: grid; gap: 8px; }
.pt-checks li { display: flex; gap: 10px; font-weight: 600; color: var(--pt-ink); }
.pt-checks li::before { content: "✓"; flex: 0 0 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #dcfce7; color: var(--pt-wa); font-weight: 900; font-size: .8rem; }
.pt-agent__cea { margin: 0 0 18px; font-size: .84rem; color: var(--pt-muted); }
.pt-book__form { padding: 26px; border-radius: 18px; border: 1px solid var(--pt-line); box-shadow: var(--pt-shadow-lg); background: #fff; }

.pt-sell { padding: 0 0 80px; }
.pt-sell__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; padding: 44px; border-radius: 22px; background: radial-gradient(600px 300px at 0% 0%, rgba(224, 58, 44, .35), transparent 60%), var(--pt-ink); color: #cbd5e1; }
body.prestige .pt-sell h2 { color: #fff; }
.pt-sell .ps-field { color: #94a3b8; }
.pt-sell .ps-lead__fine { color: #94a3b8; }

/* 6. Closing band (every page except home) + launch panel --------------------------- */
.ps-band { padding: 64px 0; background: var(--pt-soft); }
.ps-band__inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 40px; align-items: center; padding: 40px; border-radius: 22px; background: radial-gradient(600px 300px at 100% 0%, rgba(224, 58, 44, .35), transparent 60%), var(--pt-ink); color: #cbd5e1; }
body.prestige .ps-band h2 { margin: 0 0 10px; color: #fff; font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.3rem); line-height: 1.1; }
.ps-band p { margin: 0; }
.ps-band__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 22px; }
.ps-band__call { color: #fff !important; font-weight: 700; }
.ps-band__form { padding: 24px; border-radius: 16px; background: #fff; }

.ps-launch-cta { margin: 32px 0 8px; padding: 24px; border: 2px solid var(--pt-accent); border-radius: 18px; background: #fff; box-shadow: var(--pt-shadow-lg); }
body.prestige .ps-launch-cta h3 { margin: 0 0 14px; font-size: 1.45rem; line-height: 1.2; }
body.prestige .prose .ps-launch-cta p { margin-bottom: 0; }
.ps-tabs__bar { display: flex; gap: 4px; margin-bottom: 16px; padding: 4px; border-radius: 12px; background: var(--pt-soft-2); }
.ps-tabs__bar button { flex: 1; padding: 10px 8px; border: 0; border-radius: 9px; background: none; font: 800 .88rem var(--pt-sans); color: var(--pt-muted); cursor: pointer; }
.ps-tabs__bar button.is-active { background: #fff; color: var(--pt-ink); box-shadow: 0 2px 8px -4px rgba(15, 23, 42, .3); }
.ps-launch-cta__wa { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
body.prestige .prose .ps-launch-cta__note { margin-top: 14px; font-size: .82rem; color: var(--pt-muted); }
body.prestige .prose .ps-launch-cta a { text-decoration: none; }

/* 7. Footer --------------------------------------------------------------------------- */
body.prestige .site-footer { background: #0b1222; color: #94a3b8; border-top: 0; }
body.prestige .site-footer h4 { color: #fff; font: 800 .8rem var(--pt-sans); letter-spacing: .08em; text-transform: uppercase; }
body.prestige .site-footer a { color: #e2e8f0; text-decoration: none; }
body.prestige .site-footer a:hover { color: #fff; text-decoration: underline; }
body.prestige .site-footer__name { font-family: var(--pt-head); font-weight: 800; color: #fff; font-size: 1.25rem; }
body.prestige .site-footer__tag { color: #94a3b8; }

/* 8. Responsive ------------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.pt-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
	.pt-hero { padding: 36px 0 44px; }
	.pt-hero::before { display: none; }
	.pt-hero__grid, .pt-soon__grid, .pt-book__grid, .pt-sell__inner, .ps-band__inner { grid-template-columns: 1fr; gap: 26px; }
	.pt-tools__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pt-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pt-section { padding: 52px 0; }
	.pt-sell__inner, .ps-band__inner { padding: 28px 22px; }
	.pt-head { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
	.pt-finder__pane { grid-template-columns: 1fr; }
	.pt-finder__wide { grid-column: auto; }
	.pt-proof__grid { grid-template-columns: 1fr 1fr; }
	.pt-proof__grid > div:nth-child(odd) { border-left: 0; }
	.pt-proof__grid > div:nth-child(n+3) { border-top: 1px solid var(--pt-line); }
	.pt-tools__grid { grid-template-columns: 1fr 1fr; gap: 8px; }
	.pt-tile { grid-template-columns: 1fr; padding: 12px; row-gap: 6px; }
	.pt-tile__ico { grid-row: auto; width: 38px; height: 38px; }
	.pt-cards { grid-template-columns: 1fr; }
	.ps-band__btns .ps-btn { flex: 1 1 100%; }
	.pt-hero__card, .pt-book__form, .ps-band__form { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.ps-btn, .pt-card, .pt-card__media img, .pt-tile, .ps-actionbar { transition: none; }
}

/* Dark panels: headings stay white */
body.prestige .ps-alerts h3, body.prestige .site-footer h2, body.prestige .site-footer h3, body.prestige .site-footer .widget-title { color: #fff; }
body.prestige .site-footer .widget-title, body.prestige .site-footer__widgets h2 { font: 800 .8rem var(--pt-sans); letter-spacing: .08em; text-transform: uppercase; }

/* 3.0.1: floating buttons no longer pile up at the bottom of the screen.
   Samtastic Core adds three of its own (the "personalised shortlist" pill, the
   "Property alerts" pill and the live-chat bubble); on phones they sat on top of
   the app bar and the WhatsApp / Book / Report bar. */
@media (max-width: 680px) {
	body.prestige .sle-pill, body.prestige .ssub-pill { display: none !important; } /* their actions live in the bar below */
	body.prestige .ps-actionbar { z-index: 99970; bottom: calc(68px + env(safe-area-inset-bottom)); }
	body.prestige .sch:not(.is-open) { left: auto !important; right: 10px !important; bottom: calc(136px + env(safe-area-inset-bottom)) !important; }
	body.prestige .sch:not(.is-open) .sch__hint { display: none !important; }
	body.prestige .ssub-modal { z-index: 99995; }
}
/* Computers: keep the alerts pill clear of the chat bubble (both sat bottom-left). */
@media (min-width: 681px) {
	body.prestige .ssub-pill { left: 84px; }
}

/* 3.0.2: the action bar's hidden state used to be "slid down by 130%", which on
   phones with the app bar left it parked right on top of the app bar (invisible
   to the eye only partly, but catching every tap). Hidden now means hidden:
   no pixels and no taps until it is shown. */
@media (max-width: 680px) {
	body.prestige .ps-actionbar { transform: translateY(14px); opacity: 0; visibility: hidden; pointer-events: none; transition: transform .25s, opacity .25s, visibility 0s linear .25s; }
	body.prestige .ps-actionbar.is-on { transform: none; opacity: 1; visibility: visible; pointer-events: auto; transition: transform .25s, opacity .25s, visibility 0s; }
	/* No app bar on the page (some pages hide it): sit at the very bottom instead. */
	body.prestige:not(.ps-has-appnav) .ps-actionbar { bottom: calc(8px + env(safe-area-inset-bottom)); }
}
