@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap');

:root {
  --brand-primary:#142D4E; --brand-on-primary:#FFFFFF; --brand-accent:#B88A3B; --brand-soft:#EEF0F3; --brand-ink:#142D4E; --ink:#202327; --muted:#72767d; --red:var(--brand-primary); --red-dark:color-mix(in srgb,var(--brand-primary) 84%,black); --red-soft:var(--brand-soft);
  --green:#178766; --green-soft:#e8f6f1; --amber:#b87317; --amber-soft:#fff5df;
  --paper:#fff; --soft:#f6f7f8; --line:#e5e7ea; --deep:var(--brand-primary); --shadow:0 14px 40px rgba(29,38,43,.1);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:'Inter','Noto Sans SC','Microsoft YaHei',sans-serif; line-height:1.65; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
img { display:block; max-width:100%; }
.container { width:min(1200px,calc(100% - 40px)); margin:0 auto; }
.narrow { width:min(820px,calc(100% - 40px)); }
h1,h2,h3 { margin:0 0 .75rem; font-family:'Noto Sans SC','Inter',sans-serif; line-height:1.2; letter-spacing:-.025em; }
h1 { font-size:clamp(2.6rem,5.3vw,5rem); font-weight:800; }
h2 { font-size:clamp(2rem,3.5vw,3rem); font-weight:700; }
h3 { font-size:1.25rem; }
p { margin:0 0 1.25rem; }
.lead { font-size:1.18rem; line-height:1.8; }
.eyebrow { display:block; margin-bottom:.8rem; color:var(--brand-ink); font-size:.7rem; font-weight:800; letter-spacing:.14em; }
.button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:.72rem 1.35rem; border:1px solid var(--red); border-radius:2px; background:var(--red); color:#fff; font-weight:700; transition:.2s ease; }
.button:hover { transform:translateY(-2px); border-color:var(--red-dark); background:var(--red-dark); box-shadow:0 8px 20px rgba(229,72,63,.24); }
.button-small { min-height:39px; padding:.45rem 1rem; font-size:.86rem; }
.button-light { border-color:#fff; background:#fff; color:var(--brand-ink); }
.button-light:hover { background:#fff7f6; color:var(--red-dark); }
.button-full { width:100%; }
.text-link { color:var(--brand-ink); font-weight:700; }
.text-link.light { color:#fff; }

/* Deployment branding tokens retain existing layout and component semantics. */
.site-shell h1,.site-shell h2,.site-shell h3 { color:var(--brand-ink); overflow-wrap:anywhere; }
.site-shell .cn-hero h1,.site-shell .guide-hero h1 { color:#fff; }
.site-shell .confidence-section h2,.site-shell .alert-band h2 { color:inherit; }
.site-shell .button:not(.button-light):not(.button-outline),.brand-theme-preview .button,.site-shell .hero-search-button,.site-shell .brand-mark,.site-shell .agent-mini > div,.site-shell .map-marker span { color:var(--brand-on-primary); }
.site-shell .confidence-section,.site-shell .alert-band { color:var(--brand-on-primary); }
.site-shell .alert-band p { color:inherit; }
.site-shell .alert-band .eyebrow,.site-shell .confidence-section .eyebrow { color:var(--brand-accent); }
.site-shell .listing-card,.site-shell .alert-form-card { border-top-color:var(--brand-primary); }
.site-shell .mls-status-badge { background:var(--brand-soft); color:var(--brand-ink); }
.site-shell .mls-owner-badge { background:var(--brand-primary); color:var(--brand-on-primary); }
.site-shell .site-footer { background:color-mix(in srgb,var(--brand-ink) 75%,black); }
.site-shell .site-footer h3 { color:#fff; }
.site-shell .guide-hero { background:var(--brand-primary); color:var(--brand-on-primary); }
.site-shell .guide-hero h1,.site-shell .guide-hero p { color:inherit; }
.site-shell .listing-assistant-drawer-header { border-top:3px solid var(--brand-primary); }
.site-shell .assistant-heading,.site-shell .listing-assistant-drawer-header { background:var(--brand-primary); color:var(--brand-on-primary); }
.site-shell .assistant-heading { padding:.65rem; border-radius:6px; }
.site-shell .assistant-heading h2,.site-shell .listing-assistant-drawer-header h2,.site-shell .assistant-heading .text-link,.site-shell .assistant-heading .eyebrow,.site-shell .listing-assistant-drawer-header .eyebrow { color:inherit; }
.site-shell .assistant-heading .button-outline { background:transparent; color:inherit; border-color:currentColor; }
.brand-logo-image { width:48px; height:42px; object-fit:contain; flex:0 0 auto; }
.brand-photo-image { width:100%; height:100%; object-fit:cover; }
.advisor-portrait { position:relative; overflow:hidden; }
.advisor-portrait > .brand-photo-image { position:absolute; inset:0; }
.agent-mini > div { flex:0 0 44px; height:44px; overflow:hidden; }
.brand-contact { display:flex; flex-direction:column; gap:.45rem; margin-top:.75rem; overflow-wrap:anywhere; }
.brand-qr-image { width:140px; height:140px; object-fit:contain; background:#fff; }
.brand-service-areas { margin-top:.8rem; font-size:.8rem; overflow-wrap:anywhere; }
.site-shell .cn-hero-content > p,.site-shell .advisor-grid,.site-shell .detail-grid,.site-shell .footer-grid { overflow-wrap:anywhere; }
.nav-inner > a.brand { min-width:0; max-width:300px; }
.brand > span:last-child { min-width:0; }
.brand strong,.brand small,.advisor-details span { overflow-wrap:anywhere; }
.brand small { display:block; max-width:250px; }
@media(max-width:600px) { .nav-inner > a.brand { max-width:calc(100% - 145px); }.brand-logo-image { width:36px; }.brand small { max-width:180px; } }

/* Header */
.language-switch { padding:0; border:0; background:none; color:var(--brand-ink); font-weight:700; }
.language-switch span { color:#777; font-weight:500; }
.site-header { position:sticky; z-index:30; top:0; border-bottom:1px solid var(--line); background:rgba(255,255,255,.97); backdrop-filter:blur(14px); }
.nav-inner { height:70px; display:flex; align-items:center; gap:1rem; }
.brand { display:inline-flex; align-items:center; gap:.72rem; color:var(--ink); line-height:1.1; }
.brand > span:last-child { display:flex; flex-direction:column; }
.brand strong { font-size:1.1rem; letter-spacing:.015em; }
.brand small { margin-top:.2rem; color:#777; font-family:'Noto Sans SC',sans-serif; font-size:.62rem; font-weight:500; letter-spacing:.07em; }
.brand-mark { width:40px; height:40px; display:grid; place-items:center; border-radius:8px; background:var(--red); color:#fff; font-size:1.3rem; font-weight:800; }
.main-nav { display:flex; align-items:center; gap:1.2rem; margin-left:auto; font-size:.91rem; font-weight:600; }
.header-actions { display:flex; align-items:center; gap:.25rem; flex-shrink:0; }
.nav-inner .brand { flex-shrink:0; }
.wechat-link { display:grid; place-items:center; width:40px; height:40px; border-radius:6px; color:#219b47; }
.wechat-link svg { width:28px; height:25px; }
.wechat-link:hover { background:#f0f8f2; }
.wechat-link:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.main-nav > a:not(.button) { position:relative; padding:1.5rem 0; }
.main-nav > a:not(.button):after { content:""; position:absolute; left:0; right:100%; bottom:0; height:3px; background:var(--red); transition:.2s; }
.main-nav > a.active:not(.button):after,.main-nav > a:hover:not(.button):after { right:0; }
.nav-toggle,.nav-toggle-label { display:none; }
.nav-toggle:focus-visible + .nav-toggle-label { outline:2px solid var(--red); outline-offset:5px; }
.admin-nav { position:relative; }
.admin-nav > summary { cursor:pointer; padding:.65rem .8rem; border:1px solid var(--line); border-radius:8px; white-space:nowrap; }
.admin-nav > summary:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.admin-nav[open] > summary,.admin-nav:has(a.active) > summary { color:var(--brand-ink); }
.admin-nav-links { position:absolute; right:0; top:calc(100% + .5rem); min-width:160px; padding:.4rem; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.1); }
.admin-nav-links a { display:block; padding:.65rem .8rem; border-radius:5px; white-space:nowrap; }
.admin-nav-links a:hover,.admin-nav-links a.active,.admin-nav-links a:focus-visible { color:var(--brand-ink); background:var(--brand-soft); }
.admin-nav-links .nav-logout { margin:0; border-top:1px solid var(--line); }
.admin-nav-links .nav-logout button { display:block; width:100%; padding:.65rem .8rem; border:0; border-radius:5px; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.admin-nav-links .nav-logout button:hover,.admin-nav-links .nav-logout button:focus-visible { color:var(--brand-ink); background:var(--brand-soft); }
.admin-nav-links .nav-logout button:focus-visible { outline:2px solid var(--red); outline-offset:1px; }
@media (max-width: 760px) {
  .admin-nav { margin-top:.75rem; }
  .admin-nav-links { position:static; margin-top:.4rem; box-shadow:none; }
}

/* Search-first home */
.cn-hero { position:relative; min-height:620px; display:flex; align-items:center; overflow:hidden; color:#fff; }
.cn-hero-bg,.cn-hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.cn-hero-bg { object-fit:cover; }
.cn-hero-shade { background:linear-gradient(90deg,rgba(14,21,25,.83) 0%,rgba(14,21,25,.65) 48%,rgba(14,21,25,.16) 100%); }
.cn-hero-content { position:relative; z-index:2; padding:5.2rem 0 4.5rem; }
.hero-kicker { display:block; margin-bottom:1.1rem; color:#f2cfcc; font-size:.7rem; font-weight:700; letter-spacing:.12em; }
.cn-hero h1 { max-width:820px; font-size:clamp(2.7rem,5vw,4.7rem); text-shadow:0 2px 14px rgba(0,0,0,.25); }
.cn-hero h1 em { color:var(--brand-accent); font-style:normal; }
.cn-hero-content > p { max-width:690px; margin:1rem 0 2rem; color:#e7eaeb; font-size:1.04rem; }
.hero-search-box { max-width:1000px; padding:1.1rem; background:rgba(20,25,28,.78); box-shadow:0 20px 45px rgba(0,0,0,.2); }
.search-tabs { display:flex; align-items:center; gap:1.5rem; margin-bottom:.85rem; font-size:.88rem; font-weight:600; }
.search-tabs span,.search-tabs a { padding:.25rem 0; color:#d8dcde; }
.search-tabs .active { border-bottom:2px solid #ff655d; color:#fff; }
.hero-search-row { display:grid; grid-template-columns:1.25fr .85fr .85fr auto; background:#fff; }
.hero-search-row label { min-height:67px; justify-content:center; padding:.55rem 1rem; border-right:1px solid var(--line); }
.hero-search-row label span { color:#999; font-size:.64rem; }
.hero-search-row select { padding:.1rem 1.4rem .1rem 0; border:0; color:var(--ink); font-weight:600; }
.hero-search-button { min-width:150px; display:flex; align-items:center; justify-content:center; gap:.45rem; background:var(--red); color:#fff; font-weight:700; }
.hero-search-button:hover { background:var(--red-dark); }
.hero-search-button span { font-size:1.35rem; }
.hero-quick-links { display:flex; gap:.8rem; margin-top:1rem; color:#d9dddf; font-size:.78rem; }
.hero-quick-links a { border-bottom:1px solid rgba(255,255,255,.45); }
.market-strip { border-bottom:1px solid var(--line); background:#fff; }
.market-strip-grid { min-height:94px; display:grid; grid-template-columns:repeat(4,1fr) 1.5fr; align-items:center; }
.market-strip-grid > div { min-height:48px; display:flex; flex-direction:column; justify-content:center; padding:0 1.3rem; border-right:1px solid var(--line); }
.market-strip-grid > div:first-child { padding-left:0; }
.market-strip strong { font-size:1.35rem; }
.market-strip span { color:var(--muted); font-size:.72rem; }
.market-strip .market-update { flex-direction:row; align-items:center; gap:.65rem; border:0; }
.market-update p { margin:0; color:var(--muted); font-size:.74rem; }
.market-update b { color:var(--ink); }
.live-dot { width:9px; height:9px; flex:0 0 auto; border-radius:50%; background:#28a675; box-shadow:0 0 0 5px #e6f6f0; }

/* Sections and listing cards */
.section { padding:5.5rem 0; }
.section-tight { padding-top:4.7rem; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2.2rem; }
.cn-heading h2 { margin-bottom:.45rem; }
.cn-heading p { max-width:590px; margin:0; color:var(--muted); }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.listing-card { overflow:hidden; border:1px solid var(--line); background:#fff; transition:.22s ease; }
.listing-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); }
.listing-image { position:relative; height:225px; display:block; overflow:hidden; background:#e4e6e7; }
.listing-image img { width:100%; height:100%; object-fit:cover; transition:.3s; }
.listing-card:hover .listing-image img { transform:scale(1.025); }
.confidence-badge { display:inline-flex; align-items:center; gap:.35rem; padding:.38rem .58rem; border-radius:2px; font-size:.68rem; font-weight:800; }
.confidence-badge small { opacity:.72; font-size:.52rem; letter-spacing:.06em; }
.confidence-badge:before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.confidence-confirmed { background:var(--green-soft); color:#117052; }
.confidence-likely { background:var(--amber-soft); color:#9b6114; }
.confidence-possible { background:#f0f1f2; color:#62666c; }
.listing-image .confidence-badge { position:absolute; left:12px; top:12px; box-shadow:0 3px 12px rgba(0,0,0,.08); }
.listed-age { position:absolute; right:12px; bottom:12px; padding:.26rem .5rem; background:rgba(25,29,31,.78); color:#fff; font-size:.66rem; }
.listing-card-body { padding:1.1rem; }
.listing-card-topline { min-height:49px; display:flex; justify-content:space-between; align-items:flex-start; }
.listing-price { font-size:1.55rem; font-weight:800; letter-spacing:-.03em; }
.price-change { color:var(--brand-ink); font-size:.7rem; font-weight:700; }
.heart-button { width:37px; height:37px; border:1px solid var(--line); border-radius:50%; background:#fff; color:#777; font-size:1.35rem; line-height:1; }
.heart-button:hover,.heart-button.is-saved { border-color:#f1bbb7; background:var(--red-soft); color:var(--brand-ink); }
.listing-address { display:block; margin-top:.35rem; font-weight:700; }
.listing-location { color:var(--muted); font-size:.79rem; }
.listing-features { display:flex; flex-wrap:wrap; gap:.55rem .85rem; margin:.9rem 0; padding:.75rem 0; border-top:1px solid #eff0f1; border-bottom:1px solid #eff0f1; color:#666b70; font-size:.75rem; }
.listing-features strong { color:var(--ink); }
.signal-line { margin-bottom:.8rem; padding:.6rem .7rem; border-left:3px solid #e9ad41; background:#fffaf0; }
.signal-line > span { color:#a56a11; font-size:.61rem; font-weight:800; }
.signal-line p { display:-webkit-box; overflow:hidden; margin:.15rem 0 0; color:#686b70; font-size:.7rem; line-height:1.45; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.listing-footer { display:flex; justify-content:space-between; color:#92969a; font-size:.67rem; }
.listing-footer a { color:var(--brand-ink); font-weight:700; }

/* Area, classification, advisor and knowledge */
.area-section { padding:4.5rem 0; background:var(--soft); }
.area-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#dddfe1; border:1px solid #dddfe1; }
.area-grid a { position:relative; min-height:130px; display:flex; flex-direction:column; justify-content:center; padding:1.4rem; background:#fff; transition:.2s; }
.area-grid a:hover { z-index:2; transform:translateY(-2px); box-shadow:var(--shadow); }
.area-grid strong { font-size:1.3rem; }
.area-grid span { color:#888; font-size:.78rem; }
.area-grid small { position:absolute; right:1.3rem; bottom:1.2rem; color:var(--brand-ink); font-weight:700; }
.confidence-section { padding:5.5rem 0; background:var(--deep); color:#fff; }
.confidence-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:8%; align-items:center; }
.confidence-grid > div:first-child p { max-width:510px; color:#bec5c8; }
.confidence-list { display:grid; gap:.75rem; }
.confidence-list > div { padding:1.1rem 1.2rem; border:1px solid rgba(255,255,255,.13); background:rgba(255,255,255,.045); }
.confidence-list p { margin:.65rem 0 0; color:#cbd0d2; font-size:.84rem; }
.confidence-list p strong { color:#fff; }
.advisor-section { background:#fff; }
.advisor-grid { display:grid; grid-template-columns:.72fr 1.28fr; align-items:center; gap:7%; }
.advisor-profile-card { position:relative; }
.advisor-portrait { min-height:400px; display:grid; place-items:center; background:linear-gradient(145deg,#f0f1f2,#d5dadd); color:#41484d; font-size:5rem; font-weight:800; }
.advisor-stamp { position:absolute; right:-18px; bottom:25px; padding:1rem 1.2rem; background:var(--red); color:#fff; font-size:.9rem; font-weight:700; text-align:center; }
.advisor-stamp small { opacity:.82; font-size:.58rem; letter-spacing:.1em; }
.advisor-details { display:flex; gap:.7rem 1.2rem; flex-wrap:wrap; margin:1.5rem 0; color:var(--muted); font-size:.8rem; }
.advisor-details span { padding:.35rem .6rem; background:var(--soft); }
.advisor-actions { display:flex; align-items:center; gap:1.3rem; }
.wechat-inline { padding-left:1.2rem; border-left:1px solid var(--line); color:#65696e; font-size:.75rem; }
.wechat-inline b { color:#1e8f62; }
.wechat-inline small { color:#aaa; }
.knowledge-section { padding:5rem 0; background:var(--soft); }
.knowledge-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:8%; }
.knowledge-grid > div:first-child p { color:var(--muted); }
.knowledge-links { display:grid; border-top:1px solid #d9dcde; }
.knowledge-links a { display:grid; grid-template-columns:45px 1fr auto; align-items:center; gap:1rem; padding:1.15rem 0; border-bottom:1px solid #d9dcde; }
.knowledge-links > a > span { color:var(--brand-ink); font-size:.72rem; font-weight:800; }
.knowledge-links strong,.knowledge-links small { display:block; }
.knowledge-links small { color:var(--muted); }
.knowledge-links b { color:var(--brand-ink); }
.alert-band { padding:3.2rem 0; background:var(--red); color:#fff; }
.alert-band-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.alert-band .eyebrow { color:#ffd8d5; }
.alert-band p { margin:0; color:#ffe5e3; }

/* Listing results */
.listings-header,.page-intro { padding:2.7rem 0 2.2rem; border-bottom:1px solid var(--line); background:#fff; }
.page-intro.compact { padding:2.5rem 0; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1.5rem; color:#8a8e93; font-size:.73rem; }
.breadcrumb a { color:var(--brand-ink); }
.listings-title { display:flex; align-items:end; justify-content:space-between; gap:2rem; }
.listings-title h1,.page-intro h1 { font-size:clamp(2rem,4vw,3.4rem); }
.listings-title p,.page-intro p { max-width:720px; margin:0; color:var(--muted); }
.update-card { display:flex; align-items:center; gap:.75rem; padding:.8rem 1rem; border:1px solid var(--line); white-space:nowrap; }
.update-card strong,.update-card small { display:block; }
.update-card small { color:var(--muted); font-size:.67rem; }
.search-section { padding:1.5rem 0 5.5rem; background:var(--soft); }
.filter-panel { display:grid; grid-template-columns:auto 1.2fr repeat(4,1fr) auto; gap:.65rem; align-items:end; padding:1rem; border:1px solid var(--line); background:#fff; box-shadow:0 7px 25px rgba(30,38,42,.05); }
.filter-title { align-self:center; padding-right:.5rem; }
.filter-title strong,.filter-title span { display:block; }
.filter-title span { color:#aaa; font-size:.58rem; letter-spacing:.1em; }
label { display:flex; flex-direction:column; gap:.3rem; color:#656a70; font-size:.66rem; font-weight:700; letter-spacing:.035em; }
input,select,textarea { width:100%; padding:.68rem .75rem; border:1px solid #d6d9dc; border-radius:1px; background:#fff; color:var(--ink); outline:none; }
input:focus,select:focus,textarea:focus { border-color:var(--brand-ink); box-shadow:0 0 0 3px rgba(231,72,63,.08); }
.clear-button { min-height:42px; padding:.6rem .8rem; border:0; background:#f2f3f4; color:#64686d; font-weight:700; }
.filter-chips { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; padding:1rem 0 .35rem; color:#888; font-size:.73rem; }
.filter-chips button { padding:.3rem .65rem; border:1px solid #d8dadd; border-radius:15px; background:#fff; color:#666; font-size:.7rem; }
.filter-chips button:hover { border-color:#e89e99; color:var(--brand-ink); }
.results-toolbar { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:1rem; color:var(--muted); font-size:.84rem; }
.results-toolbar strong { color:var(--brand-ink); font-size:1.1rem; }
.view-toggle { display:flex; border:1px solid var(--line); background:#fff; }
.view-toggle button { padding:.48rem .8rem; border:0; border-right:1px solid var(--line); background:#fff; color:#777; font-size:.76rem; }
.view-toggle button:last-child { border:0; }
.view-toggle button.active { background:var(--red); color:#fff; }
.map-layout { display:grid; grid-template-columns:1.35fr .65fr; gap:1rem; height:760px; }
.mock-map { position:relative; overflow:hidden; border:1px solid var(--line); background:linear-gradient(135deg,#e8ece8 0 66%,#d9eaed 66%); }
.mock-map:before { content:""; position:absolute; inset:0; opacity:.5; background-image:linear-gradient(35deg,transparent 48%,#fff 49%,#fff 51%,transparent 52%),linear-gradient(-28deg,transparent 48%,#fff 49%,#fff 51%,transparent 52%); background-size:115px 95px,145px 120px; }
.map-water { position:absolute; right:4%; bottom:8%; transform:rotate(-28deg); color:#7da2a7; font-size:.65rem; letter-spacing:.12em; }
.map-road { position:absolute; height:3px; background:#fff; transform-origin:left; box-shadow:0 0 0 1px #d6dcd4; }
.road-one { width:80%; top:44%; left:5%; transform:rotate(8deg); }.road-two { width:70%; top:20%; left:25%; transform:rotate(72deg); }.road-three { width:68%; top:70%; left:8%; transform:rotate(-20deg); }
.map-marker { position:absolute; z-index:2; transform:translate(-50%,-50%); }
.map-marker span { display:block; padding:.35rem .5rem; border:2px solid #fff; border-radius:15px; background:var(--red); color:#fff; font-size:.65rem; font-weight:700; box-shadow:0 4px 10px rgba(0,0,0,.18); }
.map-marker:hover { z-index:4; transform:translate(-50%,-50%) scale(1.1); }
.map-label { position:absolute; color:#687771; font-weight:700; font-size:.7rem; }.label-toronto{left:40%;top:62%}.label-mississauga{left:16%;top:54%}.label-brampton{left:43%;top:32%}.label-markham{left:65%;top:31%}
.map-notice { position:absolute; left:12px; bottom:12px; padding:.45rem .65rem; background:rgba(255,255,255,.92); color:var(--muted); font-size:.64rem; }
.map-results { overflow:auto; padding-right:.35rem; }.map-results .listing-card { margin-bottom:1rem; }.map-results .listing-image { height:160px; }
.empty-state { padding:5rem 1rem; text-align:center; }.empty-state p { color:var(--muted); }.empty-icon { color:var(--brand-ink); font-size:4rem; }
.listing-loading-state { min-height:340px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.listing-loading-spinner { width:38px; height:38px; margin-bottom:1rem; border:3px solid #e5e7ea; border-top-color:var(--brand-ink); border-radius:50%; animation:listing-loading-spin .8s linear infinite; }
@keyframes listing-loading-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .listing-loading-spinner { animation:none; border-top-color:#e5e7ea; background:var(--red); box-shadow:inset 0 0 0 11px #fff; } }

/* Property detail */
.detail-heading { padding:2rem 0 1.6rem; border-bottom:1px solid var(--line); background:#fff; }
.detail-title-row { display:flex; align-items:end; justify-content:space-between; gap:2rem; }
.detail-title-row h1 { margin-top:.65rem; font-size:clamp(2rem,4vw,3.5rem); }
.detail-title-row p { margin:0; color:var(--muted); }
.detail-price { display:flex; flex-direction:column; text-align:right; }.detail-price strong { font-size:2rem; font-weight:800; }.detail-price span { color:var(--brand-ink); font-size:.75rem; }
.detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:2.5rem; padding-top:2rem; padding-bottom:5.5rem; align-items:start; }
.detail-image { position:relative; height:500px; overflow:hidden; background:#e4e6e7; }.detail-image img { width:100%; height:100%; object-fit:cover; }
.detail-gallery-control { position:absolute; z-index:2; top:50%; width:46px; height:54px; display:grid; place-items:center; transform:translateY(-50%); border:0; background:rgba(20,25,28,.72); color:#fff; font-size:2rem; line-height:1; }
.detail-gallery-control:hover { background:rgba(20,25,28,.9); }.detail-gallery-control:focus-visible { outline:3px solid #fff; outline-offset:-5px; }
.detail-gallery-previous { left:12px; }.detail-gallery-next { right:12px; }
.detail-thumbnails { display:flex; gap:.6rem; margin:.75rem 0 1rem; padding-bottom:.35rem; overflow-x:auto; }
.detail-thumbnail { width:104px; height:72px; flex:0 0 auto; padding:0; overflow:hidden; border:2px solid transparent; background:#e4e6e7; opacity:.68; }
.detail-thumbnail img { width:100%; height:100%; object-fit:cover; }.detail-thumbnail:hover,.detail-thumbnail.active { border-color:var(--brand-ink); opacity:1; }.detail-thumbnail:focus-visible { outline:3px solid var(--red); outline-offset:2px; }
.detail-heart { position:absolute; right:16px; top:16px; width:auto; padding:0 .9rem; border-radius:18px; font-size:.82rem; }.photo-count { position:absolute; right:16px; bottom:16px; padding:.32rem .52rem; background:rgba(20,25,28,.78); color:#fff; font-size:.65rem; }
.detail-facts { display:grid; grid-template-columns:repeat(4,1fr); margin:1rem 0 2.6rem; border:1px solid var(--line); }.detail-facts div { display:flex; flex-direction:column; padding:.9rem; border-right:1px solid var(--line); }.detail-facts div:last-child { border:0; }.detail-facts strong { font-size:1.05rem; }.detail-facts span { color:var(--muted); font-size:.65rem; }
.content-block { padding:1.8rem 0; border-top:1px solid var(--line); }.content-block > p { color:#5f6469; }
.confidence-explainer { margin:0 0 2.4rem; padding:1.3rem 1.4rem; border-left:4px solid #d99128; background:#fff9ee; }.explainer-top { display:flex; align-items:center; gap:.8rem; }.explainer-top > span { color:#9a7a48; font-size:.68rem; }.confidence-explainer h2 { margin-top:.7rem; font-size:1.55rem; }.confidence-explainer small { color:var(--muted); }
.consideration-grid { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }.consideration-grid > div { padding:1.15rem; border:1px solid var(--line); background:var(--soft); }.consideration-grid span { color:var(--brand-ink); font-size:.65rem; font-weight:800; }.consideration-grid strong { display:block; margin:.25rem 0; }.consideration-grid p { margin:0; color:var(--muted); font-size:.82rem; }
.contact-card { position:sticky; top:92px; padding:1.5rem; border-top:4px solid var(--red); background:#fff; box-shadow:var(--shadow); }.contact-card > p { color:var(--muted); }.contact-card form,.alert-form-card form { display:grid; gap:.85rem; }.contact-card form small,.alert-form-card form > small { color:var(--muted); font-weight:400; letter-spacing:0; }
.success-message { display:flex; flex-direction:column; gap:.25rem; margin:1.3rem 0; padding:.9rem; background:var(--green-soft); color:#116f52; }.contact-options { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:1rem; background:var(--line); border:1px solid var(--line); }.contact-options > * { padding:.55rem .25rem; background:#fff; color:#666; font-size:.65rem; text-align:center; }
.agent-mini { display:flex; align-items:center; gap:.75rem; margin-top:1.25rem; padding-top:1.15rem; border-top:1px solid var(--line); }.agent-mini > div { width:44px; height:44px; display:grid; place-items:center; border-radius:8px; background:var(--red); color:#fff; font-weight:800; }.agent-mini span { color:var(--muted); font-size:.68rem; }.agent-mini strong { display:block; color:var(--ink); font-size:.82rem; }

/* Forms and guide */
.form-page { padding:4.8rem 0; background:var(--soft); }.form-page-grid { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:start; }.form-page h1 { font-size:clamp(2.5rem,5vw,4.5rem); }.check-list { display:grid; gap:.7rem; padding:0; margin:1.8rem 0; list-style:none; }.check-list li:before { content:"✓"; margin-right:.65rem; color:var(--green); font-weight:800; }.agent-quote { display:flex; gap:1rem; align-items:center; margin-top:2.5rem; }.advisor-portrait.small { width:72px; min-height:72px; flex:0 0 auto; border-radius:50%; font-size:1.4rem; }.agent-quote blockquote { margin:0; font-size:.98rem; }.agent-quote cite { display:block; margin-top:.35rem; color:var(--muted); font-size:.68rem; font-style:normal; }
.alert-form-card { padding:1.8rem; border-top:4px solid var(--red); background:#fff; box-shadow:var(--shadow); }.alert-form-card h2 { margin-bottom:1.3rem; }.form-step { color:var(--brand-ink); font-size:.68rem; font-weight:800; letter-spacing:.08em; }.form-two { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }.checkbox-label { flex-direction:row; align-items:center; font-weight:500; }.checkbox-label input { width:auto; }.success-panel { padding:2.5rem .8rem; text-align:center; }.success-panel > div { width:56px; height:56px; display:grid; place-items:center; margin:0 auto 1rem; border-radius:50%; background:var(--green-soft); color:var(--green); font-size:1.5rem; }
.guide-hero { padding:5.5rem 0; background:linear-gradient(120deg,#222a2e,#3a4144); color:#fff; text-align:center; }.guide-hero p { max-width:670px; margin:1.2rem auto 0; color:#d2d6d8; font-size:1.08rem; }.guide-body { padding:4.5rem 0; }.guide-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:4.5rem; align-items:start; }.guide-layout article > h2 { margin-top:2.8rem; font-size:1.85rem; }.guide-callout { margin:1.8rem 0; padding:1.3rem; border-left:4px solid var(--red); background:var(--red-soft); }.guide-callout p { margin:.25rem 0 0; }.process-list { display:grid; }.process-list > div { display:grid; grid-template-columns:48px 1fr; gap:1rem; padding:1.25rem 0; border-bottom:1px solid var(--line); }.process-list span { color:var(--brand-ink); font-size:1.3rem; font-weight:800; }.process-list h3 { font-size:1rem; }.process-list p { margin:0; color:var(--muted); }.label-guide { display:grid; gap:.7rem; }.label-guide > div { display:flex; align-items:center; gap:1rem; padding:.9rem; background:var(--soft); }.label-guide p { margin:0; color:var(--muted); font-size:.82rem; }.question-list { padding-left:1.2rem; }.question-list li { padding:.4rem 0; }.legal-note { margin-top:2.5rem; padding:1.1rem; border:1px solid var(--line); color:var(--muted); font-size:.78rem; }.legal-note p { margin:.25rem 0 0; }.guide-sidebar { position:sticky; top:92px; display:grid; gap:1rem; }.guide-sidebar > div { padding:1.35rem; border:1px solid var(--line); }.guide-sidebar > div:first-child { border-top:4px solid var(--red); }.guide-glossary p { display:flex; flex-direction:column; margin:.7rem 0; }.guide-glossary span { color:var(--muted); font-size:.75rem; }

/* Footer */
.site-footer { padding:3.8rem 0 1.8rem; background:#181f22; color:#aeb5b8; }.footer-grid { display:grid; grid-template-columns:1.6fr .75fr .9fr; gap:4rem; }.brand-footer { margin-bottom:1rem; color:#fff; }.brand-footer small { color:#aeb5b8; }.footer-grid p { max-width:440px; }.footer-grid > div:not(:first-child) { display:flex; flex-direction:column; gap:.5rem; }.footer-grid h3 { color:#fff; font-size:.78rem; letter-spacing:.08em; }.footer-grid a:hover { color:#fff; }.footer-trust { display:flex; flex-wrap:wrap; gap:.4rem; }.footer-trust span { padding:.3rem .5rem; border:1px solid rgba(255,255,255,.15); font-size:.62rem; }.wechat-placeholder { width:115px; margin-top:.6rem; padding:.65rem; border:1px dashed #687074; text-align:center; font-size:.58rem; }.wechat-placeholder strong { color:#fff; }.disclosure { margin-top:2.8rem; padding-top:1.3rem; border-top:1px solid rgba(255,255,255,.11); font-size:.64rem; line-height:1.55; }.disclosure p { margin:.3rem 0; }

#blazor-error-ui { display:none; position:fixed; z-index:1000; right:1rem; bottom:1rem; padding:1rem; background:#fff4d7; box-shadow:var(--shadow); }.validation-message { color:#b42318; }.valid.modified:not([type=checkbox]) { border-color:#2f7d4e; }.invalid { border-color:#b42318; } h1:focus{outline:none}

@media (max-width:1020px) {
  .listing-grid { grid-template-columns:repeat(2,1fr); }
  .filter-panel { grid-template-columns:repeat(3,1fr); }.filter-title { grid-column:1/-1; }
  .market-strip-grid { grid-template-columns:repeat(4,1fr); }.market-update { grid-column:1/-1; border-top:1px solid var(--line)!important; }
  .map-layout { grid-template-columns:1fr; height:auto; }.mock-map { height:560px; }.map-results { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; overflow:visible; }
  .detail-grid { grid-template-columns:1fr; }.contact-card,.guide-sidebar { position:static; }
  .form-page-grid,.guide-layout { grid-template-columns:1fr; }.form-page-grid { gap:3rem; }.guide-sidebar { grid-template-columns:1fr 1fr; }
}
@media (max-width:760px) {
  .container { width:min(100% - 28px,1200px); }.utility-bar { display:none; }.site-header { top:0; }.nav-inner { height:64px; }
  .nav-toggle { display:block; position:absolute; opacity:0; width:1px; height:1px; padding:0; clip-path:inset(50%); }.nav-toggle-label { display:grid; gap:4px; }.nav-toggle-label span { width:24px; height:2px; background:var(--ink); }
  .main-nav { display:none; position:absolute; left:0; right:0; top:64px; flex-direction:column; align-items:stretch; gap:0; padding:.7rem 18px 1.2rem; border-top:1px solid var(--line); background:#fff; box-shadow:0 12px 25px rgba(0,0,0,.08); }.nav-toggle:checked ~ .main-nav { display:flex; }.main-nav > a:not(.button) { padding:.75rem 0; }.main-nav > a:not(.button):after { display:none; }
  .cn-hero { min-height:680px; }.cn-hero-shade { background:rgba(17,23,27,.7); }.cn-hero-content { padding:4.2rem 0 3.5rem; }.cn-hero h1 { font-size:2.55rem; }
  .hero-search-row { grid-template-columns:1fr 1fr; }.hero-search-row label:nth-child(2) { border-right:0; }.hero-search-row label:nth-child(3) { border-top:1px solid var(--line); }.hero-search-button { min-height:67px; border-top:1px solid var(--line); }
  .hero-quick-links { flex-wrap:wrap; }.market-strip-grid { grid-template-columns:1fr 1fr; }.market-strip-grid > div { padding:.8rem; border-bottom:1px solid var(--line); }.market-strip-grid > div:first-child { padding-left:.8rem; }
  .section,.confidence-section { padding:4rem 0; }.section-heading,.listings-title,.detail-title-row,.alert-band-inner { align-items:flex-start; flex-direction:column; }
  .listing-grid,.map-results { grid-template-columns:1fr; }.area-grid { grid-template-columns:1fr 1fr; }.confidence-grid,.advisor-grid,.knowledge-grid { grid-template-columns:1fr; gap:2.5rem; }.advisor-portrait { min-height:310px; }.advisor-stamp { right:10px; }
  .filter-panel { grid-template-columns:1fr 1fr; }.filter-title,.filter-panel .clear-button { grid-column:1/-1; }.results-toolbar { align-items:flex-start; flex-direction:column; padding:1rem 0; }
  .mock-map { height:460px; }.detail-grid { gap:1.3rem; }.detail-image { height:360px; }.detail-facts { grid-template-columns:1fr 1fr; }.detail-facts div:nth-child(2) { border-right:0; }.detail-facts div:nth-child(-n+2) { border-bottom:1px solid var(--line); }.consideration-grid { grid-template-columns:1fr; }
  .form-two { grid-template-columns:1fr; }.guide-sidebar { grid-template-columns:1fr; }.label-guide > div { align-items:flex-start; flex-direction:column; }.footer-grid { grid-template-columns:1fr; gap:2rem; }
}
@media (max-width:460px) {
  .brand small { font-size:.55rem; }.cn-hero h1 { font-size:2.2rem; }.hero-search-row { grid-template-columns:1fr; }.hero-search-row label { border-right:0; border-bottom:1px solid var(--line); }.hero-search-button { min-height:58px; }
  .market-strip-grid { grid-template-columns:1fr 1fr; }.area-grid { grid-template-columns:1fr; }.filter-panel { grid-template-columns:1fr; }.filter-title,.filter-panel .clear-button { grid-column:auto; }
  .listing-image { height:215px; }.detail-price { text-align:left; }.advisor-actions { align-items:flex-start; flex-direction:column; }.wechat-inline { padding:0; border:0; }
}
/* Realtor-only PropTx synchronization */
.admin-sync-panel { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:1.5rem; margin-bottom:1rem; background:#fff; border:1px solid #dce5e2; border-radius:12px; }
.admin-sync-panel h2 { margin:0 0 .4rem; }
.admin-sync-panel p { margin:0; color:#5c6c68; }
.sync-message { padding:1rem 1.2rem; margin:1rem 0; border-radius:8px; }
.sync-warning { background:#fff7df; border:1px solid #ebcf82; color:#674d08; }
.sync-success { background:#e9f7ef; border:1px solid #a9d8bd; color:#175d36; }
.sync-error { background:#fdecec; border:1px solid #e7aaaa; color:#842029; }
.admin-listing-table-wrap { background:#fff; border:1px solid #dce5e2; border-radius:12px; overflow:hidden; }
.admin-listing-table { margin:0; }
.admin-listing-table th { background:#f1f6f4; color:#244440; font-size:.76rem; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.admin-listing-table td { vertical-align:middle; }
.admin-listing-table small { color:#71817d; }
@media (max-width: 720px) { .admin-sync-panel { align-items:stretch; flex-direction:column; } }
.account-confirmation-callout { max-width:640px; padding:2rem; margin:1.5rem 0; background:#edf7f4; border:2px solid #2d766c; border-radius:12px; text-align:center; }
.account-confirmation-callout h2 { margin:0 0 .5rem; color:#173f3a; }
.account-confirmation-callout p { margin:0 0 1.25rem; color:#4c625e; }
.account-confirmation-button { display:inline-flex; justify-content:center; padding:.9rem 1.5rem; font-size:1.1rem; background:#b56a28; color:#fff !important; box-shadow:0 6px 16px rgba(76, 43, 15, .2); }
.account-confirmation-button:hover { background:#934f18; }
.account-confirmation-callout small { display:block; margin-top:1rem; color:#5c6c68; }
.mls-listing-placeholder,.mls-detail-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; color:#fff; background:linear-gradient(145deg,#173f3a,#2d766c 58%,#b68145); text-align:center; }
.mls-listing-placeholder:hover { color:#fff; }
.mls-placeholder-mark { font-family:var(--serif); font-size:2.2rem; font-weight:700; letter-spacing:.06em; }
.mls-listing-placeholder strong { font-size:1.05rem; }
.mls-listing-placeholder small,.mls-detail-placeholder small { color:rgba(255,255,255,.78); }
.mls-status-badge { display:inline-flex; width:max-content; padding:.35rem .65rem; border-radius:999px; background:#e3f2ed; color:#175d50; font-size:.72rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.listing-image > .mls-status-badge { position:absolute; left:12px; top:12px; background:rgba(255,255,255,.92); }
.listing-image > .mls-owner-badge { position:absolute; left:12px; bottom:12px; padding:.35rem .65rem; border-radius:999px; background:rgba(20,56,45,.92); color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.04em; }
.mls-detail-placeholder { min-height:430px; }
.mls-detail-placeholder strong { font-size:1.15rem; }
.listing-source-note { border-left:4px solid #2d766c; padding-left:1.3rem; }

.language-form { display:inline-flex; margin:0; align-items:center; flex-shrink:0; }
.language-form .language-switch { cursor:pointer; border:0; background:transparent; padding:.5rem; font:inherit; white-space:nowrap; }
.language-form .language-switch:focus-visible { outline:2px solid currentColor; outline-offset:2px; }


@media (max-width:760px) {
  .nav-inner { gap:.5rem; }
  .header-actions { margin-left:auto; order:2; }
  .nav-toggle-label { order:3; flex-shrink:0; }
  .nav-inner .brand-mark { flex:0 0 40px; }
  .nav-inner .brand strong { white-space:nowrap; }
}

/* Compact language controls and buyer-guide introduction. */
@media (max-width:1240px) {
  .nav-inner { height:64px; gap:.5rem; }
  .nav-inner .brand { flex:0 1 auto; min-width:0; }
  .nav-inner .brand > span:last-child { min-width:0; }
  .nav-inner .brand-mark { flex:0 0 40px; }
  .nav-inner .brand strong { white-space:nowrap; }
  .header-actions { margin-left:auto; order:2; }
  .nav-toggle { display:block; position:absolute; opacity:0; width:1px; height:1px; padding:0; clip-path:inset(50%); }
  .nav-toggle-label { display:grid; gap:4px; order:3; flex-shrink:0; }
  .nav-toggle-label span { width:24px; height:2px; background:var(--ink); }
  .main-nav { display:none; position:absolute; left:0; right:0; top:64px; flex-direction:column; align-items:stretch; gap:0; margin-left:0; padding:.7rem 18px 1.2rem; border-top:1px solid var(--line); background:#fff; box-shadow:0 12px 25px rgba(0,0,0,.08); }
  .nav-toggle:checked ~ .main-nav { display:flex; }
  .main-nav > a:not(.button) { padding:.75rem 0; }
  .main-nav > a:not(.button):after { display:none; }
  .admin-nav { margin-top:.75rem; }
  .admin-nav-links { position:static; margin-top:.4rem; box-shadow:none; }
}
.language-form .language-switch { display:grid; place-items:center; width:40px; height:40px; border-radius:6px; padding:.35rem; }
.language-form .language-switch:hover { background:#f3f4f5; }
.language-flag { width:28px; height:18px; border:1px solid #ddd; border-radius:2px; }
.site-shell .nav-inner .brand strong,.site-shell .nav-inner .brand small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.guide-hero { padding:1.75rem 0; }
.guide-hero h1 { margin:.45rem 0; font-size:clamp(1.65rem,3.2vw,2.6rem); line-height:1.25; }
.guide-hero p { margin:.6rem auto 0; font-size:.95rem; }
.guide-body { padding-top:2rem; }
@media (max-width:760px) {
  .guide-hero { padding:1.25rem 0; }
}
