/* ====================================================================
   rt-search.css: the Orange County home search at /homes/ and /homes/rentals/ (v1),
   /homes/sold/ (v1.1) and each place's /homes/{city}/ pages (v1.2).
   Markup: templates/rt-search.php. Script: assets/js/rt-search.js.
   The look is the approved mockup (mock-final.html, 2026-10-03) with its
   fake header, footer, map and preview panel left out.

   OWNER RULES THAT SHAPE THIS SHEET (do not undo):
   - No pill shapes: tags, chips, buttons and fields take 3-4px corners.
   - No max-width on paragraphs: the intro and every line run the column.
   - Accent and navy fills carry white text in every state; never the accent
     (#2F5D62) as text on navy.
   - The cards are the platform's White Water cards (rt_mls_card_html()), styled
     by the site's card printer; only their column count and corner radii are
     set here, scoped to this page.

   SCOPE. Every rule sits under .rts (the <main>) at two classes or more, so it
   outranks GeneratePress's element rules (button:focus and friends are 0,1,1);
   text inputs take three classes, because input[type=text]:focus is 0,2,1.
   ==================================================================== */

.rts {
	--rts-navy: var(--rt-navy, #0e2c4a);
	--rts-accent: var(--rt-accent, #2F5D62);
	--rts-teal: #3D7A80;
	--rts-soft: #8FB5B1;
	--rts-ink: var(--rt-ink, #1A1A1A);
	--rts-link: #143F77;
	--rts-ivory: var(--rt-ivory, #F7F4EF);
	--rts-bg: #f6f3ee;
	--rts-line: #e3ded5;
	--rts-field: #d6cfc3;
	--rts-mute: #5d5a55;
	--rts-grey: #736e66;
	--rts-tint: #eef3f2;
	--rts-sans: var(--rt-f-sans, 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif);
	--rts-serif: var(--rt-f-serif, 'Marcellus', Georgia, serif);
	--rts-hdr: 58px;
	--rts-gut: 40px;
	display: block;
	background: var(--rts-bg);
	color: var(--rts-ink);
	font: 400 15px/1.55 var(--rts-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
@media (min-width: 1024px) {
	.rts { --rts-hdr: 68px; }
}

/* The site sets overflow-x:hidden on html and body, which makes body a scroll
   container and pins every sticky element to it. clip clips the same overflow
   without one, so the filter bar sticks to the viewport (the v2 listing page's
   fix, rt-mls-listing-v2.css). The scroll locks (0,1,2) still win. */
body.rts-page { overflow-x: clip; }
/* The scroll lock (drawer, phone search sheet) is on html only: hiding body's overflow
   would make body a scroll container again and drop the sticky bar out of place behind
   the open panel. html's overflow is the viewport's, so the page still cannot scroll. */
html.rts-lock { overflow: hidden; }

.rts [hidden] { display: none !important; }
/* The card's own paragraphs keep the card printer's spacing (.rt-ww__meta's padding).
   :where() keeps this reset at 0,1,1, under every two-class rule below. */
.rts p:where(:not([class*="rt-ww"])) { margin: 0; }
.rts ul,
.rts ol { margin: 0; padding: 0; list-style: none; }
.rts a { color: var(--rts-link); }
.rts .rts-i { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.rts .rts-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; padding: 0; }
.rts .rts-wrap { max-width: 1440px; margin: 0 auto; padding-left: var(--rts-gut); padding-right: var(--rts-gut); box-sizing: border-box; }
.rts *,
.rts *::before,
.rts *::after { box-sizing: border-box; }

/* ---------- Shared controls ---------- */
.rts .rts-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	height: 44px; padding: 0 22px; margin: 0;
	border: 0; border-radius: 4px; background: var(--rts-accent); color: #fff;
	font: 600 14.5px/1 var(--rts-sans); letter-spacing: .02em; text-decoration: none; text-transform: none;
	white-space: nowrap; cursor: pointer; box-shadow: none; transition: background .15s;
}
.rts .rts-btn:hover,
.rts .rts-btn:focus,
.rts .rts-btn:active { background: var(--rts-teal); color: #fff; text-decoration: none; }
.rts .rts-btn:focus-visible { outline: 2px solid var(--rts-navy); outline-offset: 2px; }
.rts .rts-btn--sm { height: 38px; padding: 0 14px; font-size: 13.5px; }
.rts .rts-linkbtn {
	display: inline-block; border: 0; background: none; padding: 6px 2px; margin: 0;
	font: 600 14px/1.3 var(--rts-sans); color: var(--rts-link);
	text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; cursor: pointer;
}
.rts .rts-linkbtn:hover,
.rts .rts-linkbtn:focus { background: none; color: var(--rts-navy); }

/* ---------- Filter bar ---------- */
.rts .rts-fbar {
	position: sticky; top: var(--rts-hdr); z-index: 900;
	background: #fff; border-bottom: 1px solid var(--rts-line);
}
.rts .rts-fbar__in {
	max-width: 1440px; margin: 0 auto; display: flex; align-items: center; gap: 10px;
	padding: 12px var(--rts-gut);
}

.rts .rts-omni {
	position: relative; flex: 0 1 380px; min-width: 250px; display: flex; align-items: center; gap: 8px;
	height: 42px; padding: 0 8px 0 14px; border: 1px solid var(--rts-field); border-radius: 4px;
	background: #fff; color: var(--rts-mute); cursor: text; transition: border-color .15s, box-shadow .15s;
}
.rts .rts-omni:focus-within { border-color: var(--rts-navy); box-shadow: 0 0 0 3px rgba(47, 93, 98, .16); }
/* With tags in it the box takes the room the row has left, so two names fit whole. */
.rts .rts-omni:has(.rts-tok) { flex-grow: 1; max-width: 520px; }
.rts .rts-omni > .rts-i { width: 17px; height: 17px; }
.rts .rts-omni .rts-omni__in,
.rts .rts-omni .rts-omni__in:focus {
	flex: 1; min-width: 70px; width: auto; max-width: none; height: 100%; margin: 0; padding: 0;
	border: 0; border-radius: 0; outline: 0; background: transparent; box-shadow: none;
	font: 400 15px/1.2 var(--rts-sans); color: var(--rts-ink); text-overflow: ellipsis;
}
.rts .rts-omni .rts-omni__in::placeholder { color: #8f8a82; opacity: 1; }
.rts .rts-toks { display: flex; gap: 5px; flex: 0 1 auto; min-width: 0; overflow: hidden; }
.rts .rts-tok {
	display: inline-flex; align-items: center; gap: 2px; height: 28px; padding: 0 3px 0 10px;
	border-radius: 4px; background: var(--rts-navy); color: #fff;
	font: 500 13px/1 var(--rts-sans); white-space: nowrap; min-width: 0; max-width: 150px; flex: 0 1 auto;
}
.rts .rts-tok.is-extra { display: none; }
.rts .rts-tok__t { overflow: hidden; text-overflow: ellipsis; }
.rts .rts-tok__x {
	flex: none; width: 22px; height: 22px; border-radius: 3px; display: grid; place-items: center;
	color: #fff; text-decoration: none;
}
.rts .rts-tok__x:hover,
.rts .rts-tok__x:focus-visible { background: rgba(255, 255, 255, .2); color: #fff; outline: 0; }
.rts .rts-tok__x .rts-i { width: 12px; height: 12px; stroke-width: 2.2; }
.rts .rts-tok--more { background: var(--rts-tint); color: var(--rts-accent); padding: 0 10px; flex: none; }
.rts .rts-qx {
	flex: none; width: 28px; height: 28px; margin: 0; padding: 0; border: 0; border-radius: 4px;
	background: transparent; color: var(--rts-mute); display: grid; place-items: center; cursor: pointer; box-shadow: none;
}
.rts .rts-qx:hover,
.rts .rts-qx:focus { background: var(--rts-ivory); color: var(--rts-ink); }
.rts .rts-qx .rts-i { width: 14px; height: 14px; stroke-width: 2; }

/* The chips never shrink (they would spill over the Search button); the box gives way. */
.rts .rts-ctl { display: flex; align-items: center; gap: 10px; min-width: 0; flex: none; }
.rts .rts-seg {
	display: flex; flex: none; height: 42px; border: 1px solid var(--rts-field); border-radius: 4px;
	overflow: hidden; background: #fff;
}
.rts .rts-seg a {
	display: inline-flex; align-items: center; padding: 0 15px;
	font: 500 14px/1 var(--rts-sans); color: var(--rts-ink); text-decoration: none;
	border-right: 1px solid var(--rts-field); white-space: nowrap; transition: background .15s;
}
.rts .rts-seg a:last-child { border-right: 0; }
.rts .rts-seg a:hover { background: var(--rts-ivory); color: var(--rts-ink); }
.rts .rts-seg a:focus-visible { outline: 2px solid var(--rts-accent); outline-offset: -2px; }
.rts .rts-seg a[aria-current="page"],
.rts .rts-seg a[aria-current="page"]:hover { background: var(--rts-navy); color: #fff; }

.rts .rts-chip {
	display: inline-flex; align-items: center; gap: 7px; height: 42px; padding: 0 14px; margin: 0;
	border: 1px solid var(--rts-field); border-radius: 4px; background: #fff;
	font: 500 14px/1 var(--rts-sans); color: var(--rts-ink); text-decoration: none;
	white-space: nowrap; flex: none; cursor: pointer; transition: border-color .15s, background .15s;
}
.rts .rts-chip:hover,
.rts .rts-chip:focus { border-color: var(--rts-navy); color: var(--rts-ink); background: #fff; }
.rts .rts-chip:focus-visible { outline: 2px solid var(--rts-accent); outline-offset: 1px; }
.rts .rts-chip .rts-i { width: 14px; height: 14px; color: var(--rts-mute); }
.rts .rts-chip[aria-expanded="true"] { border-color: var(--rts-navy); box-shadow: 0 0 0 3px rgba(47, 93, 98, .12); }
.rts .rts-chip.is-set,
.rts .rts-chip.is-set:hover { border-color: var(--rts-accent); color: var(--rts-accent); background: #f2f6f5; }
.rts .rts-chip.is-set .rts-i { color: var(--rts-accent); }
.rts .rts-chip--more { order: 9; }
.rts .rts-chip--more .rts-i { width: 16px; height: 16px; color: var(--rts-ink); }
.rts .rts-chip--more .rts-mt { display: none; }
.rts .rts-badge {
	display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px;
	border-radius: 3px; background: var(--rts-accent); color: #fff; font: 600 11.5px/1 var(--rts-sans);
}
.rts .rts-sp { flex: 1; }
.rts .rts-go {
	display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 20px; margin: 0;
	border: 0; border-radius: 4px; background: var(--rts-accent); color: #fff;
	font: 600 14.5px/1 var(--rts-sans); letter-spacing: .02em; text-transform: none;
	white-space: nowrap; flex: none; cursor: pointer; box-shadow: none; transition: background .15s;
}
.rts .rts-go .rts-i { width: 16px; height: 16px; color: #fff; stroke-width: 2; }
.rts .rts-go:hover,
.rts .rts-go:focus,
.rts .rts-go:active { background: var(--rts-teal); color: #fff; }
.rts .rts-go:focus-visible { outline: 2px solid var(--rts-navy); outline-offset: 2px; }

/* The applied-filters row */
.rts .rts-applied { border-top: 1px solid var(--rts-line); background: #fff; }
.rts .rts-applied__in {
	max-width: 1440px; margin: 0 auto; padding: 9px var(--rts-gut);
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.rts .rts-applied__l {
	font: 600 11px/1 var(--rts-sans); letter-spacing: .18em; text-transform: uppercase;
	color: var(--rts-grey); margin-right: 4px; white-space: nowrap;
}
.rts .rts-ach {
	display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 4px 0 11px;
	border: 1px solid rgba(47, 93, 98, .55); border-radius: 4px; background: var(--rts-tint);
	color: var(--rts-accent); font: 500 13px/1 var(--rts-sans); white-space: nowrap; flex: none;
}
.rts .rts-ach .rts-i { width: 13px; height: 13px; }
.rts .rts-ach a {
	width: 22px; height: 22px; border-radius: 3px; display: grid; place-items: center;
	color: var(--rts-accent); text-decoration: none;
}
.rts .rts-ach a:hover,
.rts .rts-ach a:focus-visible { background: rgba(47, 93, 98, .14); color: var(--rts-accent); outline: 0; }
.rts .rts-ach a .rts-i { width: 12px; height: 12px; stroke-width: 2.2; }

/* ---------- Suggestions ---------- */
.rts .rts-dd {
	position: absolute; z-index: 60; top: calc(100% + 8px); left: -1px; width: 560px; max-width: calc(100vw - 48px);
	max-height: min(640px, calc(100vh - var(--rts-hdr) - 96px)); overflow: auto; overscroll-behavior: contain;
	background: #fff; border: 1px solid var(--rts-line); border-radius: 6px;
	box-shadow: 0 24px 54px -14px rgba(14, 44, 74, .34); padding: 6px 0; cursor: default;
}
.rts .rts-sg-h {
	margin: 0; padding: 12px 18px 5px;
	font: 600 10.5px/1.2 var(--rts-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--rts-accent);
}
.rts .rts-opt {
	display: flex; align-items: center; gap: 13px; padding: 7px 18px; min-height: 52px;
	color: var(--rts-ink); text-decoration: none; cursor: pointer;
}
.rts .rts-opt:hover,
.rts .rts-opt:focus { color: var(--rts-ink); }
.rts .rts-opt.is-on { background: var(--rts-tint); }
.rts .rts-oi {
	flex: none; width: 40px; height: 40px; border-radius: 4px; background: var(--rts-ivory);
	border: 1px solid #ece7de; display: grid; place-items: center; color: var(--rts-navy);
}
.rts .rts-oth { flex: none; width: 48px; height: 48px; border-radius: 4px; object-fit: cover; background: #e6e1d8; display: block; }
.rts .rts-oth-x { flex: none; width: 48px; height: 48px; border-radius: 4px; background: #ebe6dd; display: grid; place-items: center; color: #a39d93; }
.rts .rts-ot { min-width: 0; flex: 1; }
.rts .rts-o1 { display: block; font: 400 15px/1.3 var(--rts-sans); color: var(--rts-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rts .rts-o1 b,
.rts .rts-omls b { font-weight: 600; color: var(--rts-ink); }
.rts .rts-o2 { display: block; margin-top: 2px; font: 400 13px/1.3 var(--rts-sans); color: var(--rts-mute); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rts .rts-omls { flex: none; font: 400 12.5px/1.3 var(--rts-sans); color: var(--rts-grey); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rts .rts-opt--all {
	position: sticky; bottom: -6px; z-index: 1; min-height: 48px; margin: 6px 0 -6px;
	border-top: 1px solid var(--rts-line); background: #fff; color: var(--rts-link); font: 500 14.5px/1.3 var(--rts-sans);
}
.rts .rts-opt--all:hover,
.rts .rts-opt--all:focus { color: var(--rts-link); }
.rts .rts-opt--all.is-on { background: var(--rts-tint); }
.rts .rts-opt--all .rts-oi { width: 32px; height: 32px; background: transparent; border: 0; color: var(--rts-link); }
.rts .rts-nores { margin: 0; padding: 14px 18px 8px; color: var(--rts-mute); font-size: 14px; }

/* ---------- Page head (the H1 leads it; the breadcrumb prints at the foot, .rts-foot) ---------- */
.rts .rts-head { padding-top: 28px; }
.rts .rts-crumbs ol {
	display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none;
	font: 600 11.5px/1.4 var(--rts-sans); letter-spacing: .24em; text-transform: uppercase; color: var(--rts-accent);
}
.rts .rts-crumbs li { margin: 0; }
.rts .rts-crumbs li + li::before { content: "/"; color: #b8b1a5; margin: 0 10px; }
.rts .rts-crumbs a { color: inherit; text-decoration: none; }
.rts .rts-crumbs a:hover { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.rts .rts-h1 {
	font: 400 38px/1.12 var(--rts-serif); color: var(--rts-navy); margin: 12px 0 10px;
	letter-spacing: .003em; text-transform: none; text-wrap: balance;
}
/* The intro runs the full content column (owner 2026-10-03: text full width whenever there is space). */
.rts .rts-lede { font: 400 15.5px/1.65 var(--rts-sans); color: #3b3935; }
/* A place page's link to its city guide (v1.2): a plain text link under the intro. */
.rts .rts-guide { margin-top: 8px; font: 500 15px/1.5 var(--rts-sans); }
.rts .rts-guide a { color: var(--rts-link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.rts .rts-guide a:hover { color: var(--rts-navy); text-decoration-thickness: 2px; }
.rts .rts-guide a:focus-visible { outline: 2px solid var(--rts-accent); outline-offset: 2px; }
.rts .rts-rbar {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	margin-top: 22px; padding: 14px 0; border-top: 1px solid var(--rts-line); border-bottom: 1px solid var(--rts-line);
}
.rts .rts-count { font: 400 15px/1.4 var(--rts-sans); color: var(--rts-mute); }
.rts .rts-count b { color: var(--rts-ink); font-weight: 600; }
.rts .rts-rbar__act { display: flex; align-items: center; gap: 10px; }
.rts .rts-sort { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: 400 13px/1.2 var(--rts-sans); color: var(--rts-mute); letter-spacing: .02em; }
.rts .rts-sort .rts-sel,
.rts .rts-fld .rts-sel {
	-webkit-appearance: none; appearance: none; width: 100%; max-width: none; margin: 0;
	height: 42px; padding: 0 34px 0 12px; border: 1px solid var(--rts-field); border-radius: 4px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
	font: 400 15px/1.2 var(--rts-sans); color: var(--rts-ink); cursor: pointer; box-shadow: none;
}
.rts .rts-sort .rts-sel { width: auto; height: 38px; font-weight: 500; font-size: 14px; }
.rts .rts-sort .rts-sel:focus,
.rts .rts-fld .rts-sel:focus { outline: 0; border-color: var(--rts-navy); box-shadow: 0 0 0 3px rgba(47, 93, 98, .16); color: var(--rts-ink); background-color: #fff; }

/* ---------- Results: the platform's cards, three across ---------- */
.rts .rts-results .rt-ww { margin: 24px 0 0; }
.rts .rts-results .rt-ww__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.rts .rts-results .rt-ww__card { border-radius: 4px; min-width: 0; }
/* The photo stamp is a tag, so it takes the 3px corner too (no pills, owner 2026-10-03). */
.rts .rts-results .rt-ww__shot[data-rt-pill]::after,
.rts .rts-results .rt-ww__shot[data-rt-sold-date]::after { border-radius: 3px; }
.rts .rts-empty {
	margin-top: 26px; padding: 48px 24px; text-align: center; background: #fff;
	border: 1px solid var(--rts-line); border-radius: 4px;
}
.rts .rts-empty__h { margin: 0 0 8px; font: 400 26px/1.2 var(--rts-serif); color: var(--rts-navy); text-transform: none; }
.rts .rts-empty p { color: var(--rts-mute); font-size: 15px; }
.rts .rts-empty .rts-btn { margin-top: 18px; }

/* ---------- Pagination, the CRMLS notice ---------- */
.rts .rts-pager { display: flex; justify-content: center; align-items: center; gap: 6px; margin-top: 40px; flex-wrap: wrap; }
.rts .rts-pg {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 40px; height: 40px; padding: 0 12px;
	border: 1px solid var(--rts-field); border-radius: 4px; background: #fff; color: var(--rts-ink);
	font: 500 14px/1 var(--rts-sans); text-decoration: none; transition: border-color .15s;
}
.rts .rts-pg:hover { border-color: var(--rts-navy); color: var(--rts-ink); }
.rts .rts-pg:focus-visible { outline: 2px solid var(--rts-accent); outline-offset: 1px; }
.rts .rts-pg[aria-current="page"],
.rts .rts-pg[aria-current="page"]:hover { background: var(--rts-navy); border-color: var(--rts-navy); color: #fff; }
.rts .rts-pg.is-off { color: #aaa49a; background: transparent; border-color: var(--rts-line); cursor: default; }
.rts .rts-pg .rts-i { width: 15px; height: 15px; }
.rts .rts-gap { min-width: 24px; text-align: center; color: var(--rts-grey); }
.rts .rts-showing { text-align: center; margin-top: 14px; font: 400 13px/1.4 var(--rts-sans); color: var(--rts-grey); }
.rts .rts-results .rt-mls-disc { background: transparent; border-top: 0; padding: 0; margin: 26px 0 0; }
.rts .rts-results .rt-mls-disc .rt-ww__disc { max-width: none; font-size: 12.5px; line-height: 1.6; color: #5a626e; }
/* The breadcrumb at the foot (owner 2026-10-04: "Put the breadcrumbs below the listings"), after the
   pagination and the CRMLS notice: a hairline and 18px around the trail, as on the listing pages'
   foot, with Explore Orange County's own rule closing the row. */
.rts .rts-foot { margin-top: 30px; padding-top: 18px; padding-bottom: 18px; border-top: 1px solid var(--rts-line); }
.rts .rts-foot + .rts-explore { margin-top: 0; }

/* ---------- Explore Orange County ---------- */
.rts .rts-explore { margin-top: 46px; padding-top: 34px; padding-bottom: 64px; border-top: 1px solid var(--rts-line); }
.rts .rts-explore__h { margin: 0; font: 400 28px/1.2 var(--rts-serif); color: var(--rts-navy); text-transform: none; }
.rts .rts-explore__k {
	margin: 22px 0 14px; font: 600 11px/1.3 var(--rts-sans); letter-spacing: .2em;
	text-transform: uppercase; color: var(--rts-accent);
}
.rts .rts-places { margin-top: 26px; }
.rts .rts-places .rts-explore__k { margin-top: 0; }
.rts .rts-places__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.rts .rts-places__list li { margin: 0; min-width: 0; }
/* Square-cornered city photo tiles (no pills). Each one filters the search. */
.rts .rts-ptile {
	position: relative; display: block; aspect-ratio: 16 / 10; border-radius: 4px; overflow: hidden;
	background: #d9d2c6; color: #fff; text-decoration: none; isolation: isolate;
}
.rts .rts-ptile img {
	position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; display: block;
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.rts .rts-ptile::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(180deg, rgba(14, 44, 74, 0) 28%, rgba(14, 44, 74, .5) 62%, rgba(14, 44, 74, .82) 100%);
}
.rts .rts-ptile:hover,
.rts .rts-ptile:focus { color: #fff; }
.rts .rts-ptile:hover img,
.rts .rts-ptile:focus-visible img { transform: scale(1.04); }
.rts .rts-ptile:focus-visible { outline: 2px solid var(--rts-accent); outline-offset: 3px; }
.rts .rts-pt { position: absolute; z-index: 2; left: 14px; right: 14px; bottom: 12px; display: flex; flex-direction: column; gap: 2px; }
.rts .rts-pt__n { font: 400 20px/1.15 var(--rts-serif); color: #fff; text-wrap: balance; text-shadow: 0 1px 3px rgba(14, 44, 74, .45); }
.rts .rts-pt__c { font: 400 13px/1.3 var(--rts-sans); color: rgba(255, 255, 255, .88); font-variant-numeric: tabular-nums; text-shadow: 0 1px 2px rgba(14, 44, 74, .4); }
/* The city list: the ruled index the city and community pages use. */
.rts .rts-exlist { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 28px; }
.rts .rts-exlist li {
	display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0;
	padding-bottom: 10px; border-bottom: 1px solid var(--rts-line);
}
.rts .rts-exlist a { font: 400 15px/1.4 var(--rts-sans); color: var(--rts-link); text-decoration: none; }
.rts .rts-exlist a:hover { color: var(--rts-link); text-decoration: underline; text-underline-offset: 3px; }
.rts .rts-exlist span { font: 400 12.5px/1.4 var(--rts-sans); color: var(--rts-grey); white-space: nowrap; }
.rts .rts-allc { display: inline-block; margin-top: 20px; font: 500 14.5px/1.4 var(--rts-sans); color: var(--rts-link); text-decoration: underline; text-underline-offset: 3px; }
.rts .rts-allc:hover { color: var(--rts-navy); }
/* "Homes for sale by place" (v1.2): every place's own search page, in the same ruled index. */
.rts .rts-explore__k--places { margin-top: 34px; }

/* ---------- Fields shared by the popovers and the drawer ---------- */
.rts .rts-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rts .rts-fld { display: flex; flex-direction: column; gap: 6px; margin: 0; font: 500 12px/1.3 var(--rts-sans); color: var(--rts-mute); }
.rts .rts-fld__l { display: block; }
.rts .rts-fld .rts-txt,
.rts .rts-fld .rts-txt:focus {
	-webkit-appearance: none; appearance: none; width: 100%; max-width: none; height: 42px; margin: 0; padding: 0 12px;
	border: 1px solid var(--rts-field); border-radius: 4px; background: #fff; box-shadow: none;
	font: 400 15px/1.2 var(--rts-sans); color: var(--rts-ink);
}
.rts .rts-fld .rts-txt:focus { outline: 0; border-color: var(--rts-navy); box-shadow: 0 0 0 3px rgba(47, 93, 98, .16); }
.rts .rts-fld .rts-txt::placeholder { color: #8f8a82; opacity: 1; }

/* Segmented single choice: radios, so it posts with no script. */
.rts .rts-segr { display: flex; border: 1px solid var(--rts-field); border-radius: 4px; overflow: hidden; background: #fff; }
.rts .rts-segr__o { position: relative; flex: 1; min-width: 0; margin: 0; font: 500 13.5px/1 var(--rts-sans); cursor: pointer; }
.rts .rts-segr__o + .rts-segr__o { border-left: 1px solid var(--rts-field); }
.rts .rts-segr__o input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.rts .rts-segr__o span { display: flex; align-items: center; justify-content: center; height: 40px; padding: 0 4px; color: var(--rts-ink); white-space: nowrap; }
.rts .rts-segr__o:hover span { background: var(--rts-ivory); }
.rts .rts-segr__o input:checked + span { background: var(--rts-navy); color: #fff; }
.rts .rts-segr__o input:focus-visible + span { outline: 2px solid var(--rts-accent); outline-offset: -2px; }

/* Check tiles */
.rts .rts-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rts .rts-tile {
	position: relative; display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; padding: 8px 12px;
	border: 1px solid var(--rts-field); border-radius: 4px; background: #fff; cursor: pointer;
	font: 400 14px/1.3 var(--rts-sans); color: var(--rts-ink); transition: border-color .15s, background .15s;
}
.rts .rts-tile:hover { border-color: #bdb5a7; }
.rts .rts-tile input { position: absolute; opacity: 0; pointer-events: none; margin: 0; }
.rts .rts-tile__k { width: 18px; height: 18px; flex: none; border-radius: 3px; border: 1.5px solid var(--rts-field); display: grid; place-items: center; background: #fff; }
.rts .rts-tile__k .rts-i { width: 12px; height: 12px; stroke: #fff; stroke-width: 3; opacity: 0; }
.rts .rts-tile:has(input:checked) { border-color: var(--rts-accent); background: #f2f6f5; }
.rts .rts-tile input:checked + .rts-tile__k { background: var(--rts-accent); border-color: var(--rts-accent); }
.rts .rts-tile input:checked + .rts-tile__k .rts-i { opacity: 1; }
.rts .rts-tile:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(47, 93, 98, .25); }

/* More features (v1.3 part S): a square toggle under the four quick tiles, then the rest of the
   catalog as the same check tiles (the panel is an .rts-checks grid). The toggle is a ruled text
   row, hairline above and below, link blue turning navy, a chevron that turns over when open:
   no pill, no chip, no fill, no corner (owner rule 2026-10-03: no bubble links anywhere). */
.rts .rts-mf__btn {
	display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%;
	min-height: 44px; margin: 14px 0 0; padding: 10px 2px;
	border: 0; border-top: 1px solid var(--rts-line); border-bottom: 1px solid var(--rts-line); border-radius: 0;
	background: transparent; box-shadow: none; color: var(--rts-link);
	font: 600 14px/1.3 var(--rts-sans); letter-spacing: 0; text-align: left; text-transform: none; cursor: pointer;
}
.rts .rts-mf__btn:hover,
.rts .rts-mf__btn:focus,
.rts .rts-mf__btn:active { background: transparent; color: var(--rts-navy); }
.rts .rts-mf__btn:focus-visible { outline: 2px solid var(--rts-accent); outline-offset: 2px; }
.rts .rts-mf__btn .rts-i { width: 16px; height: 16px; transition: transform .2s; }
.rts .rts-mf__btn[aria-expanded="true"] .rts-i { transform: rotate(180deg); }
.rts .rts-mf__p { margin-top: 12px; }
/* No script: the toggle does nothing, so it goes and the panel shows. The sheet's blanket
   [hidden] rule is !important, so the override is too. */
.rts:not(.rts-has-js) .rts-mf__btn { display: none; }
.rts:not(.rts-has-js) .rts-mf__p[hidden] { display: grid !important; }

/* Home-type tiles */
.rts .rts-htiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rts .rts-htile {
	position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px;
	height: 78px; margin: 0; border: 1px solid var(--rts-field); border-radius: 4px; background: #fff;
	font: 500 13.5px/1.2 var(--rts-sans); color: var(--rts-ink); cursor: pointer; text-align: center;
	transition: border-color .15s, background .15s;
}
.rts .rts-htile:hover { border-color: #bdb5a7; }
.rts .rts-htile input { position: absolute; opacity: 0; pointer-events: none; margin: 0; }
.rts .rts-htile .rts-i { width: 26px; height: 26px; stroke-width: 1.4; color: var(--rts-navy); }
.rts .rts-htile:has(input:checked) { border-color: var(--rts-accent); background: #f2f6f5; box-shadow: inset 0 0 0 1px var(--rts-accent); color: var(--rts-accent); }
.rts .rts-htile:has(input:checked) .rts-i { color: var(--rts-accent); }
.rts .rts-htile:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(47, 93, 98, .25); }

/* ---------- Quick-filter popovers (built by the script, desktop) ---------- */
.rts .rts-pop {
	position: fixed; z-index: 70; width: 340px; max-width: calc(100vw - 32px);
	background: #fff; border: 1px solid var(--rts-line); border-radius: 6px;
	box-shadow: 0 18px 40px rgba(14, 44, 74, .18); padding: 16px;
}
.rts .rts-pop__h { margin: 0 0 12px; font: 600 11px/1.3 var(--rts-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--rts-accent); }
.rts .rts-pop__f { margin-top: 14px; }
.rts .rts-pop__f .rts-btn { width: 100%; }

/* ---------- More filters: right drawer (desktop), bottom sheet (phone) ---------- */
/* No script: it opens through :target (the chips link to its sections). With the
   script, .rts-has-js turns :target off and the .is-open class drives it. */
.rts .rts-dr {
	position: fixed; inset: 0; z-index: 1500; visibility: hidden; pointer-events: none;
	transition: visibility 0s linear .26s;
}
.rts:not(.rts-has-js) .rts-dr:target,
.rts:not(.rts-has-js) .rts-dr:has(.rts-sec:target),
.rts .rts-dr.is-open { visibility: visible; pointer-events: auto; transition-delay: 0s; }
.rts .rts-dr__ov { position: absolute; inset: 0; display: block; background: rgba(14, 44, 74, .42); opacity: 0; transition: opacity .22s; }
.rts:not(.rts-has-js) .rts-dr:target .rts-dr__ov,
.rts:not(.rts-has-js) .rts-dr:has(.rts-sec:target) .rts-dr__ov,
.rts .rts-dr.is-open .rts-dr__ov { opacity: 1; }
.rts .rts-dr__panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: 440px; max-width: 100vw;
	display: flex; flex-direction: column; background: #fff;
	box-shadow: -24px 0 60px rgba(14, 44, 74, .28); transform: translateX(100%);
	transition: transform .26s cubic-bezier(.2, .7, .2, 1);
}
.rts:not(.rts-has-js) .rts-dr:target .rts-dr__panel,
.rts:not(.rts-has-js) .rts-dr:has(.rts-sec:target) .rts-dr__panel,
.rts .rts-dr.is-open .rts-dr__panel { transform: none; }
.rts .rts-dr__grab { display: none; width: 40px; height: 4px; border-radius: 2px; background: #d6cfc3; margin: 10px auto 0; flex: none; }
.rts .rts-dr__h { flex: none; display: flex; align-items: center; justify-content: space-between; padding: 18px 24px; border-bottom: 1px solid var(--rts-line); }
.rts .rts-dr__h h2 { margin: 0; font: 400 26px/1.2 var(--rts-serif); color: var(--rts-navy); text-transform: none; }
.rts .rts-x {
	width: 38px; height: 38px; border-radius: 4px; border: 1px solid var(--rts-line); background: #fff;
	display: grid; place-items: center; color: var(--rts-navy); text-decoration: none;
}
.rts .rts-x:hover,
.rts .rts-x:focus { border-color: var(--rts-navy); color: var(--rts-navy); }
.rts .rts-dr__b { position: relative; flex: 1; overflow-y: auto; padding: 4px 24px 12px; overscroll-behavior: contain; }
.rts .rts-sec { padding: 18px 0; border-bottom: 1px solid var(--rts-line); scroll-margin-top: 8px; }
.rts .rts-sec:last-child { border-bottom: 0; }
.rts .rts-sec__h {
	margin: 0 0 12px; font: 600 11px/1.3 var(--rts-sans); letter-spacing: .2em;
	text-transform: uppercase; color: var(--rts-accent);
}
.rts .rts-dr__f {
	flex: none; display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 14px 24px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--rts-line); background: #fff;
}
.rts .rts-dr__f .rts-btn { min-width: 210px; }

/* ---------- Phone search sheet ---------- */
.rts .rts-ss { position: fixed; inset: 0; z-index: 1600; background: #fff; display: flex; flex-direction: column; }
.rts .rts-ss__top {
	flex: none; display: flex; align-items: center; gap: 12px; padding: 10px 16px;
	padding-top: calc(10px + env(safe-area-inset-top)); border-bottom: 1px solid var(--rts-line); background: #fff;
}
.rts .rts-ss__box {
	flex: 1; min-width: 0; display: flex; align-items: center; gap: 9px; height: 46px; padding: 0 6px 0 13px;
	border: 1px solid var(--rts-navy); border-radius: 4px; box-shadow: 0 0 0 3px rgba(47, 93, 98, .14); color: var(--rts-mute);
}
.rts .rts-ss__box .rts-ss__in,
.rts .rts-ss__box .rts-ss__in:focus {
	flex: 1; min-width: 0; width: auto; max-width: none; height: 100%; margin: 0; padding: 0;
	border: 0; border-radius: 0; outline: 0; background: transparent; box-shadow: none;
	font: 400 16px/1.2 var(--rts-sans); color: var(--rts-ink);
}
.rts .rts-ss__cancel {
	flex: none; margin: 0; border: 0; background: none; padding: 8px 0; box-shadow: none;
	font: 500 15px/1.2 var(--rts-sans); color: var(--rts-link); cursor: pointer;
}
.rts .rts-ss__cancel:hover,
.rts .rts-ss__cancel:focus { background: none; color: var(--rts-navy); }
.rts .rts-ss__toks { flex: none; display: flex; gap: 6px; flex-wrap: wrap; padding: 10px 16px 0; }
.rts .rts-ss__toks .rts-tok { max-width: none; }
.rts .rts-ss__list { flex: 1; overflow-y: auto; padding: 4px 0 24px; overscroll-behavior: contain; }
.rts .rts-ss__list .rts-opt { padding: 8px 16px; }
.rts .rts-ss__list .rts-sg-h { padding: 14px 16px 5px; }

/* ---------- Widths ---------- */
/* Below ~1360 the filter row ran under the Search button: Home type moves into More filters. */
@media (max-width: 1360px) {
	.rts .rts-chip[data-rts-pop="home"] { display: none; }
}
@media (max-width: 1240px) {
	.rts { --rts-gut: 28px; }
	.rts .rts-chip[data-rts-pop="baths"] { display: none; }
	.rts .rts-omni { flex-basis: 340px; }
}
@media (max-width: 1100px) {
	.rts .rts-results .rt-ww__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
	.rts .rts-exlist { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rts .rts-places__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.rts .rts-chip[data-rts-pop="beds"] { display: none; }
}
@media (max-width: 1100px) and (min-width: 660px) {
	/* 4 columns leave 2 tiles on the last row of 10: widen them to fill it */
	.rts .rts-places__list li:nth-child(n+9) { grid-column: span 2; }
	.rts .rts-places__list li:nth-child(n+9) .rts-ptile { aspect-ratio: 33 / 10; }
}
@media (max-width: 960px) and (min-width: 769px) {
	.rts .rts-chip[data-rts-pop="price"] { display: none; }
	.rts .rts-omni { flex-basis: 300px; min-width: 200px; }
	.rts .rts-chip--more .rts-chip__l { display: none; }
}
@media (max-width: 860px) and (min-width: 769px) {
	.rts .rts-pt__n { font-size: 18px; }
	.rts .rts-go { padding: 0 14px; }
	.rts .rts-go__l { display: none; }
	.rts .rts-seg a { padding: 0 12px; }
}

/* ---------- Phone ---------- */
@media (max-width: 768px) {
	.rts { --rts-gut: 16px; }
	.rts .rts-fbar { position: relative; top: auto; z-index: 20; }
	.rts .rts-fbar__in { flex-direction: column; align-items: stretch; gap: 10px; padding: 12px 0; }
	.rts .rts-omni { flex: none; margin: 0 16px; height: 46px; min-width: 0; cursor: pointer; }
	.rts .rts-omni .rts-omni__in { font-size: 16px; cursor: pointer; }
	.rts .rts-tok { max-width: 132px; }
	.rts .rts-ctl { overflow-x: auto; padding: 0 16px; gap: 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.rts .rts-ctl::-webkit-scrollbar { display: none; }
	.rts .rts-ctl::after { content: ""; flex: 0 0 6px; }
	.rts .rts-chip--more { order: -1; }
	.rts .rts-chip,
	.rts .rts-chip[data-rts-pop] { display: inline-flex; height: 38px; padding: 0 13px; font-size: 14px; }
	.rts .rts-chip--more .rts-chip__l { display: inline; }
	.rts .rts-chip--more .rts-dk { display: none; }
	.rts .rts-chip--more .rts-mt { display: inline; }
	.rts .rts-seg { height: 38px; }
	.rts .rts-seg a { padding: 0 13px; font-size: 14px; }
	.rts .rts-sp,
	.rts .rts-go { display: none; }
	.rts .rts-applied__in { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 9px 16px; }
	.rts .rts-applied__in::-webkit-scrollbar { display: none; }
	.rts .rts-applied[data-only-areas] { display: none; }
	.rts .rts-ach.is-area { display: none; }
	.rts .rts-dd { display: none !important; }
	.rts .rts-head { padding-top: 22px; }
	.rts .rts-crumbs ol { font-size: 10.5px; letter-spacing: .2em; }
	.rts .rts-h1 { font-size: 29px; margin: 10px 0 8px; }
	.rts .rts-lede { font-size: 15px; line-height: 1.6; }
	.rts .rts-rbar { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 18px; }
	.rts .rts-rbar__act { justify-content: space-between; }
	.rts .rts-sort { flex: 1; }
	.rts .rts-sort .rts-sel { flex: 1; width: 100%; }
	.rts .rts-results .rt-ww { margin-top: 18px; }
	.rts .rts-results .rt-ww__grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.rts .rts-pager { gap: 5px; margin-top: 30px; }
	.rts .rts-pg { min-width: 38px; height: 40px; padding: 0 10px; }
	.rts .rts-pg__t,
	.rts .rts-pg.rts-hide-m { display: none; }
	.rts .rts-explore { padding-bottom: 48px; }
	.rts .rts-explore__h { font-size: 25px; }
	.rts .rts-places { margin-top: 22px; }
	.rts .rts-places__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.rts .rts-pt { left: 11px; right: 10px; bottom: 9px; gap: 1px; }
	.rts .rts-pt__n { font-size: 17px; }
	.rts .rts-pt__c { font-size: 12.5px; }
	.rts .rts-exlist { grid-template-columns: 1fr 1fr; gap: 10px 18px; }
	.rts .rts-exlist li { flex-direction: column; gap: 0; }

	.rts .rts-dr__panel {
		top: auto; left: 0; width: 100%; height: 92vh; height: 92dvh; border-radius: 10px 10px 0 0;
		transform: translateY(100%); box-shadow: 0 -20px 50px rgba(14, 44, 74, .3);
	}
	.rts .rts-dr__grab { display: block; }
	.rts .rts-dr__h { padding: 8px 16px 12px; }
	.rts .rts-dr__h h2 { font-size: 24px; }
	.rts .rts-dr__b { padding: 0 16px 12px; }
	.rts .rts-dr__f { padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
	.rts .rts-dr__f .rts-btn { flex: 1; min-width: 0; }
}
@media (max-width: 768px) and (min-width: 660px) {
	.rts .rts-places__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 659px) and (min-width: 561px) {
	/* 4 columns are too narrow for the names here: 3 columns, with the 7th and 9th tiles
	   spanning two so all four rows are full (the Laguna Beach photo stays uncropped at 16:10) */
	.rts .rts-places__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rts .rts-places__list li:nth-child(7),
	.rts .rts-places__list li:nth-child(9) { grid-column: span 2; }
	.rts .rts-places__list li:nth-child(7) .rts-ptile,
	.rts .rts-places__list li:nth-child(9) .rts-ptile { aspect-ratio: 33 / 10; }
}
@media (max-width: 374px) {
	.rts .rts-pt__n { font-size: 16px; }
}
@media (max-width: 360px) {
	.rts .rts-checks { grid-template-columns: 1fr; }
}

/* ---------- Sold tab (v1.1, switch search_sold) ---------- */
/* Three statuses in the switch: a little less padding so the bar keeps its chips. */
.rts .rts-seg--3 a { padding: 0 13px; }
@media (max-width: 768px) {
	.rts .rts-seg--3 a { padding: 0 11px; }
}

/* ====================================================================
   THE LISTING PREVIEW PANEL (v1.1, switch search_panel). The approved
   mockup's panel (mock-final.html, 2026-10-03; screens pp-*.png), its
   class names kept as they are because the panel BODY is the endpoint's
   HTML (GET /wp-json/rt/v1/listing/{MLS#}, printed by the back end in the
   mockup's markup; rt-search.js lists those classes in PANEL_BODY_CLASSES).
   The frame (overlay, top bar, scroll box, phone bar, photo viewer, toast)
   is the template's; the sticky tour card, the loading and error states
   and a phone carousel the body lacks are the script's.

   Stacking: z 2950 to 2970, over the alerts popup (2900) and under the lead
   forms the panel opens (.rt-modal, 3000). Its own scroll lock,
   html.rt-panel-lock (html only, as rts-lock: hiding body's overflow would
   make body a scroll container). Owner rules hold: 3-4px corners on every
   control, white text on the accent and navy fills, no paragraph measure.
   ==================================================================== */
html.rt-panel-lock { overflow: hidden; }
/* The site's floating "Let's talk" button and the alerts popup stand down while a listing is
   open (the panel carries its own tour and question buttons), as they do for the menu drawer. */
html.rt-panel-lock .rt-talk,
html.rt-panel-lock .rt-apop { display: none !important; }

.rts .pv-ov {
	position: fixed; inset: 0; z-index: 2950; background: rgba(14, 44, 74, .55);
	opacity: 0; transition: opacity .24s ease;
}
.rts .pv-ov.is-open { opacity: 1; }
.rts .pv {
	position: fixed; z-index: 2951; top: 4vh; left: 50%; width: min(1180px, 94vw); height: 92vh;
	display: flex; flex-direction: column; background: #fff; border-radius: 6px; overflow: hidden;
	box-shadow: 0 40px 90px -30px rgba(8, 22, 38, .62), 0 0 0 1px rgba(14, 44, 74, .06);
	opacity: 0; transform: translate(-50%, 18px) scale(.99);
	transition: opacity .2s ease, transform .32s cubic-bezier(.2, .7, .2, 1);
	color: var(--rts-ink); font: 400 15px/1.55 var(--rts-sans); text-align: left;
}
.rts .pv.is-open { opacity: 1; transform: translate(-50%, 0) scale(1); }
.rts .pv:focus { outline: 0; }
.rts .pv .m-only { display: none; }
/* The chrome never scrolls, so a drag that starts on it must not scroll the page behind (iOS). */
.rts .pv-ov,
.rts .pv-top,
.rts .pv-bbar { touch-action: none; }

/* Top bar */
.rts .pv-top {
	flex: none; display: flex; align-items: center; gap: 6px; height: 62px; padding: 0 16px 0 12px;
	border-bottom: 1px solid var(--rts-line); background: #fff;
}
.rts .pv-tb {
	display: inline-flex; align-items: center; gap: 7px; height: 38px; margin: 0; padding: 0 12px;
	border: 0; border-radius: 4px; background: transparent; box-shadow: none; cursor: pointer;
	font: 500 14px/1 var(--rts-sans); color: var(--rts-ink); white-space: nowrap; text-decoration: none; text-transform: none;
	transition: background .15s, color .15s;
}
.rts .pv-tb:hover,
.rts .pv-tb:focus { background: var(--rts-ivory); color: var(--rts-ink); }
.rts .pv-tb:disabled { color: #b6b0a6; background: transparent; cursor: default; }
.rts .pv-tb .rts-i { width: 16px; height: 16px; }
.rts .pv-back,
.rts .pv-back:hover,
.rts .pv-back:focus { font-size: 14.5px; font-weight: 600; color: var(--rts-navy); padding-left: 8px; }
.rts .pv-back .rts-i { width: 17px; height: 17px; stroke-width: 2; }
.rts .pv-sp { flex: 1; }
.rts .pv-step { display: flex; flex: none; height: 38px; border: 1px solid var(--rts-field); border-radius: 4px; overflow: hidden; }
.rts .pv-step button {
	display: inline-flex; align-items: center; gap: 6px; height: 100%; margin: 0; padding: 0 13px;
	border: 0; border-radius: 0; background: #fff; box-shadow: none; cursor: pointer;
	font: 500 14px/1 var(--rts-sans); color: var(--rts-ink); text-transform: none;
}
.rts .pv-step button + button { border-left: 1px solid var(--rts-field); }
.rts .pv-step button:hover:not(:disabled),
.rts .pv-step button:focus:not(:disabled) { background: var(--rts-ivory); color: var(--rts-ink); }
.rts .pv-step button:disabled { color: #b6b0a6; background: #fff; cursor: default; }
.rts .pv-step .rts-i { width: 15px; height: 15px; stroke-width: 2; }
.rts .pv-div { flex: none; width: 1px; height: 24px; margin: 0 6px; background: var(--rts-line); }
.rts .pv-copy.is-done,
.rts .pv-copy.is-done:hover { color: var(--rts-accent); }
.rts .pv-full,
.rts .pv-full:focus {
	color: var(--rts-accent); font-weight: 600;
	text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
}
.rts .pv-full:hover { background: transparent; color: var(--rts-navy); }
.rts .pv-full .rts-i { width: 14px; height: 14px; stroke-width: 2; }
.rts .pv-x {
	flex: none; display: grid; place-items: center; width: 40px; height: 40px; margin: 0 0 0 6px; padding: 0;
	border: 1px solid var(--rts-line); border-radius: 4px; background: #fff; box-shadow: none; cursor: pointer;
	color: var(--rts-navy); transition: border-color .15s;
}
.rts .pv-x:hover,
.rts .pv-x:focus { border-color: var(--rts-navy); background: #fff; color: var(--rts-navy); }
.rts .pv-x .rts-i { width: 17px; height: 17px; stroke-width: 1.9; }
.rts .pv-tb:focus-visible,
.rts .pv-x:focus-visible,
.rts .pv-step button:focus-visible { outline: 2px solid var(--rts-accent); outline-offset: -2px; }
.rts .pv-sc { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }

/* Gallery: the lead photo beside a 2x2, "See all N photos" over the last tile */
.rts .pv-gal {
	position: relative; display: grid; grid-template-columns: minmax(0, 62fr) minmax(0, 38fr); gap: 8px;
	height: clamp(300px, 52vh, 480px); padding: 20px 24px 0;
}
.rts .pv-gal.n1 { grid-template-columns: minmax(0, 1fr); }
.rts .pv-quad { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; min-height: 0; }
.rts .pv-quad.q1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.rts .pv-quad.q2 { grid-template-columns: 1fr; }
.rts .pv-quad.q3 > :first-child { grid-column: 1 / -1; }
.rts .pv-ph {
	position: relative; display: block; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0;
	border: 0; border-radius: 4px; overflow: hidden; background: #e6e1d8; box-shadow: none; cursor: zoom-in;
}
.rts .pv-ph:hover,
.rts .pv-ph:focus { background: #e6e1d8; }
.rts .pv-ph img {
	position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; display: block;
	transition: transform .7s cubic-bezier(.2, .7, .2, 1);
}
.rts .pv-ph::after { content: ""; position: absolute; inset: 0; background: rgba(14, 44, 74, 0); transition: background .2s; pointer-events: none; }
.rts .pv-ph:hover img { transform: scale(1.03); }
.rts .pv-ph:hover::after { background: rgba(14, 44, 74, .07); }
.rts .pv-ph:focus-visible { outline: 3px solid var(--rts-accent); outline-offset: -3px; }
/* One photo (a closed listing): the whole frame at its own size over a blurred fill, never stretched. */
.rts .pv-gal.n1 .pv-lead::before {
	content: ""; position: absolute; inset: -40px; background: var(--bg) center / cover no-repeat;
	filter: blur(28px) saturate(1.05); opacity: .92;
}
.rts .pv-gal.n1 .pv-lead img { z-index: 1; object-fit: contain; }
.rts .pv-gal.n1 .pv-ph:hover img { transform: none; }
.rts .pv-all {
	position: absolute; z-index: 2; right: 38px; bottom: 14px; display: inline-flex; align-items: center; gap: 8px;
	height: 38px; margin: 0; padding: 0 14px; border: 1px solid rgba(14, 44, 74, .16); border-radius: 4px;
	background: #fff; color: var(--rts-navy); box-shadow: 0 6px 16px rgba(14, 44, 74, .22); cursor: pointer;
	font: 600 13.5px/1 var(--rts-sans); letter-spacing: .01em; text-transform: none; transition: background .15s, color .15s;
}
.rts .pv-all svg { width: 15px; height: 15px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; }
.rts .pv-all:hover,
.rts .pv-all:focus-visible { background: var(--rts-navy); border-color: var(--rts-navy); color: #fff; outline: 0; }

/* The phone carousel */
.rts .pv-car { display: none; position: relative; background: #e6e1d8; }
.rts .pv-track {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
	overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
}
.rts .pv-track::-webkit-scrollbar { display: none; }
.rts .pv-slide {
	position: relative; flex: 0 0 100%; aspect-ratio: 4 / 3; margin: 0; padding: 0; border: 0; border-radius: 0;
	background: #e6e1d8; box-shadow: none; scroll-snap-align: center; scroll-snap-stop: always; cursor: zoom-in;
}
.rts .pv-slide:hover,
.rts .pv-slide:focus { background: #e6e1d8; }
.rts .pv-slide img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; }
.rts .pv-cnt {
	position: absolute; right: 12px; bottom: 12px; padding: 6px 9px; border-radius: 3px;
	background: rgba(14, 44, 74, .84); color: #fff; font: 600 12.5px/1 var(--rts-sans); letter-spacing: .05em;
	font-variant-numeric: tabular-nums; pointer-events: none;
}

/* Two columns: the head and the body on the left, the sticky tour card on the right */
.rts .pv-main {
	display: grid; grid-template-columns: minmax(0, 64fr) minmax(0, 32fr); column-gap: 4%;
	align-items: start; padding: 30px 24px 44px;
}
.rts .pv-head { grid-column: 1; grid-row: 1; min-width: 0; }
.rts .pv-aside { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 22px; min-width: 0; }
.rts .pv-body { grid-column: 1; grid-row: 2; min-width: 0; }
.rts .pv-eb {
	display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 0;
	font: 600 11px/1.2 var(--rts-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--rts-accent);
}
.rts .pv-eb .dot { color: #b8b1a5; letter-spacing: 0; }
.rts .pv-tag {
	display: inline-flex; align-items: center; height: 24px; margin-right: 4px; padding: 0 9px;
	border-radius: 3px; background: var(--rts-navy); color: #fff; font-size: 10.5px; letter-spacing: .16em;
}
.rts .pv-tag-c,
.rts .pv-tag-u { background: var(--rts-accent); color: #fff; }
.rts .pv-tag-p { background: #fff; color: var(--rts-navy); box-shadow: inset 0 0 0 1px var(--rts-navy); }
.rts .pv-price { margin: 16px 0 0; font: 400 40px/1.05 var(--rts-serif); color: var(--rts-navy); letter-spacing: .005em; }
.rts .pv-price .per { margin-left: 3px; font: 400 17px/1 var(--rts-sans); color: var(--rts-mute); }
.rts .pv-sold { margin: 6px 0 0; font-size: 14px; color: var(--rts-mute); }
.rts .pv-addr { margin: 14px 0 0; padding: 0; font: 500 20px/1.3 var(--rts-sans); color: var(--rts-ink); letter-spacing: .003em; text-transform: none; }
.rts .pv-city { margin: 3px 0 0; font-size: 15.5px; color: #3b3935; }
.rts .pv-comm { margin: 5px 0 0; font-size: 14.5px; color: var(--rts-accent); }
.rts .pv-comm a { color: var(--rts-accent); }
.rts .pv-facts {
	display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); row-gap: 20px; margin: 24px 0 0; padding: 18px 0;
	border-top: 1px solid var(--rts-navy); border-bottom: 1px solid var(--rts-line);
}
.rts .pv-facts > div {
	display: flex; flex-direction: column-reverse; justify-content: flex-end; min-width: 0; padding: 0 14px;
	border-left: 1px solid var(--rts-line);
}
.rts .pv-facts > div:nth-child(5n+1) { padding-left: 0; border-left: 0; }
.rts .pv-facts dd {
	margin: 0; font: 600 17px/1.3 var(--rts-sans); color: var(--rts-ink); font-variant-numeric: tabular-nums; overflow-wrap: break-word;
}
.rts .pv-facts dt {
	margin: 4px 0 0; font: 500 10.5px/1.35 var(--rts-sans); letter-spacing: .13em; text-transform: uppercase; color: var(--rts-mute);
}
.rts .pv-mls { margin: 12px 0 0; font-size: 13px; line-height: 1.4; color: var(--rts-mute); font-variant-numeric: tabular-nums; }

/* The body's sections */
.rts .pv-sec { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--rts-line); }
.rts .pv-body > .pv-sec:first-child { margin-top: 36px; padding-top: 0; border-top: 0; }
.rts .pv-sec h3 { margin: 0 0 16px; padding: 0; font: 400 26px/1.2 var(--rts-serif); color: var(--rts-navy); text-transform: none; letter-spacing: 0; }
.rts .pv-rem p { margin: 0; font-size: 16px; line-height: 1.75; color: #2b2925; }
.rts .pv-rem p + p { margin-top: 14px; }
.rts .pv-feat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; margin: 0; border-top: 1px solid var(--rts-line); }
.rts .pv-feat > div {
	display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 14px; padding: 12px 0;
	border-bottom: 1px solid var(--rts-line); font-size: 14.5px; line-height: 1.5;
}
.rts .pv-feat dt { margin: 0; font-weight: 600; color: var(--rts-ink); }
.rts .pv-feat dd { margin: 0; color: #3b3935; overflow-wrap: break-word; }
/* Open houses, under the MLS# in the head: a label, then a ruled list of sessions */
.rts .pv-oh { margin-top: 20px; }
.rts .pv-ohh {
	margin: 0 0 8px; font: 600 11px/1.3 var(--rts-sans); letter-spacing: .18em;
	text-transform: uppercase; color: var(--rts-accent);
}
.rts .pv-oh ul,
.rts .pv-ohl { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--rts-line); }
.rts .pv-oh li { margin: 0; padding: 11px 0; border-bottom: 1px solid var(--rts-line); font-size: 15px; line-height: 1.4; color: var(--rts-ink); }
.rts .pv-map { position: relative; height: 300px; border: 1px solid var(--rts-line); border-radius: 4px; overflow: hidden; background: #ebe8e1; }
.rts .pv-map iframe,
.rts .pv-map .pv-mapf { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; margin: 0; border: 0; display: block; }
.rts .pv-loc { margin: 14px 0 0; font-size: 15px; color: var(--rts-ink); }
.rts .pv-dist { margin: 3px 0 0; font-size: 15px; color: #3b3935; }
.rts .pv-similar a { font-weight: 600; color: var(--rts-link); text-underline-offset: 3px; }
.rts .pv-foot { margin-top: 38px; padding-top: 18px; border-top: 1px solid var(--rts-line); font-size: 12px; line-height: 1.55; color: var(--rts-grey); }
/* Every p carries its size: the theme's customizer prints a bare p { font-size: 20px }. */
.rts .pv-foot p,
.rts .pv-foot .pv-disc,
.rts .pv-foot .pv-credit,
.rts .pv-foot .pv-upd { margin: 0; font-size: 12px; line-height: 1.55; color: var(--rts-grey); }
.rts .pv-foot p + p { margin-top: 4px; }
.rts .pv-doc { display: block; }

/* The sticky tour card (built by the script) and the panel's buttons */
.rts .pv-card {
	padding: 22px; border: 1px solid var(--rts-line); border-radius: 4px; background: #fff;
	box-shadow: 0 20px 44px -28px rgba(14, 44, 74, .5);
}
.rts .pv-btn {
	display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; height: 50px; margin: 0; padding: 0 18px;
	border-radius: 4px; box-shadow: none; cursor: pointer; font: 600 15px/1 var(--rts-sans); letter-spacing: .02em;
	text-decoration: none; text-transform: none; white-space: nowrap; transition: background .15s, color .15s, border-color .15s;
}
.rts .pv-btn .rts-i { width: 17px; height: 17px; }
.rts .pv-acc { border: 0; background: var(--rts-accent); color: #fff; }
.rts .pv-acc:hover,
.rts .pv-acc:focus,
.rts .pv-acc:active { background: var(--rts-teal); color: #fff; text-decoration: none; }
.rts .pv-out { border: 1.5px solid var(--rts-navy); background: #fff; color: var(--rts-navy); }
.rts .pv-out:hover,
.rts .pv-out:focus,
.rts .pv-out:active { background: var(--rts-navy); color: #fff; text-decoration: none; }
.rts .pv-btn:focus-visible { outline: 2px solid var(--rts-navy); outline-offset: 2px; }
.rts .pv-card .pv-btn + .pv-btn { margin-top: 10px; }
.rts .pv-cardh { margin: 0 0 14px; font: 400 21px/1.25 var(--rts-serif); color: var(--rts-navy); }
.rts .pv-call { margin: 16px 0 0; text-align: center; font-size: 14px; line-height: 1.5; color: var(--rts-grey); }
.rts .pv-call b { font-weight: 600; color: var(--rts-navy); }
.rts .pv-call a { color: var(--rts-link); font-weight: 500; text-underline-offset: 3px; white-space: nowrap; }
.rts .pv-bbar {
	display: none; flex: none; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--rts-line); background: #fff; box-shadow: 0 -10px 24px -20px rgba(14, 44, 74, .45);
}
.rts .pv-bbar .pv-btn { height: 48px; }
.rts .pv-bbar .pv-acc { flex: 1; width: auto; }
.rts .pv-bbar .pv-out { flex: none; width: auto; padding: 0 22px; }

/* While the endpoint answers, and if it does not */
.rts .pv-load { padding: 20px 24px 40px; }
.rts .pv-load__gal { height: clamp(300px, 52vh, 480px); border-radius: 4px; overflow: hidden; background: #e6e1d8; }
.rts .pv-load__ph { width: 100%; height: 100%; background: #e6e1d8 center / cover no-repeat; }
.rts .pv-load__ln {
	width: 54%; height: 16px; margin-top: 18px; border-radius: 3px;
	background: linear-gradient(90deg, #eeeae3 0%, #f7f4ef 50%, #eeeae3 100%); background-size: 200% 100%;
	animation: rts-pv-shim 1.2s linear infinite;
}
.rts .pv-load__gal + .pv-load__ln { width: 30%; height: 36px; margin-top: 30px; }
.rts .pv-load__ln:last-of-type { width: 38%; }
@keyframes rts-pv-shim {
	from { background-position: 200% 0; }
	to { background-position: -200% 0; }
}
.rts .pv-err { padding: 64px 24px; text-align: center; }
.rts .pv-err__h { margin: 0 0 10px; padding: 0; font: 400 26px/1.2 var(--rts-serif); color: var(--rts-navy); text-transform: none; }
.rts .pv-err p { margin: 0; font-size: 15px; color: var(--rts-mute); }
.rts .pv-err__a { display: inline-flex; width: auto; margin-top: 22px; padding: 0 26px; }

/* Full-screen photo viewer */
.rts .pvv { position: fixed; inset: 0; z-index: 2960; background: #09121c; opacity: 0; transition: opacity .18s ease; touch-action: pan-y; }
.rts .pvv.is-open { opacity: 1; }
.rts .pvv:focus { outline: 0; }
.rts .pvv-top {
	position: absolute; z-index: 2; top: 0; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between;
	gap: 16px; height: 68px; padding: 0 20px 0 24px; color: #fff;
}
.rts .pvv-cap { min-width: 0; margin: 0; font-size: 14px; color: rgba(255, 255, 255, .78); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rts .pvv-n {
	position: absolute; left: 50%; margin: 0; transform: translateX(-50%);
	font: 600 14px/1 var(--rts-sans); letter-spacing: .08em; font-variant-numeric: tabular-nums; color: #fff;
}
.rts .pvv-x {
	flex: none; display: inline-flex; align-items: center; gap: 8px; height: 40px; margin: 0; padding: 0 14px;
	border: 1px solid rgba(255, 255, 255, .3); border-radius: 4px; background: transparent; box-shadow: none; cursor: pointer;
	font: 500 14px/1 var(--rts-sans); color: #fff; text-transform: none;
}
.rts .pvv-x .rts-i { width: 16px; height: 16px; }
.rts .pvv-x:hover,
.rts .pvv-x:focus,
.rts .pvv-arr:hover,
.rts .pvv-arr:focus { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .55); color: #fff; }
.rts .pvv-x:focus-visible,
.rts .pvv-arr:focus-visible { outline: 2px solid var(--rts-soft); outline-offset: 2px; }
.rts .pvv-stage { position: absolute; inset: 68px 96px 40px; display: grid; place-items: center; }
.rts .pvv-stage img {
	display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 2px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .45); transition: opacity .2s; user-select: none; -webkit-user-drag: none;
}
.rts .pvv-stage img.is-ld { opacity: .25; }
.rts .pvv-arr {
	position: absolute; z-index: 2; top: 50%; display: grid; place-items: center; width: 52px; height: 52px; margin: -26px 0 0; padding: 0;
	border: 1px solid rgba(255, 255, 255, .3); border-radius: 4px; background: rgba(255, 255, 255, .06); box-shadow: none; cursor: pointer; color: #fff;
}
.rts .pvv-arr .rts-i { width: 22px; height: 22px; stroke-width: 1.8; }
.rts .pvv-prev { left: 24px; }
.rts .pvv-next { right: 24px; }

/* Copy link's note */
.rts .pv-toast {
	position: fixed; z-index: 2970; left: 50%; bottom: 28px; max-width: calc(100vw - 32px); padding: 12px 18px;
	border-radius: 4px; background: var(--rts-navy); color: #fff; font: 400 13.5px/1.45 var(--rts-sans);
	box-shadow: 0 12px 30px rgba(14, 44, 74, .35); opacity: 0; pointer-events: none;
	transform: translate(-50%, 20px); transition: opacity .2s, transform .2s;
}
.rts .pv-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.rts .pv-toast__u { display: block; color: var(--rts-soft); font-size: 12px; word-break: break-all; }

/* Panel widths: small desktops take four facts a row; tablets stack the card under the head */
@media (min-width: 1024px) and (max-width: 1199px) {
	.rts .pv-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.rts .pv-facts > div:nth-child(5n+1) { padding-left: 14px; border-left: 1px solid var(--rts-line); }
	.rts .pv-facts > div:nth-child(4n+1) { padding-left: 0; border-left: 0; }
}
@media (max-width: 1023px) {
	.rts .pv { width: 96vw; }
	.rts .pv-main { grid-template-columns: minmax(0, 1fr); }
	.rts .pv-aside { grid-column: 1; grid-row: 2; position: static; margin-top: 24px; }
	.rts .pv-body { grid-row: 3; }
	.rts .pv-card { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; box-shadow: none; }
	.rts .pv-card .pv-btn + .pv-btn { margin-top: 0; }
	.rts .pv-card .pv-btn:only-of-type { grid-column: 1 / -1; }
	.rts .pv-call { grid-column: 1 / -1; margin-top: 6px; }
	.rts .pv-cardh { grid-column: 1 / -1; margin-bottom: 4px; }
	.rts .pv-step .t { display: none; }
	.rts .pv-step button { padding: 0 11px; }
	.rts .pv-facts dd { font-size: 16px; }
	.rts .pv-gal { height: clamp(280px, 44vh, 440px); }
	.rts .pv-quad { grid-template-columns: minmax(0, 1fr); }
	.rts .pv-quad.q4 { grid-template-rows: 1fr 1fr; }
	.rts .pv-quad.q4 > :nth-child(n+3),
	.rts .pv-quad.q3 > :nth-child(n+3) { display: none; }
	.rts .pv-quad.q3 { grid-template-rows: 1fr 1fr; }
	.rts .pv-quad.q3 > :first-child { grid-column: auto; }
	.rts .pv-load__gal { height: clamp(280px, 44vh, 440px); }
}
/* Phone: a full-screen sheet that slides up, a carousel for the gallery, and a sticky bar */
@media (max-width: 767px) {
	.rts .pv {
		top: 0; left: 0; width: 100%; height: 100%; height: 100dvh; border-radius: 0; box-shadow: none;
		opacity: 1; transform: translateY(100%); transition: transform .34s cubic-bezier(.2, .7, .2, 1);
	}
	.rts .pv.is-open { transform: translateY(0); }
	.rts .pv .d-only { display: none !important; }
	.rts .pv .m-only { display: inline-flex; }
	.rts .pv-top { height: auto; min-height: 56px; padding: calc(8px + env(safe-area-inset-top)) 8px 8px 4px; gap: 2px; }
	.rts .pv-tb { padding: 0 10px; font-size: 14.5px; }
	.rts .pv-full.m-only { text-decoration: none; color: var(--rts-accent); }
	.rts .pv-gal { display: none; }
	.rts .pv-car { display: block; }
	.rts .pv-main { padding: 20px 16px 30px; }
	.rts .pv-price { margin-top: 14px; font-size: 33px; }
	.rts .pv-addr { margin-top: 12px; font-size: 18px; }
	.rts .pv-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 16px; margin-top: 20px; padding: 16px 0; }
	.rts .pv-facts > div,
	.rts .pv-facts > div:nth-child(5n+1) { padding: 0 12px; border-left: 1px solid var(--rts-line); }
	.rts .pv-facts > div:nth-child(3n+1) { padding-left: 0; border-left: 0; }
	.rts .pv-facts dd { font-size: 16px; }
	.rts .pv-aside { margin-top: 20px; }
	.rts .pv-card { display: block; padding: 16px; }
	/* The phone bar carries the first action, so the card keeps the second */
	.rts .pv-card .pv-acc,
	.rts .pv-card .pv-cardh { display: none; }
	.rts .pv-card .pv-btn + .pv-btn { margin-top: 0; }
	.rts .pv-call { margin-top: 12px; }
	.rts .pv-body > .pv-sec:first-child { margin-top: 30px; }
	.rts .pv-sec { margin-top: 30px; padding-top: 26px; }
	.rts .pv-sec h3 { margin-bottom: 12px; font-size: 23px; }
	.rts .pv-rem p { font-size: 16px; line-height: 1.7; }
	.rts .pv-feat { grid-template-columns: minmax(0, 1fr); }
	.rts .pv-feat > div { grid-template-columns: 88px minmax(0, 1fr); gap: 12px; }
	.rts .pv-map { height: 230px; }
	.rts .pv-bbar { display: flex; }
	.rts .pv-load { padding: 0 0 30px; }
	.rts .pv-load__gal { height: auto; aspect-ratio: 4 / 3; border-radius: 0; }
	.rts .pv-load__ln { margin-left: 16px; }
	.rts .pvv-top { height: 58px; padding: 0 10px 0 16px; }
	.rts .pvv-cap { display: none; }
	.rts .pvv-n { position: static; transform: none; }
	.rts .pvv-x .t { display: none; }
	.rts .pvv-x { width: 42px; padding: 0; justify-content: center; }
	.rts .pvv-stage { inset: 58px 0 76px; }
	.rts .pvv-stage img { border-radius: 0; box-shadow: none; }
	.rts .pvv-arr { top: auto; bottom: calc(14px + env(safe-area-inset-bottom)); width: 48px; height: 48px; margin-top: 0; }
	.rts .pvv-prev { left: calc(50% - 58px); }
	.rts .pvv-next { right: calc(50% - 58px); }
	.rts .pv-toast { bottom: calc(84px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) {
	.rts *,
	.rts *::before,
	.rts *::after { transition: none !important; animation: none !important; }
}

/* ===== Phone filters stacked, layout B (owner pick 2026-10-04: "B, status + 2x2 grid"). Replaces the
   sideways-scrolling phone row. Keep this block when merging other changes to this file. ===== */
/* Layout B, "Status and Filters, then a 2x2 grid" (mockup override, phones only).
   Row 1: the For sale / For lease switch (about two thirds) and Filters (the last third).
   Rows 2-3: Price, Beds, Baths, Home type in an equal 2x2 grid.
   No markup change: #rts-ctl turns from a scrolling flex row into a 12-column grid.
   Owner rules kept: 4px corners, navy fill + white text on the current status,
   14px labels, every control 44px tall. */
@media (max-width: 768px) {
	.rts .rts-ctl {
		display: grid;
		grid-template-columns: repeat(12, minmax(0, 1fr));
		grid-auto-rows: 44px;
		gap: 8px;
		overflow: visible;
		padding: 0 16px;
	}
	/* The scroll row's end spacer would become a grid item. */
	.rts .rts-ctl::after { content: none; display: none; }

	/* Row 1 */
	/* The border moves from the switch onto its two links, so each link is a full 44px
	   target (inside the switch's own border they were 42px). Same look: one 4px box. */
	.rts .rts-seg { grid-column: 1 / span 8; grid-row: 1; height: 44px; min-width: 0; border: 0; background: transparent; }
	.rts .rts-seg a {
		flex: 1 1 0; min-width: 0; justify-content: center; padding: 0 8px;
		border: 1px solid var(--rts-field); border-right-width: 0;
	}
	.rts .rts-seg a:first-child { border-radius: 4px 0 0 4px; }
	.rts .rts-seg a:last-child { border-right-width: 1px; border-radius: 0 4px 4px 0; }
	.rts .rts-seg a[aria-current="page"] { border-color: var(--rts-navy); }
	/* With the Sold switch on (three links) each link sizes to its word, so For lease keeps its padding. */
	.rts .rts-seg--3 a { flex: 1 1 auto; padding: 0 6px; }
	.rts .rts-chip--more { grid-column: 9 / span 4; grid-row: 1; justify-content: center; }
	/* With a count badge the third is tight on a 360 phone: give Filters one more column. */
	.rts .rts-ctl:has(.rts-badge) .rts-seg { grid-column: 1 / span 7; }
	.rts .rts-ctl:has(.rts-badge) .rts-chip--more { grid-column: 8 / span 5; padding: 0 10px; gap: 6px; }

	/* Rows 2-3: equal halves */
	.rts .rts-chip[data-rts-pop="price"] { grid-column: 1 / span 6; grid-row: 2; }
	.rts .rts-chip[data-rts-pop="beds"]  { grid-column: 7 / span 6; grid-row: 2; }
	.rts .rts-chip[data-rts-pop="baths"] { grid-column: 1 / span 6; grid-row: 3; }
	.rts .rts-chip[data-rts-pop="home"]  { grid-column: 7 / span 6; grid-row: 3; }

	.rts .rts-chip,
	.rts .rts-chip[data-rts-pop] { height: 44px; min-width: 0; padding: 0 14px; font-size: 14px; }
	/* The four filters read as dropdown fields: label left, chevron right. */
	.rts .rts-chip[data-rts-pop] { justify-content: space-between; }
}
