:root{
  --ink:#0A1628; --ink-2:#1F3551; --muted:#5B6B7C;
  --paper:#FAFAF7; --paper-2:#FFFFFF; --line:#E5E7EB; --line-2:#D1D5DB;
  --navy:#0E2A47; --navy-2:#173B62; --navy-3:#08182A; --navy-soft:#EAF0F7;
  --amber:#F59E0B; --amber-2:#D97706; --amber-soft:#FEF3C7;
  --green:#0E7C5A; --green-soft:#DCF5EA;
  --shadow-sm:0 1px 2px rgba(10,22,40,.06);
  --shadow:0 1px 2px rgba(10,22,40,.05), 0 12px 32px -8px rgba(10,22,40,.12);
  --shadow-lg:0 4px 8px rgba(10,22,40,.06), 0 24px 56px -12px rgba(10,22,40,.18);
  --radius:14px; --radius-sm:10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter','DM Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink); background:var(--paper); line-height:1.6;
  -webkit-font-smoothing:antialiased; font-feature-settings:"cv11","ss01";
}
a{color:var(--navy-2); text-decoration:none}
a:hover{color:var(--amber-2); text-decoration:underline; text-underline-offset:3px}
img{max-width:100%; display:block}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px}
h1,h2,h3,h4{font-family:inherit; color:var(--ink); margin:0 0 .55em; line-height:1.15; letter-spacing:-.02em; font-weight:700}
h1{font-size:clamp(2.1rem, 4.6vw, 3.4rem); letter-spacing:-.03em}
h2{font-size:clamp(1.55rem, 2.8vw, 2.15rem); letter-spacing:-.025em}
h3{font-size:1.18rem}
h4{font-size:1rem}
p{margin:0 0 1em}
.muted{color:var(--muted)}
small{color:var(--muted)}
hr{border:0; border-top:1px solid var(--line); margin:32px 0}

/* Header */
.site-header{background:rgba(255,255,255,.92); backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:30}
.header-row{display:flex; align-items:center; justify-content:space-between; padding:16px 24px; gap:24px}
.brand{display:inline-flex; align-items:center; gap:10px; color:var(--ink); font-weight:700; font-size:1.18rem; letter-spacing:-.01em}
.brand:hover{text-decoration:none; color:var(--ink)}
.brand-mark{width:36px;height:36px;display:inline-grid;place-items:center;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;border-radius:10px; box-shadow:0 4px 10px -2px rgba(14,42,71,.35)}
.brand-text strong{color:var(--amber-2)}
.primary-nav{display:flex; gap:6px; flex-wrap:wrap}
.primary-nav a{color:var(--ink-2); font-weight:500; padding:8px 12px; border-radius:8px; font-size:.95rem}
.primary-nav a:hover{background:var(--navy-soft); color:var(--navy); text-decoration:none}
@media (max-width:720px){
  .primary-nav{gap:0; font-size:.88rem}
  .primary-nav a{padding:6px 8px}
}

/* Crumbs */
.crumbs{padding:18px 24px 0}
.crumbs ol{display:flex; gap:8px; padding:0; margin:0; list-style:none; flex-wrap:wrap; color:var(--muted); font-size:.88rem}
.crumbs li+li::before{content:"›"; padding-right:8px; color:var(--line-2)}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--navy-2)}
.crumbs li:last-child span{color:var(--ink); font-weight:500}

/* Hero */
.hero{position:relative; padding:72px 0 56px; overflow:hidden; background:
  radial-gradient(1100px 520px at 85% -10%, rgba(245,158,11,.10), transparent 60%),
  radial-gradient(900px 480px at -10% 110%, rgba(14,42,71,.08), transparent 60%),
  linear-gradient(180deg,#FFFFFF 0%, #FAFAF7 100%);
  border-bottom:1px solid var(--line)}
.hero::before{content:""; position:absolute; inset:0; background-image:
  linear-gradient(var(--line) 1px, transparent 1px),
  linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:48px 48px; opacity:.18; pointer-events:none; mask-image:radial-gradient(ellipse at top, black 30%, transparent 75%)}
.hero > *{position:relative}
.hero h1{margin-top:14px; max-width:18ch}
.hero h1 .accent{background:linear-gradient(120deg,var(--amber-2),var(--amber)); -webkit-background-clip:text; background-clip:text; color:transparent}
.hero .lead{font-size:1.18rem; color:var(--ink-2); max-width:58ch; margin-top:14px}
.eyebrow{display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:999px; background:#fff; border:1px solid var(--line); color:var(--navy); font-weight:600; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; box-shadow:var(--shadow-sm)}
.eyebrow::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--amber); box-shadow:0 0 0 3px var(--amber-soft)}

