@font-face{font-family:'Barlow Condensed';src:url('fonts/BarlowCondensed-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('fonts/BarlowCondensed-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Barlow;src:url('fonts/Barlow-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Barlow;src:url('fonts/Barlow-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Barlow;src:url('fonts/Barlow-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Barlow;src:url('fonts/Barlow-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/IBMPlexMono-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/IBMPlexMono-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}

:root{
  --cb:#0B2D5B;
  --am:#D99A2B;
  --ink:#23252F;
  --sl:#5A5C66;
  --line:#E4E0D8;
  --sn:#F8F7F4;
  --paper:#fff;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--sn);color:var(--ink);font:400 16px/1.55 Barlow,sans-serif}
img{display:block;max-width:100%}
a{color:var(--cb);text-decoration:none}
h1,h2,h3{font-family:'Barlow Condensed',sans-serif;font-weight:700;line-height:1.05;color:var(--cb);letter-spacing:.01em}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:.04em;text-transform:uppercase}
.wrap{max-width:1280px;margin:0 auto;padding:0 48px}

.mock{background:var(--cb);color:#fff;font:500 12px/1 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:8px 16px}
.topbar{background:var(--cb);color:#fff;font-size:14px}
.topbar .wrap{display:flex;justify-content:flex-end;align-items:center;gap:28px;height:40px}
.topbar a{color:#fff}
.topbar .val{margin-right:auto;background:var(--am);color:var(--cb);font-weight:600;padding:4px 12px}

.nav{background:#fff;border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;height:76px;gap:28px}
.nav .logo{height:42px;width:auto}
.nav nav{margin-left:auto;display:flex;gap:28px;font-weight:500;font-size:16px}
.nav nav a{color:var(--cb);position:relative;padding:26px 0}
.nav nav a.on{font-weight:700}
.nav nav a.on:after{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--am)}
.nav .find{background:var(--cb);color:#fff;font-weight:600;padding:12px 20px;white-space:nowrap}

.hero{background:var(--cb);color:#fff;padding:36px 0 32px}
.hero h1{color:#fff;font-size:44px;text-transform:uppercase;max-width:18ch}
.hero p{color:#fff;margin-top:12px;max-width:46em;opacity:.95}
.hero a{color:#fff;border-bottom:2px solid var(--am);font-weight:600}

.filters{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.filters .wrap{display:flex;align-items:center;gap:10px;min-height:72px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px}
.fb,.fs{font:600 15px Barlow,sans-serif;color:var(--cb);background:#fff;border:2px solid var(--cb);padding:8px 14px;cursor:pointer}
.fb.on{background:var(--cb);color:#fff}
.fs{background:#fff}
.fcount{margin-left:auto;color:var(--sl);white-space:nowrap}
.fcount b{font:700 22px 'Barlow Condensed',sans-serif;color:var(--cb);margin-right:4px}

.results{padding:36px 0 20px}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.card{background:#fff;display:block;color:inherit;box-shadow:0 8px 24px rgba(11,45,91,.08);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(11,45,91,.14)}
.card .ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--cb)}
.card .ph img{width:100%;height:100%;object-fit:cover}
.tag{position:absolute;left:0;top:16px;font:500 12px/1 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;padding:7px 11px;background:var(--am);color:var(--cb)}
.card .bd{padding:18px 20px 22px}
.card h2{font-size:26px;margin:0 0 6px}
.card .ad{color:var(--sl);font-size:15px}
.empty{display:none;padding:48px 0;color:var(--sl)}
.empty.on{display:block}

.help{padding:10px 0 72px;text-align:center}
.help p{font-size:18px;color:var(--cb)}
.help a{border-bottom:2px solid var(--am);font-weight:600}

footer{background:#07182F;color:#C9CED6;padding:36px 0}
footer .wrap{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
footer strong{color:#fff;font-weight:600}
footer a{color:#fff}

/* Property page */
.crumb{padding:18px 0 0;font-size:14px;color:var(--sl)}
.crumb a{font-weight:600}
.prop{padding:18px 0 64px}
.prop-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px 40px;align-items:start;grid-template-areas:"gallery gallery" "title contact" "details contact" "plans plans" "loc loc"}
.gallery{grid-area:gallery}
.title{grid-area:title}
.details{grid-area:details}
.contact{grid-area:contact}
.plans{grid-area:plans}
.loc{grid-area:loc}
.gallery .main{background:#0B2D5B;aspect-ratio:16/9;overflow:hidden}
.gallery .main img{width:100%;height:100%;object-fit:cover;object-position:center 48%}
.thumbs{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-top:8px}
.thumbs button{border:2px solid transparent;padding:0;background:none;cursor:pointer;aspect-ratio:16/10;overflow:hidden}
.thumbs button.on{border-color:var(--cb)}
.thumbs img{width:100%;height:100%;object-fit:cover}

.prop h1{font-size:48px;margin:8px 0 8px;text-transform:uppercase}
.prop .addr{font-size:18px;color:var(--sl)}
.specs{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.specs div{padding:16px 0;border-bottom:1px solid var(--line)}
.specs dt{font:500 11px/1 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--sl);margin-bottom:6px}
.specs dd{font:700 22px/1.15 'Barlow Condensed',sans-serif;color:var(--cb)}
.about{margin-top:28px}
.about h2{font-size:28px;margin-bottom:10px}
.about p{max-width:46em}

.contact{background:#fff;padding:24px;box-shadow:0 8px 24px rgba(11,45,91,.08);margin-top:8px}
.contact .k{font:500 11px/1 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--sl)}
.contact h2{font-size:30px;margin:8px 0 4px}
.contact .role{color:var(--sl);margin-bottom:20px}
.btn{display:block;text-align:center;font:600 16px Barlow,sans-serif;padding:13px 16px;background:var(--cb);color:#fff;margin-top:10px}
.btn.ghost{background:#fff;color:var(--cb);box-shadow:inset 0 0 0 2px var(--cb)}

.plans{margin-top:8px}
.plans h2{font-size:28px;margin:0 0 12px}
.plans figure{background:#fff;padding:12px;margin:0 0 28px}
.plans figcaption{font-size:14px;color:var(--sl);padding:8px 4px 0}

@media (max-width:900px){
  .wrap{padding:0 20px}
  .nav nav,.nav .find,.topbar{display:none}
  .hero{padding:28px 0}
  .hero h1{font-size:32px}
  .grid{grid-template-columns:1fr;gap:20px}
  .filters .wrap{height:auto}
  .fcount{width:100%;margin:4px 0 0}
  .prop h1{font-size:34px}
  .prop-body{grid-template-columns:1fr;grid-template-areas:"gallery" "title" "contact" "details" "plans" "loc";gap:20px}
  .contact{position:static;margin-top:0}
  .thumbs{grid-template-columns:repeat(4,1fr)}
  .specs{grid-template-columns:1fr}
  footer .wrap{flex-direction:column}
}


.mapfab{display:none;position:fixed;right:20px;left:auto;bottom:24px;transform:none;z-index:35;font:600 16px Barlow,sans-serif;color:#fff;background:var(--cb);border:0;padding:14px 22px;cursor:pointer;box-shadow:0 8px 24px rgba(11,45,91,.25)}
.mappane .close{display:none}
.pin.cluster{background:var(--cb);color:#fff;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--cb),0 2px 8px rgba(11,45,91,.35)}

/* Inventory workspace */
.hero{padding:22px 0 18px}
.hero h1{font-size:32px;max-width:none}
.filters{z-index:40}
.filters .wrap{gap:10px 12px}
.search{flex:1 1 200px;min-width:180px;max-width:280px;font:500 15px Barlow,sans-serif;color:var(--cb);border:2px solid var(--cb);padding:8px 12px;background:#fff}
.search::placeholder{color:var(--sl)}
.mappill{display:none}
.mapfab{display:none}

.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;min-height:calc(100vh - 72px)}
.listpane{padding:28px 32px 48px 48px}
.listpane .grid{grid-template-columns:1fr;gap:22px}
.mappane .close{display:none}
.mappane{position:sticky;top:72px;height:calc(100vh - 72px);background:#E8EAEC}
#map,.locmap{width:100%;height:100%;background:#E8EAEC}
.card{position:relative}
.card.hot{box-shadow:0 0 0 2px var(--cb),0 14px 32px rgba(11,45,91,.16)}
.idx{position:absolute;right:12px;top:16px;z-index:2;font:500 12px/1 'IBM Plex Mono',monospace;letter-spacing:.04em;color:#fff;background:var(--cb);padding:7px 8px}
.card.hot .idx{background:var(--am);color:var(--cb)}
.help{padding:28px 0 8px;text-align:left}

.pin{width:30px;height:30px;background:var(--cb);color:#fff;border:2px solid #fff;border-radius:50%;font:500 12px/26px 'IBM Plex Mono',monospace;text-align:center;box-shadow:0 2px 8px rgba(11,45,91,.35);cursor:pointer}
.pin.hot{background:var(--am);color:var(--cb);transform:scale(1.12)}
.leaflet-container{font-family:Barlow,sans-serif;background:#E8EAEC}
.leaflet-popup-content-wrapper{border-radius:0;box-shadow:0 10px 28px rgba(11,45,91,.18);padding:0}
.leaflet-popup-content{margin:0;width:240px !important}
.leaflet-popup-tip{background:#fff}
.pop{display:block;color:inherit;background:#fff}
.pop img{width:100%;height:132px;object-fit:cover}
.pop .bd{padding:12px 14px 14px}
.pop .k{font:500 11px/1 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--cb);margin-bottom:6px}
.pop h3{font-size:20px;margin:0 0 4px}
.pop .ad{font-size:13px;color:var(--sl);margin:0 0 10px}
.pop .go{font:600 14px Barlow,sans-serif;color:var(--cb);border-bottom:2px solid var(--am)}

.loc{margin-top:8px;margin-bottom:28px}
.loc h2{font-size:28px;margin:0 0 12px}
.locmap{height:360px;background:#E8EAEC}
.loc p{font-size:14px;color:var(--sl);padding:8px 0 0}

@media (max-width:900px){
  .hero{padding:22px 0 16px}
  .hero h1{font-size:28px}
  .search{flex:1 1 100%;max-width:none}
  .mappill{display:inline-flex;align-items:center;margin-left:auto;font:600 15px Barlow,sans-serif;color:#fff;background:var(--cb);border:0;padding:8px 18px;cursor:pointer}
  .mapfab{display:none}
  .fcount{flex:1 1 auto;width:auto;margin:0}
  .workspace{display:block;min-height:0}
  .listpane{padding:20px}
  .mappane{display:none;position:fixed;inset:0;top:0;height:100%;z-index:80;background:#E8EAEC}
  .mappane.open{display:block}
  .mappane .close{display:block;position:absolute;left:50%;bottom:24px;right:auto;top:auto;transform:translateX(-50%);z-index:500;background:var(--cb);color:#fff;border:0;font:600 16px Barlow,sans-serif;padding:14px 28px;cursor:pointer;box-shadow:0 8px 24px rgba(11,45,91,.25)}
  .mapfab.hide{display:none}
}

/* ===== Nov 9 package: property pages, mobile header, call bar, road labels ===== */
.filters .wrap{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap}
.frow{display:flex;align-items:center;gap:10px}
.frow.f2{flex:1 1 360px}
.frow.f2 .search{max-width:320px}

.kick{font:500 12px/1 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--sl);margin-top:4px}
.crumb{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.crumb .back{font-weight:700;color:var(--cb)}
.crumb .sep{color:var(--line)}
.prop-body{grid-template-areas:"gallery gallery" "title contact" "details contact" "plans plans" "loc loc" "others others"}
.prop .intro{margin-top:14px;max-width:46em;font-size:17px}
.btn.dl{display:inline-flex;align-items:baseline;gap:10px;margin-top:18px;padding:13px 20px}
.btn.dl span{font:500 12px 'IBM Plex Mono',monospace;letter-spacing:.04em;opacity:.9}
.details h2{font-size:28px;margin:0 0 12px}
.gallery .main{position:relative}
.gallery .main svg.f1{position:absolute;inset:0;width:100%;height:100%;display:none;pointer-events:none}
.gallery .main .chip{position:absolute;display:none;align-items:center;gap:8px;height:34px;padding:0 12px 0 9px;background:var(--cb);color:#fff;font:700 15px/1 'Barlow Condensed',sans-serif;letter-spacing:.06em;white-space:nowrap;pointer-events:none}
.gallery .main .chip i{display:block;width:4px;height:18px;background:var(--am)}
.gallery .main.show-f1 svg.f1{display:block}
.gallery .main.show-f1 .chip{display:flex}
.thumbs{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
.plans figure.tall img{max-width:420px;margin:0 auto}
.plans figure img{margin:0 auto}
.others{grid-area:others;border-top:1px solid var(--line);padding-top:28px}
.others h2{font-size:28px;margin:0 0 16px}
.ogrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ocard{display:block;background:#fff;color:inherit;box-shadow:0 8px 24px rgba(11,45,91,.08);position:relative;transition:transform .2s,box-shadow .2s}
.ocard:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(11,45,91,.14)}
.ocard .ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--cb)}
.ocard .ph img{width:100%;height:100%;object-fit:cover}
.ocard .bd{padding:14px 16px 18px}
.ocard h3{font-size:22px;margin:0 0 4px}
.ocard .ad{color:var(--sl);font-size:14px}
.others .help{padding:24px 0 6px;text-align:left}
.others .help p,.others p.help{font-size:18px;color:var(--cb)}
.back2{display:inline-block;margin-top:14px;font-weight:700;border-bottom:2px solid var(--am)}
.callbar{display:none}

/* street labels (TIGER/Line) */
.rl{pointer-events:none}
.rl span{display:block;text-align:center;font:600 11px/15px Barlow,sans-serif;letter-spacing:.06em;color:#4A4C56;white-space:nowrap;
  text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 3px #fff,1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff;transform-origin:50% 50%}

@media (max-width:900px){
  .mock{padding:5px 12px;font-size:10px}
  .nav .wrap{height:56px}
  .nav .logo{height:30px}
  .hero{padding:14px 0 12px}
  .hero h1{font-size:22px;line-height:1.05}
  .hero p{font-size:14px;line-height:1.4;margin-top:6px}
  .hero .hp{display:none}
  .filters .wrap{gap:8px;padding-top:10px;padding-bottom:10px;min-height:0}
  .frow{width:100%;gap:6px;flex-wrap:nowrap}
  .fb,.fs{font-size:14px;padding:6px 10px;border-width:2px}
  .fs{flex:1 1 auto;min-width:0}
  .frow.f2{flex:1 1 100%}
  .frow.f2 .search{flex:1 1 auto;min-width:0;max-width:none;font-size:15px;padding:6px 10px}
  .fcount{flex:0 0 auto;font-size:14px}
  .fcount b{font-size:18px}
  .mappill{padding:7px 14px;margin-left:0}
  .listpane{padding:16px 20px 24px}
  .help{padding:20px 0 4px}
  .help p{font-size:16px}

  .prop{padding-top:8px}
  .prop h1{font-size:30px}
  .prop .intro{font-size:16px}
  .prop-body{grid-template-areas:"gallery" "title" "contact" "details" "plans" "loc" "others"}
  .thumbs{display:flex;overflow-x:auto;gap:6px;scroll-snap-type:x mandatory;padding-bottom:4px}
  .thumbs button{flex:0 0 96px;scroll-snap-align:start}
  .gallery .main .chip{height:26px;font-size:12px;padding:0 9px 0 7px;gap:6px}
  .gallery .main .chip i{height:14px;width:3px}
  .btn.dl{display:flex;justify-content:center;width:100%}
  .locmap{height:300px}
  .ogrid{grid-template-columns:1fr;gap:16px}
  .ocard{display:grid;grid-template-columns:132px 1fr}
  .ocard .ph{aspect-ratio:auto;height:100%;min-height:96px}
  .ocard .tag,.ocard .idx{display:none}
  .ocard .bd{padding:12px 14px}
  .ocard h3{font-size:19px}
  .others .help,.others p.help{font-size:16px}
  .plans figure.tall img{max-width:100%;max-height:none}

  body.has-callbar{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(11,45,91,.10)}
  .callbar a{flex:1 1 0;display:flex;align-items:center;justify-content:center;height:46px;font:600 15px Barlow,sans-serif;white-space:nowrap}
  .cb-call{background:var(--cb);color:#fff}
  .cb-text{background:#fff;color:var(--cb);box-shadow:inset 0 0 0 2px var(--cb)}
}
/* brand fonts inside form controls and Leaflet chrome */
button,input,select,textarea{font-family:Barlow,sans-serif}
.leaflet-container,.leaflet-container a,.leaflet-control-attribution,.leaflet-popup-content-wrapper{font-family:Barlow,sans-serif}
.leaflet-control-zoom a,.leaflet-bar a{font-family:Barlow,sans-serif !important;font-weight:600}
.leaflet-container .leaflet-popup-close-button{font-family:Barlow,sans-serif}
@media (max-width:900px){
  .prop-body{grid-template-columns:minmax(0,1fr)}
  .prop-body>*{min-width:0}
}
footer{background:var(--cb)}
.help a,.others .help a,.hero a{white-space:nowrap}
@media (max-width:900px){
  .crumb .sep,.crumb .sep~*{display:none}
  .crumb{font-size:15px}
  body.has-callbar{padding-bottom:0}
  body.has-callbar footer{padding-bottom:calc(36px + 76px + env(safe-area-inset-bottom))}
}
.plans figure.tall img{max-height:640px;width:auto;max-width:100%}
/* shorter mobile listings header: title and filters only; the intro line stays in the HTML for desktop and crawlers */
@media (max-width:600px){
  .hero{padding:12px 0 10px}
  .hero h1{font-size:21px}
  .hero p{display:none}
  .filters .wrap{gap:6px;padding-top:8px;padding-bottom:8px}
}
.nw{white-space:nowrap}

/* Beat Elementor theme/kit colors on Canvas pages.
   Global H1 color was white (fine on the navy hero, unreadable on property
   titles and listing cards). Global link color was navy, which hid Call
   on navy buttons. */
.prop h1,.prop h2,.prop h3{color:var(--cb)!important}
.card h2,.ocard h3{color:var(--cb)!important}
.hero h1{color:#fff!important}
.prop a.btn,.callbar a.cb-call{color:#fff!important}
.prop a.btn.ghost,.callbar a.cb-text{color:var(--cb)!important}

/* Desktop list+map: two tiles per row so cards are not one wide banner. */
@media (min-width:901px){
  .listpane{padding:20px 24px 40px 40px}
  .listpane .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .listpane .card .ph{aspect-ratio:16/10;height:auto}
  .listpane .card .bd{padding:12px 14px 14px}
  .listpane .card h2{font-size:18px}
}
