/* Fluid public shell and discovery navigation. Tokens live in dompad.css.
   Load after page styles; object geometry remains in object-grid.css. */
html { scroll-padding-block: 100px calc(var(--dp-dock-space) + 20px); }
.site-shell .site-frame { width: calc(100% - var(--dp-gutter) - var(--dp-gutter)); max-width: none; margin-inline: auto; }
.site-shell { padding-bottom: var(--dp-dock-space); }
.site-main, .site-main .catalog-results, .site-main .catalog-split > *, .site-footer__row > * { min-width: 0; }
.site-main :is(input, select, textarea) { max-width: 100%; }
.site-main :is(h1, h2, h3, .btn) { overflow-wrap: anywhere; }
.site-main :is(a, button, input, select, textarea, summary) { scroll-margin-block: 100px calc(var(--dp-dock-space) + 24px); }
.site-header { background: var(--dp-surface); border-bottom: 1px solid var(--dp-line); }
.site-header__row { gap: clamp(12px, 1.4vw, 26px); flex-wrap: wrap; }
.brand { gap: 10px; }
.brand__mark { border-radius: 50%; box-shadow: 3px 3px 0 var(--dp-primary); }
.brand__name { color: var(--dp-ink); font-size: clamp(17px, 1.1vw, 21px); }
.brand__sub { color: var(--dp-muted); font-size: 10px; }
.site-nav { flex-wrap: wrap; gap: 2px; }
.site-nav a, .account-nav a, .account-nav button { color: var(--dp-ink); font-size: 13px; padding-inline: clamp(8px, .65vw, 13px); }
.site-nav a:hover, .account-nav a:hover, .account-nav button:hover { color: var(--dp-primary-strong); background: var(--dp-meta-bg); }
.site-nav a[aria-current='page'] { background: var(--dp-status-construction-bg); color: var(--dp-primary-strong); }
.account-nav .nav-primary { border-radius: 99px; padding-inline: 16px; }
.menu-toggle { color: var(--dp-ink); border-color: var(--dp-line); border-radius: 50%; }
.mobile-nav { background: var(--dp-surface); max-height: 65dvh; overflow-y: auto; }
.mobile-nav a { color: var(--dp-ink); }
.mobile-nav a:hover { color: var(--dp-primary-strong); }
.ui-icon { flex-shrink: 0; vertical-align: middle; }
.site-footer { margin-top: clamp(32px, 4vw, 72px); }
.site-footer__row { flex-wrap: wrap; }
.site-footer__links { gap: 6px clamp(10px, 1.5vw, 24px); }

