/*!
 * Brownstone Lot Finder — all rules scoped under #bsl so nothing
 * leaks into the theme and the theme cannot leak in.
 */

#bsl{
  --bsl-ink:#0B1020;
  --bsl-slate:#22364A;
  --bsl-steel:#4A6378;
  --bsl-gold:#C6A15B;
  --bsl-bronze:#B98A4E;
  --bsl-paper:#FAFAF7;
  --bsl-land:#F1EEE5;
  --bsl-line:rgba(11,16,32,.12);
  --bsl-line-soft:rgba(11,16,32,.07);
  --bsl-muted:#6B7683;
  --bsl-display:"Fraunces",Georgia,"Times New Roman",serif;
  --bsl-ui:"Jost","Avenir Next",system-ui,-apple-system,sans-serif;

  background:var(--bsl-paper);
  color:var(--bsl-ink);
  font-family:var(--bsl-ui);
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
#bsl *{box-sizing:border-box}

#bsl .bsl-bar{
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding-bottom:14px;margin-bottom:20px;border-bottom:1px solid var(--bsl-line);
}
#bsl .bsl-eyebrow{
  font-size:11px;letter-spacing:.20em;text-transform:uppercase;
  color:var(--bsl-bronze);font-weight:500;margin:0;
}
#bsl .bsl-tally{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bsl-muted);white-space:nowrap;
}
#bsl .bsl-tally b{color:var(--bsl-ink);font-weight:600;font-variant-numeric:tabular-nums}

#bsl .bsl-app{
  display:grid;grid-template-columns:200px minmax(0,1fr) 320px;
  gap:20px;align-items:start;
}

/* ---------------------------------------------------------------- filters */
#bsl .bsl-rail{display:flex;flex-direction:column;gap:22px}
#bsl .bsl-fgroup h3{
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--bsl-muted);font-weight:600;margin:0 0 11px;
}
#bsl .bsl-opt{
  display:flex;align-items:center;gap:9px;padding:5px 0;
  cursor:pointer;font-size:13.5px;color:var(--bsl-slate);
}
#bsl .bsl-opt:hover{color:var(--bsl-ink)}
#bsl .bsl-opt input{position:absolute;opacity:0;width:0;height:0}
#bsl .bsl-tick{
  width:15px;height:15px;flex:0 0 15px;
  border:1px solid rgba(11,16,32,.28);border-radius:2px;
  display:grid;place-items:center;transition:.15s;background:transparent;
}
#bsl .bsl-tick::after{
  content:"";width:7px;height:4px;
  border-left:1.6px solid var(--bsl-paper);border-bottom:1.6px solid var(--bsl-paper);
  transform:rotate(-45deg) scale(.4);opacity:0;transition:.15s;margin-top:-1px;
}
#bsl .bsl-opt input:checked + .bsl-tick{background:var(--bsl-slate);border-color:var(--bsl-slate)}
#bsl .bsl-opt input:checked + .bsl-tick::after{opacity:1;transform:rotate(-45deg) scale(1)}
#bsl .bsl-opt input:focus-visible + .bsl-tick{outline:2px solid var(--bsl-gold);outline-offset:2px}
#bsl .bsl-opt .bsl-n{
  margin-left:auto;font-size:11px;color:var(--bsl-muted);font-variant-numeric:tabular-nums;
}

#bsl .bsl-slider{width:100%;accent-color:var(--bsl-bronze);margin:0}
#bsl .bsl-srow{
  display:flex;justify-content:space-between;font-size:11px;
  color:var(--bsl-muted);margin-top:7px;font-variant-numeric:tabular-nums;
}
#bsl .bsl-srow b{color:var(--bsl-slate);font-weight:600}

#bsl .bsl-reset{
  background:none;border:0;border-bottom:1px solid var(--bsl-line);
  padding:0;margin:0;font-family:var(--bsl-ui);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--bsl-muted);
  cursor:pointer;align-self:flex-start;border-radius:0;
}
#bsl .bsl-reset:hover{color:var(--bsl-bronze);border-color:var(--bsl-bronze)}

/* -------------------------------------------------------------------- map */
#bsl .bsl-mapshell{position:relative}
#bsl #bsl-map{
  height:480px;border-radius:3px;border:1px solid var(--bsl-line);
  background:var(--bsl-land);z-index:0;
  box-shadow:0 1px 2px rgba(11,16,32,.06),0 14px 34px -20px rgba(11,16,32,.20);
}
#bsl .leaflet-container{font-family:var(--bsl-ui)}
#bsl .leaflet-control-attribution{font-size:9.5px;background:rgba(250,250,247,.86)}

