.google-pin { margin-block: 12px; }
.google-pin__stage { position: relative; margin-block: 10px; }
.google-pin__canvas { height: 300px; border: 1px solid var(--line); border-radius: 8px; }
.google-pin__crosshair { position: absolute; left: 50%; top: 50%; width: 24px; height: 24px; margin: -24px 0 0 -12px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--brand); border: 3px solid var(--paper); box-shadow: var(--shadow-card); pointer-events: none; }
.google-pin__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.google-pin gmp-place-autocomplete { width: 100%; }
.google-pin [hidden], .rr-area-map [hidden] { display: none !important; }
.rr-agent .google-pin { margin-block: 6px; }
.rr-agent .google-pin__canvas { height: 210px; }
.rr-agent .google-pin__stage { margin-block: 8px; }
.rr-agent .google-pin .rr-places input { min-height: 48px; padding: 10px 12px; }
.rr-agent .google-pin__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.rr-agent .google-pin__actions .btn { min-height: 48px; padding: 8px; font-size: 13px; }
.rr-agent .google-pin__actions .linkish { grid-column: 1 / -1; min-height: 44px; }
.rr-agent .google-pin__search { position: relative; }
.rr-agent .google-pin__search > span { position: absolute; inset: 14px auto auto 12px; z-index: 1; color: var(--slate); pointer-events: none; }
.rr-agent .google-pin__search svg { width: 20px; height: 20px; }
.rr-agent .google-pin__search .rr-places { margin: 0; }
/*
 * Specificity, not order: `.rr-agent .google-pin .rr-places input` is (0,3,1)
 * and sets the `padding` shorthand, so it beat this rule's `padding-left`
 * longhand however late it appeared. The magnifier is absolutely positioned
 * at 12px and the text also started at 12px, so the icon sat exactly on top
 * of the placeholder — measured: icon 43-63px, text origin 43px.
 * Matched to (0,4,1) so the offset actually lands.
 */