/* A profile-like heading and genuine navigation; no invented activity. */
.discovery-profile { display: flex; gap: clamp(16px, 2vw, 32px); align-items: center; min-width: 0; }
.discovery-profile > div { min-width: 0; }
.discovery-profile__avatar { position: relative; flex: 0 0 clamp(64px, 7vw, 108px); aspect-ratio: 1; display: grid; place-items: center; border: 2px solid var(--dp-primary); border-radius: 50%; background: var(--dp-ink); box-shadow: inset 0 0 0 5px var(--dp-surface); color: var(--dp-signal); font-family: var(--dp-font-display); font-size: clamp(23px, 3vw, 40px); letter-spacing: -.08em; }
.discovery-profile__avatar > span { position: absolute; bottom: -2px; right: -2px; display: grid; place-items: center; width: 27px; height: 27px; border: 3px solid var(--dp-surface); border-radius: 50%; background: var(--dp-primary); color: var(--dp-surface); font: 18px var(--dp-font-sans); }
.site-main .catalog-intro { margin-bottom: clamp(20px, 2.6vw, 40px); }
.site-main .catalog-intro .page-title { font-size: clamp(24px, 2.5vw, 46px); line-height: 1.2; letter-spacing: -.045em; text-wrap: balance; }
.site-main .catalog-intro .lede { max-width: 65ch; font-size: clamp(14px, 1vw, 17px); }
.catalog-social, .flats-layout { padding-block: clamp(24px, 3.2vw, 56px) clamp(40px, 5vw, 88px); }
.catalog-social .catalog-results { max-width: none; }
.catalog-highlights { gap: clamp(12px, 2vw, 32px); padding-block: 6px 20px; scroll-snap-type: x proximity; }
.catalog-highlight { scroll-snap-align: start; }
.catalog-highlight__ring { border-color: var(--dp-primary); box-shadow: 2px 2px 0 var(--dp-signal); }
.discovery-tabs { display: flex; gap: clamp(4px, 1.4vw, 24px); overflow-x: auto; border-top: 1px solid var(--dp-line); border-bottom: 1px solid var(--dp-line); margin-bottom: clamp(16px, 2vw, 28px); scrollbar-width: thin; }
.discovery-tabs a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex-shrink: 0; min-height: 56px; padding: 8px clamp(8px, 1.2vw, 20px); border-bottom: 3px solid transparent; color: var(--dp-muted); text-decoration: none; font-size: 13px; font-weight: 600; }
.discovery-tabs a[aria-current='page'] { border-bottom-color: var(--dp-primary); color: var(--dp-primary-strong); }
.discovery-tabs a:hover { color: var(--dp-ink); background: var(--dp-meta-bg); }
.discovery-tabs .ui-icon { width: 20px; height: 20px; }
.discovery-tabs__swipe { margin-left: auto; }
.catalog-filter-panel { border-radius: 16px; }
.catalog-filter-panel > summary { min-height: 68px; border-radius: 16px; }
.catalog-filter-panel__icon { background: var(--dp-status-construction-bg); color: var(--dp-primary-strong); border: 0; }
.catalog-social .catalog-filters { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: var(--dp-content-gap); }
.flats-layout .catalog-split { display: block; }
.flats-filter-panel { margin-bottom: 24px; border: var(--dp-panel-border); border-radius: 16px; background: var(--dp-surface); }
.flats-filter-panel > summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; min-height: 68px; padding: 12px clamp(14px, 2vw, 24px); cursor: pointer; list-style: none; }
.flats-filter-panel > summary::-webkit-details-marker { display: none; }
.flats-filter-panel > summary > span { display: flex; align-items: center; gap: 10px; }
.flats-filter-panel > summary > span:last-child { color: var(--dp-muted); font-size: 12px; }
.flats-filter-panel[open] > summary > span:last-child > span { transform: rotate(180deg); }
.flats-filter-panel .catalog-filters { position: static; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 18px; padding: clamp(14px, 2vw, 24px); border: 0; border-top: var(--dp-panel-border); border-radius: 0; background: transparent; }
.flats-filter-panel .field--wide { grid-column: auto; }
.flats-filter-panel .catalog-actions { grid-column: 1 / -1; margin: 0; }
.flats-filter-panel :is(input, select) { width: 100%; min-width: 0; }
.flats-filter-panel input[type='checkbox'] { width: auto; }

/* Fluid home composition; text keeps comfortable measure on wide screens. */
.home-hero { padding-top: clamp(28px, 4vw, 68px); }
.home-hero__grid { gap: clamp(24px, 4vw, 72px); padding-bottom: clamp(28px, 4vw, 64px); }
.home-hero h1 { font-size: clamp(32px, 4.2vw, 76px); max-width: 15ch; }
.home-hero__lede { max-width: 44ch; }
.home-photo-stack { width: min(100%, 480px); }
.home-section { padding-block: clamp(28px, 3vw, 52px); }
.home-section h2 { font-size: clamp(24px, 2.6vw, 46px); }
.home-section__head { gap: var(--dp-content-gap); flex-wrap: wrap; }
.home-section__head > div { min-width: 0; }
.home-start { gap: clamp(12px, 1.5vw, 24px); padding: clamp(16px, 2vw, 32px); }
.home-start__field :is(input, select) { width: 100%; min-width: 0; }
.home-jumps a { border-radius: 99px; padding-inline: 16px; background: var(--dp-surface); border: var(--dp-panel-border); }
.home-stories { gap: clamp(12px, 1.3vw, 24px); }
.home-story { min-height: clamp(290px, 29vw, 460px); border-radius: 16px; }
.home-cities { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: var(--dp-content-gap); }
.home-city { min-height: clamp(230px, 20vw, 330px); border-radius: 16px; }
.home-budget strong { font-size: clamp(17px, 1.6vw, 28px); }
.home-swipe-invite, .home-metro, .home-help, .home-contact { gap: clamp(24px, 4vw, 72px); }
.home-journal { gap: var(--dp-content-gap); }
.mobile-dock { display: none; }

