/* Reference proportions with EstateHub's original blue identity. */
@font-face {
  font-family:"Inter"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url('/fonts/inter/InterVariable.woff2') format('woff2');
}
:root {
  --ink:#182638; --muted:#56657a; --line:#dce3ed; --surface:#ffffff;
  --soft:#f5f7fb; --soft-2:#edf0f5; --accent:#2563eb; --accent-2:#2563eb;
  --accent-ink:#1d4ed8; --accent-soft:#eef4ff; --action:#2563eb; --focus:#2563eb;
  --shadow:0 2px 4px #18263808,0 6px 16px #1826380d;
  --page-gutter:max(24px,calc((100vw - 1232px)/2));
  --font-ui:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-display:var(--font-ui);
}
body { background:#fff; color:var(--ink); font-optical-sizing:auto; }
button,input,select,textarea { font-family:var(--font-ui); }
button:focus-visible,summary:focus-visible,a:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
input[type="checkbox"],input[type="radio"],input[type="range"] { accent-color:var(--action); }
button.primary,button.filter-apply { background:var(--action); border-color:var(--action); color:#fff; box-shadow:none; }
button.primary:hover,button.filter-apply:hover { background:var(--accent-ink); border-color:var(--accent-ink); }
button.ghost { background:#fff; color:var(--ink); border-color:var(--line); box-shadow:none; }
button.ghost:hover { background:var(--soft); border-color:#aaa; }

/* The same content edges are used by the header, search, results and detail. */
.topbar { min-height:80px; padding:14px var(--page-gutter); gap:24px; background:#fff; border-bottom:1px solid #ebebeb; box-shadow:none; }
.topbar .brand { gap:10px; padding:0; background:transparent; border:0; }
.topbar .brand-mark { width:28px; height:34px; flex:0 0 28px; color:var(--accent); background:transparent; border:0; border-radius:0; box-shadow:none; opacity:1; visibility:visible; transform:none; }
.topbar .brand-mark svg { display:block; width:28px; height:34px; opacity:1; }
.topbar .brand-mark .brand-pin { stroke:var(--accent); fill:transparent; }
.topbar .brand-mark .brand-roof { stroke:var(--accent); }
.topbar .brand-mark text { fill:var(--accent); }
.topbar .brand:hover .brand-mark { background:transparent; color:var(--accent-ink); transform:none; }
.brand-type { display:flex; flex-direction:column; align-items:flex-start; gap:1px; }
.topbar .brand .brand-word { color:var(--accent); font-size:21px; line-height:25px; font-weight:650; letter-spacing:-.6px; }
.brand-caption { color:var(--muted); font-size:11px; line-height:16px; font-weight:400; white-space:nowrap; }
.main-nav { gap:20px; }
.main-nav summary { padding:9px 0; color:var(--muted); font-size:13px; font-weight:500; }
.main-nav summary:hover,.main-nav details[open] > summary { color:var(--ink); background:transparent; }
.main-nav .nav-menu { border-color:var(--line); border-radius:12px; box-shadow:var(--shadow); }
.account { gap:8px; }
.account .header-post-button { min-height:40px; padding:10px 14px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:999px; font-size:12px; font-weight:600; }
.account .header-post-button:hover { background:var(--soft); border-color:#aaa; }
.account select { min-height:40px; border:1px solid var(--line); border-radius:999px; color:var(--ink); font-size:12px; }
.account .account-button,.account .user-button { color:var(--ink); }

body[data-view=home] .market-hero { padding:32px var(--page-gutter) 28px; background:#fff; }
body[data-view=home] .market-hero-content { gap:6px; }
body[data-view=home] .market-hero h1 { font-size:32px; line-height:1.25; font-weight:600; letter-spacing:-.8px; color:var(--ink); }
body[data-view=home] .hero-subtitle { font-size:16px; line-height:1.5; color:var(--muted); }
.search-band { background:transparent; }
.search-composer { padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.search-mode-tabs { padding:4px; gap:4px; border-radius:999px; background:var(--soft); }
.search-mode-tabs > button { min-height:40px; padding:9px 16px; border-radius:999px; font-size:13px; font-weight:500; color:var(--muted); }
.search-mode-tabs > button[aria-selected=true] { color:var(--accent); background:#fff; box-shadow:0 1px 3px #18263816; }
.search-mode-tabs > button:hover { color:var(--ink); background:#fff; }
.search-mode-spark { color:var(--accent); }
.search-composer .search-section-head { position:static; margin:0 0 12px; }
.search-composer .deal-tabs { gap:4px; }
.search-composer .deal-tabs button { color:var(--muted); font-weight:500; }
.search-composer .deal-tabs button.active { background:var(--action); color:#fff; }
.search-composer .filter-clear-all { color:var(--muted); background:transparent; }
.search-composer #searchForm.search-controls { background:#fff; border-color:var(--line); border-radius:999px; }
#searchForm.search-controls > .filter-menu { border-right-color:var(--line); }
#searchForm.search-controls > .filter-menu > summary > span { color:var(--ink); font-weight:600; }
#searchForm.search-controls > .filter-menu > summary > strong { color:var(--muted); font-weight:400; }
#searchForm.search-controls > .filter-menu[open] > summary { background:var(--soft); }
#searchForm.search-controls > .more-filter > summary { color:var(--ink); border-color:var(--line); background:#fff; }
#searchForm.search-controls > .search-submit { background:var(--action); color:#fff; border-radius:999px; font-weight:600; }
#searchForm.search-controls > .search-submit:hover { background:var(--accent-ink); }
.search-composer .active-filter-chip-group { border-color:#e3e3e3; background:var(--soft); }
.search-composer .active-filter-chip,.search-composer .active-filter-remove { color:var(--muted); }
.search-composer .active-filter-chip:hover,.search-composer .active-filter-remove:hover { color:var(--ink); background:#ebebeb; }
.search-composer .assistant-form { border-color:var(--line); border-radius:999px; background:#fff; box-shadow:var(--shadow); }
.search-composer .assistant-form:focus-within { border-color:#aaa; box-shadow:0 0 0 1px #aaa,var(--shadow); }
.search-composer .assistant-form #assistantQuery { color:var(--ink); text-align:center; font-weight:400; }
.search-composer .assistant-form #assistantQuery::placeholder { color:var(--muted); }
.search-composer .assistant-symbol { color:var(--accent); background:var(--accent-soft); }
.search-composer .assistant-symbol::before { background:var(--accent-soft); border-color:var(--accent-soft); }
.search-composer .assistant-submit { color:#fff; background:var(--action); border-color:var(--action); border-radius:999px; box-shadow:none; }
.search-composer .assistant-submit:hover { background:var(--accent-ink); border-color:var(--accent-ink); box-shadow:none; }
.search-composer .assistant-clear { color:var(--muted); background:transparent; }
.search-composer .assistant-footer { margin-top:10px; }
.search-composer .assistant-examples button { padding:4px 8px; color:var(--muted); background:transparent; border-color:transparent; border-radius:6px; font-weight:400; }
.search-composer .assistant-examples button:hover { color:var(--ink); border-color:transparent; background:var(--soft); }
.search-composer .assistant-examples span { color:var(--muted); }
.search-composer .assistant-message,.search-composer .assistant-scope { color:var(--muted); }
.search-composer .assistant-scope span { border-color:var(--line); }
.search-composer .assistant-message.is-error { color:#b42335; }

/* On wide screens the mode switch and selected search share a single pill. */
@media(min-width:1100px) {
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer { display:grid; grid-template-columns:244px minmax(0,1fr); grid-template-rows:76px 48px 36px; column-gap:8px; align-items:start; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer::before { content:""; position:absolute; inset:0 0 auto; height:76px; background:#fff; border:1px solid var(--line); border-radius:999px; box-shadow:var(--shadow); pointer-events:none; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer > * { position:relative; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-mode-tabs { grid-column:1; grid-row:1; align-self:start; width:236px; margin:13px 0 0 8px; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-mode-tabs > button { flex:1 1 auto; padding:9px 10px; gap:5px; font-size:13px; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) #searchAssistantHost { grid-column:2; grid-row:1/3; min-width:0; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer .assistant-footer { height:48px; min-height:48px; margin:0; padding-top:10px; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer .assistant-form { height:76px; min-height:76px; gap:8px; padding:8px 7px 8px 12px; border:0; background:transparent; box-shadow:none; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer .assistant-form:focus-within { box-shadow:none; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer:has(.assistant-form:focus-within)::before { border-color:#aaa; box-shadow:0 0 0 1px #aaa,var(--shadow); }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .assistant-form > .assistant-symbol { display:none; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer .assistant-submit { flex-basis:110px; width:110px; height:60px; min-height:60px; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer #parameterSearchPanel:not([hidden]) { display:contents; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer .search-section-head { position:relative; inset:auto; grid-column:1/-1; grid-row:2; height:38px; min-height:38px; margin:10px 0 0; gap:8px; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer #searchForm.search-controls { position:relative; grid-column:2; grid-row:1; --search-control-height:60px; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr) 96px 110px; grid-template-areas:"location type price rooms more search"; gap:0; padding:8px 7px 8px 0; border:0; background:transparent; box-shadow:none; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .filter-menu > summary { padding:8px 12px; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .more-filter { padding:0 4px; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .more-filter > summary { border:0; padding:0 8px; gap:6px; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .more-filter > summary > span { font-size:12px; }
  body[data-view=home]:not(.map-fullscreen-active):not(.mobile-filters-open) #activeSearchFilters { grid-column:1/-1; grid-row:3; }
}
@media(min-width:761px) and (max-width:1099px) {
  .topbar { gap:10px 20px; padding-block:12px; }
  .brand-caption { display:none; }
  body[data-view=home] .market-hero { padding-block:24px; }
  body[data-view=home] .market-hero h1 { font-size:28px; }
  .search-composer .search-mode-tabs { margin-bottom:12px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer #parameterSearchPanel:not([hidden]) { display:flex; flex-direction:column; height:124px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer #searchAssistantHost { height:124px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer .assistant-form { height:76px; min-height:76px; padding:7px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer .assistant-submit { flex-basis:86px; width:86px; height:60px; min-height:60px; padding-inline:8px; gap:6px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer .assistant-footer { height:48px; min-height:48px; margin:0; padding-top:10px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer #searchForm.search-controls { order:0; --search-control-height:60px; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) 80px 86px; grid-template-areas:"location type price rooms more search"; gap:0; padding:7px; height:76px; border-radius:999px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .filter-menu > summary { padding-inline:8px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .filter-menu > summary > span { font-size:11px; padding:0; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .filter-menu > summary > strong { font-size:13px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .more-filter { padding-inline:3px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .more-filter > summary { padding:0; border:0; gap:4px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) #searchForm.search-controls > .search-submit { border-radius:999px; }
  body:not(.map-fullscreen-active):not(.mobile-filters-open) .search-composer .search-section-head { order:1; position:static; inset:auto; margin:10px 0 0; height:38px; min-height:38px; }
}

body[data-view=home] .promo-carousel { padding-top:12px; }
body[data-view=home] .promo-carousel .promo-banner { border-color:#e5e5e5; background:#fff; min-height:36px; height:36px; padding:6px 14px; }
body[data-view=home] .promo-carousel .promo-banner span { color:var(--muted); font-size:12px; font-weight:400; }
body[data-view=home] .promo-carousel .promo-banner:hover { border-color:#aaa; background:var(--soft); }
body[data-view=home] .collection-arrows button { background:#fff; color:var(--ink); border:1px solid var(--line); }
body[data-view=home] .results-toolbar { padding-top:26px; padding-bottom:20px; flex-wrap:wrap; }
body[data-view=home] .results-heading { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:baseline; gap:6px 12px; flex:1 0 auto; max-width:100%; min-width:0; }
body[data-view=home] .results-heading h2 { color:var(--ink); font-size:22px; font-weight:600; letter-spacing:-.5px; margin:0; white-space:nowrap; }
body[data-view=home] .results-heading #mapAreaSummary { grid-column:1/-1; }
.results-heading .status-line { color:var(--muted); font-weight:400; font-size:13px; }
.results-toolbar .sort-filter span { color:var(--muted); font-weight:400; }
.results-toolbar .sort-filter select { color:var(--muted); font-weight:500; background:#fff; }
.results-mode-switch { border-color:var(--line); background:#fff; }
.results-mode-switch > button { color:var(--muted); font-weight:500; }
.results-mode-switch > button[aria-pressed=true],.results-mode-switch > button.active { background:var(--action); color:#fff; }
.detail-page { padding-inline:var(--page-gutter); }

/* Existing dialog, footer and map geometry stays with its original owner. */
.search-band .filter-popover { border-color:var(--line); background:#fff; box-shadow:0 8px 28px #00000024; }
.filter-panel-heading,.search-form .filter-actions { border-color:#ebebeb; }
.filter-panel-heading h2 { color:var(--ink); font-weight:600; }
.filter-panel-heading > button { color:var(--ink); background:var(--soft); }
.search-band .filter-popover input:not([type=checkbox]):not([type=radio]),.search-band .filter-popover select { color:var(--ink); border-color:var(--line); background:#fff; }
.search-band .filter-popover input:focus,.search-band .filter-popover select:focus { border-color:var(--ink); box-shadow:0 0 0 1px var(--ink); outline:none; }
.search-band .filter-popover label > span,.search-band .filter-popover .field-label { color:var(--ink); }
.search-form .filter-actions .filter-apply { color:#fff; background:var(--action); border-color:var(--action); box-shadow:none; }
.search-form .filter-actions .filter-reset { color:var(--muted); background:#fff; border-color:var(--line); }
.search-form .advanced-field-group { border-color:#ebebeb; }
.search-form .advanced-group-title { color:var(--ink); font-weight:600; }
.price-popover-head { background:var(--soft); border-color:var(--line); }
.price-currency-switch { border-color:var(--line); }
.price-currency-switch button { color:var(--muted); }
.price-currency-switch button.active { color:#fff; background:var(--action); }
.price-input-field em { color:var(--ink); font-weight:600; }
.price-suggestion-tiles button { background:#fff; border-color:var(--line); }
.price-suggestion-tiles button:hover,.price-suggestion-tiles button:focus-visible { background:var(--soft); border-color:#999; }
.price-suggestion-tiles strong { color:var(--ink); }
.price-suggestion-tiles small,#priceSuggestionHint { color:var(--muted); }
.quick-tiles button.active,.quick-city-tiles button.active { color:var(--accent-ink); background:var(--accent-soft); border-color:#b7cdfa; }
.map-panel .map-toolbar { background:#fff; border-color:var(--line); }
.map-panel .segmented { background:var(--soft); }
.map-panel .segmented button { color:var(--muted); }
.map-panel .segmented button.active { color:var(--ink); background:#fff; }
.map-panel .map-actions > button { color:var(--ink); border-color:var(--line); }
.map-width-control,.map-width-control span { color:var(--muted); }
.map-width-control input { accent-color:var(--action); }
.map-panel .map-price-pin.real-map-pin,.map-point-cluster { color:var(--ink); border-color:var(--line); box-shadow:0 2px 5px #00000020; }
.map-panel .map-price-pin.real-map-pin.active,.map-panel .map-price-pin.real-map-pin:hover,.map-point-cluster:hover,.map-point-cluster.active { color:#fff; background:var(--action); border-color:var(--action); box-shadow:0 2px 8px #0000001f; }
.map-panel .map-price-pin.real-map-pin.map-viewed:not(.active):not(:hover) { color:var(--muted); background:var(--soft); border-color:var(--line); }
.map-panel .map-area-dot,.map-panel .leaflet-control-zoom a { color:var(--ink); border-color:var(--line); }
.map-area-controls [data-search-map-area] { color:#fff; background:var(--action); border-color:var(--action); }
.map-group-popup > header,.map-group-listing { border-color:#ebebeb; }
.map-group-listing:hover { background:var(--soft); }
.site-footer { background:var(--soft); border-color:#ebebeb; color:var(--muted); }
.site-footer a { color:var(--ink); }
.site-footer a:hover { color:var(--ink); text-decoration:underline; }
.auth-card,.auth-dialog { background:#fff; border-color:var(--line); }
.auth-tabs button.active { background:var(--action); color:#fff; }
@media(prefers-reduced-motion:reduce) { .search-mode-spark svg { animation:none; } }