.rr-agent .google-pin .google-pin__search .rr-places input { padding-left: 40px; background: var(--paper); box-shadow: var(--shadow-sm); }
.google-pin__detect { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 9px 4px; border: 0; background: transparent; color: var(--brand); text-align: left; cursor: pointer; font: inherit; }
.google-pin__detect svg { width: 22px; height: 22px; flex-shrink: 0; }
.google-pin__detect > span:nth-child(2) { flex: 1; }
.google-pin__detect strong, .google-pin__detect small { display: block; }
.google-pin__detect strong { font-size: 14px; }
.google-pin__detect small { color: var(--slate); font-size: 12px; margin-top: 2px; }
.google-pin__detect:disabled { opacity: .6; cursor: wait; }
.google-pin__map-hint { position: absolute; top: 10px; left: 50%; transform: translateX(-50%); padding: 6px 10px; border-radius: 8px; background: var(--ink-soft); color: var(--paper); font-size: 11px; white-space: nowrap; pointer-events: none; box-shadow: var(--shadow-sm); }
.google-pin__recenter { position: absolute; right: 10px; bottom: 12px; width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--brand); box-shadow: var(--shadow-card); cursor: pointer; }
.google-pin__recenter svg { width: 22px; height: 22px; }
.google-pin__selection { display: flex; align-items: center; gap: 10px; padding: 10px 0; }
.google-pin__selection > span { color: var(--brand); }
.google-pin__selection svg { width: 22px; height: 22px; }
.google-pin__selection small { display: block; color: var(--slate); font: 500 10px var(--font-mono); letter-spacing: .07em; }
.google-pin__selection strong { display: block; font-size: 14px; margin-top: 3px; overflow-wrap: anywhere; }
.rr-agent [data-auto-area] .google-pin__actions .btn { grid-column: 1 / -1; }
.google-pin button:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.rr-area-map { margin: 16px 0; }
.rr-area-map__canvas { height: 320px; border: 1px solid var(--line); border-radius: 8px; margin-top: 10px; }
.rr-area-map__note { color: var(--slate); font-size: 12px; margin: 6px 0 0; }
.near-search__extras { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 16px; border: 0; padding: 0; margin: 0; }
.near-search__extras legend { font-size: 13px; color: var(--slate); margin-bottom: 4px; }
.near-search__extras label { display: flex; align-items: center; gap: 7px; min-height: 44px; }
.near-search input[type=number] { width: 100%; min-height: 48px; margin-top: 6px; padding: 10px; font: 400 16px var(--font-body); border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink); }
.near-search__more { grid-column: 1 / -1; }
.near-search__more summary { min-height: 44px; padding-block: 10px; cursor: pointer; font-size: 13px; color: var(--brand); }
.near-search__more > label { max-width: 300px; }
.rr-places { position: relative; margin-top: 6px; }
.rr-places input { display: block; width: 100%; min-height: 48px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink); font: 500 16px var(--font-body); }
.rr-places input:focus { outline: 2px solid var(--brand); outline-offset: 1px; }
.rr-places__panel { position: absolute; top: 100%; left: 0; right: 0; z-index: 90; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow-lift); border-radius: 8px; padding: 4px; }
.rr-places__panel[hidden] { display: none; }
.rr-places__panel ul { list-style: none; padding: 0; margin: 0; }
.rr-places__panel li { padding: 12px 10px; min-height: 48px; cursor: pointer; font-size: 14px; line-height: 1.4; border-bottom: 1px solid var(--line-soft); }
.rr-places__panel li:hover, .rr-places__panel li[aria-selected=true] { background: var(--brand-tint); color: var(--brand); }
.rr-places__attribution { display: block; text-align: right; padding: 8px 10px; color: #5E5E5E; background: var(--paper); font: 400 12px var(--font-body); letter-spacing: normal; white-space: nowrap; }
.near-search__actions { align-items: start; gap: 16px; }
.near-search__actions svg { width: 14px; height: 14px; }
.near-search__actions button { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; }
.near-search__fallback summary { cursor: pointer; min-height: 44px; padding: 12px 0; color: var(--slate); font-size: 12px; }
.near-search__fallback select { position: absolute; z-index: 5; max-width: 300px; box-shadow: var(--shadow-card); }
.near-search__status:empty { display: none; }
.near-search--native { column-gap: 12px; row-gap: 6px; }
.near-search--native .near-search__location { grid-column: 1 / -1; }
.near-search--native > .btn { min-height: 48px; }
@media(min-width:900px) {
 .near-search--native .near-search__location { grid-column: auto; }
 .near-search--native > .btn { margin-top: 25px; }
}

[data-near-grid][hidden] { display: none !important; }

.near-search [hidden] { display: none !important; }
.near-search__locked { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.near-search__locked > div { min-width: 0; }
.near-search__locked-label { display: block; font-size: 11px; color: var(--slate); }
.near-search__locked strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; }
.near-search__locked button { min-height: 44px; flex-shrink: 0; color: var(--brand); }
.has-locked-location > .wrap > h1, .has-locked-location > .wrap > .discover__copy { display: none; }
.discover.has-locked-location { padding-block: 12px; }
.is-location-locked .near-search__status { display: none; }
@media(min-width:900px) { .near-search__locked { grid-column: auto; margin-top: 25px; } }

/* Browse first: location lives in the app bar, filters take one compact row. */
.rr-location-dialog { width: min(460px,calc(100% - 24px)); max-height: 85dvh; overflow: visible; border: 1px solid var(--line); border-radius: 12px; padding: 16px; background: var(--paper); color: var(--ink); box-shadow: var(--shadow-lift); }
.rr-location-dialog::backdrop { background: rgba(14,20,27,.4); }
.rr-location-dialog__head { display: flex; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.rr-location-dialog__head h2 { font-size: 18px; margin: 0; }
.rr-location-dialog__head button { border: 0; background: var(--mist); border-radius: 8px; min-width: 44px; min-height: 44px; font-size: 24px; cursor: pointer; }
[data-location-picker] { display: block; }
[data-location-picker] > label, [data-location-picker] > .near-search__more, [data-location-picker] .near-search__locked, [data-location-picker] .near-search__location > label { display: none; }
[data-location-picker] > .btn { width: 100%; margin: 4px 0 0; }
[data-location-picker] .rr-places__panel { max-height: 48dvh; overflow-y: auto; }
.is-location-locked { grid-template-columns: 1fr 1fr; gap: 6px 10px; }
.is-location-locked .near-search__locked { display: none; }
.is-location-locked > label { font-size: 11px; }
.is-location-locked select { margin-top: 3px; min-height: 40px; padding: 8px; font-size: 13px; }
.is-location-locked > .btn { grid-column: 2; grid-row: 2; min-height: 40px; padding: 8px 12px; margin: 0; font-size: 13px; }
.is-location-locked > .near-search__more { grid-column: 1; grid-row: 2; }
.is-location-locked > .near-search__more[open] { grid-column: 1 / -1; grid-row: 3; }
.is-location-locked .near-search__more summary { min-height: 40px; padding-block: 10px; }
.discover.has-locked-location + .discovery-section { padding-top: 16px; }
@media(min-width:900px) {
 .is-location-locked { grid-template-columns: minmax(140px,1fr) minmax(160px,1fr) 1fr auto; align-items: end; }
 .is-location-locked > .near-search__more { grid-column: 3; grid-row: 1; }
 .is-location-locked > .btn { grid-column: 4; grid-row: 1; }
 .is-location-locked > .near-search__more[open] { grid-column: 1 / -1; grid-row: 2; }
}
@media(max-width:599px) {
 .rr-location-dialog { margin: 70px auto auto; }
 .discover .discover__intro h1 { font-size: 24px; }
 .discover .discover__intro .discover__copy { margin-bottom: 0; }
}

.rr-location-dialog { overflow-y: auto; }
[data-location-picker] .rr-places__panel { position: static; margin-top: 6px; max-height: 34dvh; box-shadow: none; }
[data-location-picker] .near-search__actions { display: block; }
[data-location-picker] [data-near-me] { font-size: 14px; color: var(--brand); min-height: 48px; }
[data-location-picker] .near-search__fallback { border-top: 1px solid var(--line-soft); }
[data-location-picker] .near-search__fallback select { position: static; max-width: none; width: 100%; box-shadow: none; margin-bottom: 8px; }
.rr-city-options { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; }
.rr-city-options a, .rr-locality-suggestions button { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font: 500 12px var(--font-body); color: var(--slate); background: var(--paper); text-decoration: none; cursor: pointer; }
.rr-city-options a:hover, .rr-locality-suggestions button:hover { background: var(--brand-tint); color: var(--brand); }
.rr-locality-suggestions { border-top: 1px solid var(--line-soft); padding-block: 8px; }
.rr-locality-suggestions p { font-size: 11px; color: var(--slate); margin: 0 0 6px; }
.rr-locality-suggestions [data-locality-choices] { display: flex; flex-wrap: wrap; gap: 6px; }

.is-location-locked [data-location-editor] { display: none; }

.browse-places { padding: 10px 0; border-bottom: 1px solid var(--line-soft); margin-bottom: 10px; }
.browse-places__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 11px; color: var(--slate); }
.browse-places__top a { display: inline-flex; align-items: center; gap: 5px; color: var(--brand); font-weight: 600; min-height: 32px; }
.browse-places__top svg { width: 14px; height: 14px; }
.browse-places__cities { display: flex; gap: 16px; overflow-x: auto; padding: 2px 0 8px; }
.browse-city { display: inline-flex; align-items: center; gap: 7px; color: var(--slate); text-decoration: none; font-size: 12px; white-space: nowrap; min-height: 44px; }
.browse-city__circle { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); background: var(--paper); font: 700 14px var(--font-display); }
.browse-city.is-selected { color: var(--brand); font-weight: 700; }
.browse-city.is-selected .browse-city__circle { border-color: var(--brand); background: var(--brand-tint); }
.browse-places__localities { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 3px; }
.browse-places__localities a, .browse-places__more a { display: inline-flex; align-items: center; min-height: 36px; white-space: nowrap; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink-soft); font-size: 12px; text-decoration: none; }
.browse-places__localities a[aria-current], .browse-places a:hover { color: var(--brand); border-color: var(--brand); }
.browse-places__more summary { cursor: pointer; color: var(--slate); font-size: 11px; padding: 6px 0; }
.browse-places__more > div { display: flex; flex-wrap: wrap; gap: 6px; max-height: 180px; overflow-y: auto; padding: 5px 0; }
@media(min-width:900px) { .browse-places__cities { gap: 22px; } .browse-places__localities { flex-wrap: wrap; } }