@media (min-width: 981px) and (max-width: 1400px) {
    .site-header__row { padding-block: 8px; gap: 4px 18px; }
    .site-nav { order: 3; flex: 1 1 100%; justify-content: space-between; }
    html { scroll-padding-top: 150px; }
    .site-main :is(a, button, input, select, textarea, summary) { scroll-margin-top: 150px; }
}
@media (max-width: 980px) {
    :root { --dp-dock-space: calc(76px + env(safe-area-inset-bottom, 0px)); }
    .site-header__row { min-height: 64px; flex-wrap: nowrap; }
    .mobile-dock { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: fixed; z-index: 45; inset: auto 0 0; padding: 6px max(8px, env(safe-area-inset-right, 0px)) calc(6px + env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-left, 0px)); background: var(--dp-surface); border-top: 1px solid var(--dp-line); }
    .mobile-dock a { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; min-width: 0; min-height: 64px; padding: 4px 2px; color: var(--dp-muted); font-size: 10px; font-weight: 600; text-decoration: none; border-radius: 10px; }
    .mobile-dock a[aria-current='page'] { background: var(--dp-status-construction-bg); color: var(--dp-primary-strong); }
    .mobile-dock__swipe .ui-icon { box-sizing: content-box; padding: 5px 12px; margin: -5px 0; border-radius: 10px; background: var(--dp-primary); color: var(--dp-surface); }
    .mobile-dock a:focus-visible, .discovery-tabs a:focus-visible { outline: 3px solid var(--dp-primary); outline-offset: -3px; }
    .shortlist-notice { bottom: calc(var(--dp-dock-space) + 12px); }
    .catalog-social .catalog-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 760px) {
    .home-hero__grid { grid-template-columns: 1fr; }
    .home-hero h1 { max-width: 16ch; font-size: clamp(32px, 6vw, 48px); }
    .home-photo-stack { width: min(100%, 300px); }
    .home-stories { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(200px, 68%); overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 12px; }
    .home-story { min-height: 310px; scroll-snap-align: start; }
    .home-cities { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
    .discovery-profile { align-items: flex-start; }
    .discovery-profile__avatar { flex-basis: 64px; }
    .catalog-intro .discovery-profile .page-title { font-size: clamp(22px, 4.5vw, 30px); }
    .catalog-intro .discovery-profile .lede { font-size: 13px; }
    .discovery-tabs { gap: 0; }
    .discovery-tabs a { min-height: 50px; font-size: 12px; padding-inline: 10px; }
    .discovery-tabs .ui-icon { width: 18px; height: 18px; }
}
@media (max-width: 420px) {
    .catalog-social .catalog-filters, .flats-filter-panel .catalog-filters { grid-template-columns: minmax(0, 1fr); }
    .catalog-social .catalog-filters .field--wide, .catalog-social .catalog-filters .field:has(.check-group) { grid-column: auto; }
    .discovery-profile { flex-wrap: wrap; gap: 14px; }
    .discovery-profile__avatar { flex-basis: 60px; }
    .discovery-profile > div { flex: 1 1 200px; }
}
@media (max-height: 480px) and (max-width: 980px) {
    :root { --dp-dock-space: 0px; }
    .mobile-dock { display: none; }
    .site-header { position: static; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (forced-colors: active) {
    .mobile-dock a[aria-current='page'], .discovery-tabs a[aria-current='page'] { outline: 2px solid Highlight; outline-offset: -3px; }
    .discovery-profile__avatar { border-color: CanvasText; }
}

/* Uncapped desktop canvas: a zoomed-out viewport remains a full-width layout.
   Scale component dimensions with the canvas, without CSS zoom/transforms or
   changing the browser's zoom. Small-screen rules and 44px targets stay intact. */
@media (min-width: 1760px) {
    :root { --dp-u: max(1px, calc(var(--dp-v) / 17.6)); }
    .site-shell { font-size: max(1rem, calc(1 * var(--dp-v))); }
    .site-header__row { min-height: calc(74 * var(--dp-u)); gap: calc(22 * var(--dp-u)); }
    .brand { gap: calc(12 * var(--dp-u)); }
    .brand__mark { width: calc(42 * var(--dp-u)); height: calc(42 * var(--dp-u)); font-size: calc(14 * var(--dp-u)); }
    .brand__name { font-size: max(1.0625rem, calc(1.1 * var(--dp-v))); }
    .brand__sub { font-size: max(.625rem, calc(.625 * var(--dp-v))); }
    .site-nav { flex: 1; justify-content: center; }
    .site-nav a, .account-nav a, .account-nav button { min-height: calc(44 * var(--dp-u)); font-size: max(.8125rem, calc(.8 * var(--dp-v))); padding-inline: calc(10 * var(--dp-u)); }
    .site-main .btn { min-height: calc(48 * var(--dp-u)); padding: calc(8 * var(--dp-u)) calc(20 * var(--dp-u)); font-size: max(.875rem, calc(.9 * var(--dp-v))); }
    .site-main :is(input:not([type='checkbox']):not([type='radio']), select, textarea) { font-size: max(1rem, calc(.95 * var(--dp-v))); padding: calc(12 * var(--dp-u)); }
    .site-main :is(input:not([type='checkbox']):not([type='radio']), select) { min-height: calc(46 * var(--dp-u)); }
    .site-main :is(.eyebrow, .home-kicker, .home-hero__note, .home-start__intro span, .home-start__field label) { font-size: max(.75rem, calc(.75 * var(--dp-v))); }
    .site-main .ui-icon { width: calc(24 * var(--dp-u)); height: calc(24 * var(--dp-u)); }
    .home-hero { padding-top: calc(4 * var(--dp-v)); }
    .home-hero__grid { gap: calc(4 * var(--dp-v)); padding-bottom: calc(3.6 * var(--dp-v)); }
    .home-hero h1 { font-size: max(4.75rem, calc(4.2 * var(--dp-v))); margin-block: calc(1.4 * var(--dp-v)); }
    .home-hero__lede { font-size: max(1.1875rem, calc(1.15 * var(--dp-v))); }
    .home-hero__visual { padding: calc(1.4 * var(--dp-v)) calc(2.5 * var(--dp-v)) calc(1.8 * var(--dp-v)) calc(.5 * var(--dp-v)); }
    .home-photo-stack { width: 82%; max-width: none; }
    .home-photo-stack__tag { top: calc(1 * var(--dp-v)); left: calc(1 * var(--dp-v)); padding: calc(.55 * var(--dp-v)) calc(.8 * var(--dp-v)); gap: calc(.8 * var(--dp-v)); font-size: max(.75rem, calc(.75 * var(--dp-v))); }
    .home-photo-stack__tag span { font-size: calc(1.2 * var(--dp-v)); }
    .home-photo-stack__caption { inset: auto calc(1.4 * var(--dp-v)) calc(1.5 * var(--dp-v)); gap: calc(.4 * var(--dp-v)); }
    .home-photo-stack__caption strong { font-size: max(1.6875rem, calc(1.7 * var(--dp-v))); }
    .home-photo-stack__caption :is(small, span) { font-size: max(.875rem, calc(.95 * var(--dp-v))); }
    .home-hero__sticker { padding: calc(1 * var(--dp-v)) calc(1.4 * var(--dp-v)); font-size: max(1rem, calc(1 * var(--dp-v))); }
    .home-hero__actions { gap: calc(1.5 * var(--dp-v)); margin-top: calc(1.8 * var(--dp-v)); }
    .home-text-link, .home-pulse { font-size: max(.875rem, calc(.9 * var(--dp-v))); }
    .home-hero__save { margin-top: calc(1 * var(--dp-v)); padding: calc(.2 * var(--dp-v)) calc(.6 * var(--dp-v)); }
    .home-start { padding: calc(1.8 * var(--dp-v)); gap: calc(1.5 * var(--dp-v)); }
    .home-start__intro strong, .home-pulse strong { font-size: max(1rem, calc(1.05 * var(--dp-v))); }
    .home-pulse { gap: calc(2 * var(--dp-v)); padding-block: calc(1.2 * var(--dp-v)); }
    .home-jumps { gap: calc(.8 * var(--dp-v)); padding-block: calc(1.2 * var(--dp-v)); }
    .home-jumps a { padding: calc(.6 * var(--dp-v)) calc(1 * var(--dp-v)); font-size: max(.75rem, calc(.8 * var(--dp-v))); }
    .home-section { padding-block: calc(3 * var(--dp-v)); }
    .home-section :is(h2, .section-title) { font-size: max(2.875rem, calc(2.6 * var(--dp-v))); }
    .home-section__head { margin-bottom: calc(1.8 * var(--dp-v)); }
    .home-section__head > p { max-width: 32ch; font-size: max(.875rem, calc(.9 * var(--dp-v))); }
    .home-section__head > a { font-size: max(.875rem, calc(.9 * var(--dp-v))); }
    .home-stories { gap: calc(1.3 * var(--dp-v)); }
    .home-story { min-height: 0; aspect-ratio: 4 / 5; padding: calc(1.25 * var(--dp-v)); }
    .home-story__body { gap: calc(.75 * var(--dp-v)); padding-top: calc(2.5 * var(--dp-v)); }
    .home-story__body strong { font-size: max(1.5625rem, calc(1.55 * var(--dp-v))); }
    .home-story__type, .home-story__body small { font-size: max(.75rem, calc(.75 * var(--dp-v))); padding: calc(.4 * var(--dp-v)) calc(.65 * var(--dp-v)); }
    .home-story__body > span { font-size: max(.875rem, calc(.9 * var(--dp-v))); }
    .home-city { min-height: 0; aspect-ratio: 2 / 1; }
    .home-city__body { bottom: calc(1.4 * var(--dp-v)); left: calc(1.4 * var(--dp-v)); right: calc(4 * var(--dp-v)); gap: calc(.4 * var(--dp-v)); }
    .home-city__body strong { font-size: max(1.6875rem, calc(1.7 * var(--dp-v))); }
    .home-city__body > span { font-size: max(.875rem, calc(.9 * var(--dp-v))); }
    .home-city__count { top: calc(1.1 * var(--dp-v)); left: calc(1.1 * var(--dp-v)); padding: calc(.4 * var(--dp-v)) calc(.65 * var(--dp-v)); font-size: max(.75rem, calc(.75 * var(--dp-v))); }
    .home-city__arrow { right: calc(1.1 * var(--dp-v)); bottom: calc(1.4 * var(--dp-v)); width: calc(2.3 * var(--dp-v)); height: calc(2.3 * var(--dp-v)); font-size: calc(1.4 * var(--dp-v)); }
    .home-swipe-invite, .home-metro, .home-contact { padding: calc(3 * var(--dp-v)); gap: calc(4 * var(--dp-v)); }
    .home-help { gap: calc(4 * var(--dp-v)); }
    .home-swipe-invite > div > p, .home-contact p { max-width: 44ch; font-size: max(1rem, calc(1 * var(--dp-v))); }
    .home-gesture-guide { gap: calc(.75 * var(--dp-v)); }
    .home-gesture-guide li { padding: calc(1.1 * var(--dp-v)); gap: calc(1.1 * var(--dp-v)); }
    .home-gesture-guide li > span { flex-basis: calc(3 * var(--dp-v)); height: calc(3 * var(--dp-v)); font-size: calc(1.6 * var(--dp-v)); }
    .home-gesture-guide strong { font-size: max(1rem, calc(1 * var(--dp-v))); }
    .home-gesture-guide p, .home-metro p, .home-metro__list small { font-size: max(.8125rem, calc(.85 * var(--dp-v))); }
    .home-budgets { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: calc(.9 * var(--dp-v)); }
    .home-budget { padding: calc(1.4 * var(--dp-v)); gap: calc(1.4 * var(--dp-v)); }
    .home-budget strong { font-size: max(1.75rem, calc(1.6 * var(--dp-v))); }
    .home-budget > span, .home-budget small { font-size: max(.75rem, calc(.8 * var(--dp-v))); }
    .home-metro__list a { min-height: calc(4.75 * var(--dp-v)); gap: calc(1 * var(--dp-v)); }
    .home-metro__symbol { font-size: calc(4.4 * var(--dp-v)); }
    .home-article h3 { font-size: max(1.0625rem, calc(1.3 * var(--dp-v))); }
    .home-article :is(time, p), .home-help :is(summary, p) { font-size: max(.875rem, calc(.95 * var(--dp-v))); }
    .home-contact .form-group { gap: calc(.5 * var(--dp-v)); }
    .home-contact .lead-form { gap: calc(.9 * var(--dp-v)); }
    .site-footer { margin-top: calc(4 * var(--dp-v)); padding-block: calc(2.4 * var(--dp-v)); }
    .site-footer__row { font-size: max(.875rem, calc(.85 * var(--dp-v))); }
    .site-footer__links { gap: calc(1.2 * var(--dp-v)); }

    .site-main :is(.page-title, .section-title), .site-main .catalog-intro .page-title { font-size: max(2.875rem, calc(2.6 * var(--dp-v))); }
    .site-main .catalog-intro .lede { font-size: max(1rem, calc(1 * var(--dp-v))); }
    .site-main .catalog-intro { margin-bottom: calc(2.6 * var(--dp-v)); }
    .catalog-social, .flats-layout { padding-block: calc(3.2 * var(--dp-v)) calc(5 * var(--dp-v)); }
    .discovery-profile { gap: calc(2 * var(--dp-v)); }
    .discovery-profile__avatar { flex-basis: calc(6.75 * var(--dp-v)); font-size: calc(2.5 * var(--dp-v)); }
    .catalog-highlights { gap: calc(2 * var(--dp-v)); padding-bottom: calc(1.2 * var(--dp-v)); }
    .catalog-highlight { flex-basis: calc(5 * var(--dp-v)); font-size: max(.75rem, calc(.75 * var(--dp-v))); gap: calc(.5 * var(--dp-v)); }
    .catalog-highlight__ring { width: calc(4.6 * var(--dp-v)); height: calc(4.6 * var(--dp-v)); }
    .catalog-highlight__ring > span { font-size: calc(1.5 * var(--dp-v)); }
    .discovery-tabs { margin-bottom: calc(1.8 * var(--dp-v)); gap: calc(1.4 * var(--dp-v)); }
    .discovery-tabs a { min-height: calc(3.5 * var(--dp-v)); font-size: max(.8125rem, calc(.85 * var(--dp-v))); gap: calc(.5 * var(--dp-v)); padding-inline: calc(1.2 * var(--dp-v)); }
    .catalog-filter-panel > summary, .flats-filter-panel > summary { min-height: calc(4.25 * var(--dp-v)); padding: calc(1 * var(--dp-v)) calc(1.4 * var(--dp-v)); }
    .catalog-filter-panel summary strong { font-size: max(1.0625rem, calc(1.1 * var(--dp-v))); }
    .catalog-filter-panel summary small, .catalog-filter-panel__toggle, .flats-filter-panel > summary > span:last-child { font-size: max(.75rem, calc(.8 * var(--dp-v))); }
    .catalog-filter-panel__icon { flex-basis: calc(2.5 * var(--dp-v)); height: calc(2.5 * var(--dp-v)); font-size: calc(1.6 * var(--dp-v)); }
    .catalog-social .catalog-filters, .flats-filter-panel .catalog-filters { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: calc(1.4 * var(--dp-v)); gap: calc(1.2 * var(--dp-v)); }
    .catalog-social .results-status, .results-status, .filter-chip, .pagination { font-size: max(.8125rem, calc(.85 * var(--dp-v))); }
    .catalog-social .results-status { margin-bottom: calc(1.1 * var(--dp-v)); }
    .site-main .catalog-filters label { font-size: max(.8125rem, calc(.85 * var(--dp-v))); }
    .catalog-filter-panel, .flats-filter-panel { margin-bottom: calc(1.5 * var(--dp-v)); }
    .shortlist-button { min-height: calc(44 * var(--dp-u)); font-size: max(.8125rem, calc(.85 * var(--dp-v))); gap: calc(.45 * var(--dp-v)); }
    .shortlist-button svg { width: calc(22 * var(--dp-u)); height: calc(22 * var(--dp-u)); }
    .shortlist-notice { font-size: max(.875rem, calc(.85 * var(--dp-v))); }
}


/* Full-width layout with vertical sizing constrained by the visible screen. */
:root { --dp-v: min(1vw, 1.35svh); }
@media (min-width: 761px) {
    .home-hero { padding-top: clamp(18px, 2.4svh, 36px); }
    .home-hero__grid { padding-bottom: clamp(20px, 2.8svh, 42px); gap: clamp(24px, 3vw, 64px); }
    .home-hero__visual { padding: 12px 28px 18px; }
    .home-photo-stack { width: min(82%, 42svh); max-width: none; }
    .home-hero h1 { font-size: clamp(32px, min(4.2vw, 7svh), 96px); max-width: 18ch; margin-block: clamp(14px, 2svh, 24px); }
    .home-hero__lede { font-size: clamp(16px, min(1.15vw, 2.2svh), 23px); }
    .home-hero__actions { margin-top: clamp(16px, 2.4svh, 28px); gap: 20px; }
    .home-hero__note { margin-top: 12px; }
    .home-hero__save { margin-top: 12px; padding-block: 0; }
    .home-hero__sticker { font-size: clamp(12px, 1.6svh, 18px); padding: 12px 18px; }
    .home-start { padding: clamp(14px, 1.8svh, 24px); gap: clamp(12px, 1.4vw, 24px); }
    .home-pulse { padding-block: clamp(12px, 1.6svh, 22px); }
    .home-jumps { padding-block: 12px 0; }
    .home-section { padding-block: clamp(22px, 3.4svh, 44px); }
    .home-section__head { margin-bottom: clamp(16px, 2.4svh, 28px); }
    .home-section :is(h2, .section-title) { font-size: clamp(26px, min(2.6vw, 4.8svh), 56px); }
    .home-story { aspect-ratio: auto; min-height: clamp(260px, 40svh, 560px); }
    .home-city { aspect-ratio: auto; min-height: clamp(220px, 30svh, 420px); }
    .home-swipe-invite, .home-metro, .home-contact { padding: clamp(24px, 3.4svh, 48px); }
    .site-footer { margin-top: clamp(28px, 4svh, 56px); padding-block: clamp(24px, 3svh, 40px); }
    .catalog-social, .flats-layout { padding-block: clamp(20px, 3svh, 42px) clamp(32px, 4svh, 56px); }
    .site-main .catalog-intro { margin-bottom: clamp(18px, 2.6svh, 32px); }
    .discovery-tabs { margin-bottom: clamp(16px, 2.2svh, 26px); }
    .catalog-filter-panel, .flats-filter-panel { margin-bottom: clamp(16px, 2.2svh, 26px); }
}
/* Card controls scale with a tile, even when the surrounding page is wide. */
.object-tile .shortlist-button { min-height: 44px; font-size: clamp(.6875rem, 3.5cqi, 1rem); gap: 6px; }
.object-tile .shortlist-button svg { width: clamp(18px, 5cqi, 24px); height: clamp(18px, 5cqi, 24px); }
@media (max-width: 760px) {
    .home-hero { padding-top: 20px; }
    .home-hero__grid { gap: 16px; padding-bottom: 22px; }
    .home-hero__visual { width: min(100%, 320px); padding: 10px 24px 18px; }
    .home-photo-stack { width: min(100%, 240px); aspect-ratio: 6 / 5; }
    .home-photo-stack__caption { inset: auto 14px 14px; gap: 3px; }
    .home-photo-stack__caption strong { font-size: 18px; }
    .home-photo-stack__tag { top: 10px; left: 10px; padding: 6px 9px; font-size: 10px; }
    .home-hero__save { margin-top: 8px; }
    .home-hero__sticker { padding: 8px 12px; font-size: 11px; }
    .home-hero__actions { margin-top: 20px; gap: 10px; }
    .home-hero__actions .btn { min-height: 48px; }
    .home-hero__note { margin-top: 12px; }
    .home-start { padding: 14px; gap: 10px; }
    .home-pulse { padding-block: 14px; }
}
