
*,*::before,*::after{box-sizing:border-box}
html{font-size:100%}
body{margin:0;line-height:1.5;-webkit-text-size-adjust:100%;text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;color:#111;background:#fff}
.container,.wrapper,.content,.section,.inner{width:min(100%,1200px);margin-inline:auto;padding-inline:clamp(12px,3vw,24px)}
img,video,canvas,svg{max-width:100%;height:auto;display:block}
a,button,input[type=submit],.btn,.button{min-height:44px;padding:.65rem 1rem;text-decoration:none}
.button,.btn,button,input[type=submit]{cursor:pointer;border-radius:8px;border:1px solid #e5e7eb;background:#111;color:#fff}
input[type=text],input[type=email],input[type=tel],textarea,select{width:100%;padding:.75rem;border-radius:8px;border:1px solid #d1d5db}
.table-responsive{overflow-x:auto}.table-responsive>table{width:100%;border-collapse:collapse}
.grid{display:grid;gap:clamp(12px,3vw,24px)}.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr}
.flex{display:flex;gap:clamp(12px,3vw,24px);flex-wrap:wrap}.center{align-items:center;justify-content:center}.stack>*+*{margin-top:clamp(8px,2.5vw,16px)}
.card{border:1px solid #e5e7eb;border-radius:12px;padding:clamp(12px,3vw,20px);background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04)}
h1{font-size:clamp(1.6rem,4vw,2.5rem);line-height:1.2;margin:.2em 0 .4em}h2{font-size:clamp(1.4rem,3.5vw,2rem);line-height:1.25}h3{font-size:clamp(1.2rem,3vw,1.5rem);line-height:1.3}
.hero,.jumbotron,.banner{padding:clamp(24px,8vw,64px) 0}.hero h1,.banner h1{text-wrap:balance}.hero .sub,.banner .sub{max-width:65ch}
footer{padding-block:clamp(16px,4vw,32px)}
header nav ul,.nav ul,nav ul{list-style:none;margin:0;padding:0;display:flex;gap:12px;flex-wrap:wrap}
header nav a,.nav a,nav a{display:inline-block;padding:.5rem .75rem}
@media (min-width:640px){.grid-2{grid-template-columns:repeat(2,1fr)}}
@media (min-width:768px){.grid-3{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.container,.wrapper,.content,.section,.inner{padding-inline:32px}}
.listings{display:grid;gap:clamp(12px,3vw,24px);grid-template-columns:1fr}
@media (min-width:768px){.listings{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.listings{grid-template-columns:repeat(3,1fr)}}
.listing-card{border-radius:16px;overflow:hidden;background:#0f0f10;color:#fff}
.listing-card .body{padding:16px 18px}
.listing-card .title{font-weight:700;font-size:1.05rem}
.listing-card .meta{color:#c7c7c7;font-size:.95rem}
.listing-card .price{font-weight:800;font-size:1.1rem;margin-top:8px}
.listing-card a{color:inherit}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;padding:16px;z-index:1000}
.modal.open{display:flex}
.modal-card{background:#111;color:#fff;border-radius:16px;max-width:min(720px,100%);width:100%;overflow:hidden}
.modal-media img{width:100%;display:block}
.modal-body{padding:16px 18px}
.modal-actions{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}
.btn-primary{background:#2563eb;border-color:#2563eb}
:focus{outline:3px solid #3b82f6;outline-offset:2px}

/* --- SOLD badge overlay for listing cards --- */
.listing-card { position: relative; }
.badge-sold {
  position: absolute;
  top: 12px; left: 12px;
  background: #ef4444;
  color: #fff;
  font-weight: 800;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: .85rem;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
  letter-spacing: .5px;
  text-transform: uppercase;
}

.listing-card{position:relative}
.badge-sold{position:absolute;top:12px;left:12px;background:#ef4444;color:#fff;font-weight:800;padding:6px 10px;border-radius:999px;font-size:.85rem;box-shadow:0 2px 6px rgba(0,0,0,.25);letter-spacing:.5px;text-transform:uppercase}