.browse-places__distance-note { display: block; font-size: 11px; color: var(--slate); margin: 0 0 5px; }

@media(max-width:599px) {
 .appbar__row .placechip { min-width: 0; max-width: calc(100vw - 192px); flex-shrink: 1; }
 .appbar__row .burger { flex-shrink: 0; }
 .browse-places__localities { scrollbar-width: none; }
 .browse-places__localities::-webkit-scrollbar { display: none; }
 .discover.has-locked-location .browse-places { padding-top: 0; }
}

/* A searched location needs nearby choices, not another city-selection step. */
.nearby-browse { margin-bottom: 12px; }
.nearby-browse__heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 7px; font-size: 11px; color: var(--slate); }
.nearby-browse__heading a { display: inline-flex; align-items: center; gap: 5px; color: var(--brand); min-height: 32px; font-weight: 600; }
.nearby-browse__heading svg { width: 13px; height: 13px; }
.nearby-browse__chips { display: flex; gap: 7px; overflow-x: auto; scrollbar-width: none; }
.nearby-browse__chips::-webkit-scrollbar { display: none; }
.nearby-browse__chips a { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; min-height: 40px; padding: 8px 12px; border: 1px solid var(--line); background: var(--paper); border-radius: 8px; font-size: 13px; color: var(--ink-soft); text-decoration: none; }
.nearby-browse__chips a span { color: var(--slate-light); }
.nearby-browse__chips a:hover { border-color: var(--brand); color: var(--brand); }
.near-search.is-location-locked { grid-template-columns: minmax(150px,1fr) minmax(90px,.6fr); align-items: start; gap: 8px; }
.near-search.is-location-locked > label { font-size: 0; }
.near-search.is-location-locked > label select { margin: 0; height: 42px; border-radius: 8px; }
.near-search.is-location-locked > .near-search__more { grid-column: 2; grid-row: 1; }
.near-search.is-location-locked > .near-search__more > summary { display: block; text-align: center; font-size: 13px; font-weight: 600; min-height: 42px; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; background: var(--paper); color: var(--ink-soft); cursor: pointer; }
.near-search.is-location-locked > .near-search__more > summary::-webkit-details-marker { display: none; }
.near-search.is-location-locked > .near-search__more[open] { grid-column: 1 / -1; grid-row: 2; padding: 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; }
.near-search.is-location-locked .near-search__more[open] > summary { text-align: left; border: 0; padding: 0 0 10px; min-height: 32px; }
.near-search.is-location-locked .near-search__more > label { display: block; max-width: none; margin-block: 10px; }
.near-search__more > .btn { width: 100%; margin-top: 10px; min-height: 44px; }
[data-near-results] .rr-area-map { margin-block: 8px 12px; }
@media(min-width:900px) { .near-search.is-location-locked { grid-template-columns: 200px 120px; } .near-search.is-location-locked > .near-search__more[open] { min-width: 400px; } }

