/* Public interface: shared tokens, natural document flow, mobile first. */
.rr-ui .appbar { background: var(--paper); border-bottom: 1px solid var(--line); }
.rr-ui .appbar__row { min-height: 64px; }
.rr-ui .logo { letter-spacing: -.025em; }
.rr-ui .placechip { min-height: 44px; border-radius: 8px; background: var(--mist); border-color: var(--line); }
.rr-ui .nav { gap: 24px; }
.rr-ui .nav a { font-size: 14px; }
.rr-ui .burger { display: flex; min-width: 44px; min-height: 44px; }
.rr-ui .eyebrow { margin: 0 0 12px; color: var(--slate); font: 500 11px/1.5 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.discover { padding: 42px 0 26px; background: var(--mist); border-bottom: 1px solid var(--line); }
.discover h1 { max-width: 750px; margin: 0; font-size: 34px; line-height: 1.13; letter-spacing: -.032em; }
.discover h1 span { color: var(--brand); }
.discover__copy { max-width: 570px; margin: 16px 0 24px; color: var(--slate); font-size: 16px; line-height: 1.65; }
.discovery-search { display: flex; flex-direction: column; gap: 12px; max-width: 720px; padding: 14px; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-card); scroll-margin-top: 90px; }
.discovery-search__field { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.discovery-search__field > span { margin: 0 10px 4px; color: var(--slate); font: 500 10px/1.4 var(--font-mono); letter-spacing: .08em; }
.discovery-search select { width: 100%; min-height: 48px; padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); color: var(--ink); font: 500 16px/1.4 var(--font-body); text-overflow: ellipsis; }
.discovery-search .btn { min-height: 50px; flex-shrink: 0; gap: 10px; }
.discover__assurances { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 20px; color: var(--slate); font-size: 12px; }
.discover__assurances span { display: inline-flex; align-items: center; gap: 6px; }
.discover__assurances svg { width: 14px; height: 14px; color: var(--brand); }
.discover--city { padding-top: 28px; }
.discover--city h1 { font-size: 28px; }
.discover--city .discover__copy { font-size: 14px; margin-top: 10px; margin-bottom: 18px; }
.discovery-search--city { display: grid; grid-template-columns: 1fr 1fr; }
.discovery-search--city .discovery-search__field:nth-child(2) { grid-column: 2; }
.discovery-search--city .btn { align-self: end; font-size: 14px; padding-inline: 8px; }
.discovery-search--city select { font-size: 16px; padding-left: 8px; }
.discovery-section { padding: 36px 0; }
.discovery-section--compact { padding: 22px 0 0; }
.discovery-section--listings { padding-top: 28px; }
.discovery-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 28px; margin-bottom: 22px; }
.discovery-head .eyebrow { margin-bottom: 8px; }
.discovery-head h2 { margin: 0; font-size: 24px; line-height: 1.25; letter-spacing: -.024em; }
.discovery-head > p { margin: 0; color: var(--slate); max-width: 330px; font-size: 14px; line-height: 1.6; }
.city-grid { display: grid; gap: 14px; grid-template-columns: 1fr; }
.city-card { display: flex; align-items: center; gap: 14px; padding: 22px 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink); text-decoration: none; box-shadow: var(--shadow-sm); transition: border-color .15s, box-shadow .15s; }
.city-card:hover { border-color: var(--brand); box-shadow: var(--shadow-card); }
.city-card__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 8px; background: var(--brand-tint); color: var(--brand); flex-shrink: 0; }
.city-card__icon svg { width: 22px; height: 22px; }
.city-card__body { display: flex; flex: 1; flex-direction: column; gap: 5px; min-width: 0; }
.city-card__body strong { font: 700 19px/1.4 var(--font-display); }
.city-card__body > span { font-size: 13px; color: var(--slate); line-height: 1.5; }
.city-card__arrow { font-size: 24px; color: var(--brand); }
.discovery-note { margin: 14px 0 0; color: var(--slate); font-size: 12px; line-height: 1.6; }
.rental-types { display: flex; flex-wrap: wrap; gap: 8px; }
.rental-types__item { display: inline-flex; align-items: center; min-height: 46px; padding: 10px 15px; border: 1px solid var(--line); border-radius: 8px; color: var(--slate); font-size: 14px; font-weight: 500; text-decoration: none; }
.rental-types__item:hover, .rental-types__item.is-active { border-color: var(--brand); background: var(--brand-tint); color: var(--brand); }
.discovery-link { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; color: var(--brand); font-size: 14px; font-weight: 600; text-decoration: none; }
.discovery-link:hover { text-decoration: underline; }
.discovery-section--listings > .wrap > .discovery-link { margin-top: 16px; }
.rr-ui .card { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; box-shadow: var(--shadow-card); background: var(--paper); }
.rr-ui .card:hover { box-shadow: var(--shadow-lift); transform: none; }
.rr-ui .card__media { background: var(--mist-deep); }
.rr-ui .card__body { padding: 14px 16px; }
.rr-ui .card .price { margin: 0 0 10px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 5px; }
.rr-ui .card .price__figure { font-size: 23px; letter-spacing: -.025em; }
.rr-ui .card .price__deposit { font-size: 12px; color: var(--slate); }
.rr-ui .card__title { margin: 0 0 8px; font-size: 16px; line-height: 1.45; }
.rr-ui .card__place { display: flex; align-items: center; gap: 5px; margin: 0 0 8px; font-size: 13px; color: var(--slate); line-height: 1.5; }
.card__place svg { width: 14px; height: 14px; flex-shrink: 0; }
.rr-ui .card__meta { margin: 0; color: var(--slate); font-size: 12px; line-height: 1.7; }
.rr-ui .card__foot { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line-soft); }
.rr-ui .card__save { width: 44px; height: 44px; min-height: 44px; background: var(--paper); box-shadow: var(--shadow-sm); }
.rr-ui .card__shot { color: var(--ink); background: rgba(255,255,255,.94); padding: 5px 8px; border-radius: 4px; font-size: 10px; }
.rr-ui .stamp--line { font-size: 10px; letter-spacing: .035em; line-height: 1.7; }
.discovery-empty { display: flex; flex-direction: column; align-items: flex-start; padding: 28px; background: var(--mist); border: 1px dashed var(--line); border-radius: 10px; }
.discovery-empty__icon { color: var(--brand); margin-bottom: 12px; }
.discovery-empty__icon svg { width: 28px; height: 28px; }
.discovery-empty h3 { margin: 0 0 10px; font-size: 20px; }
.discovery-empty > p { max-width: 540px; margin: 0 0 20px; color: var(--slate); font-size: 15px; line-height: 1.7; }
.remote-view { display: grid; gap: 32px; padding: 28px 24px; border-radius: 10px; background: var(--ink-soft); color: var(--paper); }
.remote-view .eyebrow { color: #BBCDDD; }
.remote-view h2 { margin: 0 0 18px; font-size: 28px; line-height: 1.2; letter-spacing: -.024em; color: var(--paper); }
.remote-view > div > p:not(.eyebrow) { max-width: 480px; margin: 0 0 24px; color: #D7E1EA; font-size: 15px; line-height: 1.7; }
.viewing-steps { display: flex; flex-direction: column; justify-content: center; gap: 22px; margin: 0; padding: 0; list-style: none; }
.viewing-steps li { display: flex; gap: 16px; padding-bottom: 22px; border-bottom: 1px solid rgba(255,255,255,.15); }
.viewing-steps li:last-child { padding-bottom: 0; border-bottom: 0; }
.viewing-steps li > span { color: #BBCDDD; font: 500 12px/1.8 var(--font-mono); }
.viewing-steps strong { font: 700 16px/1.5 var(--font-display); }
.viewing-steps p { margin: 6px 0 0; font-size: 13px; color: #D7E1EA; line-height: 1.6; }
.trust-grid { display: grid; gap: 24px; }
.trust-grid > div { padding-top: 20px; border-top: 1px solid var(--line); }
.trust-grid__number { color: var(--slate); font: 500 10px/1.5 var(--font-mono); letter-spacing: .06em; }
.trust-grid h3 { margin: 14px 0 10px; font-size: 18px; }
.trust-grid p { margin: 0; color: var(--slate); font-size: 14px; line-height: 1.7; }
.owner-invite { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px; padding: 28px; background: var(--brand-tint); border-radius: 10px; }
.owner-invite h2 { margin: 0 0 8px; font-size: 24px; }
.owner-invite p:not(.eyebrow) { margin: 0; color: var(--slate); font-size: 14px; line-height: 1.6; }
.rr-ui .screen--archive { padding-top: 28px; padding-bottom: 22px; background: var(--mist); border-bottom: 1px solid var(--line); }
.rr-ui .screen--archive .screen__title--page { margin-top: 20px; font-size: 25px; line-height: 1.3; }
.rr-ui .archive__count { font-size: 13px; line-height: 1.6; }
.rr-ui .pick__btn { border-radius: 8px; min-height: 48px; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.rr-ui .fchip { min-height: 44px; border-radius: 8px; }
.rr-ui .listing__title { font-size: 30px; }
.rr-ui .booking--teaser { background: var(--brand-tint); border: 1px solid var(--line); border-radius: 10px; }
.rr-ui .site-footer { margin-top: 28px; border-top: 1px solid var(--ink-soft); background: var(--ink); }
.rr-ui .footer__data { color: inherit; }
.rr-ui .footer__pitch { max-width: 260px; }
.rr-ui .tabbar { background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -4px 20px rgba(14,20,27,.04); }
.rr-ui .tabbar__tab[aria-current="page"] { color: var(--brand); }
.rr-ui :is(a,button,select,input):focus-visible { outline: 2px solid var(--brand-hi); outline-offset: 4px; }
@media (min-width: 600px) {
 .discover { padding: 54px 0 32px; }
 .discover h1 { font-size: 42px; }
 .discover--city h1 { font-size: 36px; }
 .discovery-search:not(.discovery-search--city) { flex-direction: row; align-items: end; }
 .discovery-search:not(.discovery-search--city) .btn { min-width: 190px; }
 .city-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .discovery-section { padding: 44px 0; }
 .discovery-section--compact { padding: 24px 0 0; }
 .trust-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .remote-view { padding: 40px; }
}
@media (min-width: 900px) {
 .rr-ui .burger { display: none; }
 .rr-ui .appbar__row { min-height: 76px; }
 .discover { padding: 64px 0 36px; }
 .discover h1 { font-size: 48px; }
 .discover--city { padding-top: 40px; }
 .discover--city h1 { font-size: 38px; }
 .discovery-search--city { max-width: 100%; grid-template-columns: 1fr 1.35fr 1fr auto; align-items: end; padding: 18px; gap: 20px; }
 .discovery-search--city .btn { min-width: 165px; }
 .discovery-head h2 { font-size: 28px; }
 .city-card { padding: 26px; }
 .remote-view { grid-template-columns: 1.2fr 1fr; gap: 80px; padding: 48px; }
 .remote-view h2 { font-size: 34px; }
 .rr-ui .screen--archive .screen__title--page { font-size: 30px; }
 .rr-ui .card__body { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) { .rr-ui *, .rr-ui *::before, .rr-ui *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }

.rr-ui .card .price__deposit { flex-basis: 100%; margin: 2px 0 0; }
.rr-ui .card .price__deposit::before { content: none; }
.rr-ui .discover--city + .discovery-section .eyebrow { display: none; }

/* Browse-first density: controls stay together and the list starts early. */
.discover, .discover--city { padding: 24px 0; }
.discover h1, .discover--city h1 { font-size: 28px; line-height: 1.18; }
.discover__copy, .discover--city .discover__copy { margin: 8px 0 16px; font-size: 14px; line-height: 1.5; }
.discovery-search { max-width: 100%; box-shadow: var(--shadow-sm); }
.discovery-head { margin-bottom: 16px; gap: 6px 20px; }
.discovery-head h2 { font-size: 21px; }
.discovery-head > p { font-size: 12px; }
.discovery-section--listings { padding-top: 24px; }
.rr-ui .grid { gap: 16px; }
@media (max-width: 599px) {
 .discovery-search:not(.discovery-search--city) { display: flex; flex-direction: row; align-items: end; gap: 8px; padding: 10px; }
 .discovery-search:not(.discovery-search--city) .btn { width: 50px; min-width: 50px; padding: 0; }
 .discovery-search:not(.discovery-search--city) .btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
 .discovery-search__field > span { margin-left: 0; font-size: 9px; }
 .discovery-search select { border: 0; background: var(--mist); padding: 8px; }
 .discovery-search--city { padding: 10px; gap: 10px; }
 .discovery-search--city .discovery-search__field:nth-child(2) { grid-column: auto; }
 .rr-ui .grid { gap: 12px; }
 .rr-ui .screen--archive { padding: 18px 0; }
 .rr-ui .screen--archive .screen__title--page { font-size: 20px; margin-top: 14px; }
 .rr-ui .discovery-section { padding-block: 24px; }
 .rr-ui .remote-view { gap: 24px; }
 .rr-ui .remote-view h2 { font-size: 24px; }
}
@media (min-width: 600px) {
 .discover, .discover--city { padding: 32px 0; }
 .discover h1, .discover--city h1 { font-size: 36px; }
 .discovery-head h2 { font-size: 25px; }
 .discovery-search:not(.discovery-search--city) { max-width: 650px; }
}
.verification-details { margin-top: 12px; border: 1px solid var(--line); border-radius: 8px; }
.verification-details summary { padding: 13px 14px; min-height: 48px; cursor: pointer; color: var(--brand); font-size: 14px; font-weight: 600; }
.verification-details .evidence { border: 0; border-top: 1px solid var(--line); border-radius: 0; margin: 0; }
.verification-details summary:focus-visible { outline: 2px solid var(--brand-hi); outline-offset: 3px; }
@media (max-width: 599px) {
 .rr-ui .listing__title { font-size: 24px; line-height: 1.22; }
 .rr-ui .listing__head { margin-top: 20px; }
 .rr-ui .booking--teaser { padding: 18px; margin-top: 20px; }
}
.rr-ui .card__title, .rr-ui .card__title a { white-space: normal; }

/* Photo-led cards: one clear price row and compact, readable facts. */

.rr-ui .card .price { margin-bottom: 8px; gap: 4px; }
.rr-ui .card .price__figure { font-size: 22px; }
.rr-ui .card .price__deposit { flex-basis: auto; margin-left: auto; font-size: 11px; }
.rr-ui .card__title { font-size: 16px; line-height: 1.35; margin-bottom: 6px; }
.rr-ui .card__title a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rr-ui .card__place { margin-bottom: 5px; font-size: 13px; }
.rr-ui .card__meta { font-size: 12px; line-height: 1.5; }
.rr-ui .card__foot { padding-top: 9px; margin-top: 10px; }
.rr-ui .card__save { width: 48px; height: 48px; }
.card__distance { margin: 0 0 7px; font-size: 12px; font-weight: 600; color: var(--brand); }
.near-entry { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 13px; font-weight: 600; color: var(--brand); }
.near-entry svg { width: 16px; height: 16px; }
.near-search { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 12px; }
.near-search__location, .near-search > .btn, .near-search__status, .near-search__pages { grid-column: 1 / -1; }
.near-search label { display: block; font-size: 13px; color: var(--slate); }
.near-search select { display: block; 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__actions { display: flex; gap: 18px; flex-wrap: wrap; }
.near-search__actions button { min-height: 44px; }
.near-search__status { font-size: 13px; color: var(--slate); margin: 0; }
.near-search__pages { display: flex; align-items: center; gap: 16px; }
.near-search__pages button { min-height: 48px; padding: 10px; }
[data-google-place] gmp-place-autocomplete { width: 100%; margin-block: 8px; }
@media(min-width:900px) {
 .near-search { grid-template-columns: minmax(250px,2fr) 1fr 100px auto; }
 .near-search__location, .near-search > .btn { grid-column: auto; }
 .near-search > .btn { margin-top: 25px; }
}

/* Card reading order follows its markup, independent of older price-first rules. */
.rr-ui .card__body { gap: 0; }
.rr-ui .card__body > * { order: 0; }
.rr-ui .card__media { overflow: hidden; }
.rr-ui .card__place { color: var(--ink-soft); align-items: flex-start; }
.rr-ui .card__place svg { margin-top: 3px; }
.rr-ui .card__nearby { margin: 0 0 8px; font-size: 12px; color: var(--slate); line-height: 1.45; }
.rr-ui .card__configuration { margin: 2px 0 8px; font-size: 12px; font-weight: 600; color: var(--ink-soft); }
.rr-ui .card__features { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.rr-ui .card__features li { padding: 4px 7px; border-radius: 4px; background: var(--mist); color: var(--ink-soft); font-size: 11px; line-height: 1.4; }
.rr-ui .card__features .card__more { background: transparent; color: var(--slate); padding-inline: 3px; }
.rr-ui .card__foot { margin-top: 12px; }
.card__photo-count { position: absolute; bottom: 10px; right: 10px; z-index: 3; padding: 4px 7px; border-radius: 4px; background: var(--ink-soft); color: var(--paper); font-size: 10px; pointer-events: none; }
.card__no-photo { display: grid; place-items: center; height: 100%; color: var(--slate); font-size: 13px; }
@media(max-width:599px) {
 .rr-ui .card__body { padding: 12px 14px; }
 
 .rr-ui .card__features li { font-size: 12px; }
 .rr-ui .card .price__figure { font-size: 22px; }
}

/* Mobile: clear landscape photo, compact details without a narrow crop. */
@media (max-width: 599px) {
 
 .rr-ui .card__body { padding: 10px 12px; }
 .rr-ui .card .price { margin-bottom: 5px; }
 .rr-ui .card .price__figure { font-size: 20px; }
 .rr-ui .card .price__deposit { font-size: 11px; }
 .rr-ui .card__title { font-size: 14px; line-height: 1.3; margin-bottom: 4px; }
 .rr-ui .card__place { font-size: 12px; line-height: 1.35; margin-bottom: 3px; }
 .rr-ui .card__nearby { font-size: 11px; line-height: 1.35; margin-bottom: 4px; }
 .rr-ui .card__configuration { font-size: 11px; margin: 0 0 5px; }
 .rr-ui .card__features { gap: 4px; }
 .rr-ui .card__features li { font-size: 11px; padding: 3px 6px; }
 .rr-ui .card__foot { margin-top: 6px; padding-top: 6px; }
 .rr-ui .stamp--line { line-height: 1.4; }
 .rr-ui .card__save { width: 44px; height: 44px; min-height: 44px; }
}

/* Keep useful facts together, with breathing room around the photograph. */
.rr-ui .card__place { margin-bottom: 8px; }
.rr-ui .card__landmark { color: var(--slate); }
.rr-ui .card__features .card__config-chip { color: var(--brand); background: var(--brand-tint); font-weight: 600; }
@media(max-width:599px) {
 .rr-ui .card__place { margin-bottom: 7px; }
 .rr-ui .card__foot { border-top: 0; margin-top: 7px; padding-top: 0; }
 .rr-ui .card__body { padding: 10px 12px 9px; }
 .rr-ui .card__features { gap: 4px; }
 .rr-ui .card { box-shadow: var(--shadow-sm); }
}

/* City entry: a compact search workspace, with photographs immediately below. */
.city-discovery { padding:20px 0 14px; background:linear-gradient(110deg,var(--brand-tint),var(--mist) 58%,var(--paper)); border-bottom:1px solid var(--line); }
.city-discovery__layout { display:grid; gap:12px; }
.city-discovery__intro h1 { margin:0; font:800 25px/1.15 var(--font-display); letter-spacing:-.032em; }
.city-discovery__intro h1 span { color:var(--brand); }
.city-discovery__intro p { margin:5px 0 0; font-size:12px; color:var(--slate); }
.city-discovery__search { display:flex; align-items:center; gap:8px; min-width:0; }
.city-search { display:flex; align-items:center; gap:9px; min-width:0; flex:1; min-height:52px; padding:6px 7px 6px 13px; border:1px solid #C9D8E7; border-radius:10px; background:var(--paper); box-shadow:var(--shadow-card); text-decoration:none; color:var(--ink-soft); font-size:13px; font-weight:500; }
.city-search > svg { width:18px; height:18px; flex-shrink:0; color:var(--brand); }
.city-search > span:not(.city-search__go) { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.city-search__go { display:grid; place-items:center; margin-left:auto; width:36px; height:36px; flex-shrink:0; border-radius:7px; background:var(--brand); color:var(--paper); }
.city-search__go svg { width:18px; height:18px; }
.city-search:hover { border-color:var(--brand); }
.city-search__locate { display:grid; place-items:center; width:44px; height:48px; flex-shrink:0; border:1px solid var(--line); border-radius:9px; background:var(--paper); color:var(--brand); cursor:pointer; }
.city-search__locate[hidden] { display:none; }
.city-search__locate svg { width:20px; height:20px; }
.city-discovery__types { display:flex; gap:5px; overflow-x:auto; scrollbar-width:none; }
.city-discovery__types a { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:7px 10px; flex-shrink:0; border:1px solid transparent; border-radius:7px; color:var(--slate); font:600 12px var(--font-body); text-decoration:none; white-space:nowrap; }
.city-discovery__types .is-selected { background:var(--ink); color:var(--paper); }
.city-discovery__types a:not(.is-selected):hover { background:var(--paper); border-color:var(--line); color:var(--brand); }
.city-discovery__areas { display:flex; align-items:center; gap:14px; overflow-x:auto; scrollbar-width:none; white-space:nowrap; min-height:30px; font-size:12px; }
.city-discovery__areas > span { color:var(--slate); font-size:11px; }
.city-discovery__areas a { display:inline-flex; align-items:center; min-height:32px; color:var(--ink-soft); text-decoration:none; flex-shrink:0; }
.city-discovery__areas a:hover { text-decoration:underline; }
.city-discovery__areas .city-discovery__all { color:var(--brand); font-weight:600; gap:6px; }
.city-discovery + .discovery-section--listings { padding-top:20px; }
.city-discovery + .discovery-section--listings .discovery-head { margin-bottom:14px; }
.city-discovery :is(a,button):focus-visible { outline:2px solid var(--brand-hi); outline-offset:3px; }
@media(min-width:900px) {
 .city-discovery { padding:28px 0 20px; }
 .city-discovery__layout { grid-template-columns:minmax(280px,.9fr) minmax(420px,1.1fr); gap:20px 48px; align-items:center; }
 .city-discovery__intro h1 { font-size:32px; }
 .city-discovery__intro p { font-size:14px; margin-top:7px; }
 .city-search { min-height:60px; font-size:15px; padding:8px 9px 8px 16px; gap:12px; }
 .city-search__go { width:40px; height:40px; }
 .city-search__locate { height:56px; width:48px; }
 .city-discovery__types a { font-size:13px; padding:8px 14px; }
 .city-discovery__areas { justify-content:flex-start; gap:18px; }
}
@media(max-width:389px) {
 .city-discovery__search { gap:5px; }
 .city-search { font-size:12px; gap:6px; padding-left:9px; }
 .city-search__go { width:30px; }
 .city-discovery__types { gap:1px; }
 .city-discovery__types a { padding-inline:8px; }
}
/* Photo-led cards: compact facts without squeezing the image. */
.rr-ui .card { border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow-card); }

.rr-ui .card__body { padding:12px 14px; }
.rr-ui .card .price { align-items:baseline; gap:3px; margin:0 0 7px; }
.rr-ui .card .price__figure { font-size:22px; font-weight:800; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.rr-ui .card .price__unit { font-size:11px; }
.rr-ui .card .price__deposit { margin-left:auto; padding-left:8px; color:var(--slate); font-size:11px; }
.rr-ui .card__title { font-size:15px; line-height:1.35; margin:0 0 6px; }
.rr-ui .card__place { font-size:12px; gap:5px; margin:0 0 8px; line-height:1.4; }
.rr-ui .card__place > span:first-of-type { min-width:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.rr-ui .card__place .card__distance { flex-shrink:0; margin:0 0 0 auto; padding-left:4px; color:var(--brand); font-size:11px; font-weight:600; white-space:nowrap; }
.rr-ui .card__features { gap:4px 6px; }
.rr-ui .card__features li { padding:2px 0; background:transparent; font-size:11px; color:var(--slate); }
.rr-ui .card__features li + li::before { content:'·'; padding-right:6px; color:var(--slate-light); }
.rr-ui .card__features .card__config-chip { background:transparent; color:var(--ink-soft); font-weight:600; }
.rr-ui .card__features .card__more { padding-inline:0; }
.rr-ui .card__foot { margin-top:8px; padding-top:7px; border-top:1px solid var(--line-soft); }
.rr-ui .card__photo-count { min-width:36px; text-align:center; border-radius:5px; background:rgba(14,20,27,.78); font:500 11px var(--font-body); padding:4px 7px; }
.rr-ui .card:hover .card__media img { transform:none; }
@media(max-width:599px) {
 
 .rr-ui .card__body { padding:10px 12px; }
 .rr-ui .card .price__figure { font-size:21px; }
 .rr-ui .card__title { font-size:14px; }
 .rr-ui .card__foot { margin-top:7px; padding-top:6px; }
}

/* Listing detail: clear photos, compact decisions, optional extra detail. */
.listing__overview { display: grid; gap: 16px; }
.listing__overview > * { min-width: 0; }
.listing__overview .gallery__strip { position: relative; padding: 0; gap: 0; width: 100%; }
.listing__overview .gallery__slide { flex: 0 0 100%; margin: 0; }
.gallery__open { display: block; position: relative; background: var(--mist-deep); }
.listing__overview .gallery__img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: contain; }
.gallery__enlarge { position: absolute; right: 10px; bottom: 10px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--r-btn); background: var(--paper); color: var(--ink); font-size: 24px; box-shadow: var(--shadow-sm); }
.gallery__meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 6px; font: 11px var(--font-mono); color: var(--slate); }
.listing__overview .gallery__thumbs { padding: 8px 0 0; margin: 0; }
.listing__overview .gallery__thumb { width: 54px; height: 44px; }
.listing__overview .listing__title { font-size: clamp(23px, 3vw, 34px); line-height: 1.18; overflow-wrap: anywhere; }
.listing__overview .listing__where { font-size: 14px; line-height: 1.45; }
.listing__overview .listing__head .price { margin-top: 10px; }
.listing__overview .listing__head .stamp { margin-top: 10px; }
.listing__details.section { padding-top: 18px; padding-bottom: 28px; }
.listing__factgrid { display: grid; gap: 14px; align-items: start; }
.listing__factgrid .factgroup { margin: 0; min-width: 0; }
.listing__factgrid .factgroup__h { color: var(--slate); font-size: 12px; }
.listing__payment-note { margin-top: 10px; font-size: 12px; color: var(--slate); }
.listing__details .listing__h2 { margin-top: 24px; font-size: 20px; }
.listing__disclosure { border-bottom: 1px solid var(--line); margin-top: 12px; }
.listing__disclosure summary { padding: 14px 0; min-height: 48px; cursor: pointer; font-weight: 600; }
.listing__disclosure[open] { padding-bottom: 14px; }
.listing__details .booking--teaser { margin-top: 22px; padding: 16px; }
.listing__details .booking--teaser .listing__h2 { font-size: 17px; margin: 0; }
.listing__details .booking__intro { margin: 8px 0 12px; font-size: 14px; }
.listing__details .booking--teaser .booking__terms { display: none; }
.photo-viewer { padding: 12px 16px; border: 0; width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; background: var(--ink); color: var(--paper); }
.photo-viewer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 8px; padding-top: max(12px, env(safe-area-inset-top)); padding-bottom: max(12px, env(safe-area-inset-bottom)); }
.photo-viewer::backdrop { background: var(--ink); }
.photo-viewer__bar, .photo-viewer__nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.photo-viewer__bar p { font-size: 13px; }
.photo-viewer button { min-height: 48px; min-width: 48px; padding: 8px 12px; background: var(--ink-soft); color: var(--paper); border: 1px solid var(--slate); border-radius: var(--r-btn); cursor: pointer; }
.photo-viewer button:disabled { opacity: .4; cursor: default; }
.photo-viewer [data-photo-close] { font-size: 26px; }
.photo-viewer__image { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.photo-viewer__nav span { font-size: 12px; color: var(--slate-light); text-align: center; }
@media (min-width: 900px) {
  .listing__overview { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px; align-items: center; }
  .listing__overview .gallery__img { aspect-ratio: 16 / 9; }
  .listing__factgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .listing__details .booking--teaser { max-width: 680px; }
}
@media (max-width: 599px) { .photo-viewer__nav span { display: none; } }
.listing__overview > .listing__head:only-child { grid-column: 1 / -1; }

.listing__factgrid .facts__row:last-child:nth-child(odd) { grid-column: 1 / -1; }

.rr-ui .listing__overview .listing__head { margin-top: 0; }

/* Visit booking: one decision per step. Native form fields remain the source of truth. */
.booking__form [hidden] { display: none !important; }
.booking-steps { display: flex; gap: 16px; padding: 0; margin: 8px 0 16px; list-style: none; font-size: 13px; color: var(--slate); }
.booking-steps li { flex: 1; padding-bottom: 8px; border-bottom: 2px solid var(--line); }
.booking-steps li[aria-current="step"] { color: var(--brand); border-color: var(--brand); font-weight: 700; }
.booking-step-title { margin: 0 0 12px; padding: 0; font-size: 18px; font-weight: 700; }
.booking-personal { min-width: 0; margin: 0; padding: 0; border: 0; width: 100%; }
.booking-review { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; margin-bottom: 14px; background: var(--brand-tint); border-radius: var(--r-btn); font-size: 13px; }
.booking-review button, .booking-memory button { border: 0; padding: 6px 0; min-height: 44px; background: none; color: var(--brand); text-decoration: underline; cursor: pointer; flex-shrink: 0; }
.booksheet .booking__intro--compact { font-size: 13px; margin: 8px 0; }
.booksheet [data-dates] { display: flex; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; }
.booksheet [data-dates] .pill { flex: 0 0 auto; }
.booksheet .booking__row { margin-bottom: 14px; }
.booksheet [data-book-next] { margin-top: 14px; }
.booking-step-error { color: var(--slate); font-size: 13px; margin: 8px 0; }
.booking-memory { margin: 12px 0 16px; font-size: 13px; }
.booking-memory label { display: flex; gap: 8px; align-items: center; min-height: 44px; cursor: pointer; font-weight: 600; }
.booking-memory input { width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--brand); }
.booking-memory p, .booking-memory__saved { color: var(--slate); font-size: 12px; margin-top: 2px; }
.booking-memory__saved { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.booking-memory [hidden] { display: none !important; }
.booksheet .modetile input:checked + .modetile__body { border-color: var(--brand); background: var(--brand-tint); box-shadow: 0 0 0 1px var(--brand); }
.booksheet .modetile input:checked + .modetile__body .modetile__name { color: var(--brand); }
.booksheet [data-times]:empty::after { content: none; }
.booking-notes { margin: 10px 0; font-size: 13px; }
.booking-notes summary { cursor: pointer; min-height: 44px; padding: 12px 0; font-weight: 600; }
.booking-notes summary span { font-weight: 400; color: var(--slate); margin-left: 6px; }
.booksheet .booking-personal .field__hint { font-size: 12px; }
