:root{--navy:#0b2545;--navy-2:#13315c;--navy-3:#1f4e8a;--navy-soft:#e9eef6;--navy-tint:#f4f7fb;--ink:#1d2b3a;--ink-soft:#5b6b7c;--line:#dfe5ec;--bg:#fff;--star:#f2b01e;--radius:14px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;font-size:16px}
a{color:var(--navy-3)}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.sr{position:absolute;left:-9999px}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);z-index:20}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.mark{width:34px;height:34px;border-radius:9px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700;font-size:18px}
.word{display:flex;flex-direction:column;line-height:1.05}
.word b{font-size:15px;font-weight:700}
.word small{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:3px}
.toplinks{display:flex;gap:18px;align-items:center;font-size:14px}
.toplinks a{color:var(--ink);text-decoration:none;font-weight:500}
.toplinks a:hover{color:var(--navy-3)}
.hcta{background:var(--navy);color:#fff!important;padding:9px 14px;border-radius:9px;font-weight:600}

/* intro */
.crumbs{font-size:12px;color:var(--ink-soft);margin:22px 0 10px;display:flex;flex-wrap:wrap;gap:6px}
.crumbs .sep{color:#aab4c0}
h1{font-size:clamp(28px,4vw,40px);line-height:1.12;margin:0 0 12px;letter-spacing:-.01em;color:var(--navy)}
.lede{font-size:17px;color:var(--ink-soft);max-width:860px;margin:0 0 20px}
.lede b{color:var(--ink)}
.searchbar{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:0 6px 24px rgba(11,37,69,.06);margin:0 0 26px;background:#fff}
.searchbar .pill{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--navy-tint);border-radius:10px;font-size:14px;white-space:nowrap}
.searchbar svg{width:18px;height:18px;fill:var(--navy-3)}
.searchbar input{flex:1;border:0;font:inherit;font-size:15px;padding:10px 12px;outline:none;min-width:0}
.searchbar .dark{background:var(--navy);color:#fff;border:0;border-radius:10px;padding:12px 18px;font:inherit;font-weight:600;cursor:pointer}
.disclaimer{font-size:13px;color:var(--ink-soft);background:var(--navy-tint);border:1px solid var(--line);padding:10px 14px;border-radius:10px;margin:0 0 20px}

/* layout */
.layout{display:grid;grid-template-columns:230px 1fr;gap:34px;align-items:start}
.sidebar{position:sticky;top:76px}
.fgroup{margin-bottom:22px}
.fgroup h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}
.fgroup label{display:flex;gap:8px;align-items:center;font-size:14px;padding:4px 0;cursor:pointer}
.fgroup input{accent-color:var(--navy)}
.clear{background:none;border:0;color:var(--navy-3);font:inherit;font-size:13px;cursor:pointer;padding:0;text-decoration:underline}
.listhead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;flex-wrap:wrap}
.listhead b{font-size:15px}
.featured-note{margin:4px 0 0;font-size:13px;color:var(--ink-soft)}
.sort{font-size:14px;color:var(--ink-soft)}
.sort select{font:inherit;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:#fff}
.list-h{font-size:20px;margin:6px 0 14px}
.empty{color:var(--ink-soft);padding:30px 0}

/* cards */
.card{position:relative;border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:18px;background:#fff;transition:box-shadow .2s}
.card:hover{box-shadow:0 10px 30px rgba(11,37,69,.08)}
.card.featured{border-color:var(--navy-2);box-shadow:0 10px 36px rgba(11,37,69,.12)}
.ribbon{display:inline-block;background:var(--navy);color:#fff;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:5px 10px;border-radius:6px;margin-bottom:14px}
.card-grid{display:grid;grid-template-columns:200px 1fr;gap:22px}
.card.featured .card-grid{grid-template-columns:240px 1fr}
.photo-col{position:relative}
.photo{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;background:var(--navy-tint)}
.photo.placeholder{display:grid;place-items:center;color:var(--navy-2);font-weight:700;font-size:40px}
.cap{position:absolute;left:10px;bottom:10px;background:rgba(11,37,69,.86);color:#fff;font-size:11px;padding:5px 8px;border-radius:6px;letter-spacing:.04em;max-width:calc(100% - 20px)}
.name{margin:0 0 4px;font-size:22px;line-height:1.2;color:var(--navy)}
.card.featured .name{font-size:26px}
.name .num{color:var(--ink-soft);font-weight:500;margin-right:2px}
.brokerage{font-weight:500;color:var(--ink)}
.cred{font-size:13px;color:var(--ink-soft);margin-top:2px}
.metaline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px;color:var(--ink-soft);margin:8px 0}
.stars{color:var(--star);letter-spacing:1px;font-size:15px}
.rating-n{font-weight:600;color:var(--ink)}
.metaline .sep{color:#aab4c0}
.focus{font-weight:600;margin:8px 0 4px}
.facts{list-style:none;padding:0;margin:6px 0 10px;font-size:14px;color:var(--ink-soft)}
.facts li{padding-left:20px;position:relative;margin:3px 0}
.facts li:before{content:"✓";position:absolute;left:0;color:var(--navy-3);font-weight:700}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.tag{background:var(--navy);color:#fff;font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px}
.bestfor{margin:0 0 10px;font-size:15px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0 14px}
.tile{background:var(--navy-tint);border:1px solid var(--line);border-radius:10px;padding:12px}
.tile-v{font-weight:700;font-size:18px;color:var(--navy)}
.tile-v.long{font-size:14px;line-height:1.3}
.tile-l{font-size:12px;color:var(--ink-soft);margin-top:2px}
.bio p{margin:0 0 10px;font-size:15px}
.readmore{background:none;border:0;color:var(--navy-3);font:inherit;font-size:14px;font-weight:600;cursor:pointer;padding:0;margin:0 0 10px}
.readmore:hover{text-decoration:underline}
.sales-h{margin:14px 0 8px;font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
.table-wrap{overflow-x:auto}
table.sales{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:12px}
table.sales th,table.sales td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
table.sales th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:600}
table.sales td.num{white-space:nowrap}
.cardfoot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:10px}
.btn{background:var(--navy);color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:10px 16px;border-radius:9px}
.btn:hover{background:var(--navy-2)}
.foot-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--ink-soft);align-items:center}
.foot-meta .phone{color:var(--navy-3);text-decoration:none;font-weight:500}

/* sections */
.section{margin:46px 0 0;padding-top:30px;border-top:1px solid var(--line)}
.section h2{font-size:24px;margin:0 0 14px;color:var(--navy)}
.section p{max-width:820px;font-size:15.5px}
.nb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.nb{background:var(--navy-tint);border:1px solid var(--line);border-radius:12px;padding:16px}
.nb h3{margin:0 0 6px;font-size:16px;color:var(--navy)}
.nb p{margin:0;font-size:14px;color:var(--ink-soft)}
table.market{border-collapse:collapse;min-width:320px;font-size:15px}
table.market th,table.market td{text-align:left;padding:9px 14px 9px 0;border-bottom:1px solid var(--line)}
table.market th{font-weight:500;color:var(--ink-soft)}
.note{font-size:13px;color:var(--ink-soft)}
.faq-item{border-bottom:1px solid var(--line);padding:4px 0}
.faq-item summary{cursor:pointer;font-weight:600;padding:12px 0;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"+";color:var(--navy-3);font-weight:700;font-size:20px;line-height:1}
.faq-item[open] summary:after{content:"–"}
.faq-a p{margin:0 0 14px;color:var(--ink-soft)}
.foot{margin-top:60px;background:var(--navy-tint);border-top:1px solid var(--line);padding:26px 0;font-size:13px;color:var(--ink-soft)}
.foot p{margin:0 0 6px}
.copy{font-size:12px}

@media (max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:static}.sidebar-in{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:0 20px;border:1px solid var(--line);border-radius:12px;padding:14px}.toplinks a:not(.hcta){display:none}}
@media (max-width:640px){.card{padding:16px}.card-grid,.card.featured .card-grid{grid-template-columns:1fr}.photo{max-width:220px}.searchbar{flex-wrap:wrap}.searchbar .pill{display:none}.searchbar .dark{width:100%}.name,.card.featured .name{font-size:20px}}