/* Compact context and applied choices; photos keep their full landscape frame. */
.rr-location-trail { display:flex; align-items:center; gap:7px; min-width:0; min-height:36px; overflow-x:auto; white-space:nowrap; font-size:12px; color:var(--slate); scrollbar-width:none; }
.rr-location-trail a { color:var(--brand); min-height:36px; display:inline-flex; align-items:center; }
.rr-location-trail__mode { font-size:10px; color:var(--slate); background:var(--mist); border-radius:4px; padding:3px 5px; }
.nearby-browse__heading { gap:8px; }
.nearby-browse__heading > a { flex-shrink:0; }
.nearby-browse__chips a { font-size:12px; min-height:36px; padding:6px 10px; gap:8px; }
.nearby-browse__chips a span { font-size:10px; }
.near-applied, .rr-config-shortcuts { display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; grid-column:1/-1; padding:2px 0; }
.near-applied button, .rr-config-shortcuts a { display:inline-flex; align-items:center; flex-shrink:0; min-height:36px; padding:6px 10px; border:1px solid var(--line); border-radius:8px; font:500 12px var(--font-body); background:var(--brand-tint); color:var(--brand); cursor:pointer; text-decoration:none; }
.near-applied[hidden], .near-filter-panel [hidden] { display:none!important; }
.near-filter-sheet { inset: auto 0 0; margin:0 auto; width:100%; max-width:560px; max-height:88dvh; padding:0; border:0; border-radius:16px 16px 0 0; color:var(--ink); background:var(--paper); box-shadow:var(--shadow-sheet); overflow-y:auto; overscroll-behavior:contain; }
.near-filter-sheet::backdrop { background:rgba(14,20,27,.42); }
.rr-sheet-open { overflow:hidden; }
.near-filter-panel { display:grid; grid-template-columns:1fr 1fr; gap:16px 12px; padding:18px 16px 0; }
.near-filter-panel__head { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.near-filter-panel__head h2 { font:700 19px var(--font-display); margin:0 0 4px; }
.near-filter-panel__head p { font-size:12px; color:var(--slate); margin:0; }
.near-filter-panel__head button { width:44px; height:44px; border:1px solid var(--line); border-radius:8px; background:var(--mist); color:var(--ink); font-size:24px; cursor:pointer; flex-shrink:0; }
.near-filter-panel > label { display:grid; gap:6px; font:500 12px var(--font-body); color:var(--slate); min-width:0; }
.near-filter-panel .near-locality-filter, .near-filter-panel > label:has([name="max_rent"]), .near-filter-panel .near-search__extras { grid-column:1/-1; }
.near-filter-panel select, .near-filter-panel input[type="number"] { width:100%; min-width:0; min-height:46px; padding:10px; margin:0; border:1px solid var(--line); border-radius:8px; background:var(--mist); color:var(--ink); font:400 16px var(--font-body); }
.near-filter-panel .near-search__extras { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; border:0; }
.near-filter-panel .near-search__extras legend { font-size:12px; margin-bottom:8px; color:var(--slate); }
.near-filter-panel .near-search__extras label { display:flex; align-items:center; gap:7px; min-height:44px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; font-size:13px; color:var(--ink); cursor:pointer; }
.near-filter-panel .near-search__extras label:has(:checked) { border-color:var(--brand); background:var(--brand-tint); color:var(--brand); }
.near-filter-panel__footer { position:sticky; bottom:0; grid-column:1/-1; display:flex; align-items:center; gap:16px; padding:12px 0 calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line-soft); background:var(--paper); }
.near-filter-panel__footer .btn { flex:1; min-height:48px; }
.near-filter-panel__footer .linkish { font-size:13px; min-height:44px; }
@media(min-width:600px) { .near-filter-sheet { inset:0; margin:auto; border-radius:14px; } }
.locality-results-title { font:800 22px/1.2 var(--font-display); letter-spacing:-.024em; margin:0; }
.locality-empty-note { font-size:14px; color:var(--slate); margin:8px 0 14px; }
.locality-nearby-divider { margin:24px 0 14px; padding-top:18px; border-top:1px solid var(--line); }
.locality-nearby-divider h2 { margin:0 0 4px; font:700 19px var(--font-display); }
.locality-nearby-divider p { margin:0; color:var(--slate); font-size:12px; }
[data-near-results] > .wrap > .rr-config-shortcuts { margin-top:20px; }
.locality-about { margin-top:18px; color:var(--slate); font-size:14px; }
.locality-about summary { cursor:pointer; min-height:44px; display:flex; align-items:center; }
.locality-results-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 12px; margin-bottom:12px; }
.locality-results-summary h1 { grid-column:1/-1; }
.locality-results-summary > p { color:var(--slate); font-size:12px; margin:0; }
.locality-results-summary .rr-area-map { display:contents; }
.locality-results-summary [data-map-open] { grid-column:2; min-height:36px; padding:7px 11px; }
.locality-results-summary [data-public-canvas], .locality-results-summary [data-map-status] { grid-column:1/-1; }
.locality-nearby-divider--empty { margin-top:8px; padding-top:12px; }