/* Search bar */
.searchbar{background:#fff; border:1px solid var(--line); border-radius:16px; padding:10px; display:grid; grid-template-columns:auto 1fr 1fr auto; gap:8px; box-shadow:var(--shadow); margin-top:28px; max-width:760px}
.searchbar .sb-icon{display:none}
@media (min-width:780px){
  .searchbar{grid-template-columns: 220px 1fr auto}
}
@media (max-width:680px){
  .searchbar{grid-template-columns:1fr; padding:12px}
}
.searchbar select, .searchbar input{
  appearance:none; -webkit-appearance:none; border:0; border-radius:10px; padding:14px 14px; font:inherit; background:#F6F8FB; color:var(--ink);
  min-width:0;
}
.searchbar select{background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%); background-position:calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size:5px 5px,5px 5px; background-repeat:no-repeat; padding-right:34px}
.searchbar select:focus, .searchbar input:focus{outline:2px solid var(--amber); background:#fff}
.searchbar input::placeholder{color:#94A0AC}

.btn{display:inline-flex; align-items:center; gap:8px; background:var(--navy); color:#fff; border:0; padding:13px 22px; border-radius:10px; font:inherit; font-weight:600; cursor:pointer; text-decoration:none; transition:transform .08s ease, background .15s ease, box-shadow .15s ease}
.btn:hover{background:var(--navy-2); text-decoration:none; color:#fff; box-shadow:0 8px 20px -8px rgba(14,42,71,.5)}
.btn:active{transform:translateY(1px)}
.btn--amber{background:var(--amber); color:var(--navy-3)}
.btn--amber:hover{background:var(--amber-2); color:#fff}
.btn--ghost{background:transparent; color:var(--navy); border:1px solid var(--line-2)}
.btn--ghost:hover{background:var(--navy-soft); color:var(--navy); border-color:var(--navy-soft)}
.btn--lg{padding:15px 28px; font-size:1.02rem}

/* Trust strip / hero badges */
.trust-row{display:flex; gap:20px; margin-top:22px; flex-wrap:wrap; color:var(--muted); font-size:.9rem}
.trust-row > span{display:inline-flex; align-items:center; gap:8px}
.trust-row svg{flex:none; color:var(--green)}

/* Section */
section.block{padding:64px 0}
section.block.tight{padding:36px 0}
section.alt{background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
section.dark{background:var(--navy-3); color:#D8E2EE}
section.dark h1,section.dark h2,section.dark h3,section.dark h4{color:#fff}
.section-head{display:flex; justify-content:space-between; align-items:end; gap:16px; margin-bottom:26px; flex-wrap:wrap}
.section-head h2{margin:0}
.section-head .lead-sub{color:var(--muted); margin:6px 0 0; max-width:60ch}
.section-head a{font-weight:600; color:var(--navy-2)}
.section-head a:hover{color:var(--amber-2)}

/* Stat row */
.stat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:24px}
@media (max-width:780px){ .stat-row{grid-template-columns:repeat(2,1fr)} }
.stat{background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px 20px; transition:border-color .15s}
.stat:hover{border-color:var(--navy-soft)}
.stat .num{font-size:1.85rem; color:var(--navy); font-weight:700; letter-spacing:-.02em}
.stat .label{color:var(--muted); font-size:.88rem; margin-top:2px}

/* Cards */
.card-grid{display:grid; gap:18px; grid-template-columns:repeat(3,1fr)}
.card-grid.two{grid-template-columns:repeat(2,1fr)}
@media (max-width:980px){ .card-grid, .card-grid.two{grid-template-columns:repeat(2,1fr)} }
@media (max-width:620px){ .card-grid, .card-grid.two{grid-template-columns:1fr} }
.card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; transition:transform .12s ease, box-shadow .15s ease, border-color .15s ease; display:block; color:inherit; position:relative; overflow:hidden}
.card:hover{transform:translateY(-3px); box-shadow:var(--shadow); text-decoration:none; color:inherit; border-color:var(--navy-soft)}
.card h3{margin:0 0 8px; color:var(--ink); font-size:1.1rem}
.card .meta{color:var(--muted); font-size:.92rem; margin:0}
.card .pill{display:inline-flex; align-items:center; gap:5px; background:var(--navy-soft); color:var(--navy-2); padding:4px 10px; border-radius:999px; font-size:.76rem; font-weight:600; margin-top:12px; letter-spacing:.02em}
.card .pill.amber{background:var(--amber-soft); color:var(--amber-2)}

/* Featured property card */
.feat-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:0; overflow:hidden; transition:transform .12s ease, box-shadow .15s ease, border-color .15s ease; display:flex; flex-direction:column; color:inherit}
.feat-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg); text-decoration:none; color:inherit; border-color:var(--navy-soft)}
.feat-card .feat-thumb{aspect-ratio:16/9; background:linear-gradient(135deg,var(--navy),var(--navy-2)); display:grid; place-items:center; color:#fff; position:relative}
.feat-card .feat-thumb::after{content:""; position:absolute; inset:0; background:radial-gradient(800px 200px at 110% -20%, rgba(245,158,11,.45), transparent 50%)}
.feat-card .feat-thumb svg{width:48px; height:48px; opacity:.85; position:relative}
.feat-card .feat-body{padding:18px 20px 20px}
.feat-card .feat-body h3{font-size:1.08rem; margin:0 0 6px}
.feat-card .feat-body .meta{color:var(--muted); font-size:.92rem; margin:0 0 4px}
.feat-card .feat-tag{position:absolute; top:14px; left:14px; background:var(--amber); color:var(--navy-3); padding:5px 10px; border-radius:999px; font-size:.74rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase}

/* Chip grid */
.chip-grid{display:grid; gap:10px; grid-template-columns:repeat(4,1fr)}
@media (max-width:880px){ .chip-grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width:580px){ .chip-grid{grid-template-columns:repeat(2,1fr)} }
.chip{background:#fff; border:1px solid var(--line); border-radius:10px; padding:13px 14px; display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--ink); transition:border-color .12s, transform .1s}
.chip:hover{border-color:var(--navy); color:var(--navy); text-decoration:none; transform:translateY(-1px)}
.chip > span:first-child{font-weight:500; font-size:.95rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.chip .count{color:var(--muted); font-size:.82rem; flex:none}

/* Listing detail */
.listing-grid{display:grid; grid-template-columns:1.55fr .95fr; gap:28px; align-items:start}
@media (max-width:920px){ .listing-grid{grid-template-columns:1fr} }
.panel{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px}
.panel h3{margin:24px 0 10px; font-size:1.1rem}
.panel h3:first-child{margin-top:0}
.panel p{color:var(--ink-2)}
.panel ul{padding-left:20px; color:var(--ink-2)}
.panel ul li{margin:.4em 0}
.kv{display:grid; grid-template-columns:max-content 1fr; gap:10px 22px; margin:0}
.kv dt{color:var(--muted); font-size:.88rem}
.kv dd{margin:0; font-weight:500; color:var(--ink)}
.tags{display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 0}
.tag{background:var(--navy-soft); color:var(--navy); padding:5px 12px; border-radius:999px; font-size:.82rem; font-weight:600}
.tag.alt{background:var(--amber-soft); color:var(--amber-2)}

/* Sidebar resources */
.resources-card{background:linear-gradient(180deg,#FFFEF8,#FFFFFF); border:1px solid var(--amber-soft); border-radius:var(--radius); padding:22px; margin-top:18px}
.resources-card h3{margin:0 0 12px; font-size:.95rem; text-transform:uppercase; letter-spacing:.06em; color:var(--navy)}
.resources-card ul{list-style:none; padding:0; margin:0}
.resources-card li{padding:10px 0; border-bottom:1px solid var(--amber-soft)}
.resources-card li:last-child{border-bottom:0}
.resources-card a{color:var(--navy-2); font-weight:500; display:block}
.resources-card a:hover{color:var(--amber-2)}
.resources-card .src{display:block; color:var(--muted); font-size:.78rem; margin-top:2px; font-weight:400}

/* Tables */
table.list{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden}
table.list th, table.list td{padding:14px 16px; text-align:left; border-bottom:1px solid var(--line); font-size:.95rem; vertical-align:top}
table.list th{background:#F6F8FB; color:var(--ink-2); font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.05em}
table.list tr:last-child td{border-bottom:0}
table.list tr:hover td{background:#FAFBFD}
table.list a{color:var(--ink); font-weight:600}
table.list a:hover{color:var(--navy-2)}
@media (max-width:680px){
  table.list, table.list thead, table.list tbody, table.list tr, table.list td, table.list th{display:block}
  table.list thead{display:none}
  table.list tr{border-bottom:1px solid var(--line); padding:8px 4px}
  table.list td{border-bottom:0; padding:6px 14px; font-size:.95rem}
  table.list td:first-child{padding-top:14px; font-weight:600}
  table.list td:last-child{padding-bottom:14px}
}

/* Pagination */
.pagination{display:flex; gap:6px; justify-content:center; padding:28px 0; flex-wrap:wrap}
.pagination a, .pagination span{padding:9px 14px; border-radius:8px; border:1px solid var(--line); color:var(--ink); background:#fff; font-weight:500; font-size:.92rem}
.pagination a:hover{border-color:var(--navy); color:var(--navy); text-decoration:none}
.pagination .current{background:var(--navy); color:#fff; border-color:var(--navy)}
.pagination .gap{border:0; background:transparent; color:var(--muted)}

/* Article (static + content) */
.article{max-width:780px; margin:0 auto; padding:18px 0}
.article p{font-size:1.05rem; color:var(--ink-2)}
.article h2{margin-top:1.6em}
.article ul{padding-left:20px}
.article li{margin:.4em 0}
.callout{background:var(--navy-soft); border-left:4px solid var(--navy); border-radius:8px; padding:16px 20px; margin:20px 0; color:var(--ink-2)}
.callout.amber{background:var(--amber-soft); border-left-color:var(--amber-2)}
.callout strong{color:var(--ink)}

/* CTA band */
.cta-band{background:linear-gradient(135deg, var(--navy), var(--navy-2) 65%, var(--navy-3)); color:#fff; border-radius:18px; padding:36px 36px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; position:relative; overflow:hidden}
.cta-band::after{content:""; position:absolute; inset:0; background:radial-gradient(600px 200px at 110% -50%, rgba(245,158,11,.35), transparent 60%); pointer-events:none}
.cta-band > *{position:relative}
.cta-band h2{color:#fff; margin:0}
.cta-band p{margin:8px 0 0; color:#BFD0E2}
.cta-band .btn{background:var(--amber); color:var(--navy-3)}
.cta-band .btn:hover{background:#fff; color:var(--navy)}

/* Footer */
.site-footer{background:var(--navy-3); color:#A9B8C8; margin-top:64px; border-top:1px solid #16273E}
.site-footer h4{color:#fff; margin:0 0 14px; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600}
.site-footer .muted{color:#7A8A9C}
.site-footer ul{list-style:none; padding:0; margin:0}
.site-footer li{margin:8px 0}
.site-footer a{color:#C2CFDC}
.site-footer a:hover{color:var(--amber); text-decoration:none}
.site-footer .brand--footer{color:#fff; margin-bottom:14px}
.site-footer .brand--footer .brand-text strong{color:var(--amber)}
.site-footer .brand-mark{background:linear-gradient(135deg,var(--amber),var(--amber-2)); color:var(--navy-3)}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:36px; padding:52px 24px}
@media (max-width:880px){ .footer-grid{grid-template-columns:1fr 1fr; gap:30px} }
.footer-bottom{padding:20px 24px; border-top:1px solid #16273E; color:#7A8A9C; font-size:.85rem}
.footer-resources li{padding:6px 0; border-bottom:1px solid #16273E}
.footer-resources li:last-child{border-bottom:0}
.footer-resources a{display:block; line-height:1.4}
.footer-resources .src{display:block; color:#6A7A8B; font-size:.76rem; margin-top:2px}

/* Ad placeholders */
.ad-slot{margin:28px 0; padding:14px; border:1px dashed var(--line); border-radius:10px; text-align:center; color:var(--muted); background:#fff; font-size:.82rem}

/* Misc */
.tag-program{display:inline-block; background:var(--navy-soft); color:var(--navy); padding:4px 10px; border-radius:999px; font-size:.76rem; font-weight:600; white-space:nowrap}
.divider{height:1px; background:var(--line); margin:36px 0}

/* Skip link */
.skip{position:absolute; left:-9999px; top:0}
.skip:focus{left:12px; top:12px; background:#fff; padding:10px 14px; border-radius:8px; box-shadow:var(--shadow); z-index:100}