#bsl .bsl-maphint{
  position:absolute;inset:0;z-index:400;pointer-events:none;
  display:grid;place-items:center;border-radius:3px;
  background:rgba(11,16,32,.13);opacity:0;transition:opacity .22s;
}
#bsl .bsl-mapshell:hover .bsl-maphint.bsl-armed{opacity:1}
#bsl .bsl-maphint b{
  background:var(--bsl-paper);color:var(--bsl-ink);
  font-family:var(--bsl-ui);font-size:11px;font-weight:500;
  letter-spacing:.17em;text-transform:uppercase;
  padding:9px 16px;border-radius:2px;
  box-shadow:0 2px 12px rgba(11,16,32,.22);
}

#bsl .bsl-mapreset{
  position:absolute;right:10px;top:10px;z-index:401;
  background:var(--bsl-paper);color:var(--bsl-slate);
  border:1px solid rgba(11,16,32,.22);border-radius:2px;
  font-family:var(--bsl-ui);font-size:10px;font-weight:500;
  letter-spacing:.15em;text-transform:uppercase;
  padding:7px 11px;cursor:pointer;transition:.16s;
  box-shadow:0 1px 4px rgba(11,16,32,.14);
}
#bsl .bsl-mapreset:hover{background:var(--bsl-gold);border-color:var(--bsl-bronze);color:var(--bsl-ink)}
#bsl .bsl-mapreset:focus-visible{outline:2px solid var(--bsl-slate);outline-offset:2px}
#bsl .bsl-mapreset[hidden]{display:none}

#bsl .bsl-lotpin{background:none;border:0}
#bsl .bsl-lotpin i{
  display:block;width:100%;height:100%;border-radius:50%;
  background:var(--bsl-gold);border:1.5px solid var(--bsl-ink);
  box-shadow:0 1px 3px rgba(11,16,32,.35);transition:.18s;
}
#bsl .bsl-lotpin:hover i{border-color:var(--bsl-bronze);border-width:2.5px;transform:scale(1.14)}
#bsl .bsl-lotpin.bsl-sel i{background:var(--bsl-ink);border-color:var(--bsl-gold);border-width:3px;transform:scale(1.22)}
#bsl .bsl-lotpin.bsl-approx i{border-style:dashed}

#bsl .bsl-maplegend{
  display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:10px;
  font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--bsl-muted);
}
#bsl .bsl-maplegend span{display:flex;align-items:center;gap:6px}
#bsl .bsl-sw{
  width:10px;height:10px;border-radius:50%;background:var(--bsl-gold);
  border:1px solid var(--bsl-ink);display:inline-block;
}
#bsl .bsl-sw.bsl-dash{border-style:dashed;background:transparent}

/* ------------------------------------------------------------------ panel */
#bsl .bsl-panel{
  background:#fff;border:1px solid var(--bsl-line);border-radius:3px;
  padding:20px 19px 19px;position:sticky;top:20px;
}
#bsl .bsl-ptag{
  display:inline-block;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--bsl-bronze);border:1px solid rgba(198,161,91,.42);
  border-radius:2px;padding:3px 8px;margin-bottom:12px;
}
#bsl .bsl-panel h2{
  font-family:var(--bsl-display);font-weight:400;color:var(--bsl-ink);
  font-size:22px;line-height:1.16;margin:0 0 3px;text-wrap:balance;
}
#bsl .bsl-ploc{font-size:12px;color:var(--bsl-muted);letter-spacing:.06em;margin:0 0 16px}

/* Brownstone's own survey drawing — shown as supplied, never redrawn. */
#bsl .bsl-plat{
  position:relative;display:block;margin:0 0 16px;
  background:var(--bsl-paper);border:1px solid var(--bsl-line-soft);
  border-radius:2px;overflow:hidden;text-decoration:none;
}
#bsl .bsl-plat img{
  display:block;width:100%;height:auto;
  max-height:280px;object-fit:contain;background:#fff;
}
#bsl .bsl-zoomnote{
  position:absolute;right:8px;bottom:8px;
  background:rgba(250,250,247,.94);color:var(--bsl-slate);
  font-size:9px;letter-spacing:.14em;text-transform:uppercase;
  padding:4px 8px;border-radius:2px;border:1px solid var(--bsl-line);
  opacity:0;transition:opacity .18s;
}
#bsl .bsl-plat:hover .bsl-zoomnote,
#bsl .bsl-plat:focus-visible .bsl-zoomnote{opacity:1}
#bsl .bsl-noplat{
  padding:26px 10px;margin-bottom:16px;text-align:center;
  background:var(--bsl-paper);border:1px solid var(--bsl-line-soft);border-radius:2px;
  color:var(--bsl-muted);font-size:12px;line-height:1.6;
}