/* Search and browse share one compact set of controls. */
.rr-type-choices { display:flex; min-width:0; gap:4px; overflow-x:auto; scrollbar-width:none; grid-column:1/-1; }
.rr-type-choices button { flex-shrink:0; min-height:42px; padding:9px 12px; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--slate); font:600 12px var(--font-body); cursor:pointer; white-space:nowrap; }
.rr-type-choices button[aria-pressed=true] { background:var(--ink); color:var(--paper); }
.rr-type-choices button:hover:not([aria-pressed=true]) { background:var(--paper); border-color:var(--line); }
.near-search.is-location-locked { grid-template-columns:minmax(0,1fr) auto; }
.near-search.is-location-locked > .rr-type-choices { grid-column:1; grid-row:1; }
.near-search.is-location-locked > .near-search__more > summary { min-width:88px; }
.near-search__more > summary > span { margin-right:4px; font-size:17px; line-height:1; }
.nearby-browse__chips a { border-radius:6px; background:var(--paper); }
.nearby-browse__heading { margin-bottom:4px; }
.rr-location-trail a { text-decoration:none; }
.rr-location-trail a:last-of-type { color:var(--ink); font-weight:600; }
.rr-location-dialog { width:min(520px,calc(100% - 24px)); padding:20px; border-radius:16px; }
.rr-location-dialog__head { margin-bottom:10px; }
.rr-location-dialog__head h2 { font:800 21px/1.2 var(--font-display); letter-spacing:-.024em; }
.rr-location-dialog .rr-places input { min-height:54px; background:var(--mist); padding:14px; border-color:var(--line); }
[data-location-picker] .near-search__actions { margin-top:8px; }
[data-location-picker] [data-near-me] { display:flex; width:100%; padding:10px 12px; gap:10px; background:var(--brand-tint); border-radius:8px; font-weight:600; text-decoration:none; margin-bottom:8px; }
[data-location-picker] [data-near-me] svg { width:18px; height:18px; }
[data-location-picker] .near-search__fallback summary { font-size:13px; font-weight:600; color:var(--ink-soft); }
[data-location-picker] > .btn { display:none; }
.rr-area-browser label { font-size:12px; }
.rr-area-browser input { display:block; width:100%; min-height:44px; padding:10px 12px; margin:6px 0; border:1px solid var(--line); border-radius:8px; background:var(--mist); color:var(--ink); font:400 16px var(--font-body); }
.rr-area-browser [data-area-results] { display:grid; grid-template-columns:1fr 1fr; gap:4px; max-height:210px; overflow-y:auto; overscroll-behavior:contain; }
.rr-area-browser [data-area-results] button { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-width:0; min-height:52px; padding:8px 10px; border:1px solid var(--line-soft); border-radius:8px; background:var(--paper); color:var(--ink); text-align:left; cursor:pointer; font:500 13px var(--font-body); }
.rr-area-browser [data-area-results] button:hover { background:var(--brand-tint); border-color:var(--brand); }
.rr-area-browser small { color:var(--slate); font-size:10px; margin-top:3px; }
.rr-area-browser p { font-size:12px; color:var(--slate); }
.search-workspace:not(.has-locked-location) { padding:24px 0 18px; }
.search-workspace > .wrap > h1 { font:800 28px/1.15 var(--font-display); letter-spacing:-.032em; margin:0 0 6px; }
.search-workspace > .wrap > .discover__copy { font-size:13px; margin:0 0 16px; }
.search-workspace:not(.has-locked-location) .near-search { max-width:680px; grid-template-columns:1fr auto; gap:8px; }
.search-workspace:not(.has-locked-location) .near-search__location { grid-column:1/-1; }
.search-workspace:not(.has-locked-location) .near-search__location > label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.search-workspace:not(.has-locked-location) .rr-type-choices { grid-column:1; }
.search-workspace:not(.has-locked-location) .near-search > .near-search__more { grid-column:2; grid-row:2; }
.search-workspace:not(.has-locked-location) .near-search > .btn { grid-column:1/-1; margin:0; }
.search-workspace .near-search__fallback select { position:static; }
.search-city-links { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; margin-top:16px; font-size:12px; }
.search-city-links > span { color:var(--slate); }
.search-city-links a { display:inline-flex; align-items:center; gap:8px; min-height:40px; color:var(--brand); font-weight:600; text-decoration:none; }
.rr-type-choices button:focus-visible, .rr-area-browser button:focus-visible { outline:2px solid var(--brand-hi); outline-offset:-2px; }
@media(max-width:599px) {
 .rr-location-dialog { padding:16px; margin:64px auto auto; max-height:calc(100dvh - 90px); }
 .rr-location-dialog__head h2 { font-size:19px; }
 .rr-type-choices button { padding-inline:10px; }
 .near-search.is-location-locked > .near-search__more > summary { min-width:76px; padding-inline:8px; }
}
/* Location and filters are removable choices, not repeated page banners. */
.rr-location-token { display:inline-flex; align-items:center; gap:6px; max-width:100%; padding-left:9px; border:1px solid var(--line); background:var(--paper); border-radius:7px; color:var(--ink); font-weight:600; }
.rr-location-token > span { max-width:190px; overflow:hidden; text-overflow:ellipsis; }
.rr-location-token a { justify-content:center; min-width:34px; min-height:36px; font-size:19px; text-decoration:none; border-left:1px solid var(--line-soft); }
.rr-location-trail { gap:6px; }
.near-applied button { background:var(--brand-tint); border-color:transparent; gap:8px; min-height:36px; }
.near-applied button:hover { border-color:var(--brand); }
.near-applied .near-applied__clear { background:transparent; color:var(--slate); text-decoration:underline; }
.locality-results-summary { margin-bottom:12px; }
.locality-results-summary > p { color:var(--ink-soft); font-weight:600; font-size:13px; }
.search-results-heading h2 { font:700 17px/1.3 var(--font-display); }
.search-results-heading > p { font-size:11px; }
.near-filter-sheet[open], .rr-location-dialog[open] { animation:rr-sheet-reveal 180ms var(--ease); }
.near-filter-sheet::backdrop, .rr-location-dialog::backdrop { animation:rr-backdrop-reveal 160ms ease; }
.near-filter-panel .near-search__extras label, .rr-type-choices button, .near-applied button { transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease; }
@keyframes rr-sheet-reveal { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes rr-backdrop-reveal { from { opacity:0; } to { opacity:1; } }
@media(max-width:599px) { .rr-location-token > span { max-width:125px; } .nearby-browse__heading > a { font-size:0; width:36px; justify-content:center; } .nearby-browse__heading > a svg { width:17px; height:17px; } }
@media(prefers-reduced-motion:reduce) { .near-filter-sheet[open], .rr-location-dialog[open], .near-filter-sheet::backdrop, .rr-location-dialog::backdrop { animation:none; } .near-filter-panel .near-search__extras label, .rr-type-choices button, .near-applied button { transition:none; } }
/* Nearby choices occupy space only when requested. */
.nearby-browse { margin-bottom:8px; }
.nearby-browse__heading { margin:0; }
.rr-browse-actions { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.rr-browse-actions > a { display:grid; place-items:center; min-width:36px; min-height:40px; font-size:0; }
.rr-browse-actions > a svg { width:17px; height:17px; }
@media(max-width:599px) { .rr-location-trail { font-size:11px; } .rr-location-token > span { max-width:94px; } .rr-location-token a { min-width:30px; } .nearby-browse__heading { gap:4px; } }
/* City-wide archives use the same compact controls as locality results. */
[data-archive-routes] > .near-search__location, [data-archive-routes] > .btn, [data-archive-routes] > .near-search__status { display:none; }
.archive-discovery .nearby-browse__heading { margin-bottom:8px; }
.archive-empty { padding:24px; border:1px solid var(--line); border-radius:10px; background:var(--mist); }
.archive-empty h2 { font:700 19px/1.3 var(--font-display); margin:0 0 8px; }
.archive-empty p { font-size:14px; color:var(--slate); margin:0 0 16px; }
.archive-request { margin-top:16px; }
.archive-request > summary { color:var(--brand); font-size:14px; cursor:pointer; padding:12px 0; }
.archive-request .request { margin-top:12px; }
@media(max-width:599px) { body:has(.archive-discovery) .upnav { display:none; } .archive-empty { padding:18px; } }
/* One search field; secondary area choices stay short and optional. */
.rr-location-dialog { width:min(480px,calc(100% - 24px)); }
[data-location-picker] [data-near-me] { background:transparent; margin:0; min-height:44px; padding:8px 2px; font-size:13px; }
[data-location-picker] .near-search__fallback summary { font-size:12px; min-height:40px; padding-block:10px; }
[data-location-picker] .rr-city-options a { min-height:36px; padding:6px 10px; }
[data-location-picker] .rr-area-browser [data-area-results] { max-height:none; gap:4px; }
[data-location-picker] .rr-area-browser [data-area-results] button { min-height:44px; border:0; padding:7px 8px; background:var(--mist); }
[data-location-picker] .rr-area-browser small { display:none; }
[data-location-picker] .rr-locality-suggestions { padding-top:10px; }
[data-location-picker] .rr-locality-suggestions button { min-height:36px; padding:6px 9px; }
/* Complete city inventory, with optional controls in the existing compact header. */
.city-browse-controls { min-width:0; }
[data-city-browse].near-search { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:5px; }
[data-city-browse].near-search > .near-search__more { grid-column:3; grid-row:1; }
[data-city-browse] .city-budget { grid-column:2; grid-row:1; min-height:42px; padding:8px; border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink-soft); font:600 12px var(--font-body); cursor:pointer; }
[data-city-browse] .rr-type-choices { gap:0; }
[data-city-browse] .rr-type-choices button { padding-inline:7px; }
[data-city-browse].near-search > .near-search__more > summary { min-width:65px; padding-inline:7px; }
.city-results-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.city-results-toolbar h2 { margin:0 auto 0 0; font:700 15px/1.4 var(--font-display); }
.city-results-toolbar form { display:flex; align-items:center; gap:6px; }
.city-results-toolbar select { max-width:155px; min-height:38px; border:1px solid var(--line); border-radius:8px; padding:7px; background:var(--paper); font:500 12px var(--font-body); color:var(--ink-soft); }
.city-results-toolbar .rr-area-map { display:contents; }
.city-results-toolbar [data-public-canvas], .city-results-toolbar [data-map-status] { flex-basis:100%; }
.city-results-toolbar [data-map-open] { min-height:38px; padding:7px 10px; font-size:12px; }
.city-pagination { display:flex; justify-content:center; align-items:center; gap:18px; padding:22px 0 0; font-size:13px; }
.city-pagination a { display:inline-flex; align-items:center; min-height:44px; padding:8px 14px; border:1px solid var(--line); border-radius:8px; color:var(--brand); text-decoration:none; }
@media(max-width:599px) { [data-city-browse] .rr-type-choices button { font-size:11px; padding-inline:5px; } [data-city-browse] .near-search__more > summary > span { display:none; } [data-city-browse].near-search > .near-search__more > summary { min-width:53px; font-size:12px; } .city-results-toolbar h2 { font-size:13px; } .city-results-toolbar select { max-width:131px; font-size:11px; } }
[data-location-picker] .rr-area-browser small { display:block; font-size:10px; margin-top:3px; color:var(--slate); }
[data-location-picker] .rr-area-browser [data-area-results] button { min-height:52px; }
.area-count-note { margin:2px 6px 6px; font-size:10px; color:var(--slate); white-space:normal; }
/* --------------------------------------------------- placing the property --
 * The person filling this in is standing in the property, so their own
 * position is the answer and is more accurate than any name they could type.
 * It was offered second, as a chevron row that reads like navigation.
 * ------------------------------------------------------------------------ */
.rr-agent .google-pin__detect{display:flex;align-items:center;gap:12px;width:100%;
  min-height:60px;padding:12px 14px;margin:0 0 10px;
  border:1px solid var(--brand);border-radius:12px;background:var(--brand);color:#fff;
  text-align:left;cursor:pointer;font:inherit;box-shadow:var(--shadow-sm)}
.rr-agent .google-pin__detect:active{transform:scale(.99)}
.rr-agent .google-pin__detect svg{width:24px;height:24px;flex:0 0 auto}
.rr-agent .google-pin__detect > span:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.rr-agent .google-pin__detect strong{font:700 15px/1.2 var(--font-display);letter-spacing:-.01em}
.rr-agent .google-pin__detect small{font:400 12px/1.35 var(--font-body);opacity:.85}

/* A quiet divider, so the search reads as the alternative rather than the way in. */
.rr-agent .google-pin__or{display:flex;align-items:center;gap:10px;margin:0 0 8px;
  font:500 12px/1 var(--font-body);color:var(--slate)}
.rr-agent .google-pin__or::before,
.rr-agent .google-pin__or::after{content:"";flex:1;height:1px;background:var(--line)}
/* The base rule paints this line --slate, which was fine on a white row and is
 * 1.6:1 on the brand fill. White at .85 measures 6.9:1 against --brand. */
.rr-agent .google-pin__detect small{color:#fff}
/* The shared ring is --brand, i.e. invisible on a --brand button. */
.rr-agent .google-pin__detect:focus-visible{outline:2px solid var(--paper);outline-offset:-4px}

/* --- "Or start with" city chips in the location sheet ---
   Search first; the cities are a small row beneath it. Real links, so the
   sheet works with JS off; JS hides them while the visitor is typing. */
.rr-location-start { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 12px 0 0; }
.rr-location-start__label { font-size: 13px; color: var(--slate); margin-right: 2px; }
.rr-location-start__chip { display: inline-flex; align-items: center; min-height: 36px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font-size: 14px; font-weight: 500; text-decoration: none; transition: border-color 120ms var(--ease), background 120ms var(--ease); }
.rr-location-start__chip:hover, .rr-location-start__chip:focus-visible { border-color: var(--brand-hi); }
.rr-location-start__chip.is-current { border-color: var(--brand); background: var(--brand-tint); color: var(--brand); }
.rr-location-start[hidden] { display: none; }

/* The search screen's pager submits the search form; it wears the archive
   pagination's clothes so the two results screens read as one. */
.near-search__pages button.page-numbers { font: inherit; cursor: pointer; }

/* Nearest areas offered when nothing named the pin (§9.2y). */
.google-pin__nearest { display: flex; flex-direction: column; gap: 6px; margin: 8px 0 0; }
.google-pin__nearest[hidden] { display: none !important; }
.google-pin__nearest p { margin: 0 0 2px; font-size: 12px; line-height: 1.4; color: var(--slate); }
.google-pin__nearest button { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 48px; padding: 0 12px; border: 1.5px solid var(--brand); border-radius: 8px; background: var(--brand-tint); font: 600 14px/1.2 var(--font-body); color: var(--brand); text-align: left; cursor: pointer; }
.google-pin__nearest button:disabled { opacity: .6; cursor: wait; }
.google-pin__nearest button span { flex: none; font-weight: 500; font-size: 12px; color: var(--slate); }