#bsl .bsl-facts{list-style:none;margin:0 0 16px;padding:0}
#bsl .bsl-facts li{
  position:relative;padding:7px 0 7px 16px;font-size:13px;color:var(--bsl-slate);
  border-bottom:1px solid var(--bsl-line-soft);line-height:1.45;
}
#bsl .bsl-facts li:last-child{border-bottom:0}
#bsl .bsl-facts li::before{
  content:"";position:absolute;left:2px;top:14px;
  width:5px;height:5px;border:1px solid var(--bsl-bronze);transform:rotate(45deg);
}
#bsl .bsl-nodetail{font-size:12.5px;color:var(--bsl-muted);margin:0 0 16px}

#bsl a.bsl-cta{
  display:block;width:100%;text-align:center;box-sizing:border-box;
  background:var(--bsl-gold);color:var(--bsl-ink);border:0;border-radius:2px;
  padding:12px;font-family:var(--bsl-ui);font-size:11.5px;font-weight:500;
  letter-spacing:.17em;text-transform:uppercase;cursor:pointer;
  transition:.18s;text-decoration:none;
}
#bsl a.bsl-cta:hover{background:var(--bsl-bronze);color:var(--bsl-paper)}
#bsl a.bsl-cta:focus-visible{outline:2px solid var(--bsl-slate);outline-offset:2px}

#bsl .bsl-approxflag{
  font-size:10.5px;color:var(--bsl-bronze);text-align:center;
  margin:9px 0 0;line-height:1.5;
}
#bsl .bsl-empty{text-align:center;padding:34px 8px;color:var(--bsl-muted)}
#bsl .bsl-empty p{font-size:13px;line-height:1.6;margin:12px 0 0}

/* ------------------------------------------------------------------ cards */
#bsl .bsl-lotlist{margin-top:38px;padding-top:26px;border-top:1px solid var(--bsl-line)}
#bsl .bsl-listhead{
  font-family:var(--bsl-display);font-weight:300;color:var(--bsl-ink);
  font-size:24px;margin:0 0 18px;letter-spacing:-.01em;
}
#bsl .bsl-listhead span{
  font-family:var(--bsl-ui);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--bsl-muted);margin-left:10px;vertical-align:middle;
}
#bsl .bsl-cards{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;
}
#bsl button.bsl-card{
  text-align:left;background:#fff;border:1px solid var(--bsl-line);
  border-radius:3px;padding:0 0 13px;cursor:pointer;overflow:hidden;
  font-family:var(--bsl-ui);transition:.16s;
  display:flex;flex-direction:column;gap:4px;
}
#bsl button.bsl-card:hover{
  border-color:var(--bsl-bronze);transform:translateY(-2px);
  box-shadow:0 6px 18px -10px rgba(11,16,32,.35);
}
#bsl button.bsl-card:focus-visible{outline:2px solid var(--bsl-gold);outline-offset:2px}
#bsl button.bsl-card.bsl-sel{
  border-color:var(--bsl-ink);background:#FFFDF8;box-shadow:inset 3px 0 0 var(--bsl-gold);
}
#bsl button.bsl-card.bsl-dim{opacity:.32;filter:saturate(.4)}

#bsl .bsl-thumb{
  display:block;height:104px;background:#fff;
  border-bottom:1px solid var(--bsl-line-soft);margin-bottom:9px;
}
#bsl .bsl-thumb img{display:block;width:100%;height:100%;object-fit:contain}
#bsl .bsl-cname{
  font-family:var(--bsl-display);font-size:15.5px;color:var(--bsl-ink);
  line-height:1.24;padding:0 14px;
}
#bsl .bsl-ctown{font-size:11.5px;color:var(--bsl-muted);letter-spacing:.05em;padding:0 14px}
#bsl .bsl-cmeta{
  display:flex;gap:6px;flex-wrap:wrap;margin-top:5px;padding:0 14px;
  font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
}
#bsl .bsl-cmeta i{
  font-style:normal;border:1px solid var(--bsl-line);border-radius:2px;
  padding:2.5px 6px;color:var(--bsl-steel);
}
#bsl .bsl-cmeta i.bsl-acr{border-color:rgba(198,161,91,.5);color:var(--bsl-bronze)}

/* ------------------------------------------------------------- responsive */
@media (max-width:1040px){
  #bsl .bsl-app{grid-template-columns:180px minmax(0,1fr)}
  #bsl .bsl-panel{grid-column:1/-1;position:static}
  #bsl .bsl-plat img{max-height:340px}
}
@media (max-width:700px){
  #bsl .bsl-app{grid-template-columns:1fr}
  #bsl .bsl-rail{
    flex-direction:row;flex-wrap:wrap;gap:24px;
    padding-bottom:18px;border-bottom:1px solid var(--bsl-line);
  }
  #bsl .bsl-fgroup{flex:1 1 150px}
  #bsl #bsl-map{height:380px}
}
@media (prefers-reduced-motion:reduce){
  #bsl *{transition:none!important}
}
