:root{
  --bg:#faf6f1;
  --card:#ffffff;
  --text:#2c1810;
  --muted:#8b7355;
  --line:#e8ddd0;
  --accent:#c4643a;
  --accent-light:rgba(196,100,58,.12);
  --accent-hover:#a8522e;
  --cream:#f5ede3;
  --espresso:#3a2218;
  --shadow:0 4px 24px rgba(58,34,24,.08);
  --shadow-lg:0 12px 40px rgba(58,34,24,.12);
  --font-display:Arial, Georgia, serif;
  --font-body:system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: var(--font-body);
  background: var(--bg);
  color:var(--text);
  line-height:1.6;
  font-weight:400;
}

a{color:inherit}
.container{max-width:1100px;margin:0 auto;padding:16px}
.header{
  position:sticky;top:0;z-index:50;
  backdrop-filter: blur(12px);
  background: rgba(250,246,241,.92);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:14px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-mark{
  width:36px;height:36px;border-radius:10px;
  overflow:hidden;
  box-shadow: var(--shadow);
  flex:0 0 36px;
}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.brand-name{font-family:var(--font-display);font-weight:700;letter-spacing:.3px;color:var(--espresso)}
.nav{display:flex;gap:6px;flex-wrap:wrap}
.nav a{
  opacity:.8;text-decoration:none;padding:8px 12px;border-radius:8px;
  font-weight:500;font-size:15px;color:var(--espresso);
  transition:all .2s;
}
.nav a:hover{background:var(--accent-light);opacity:1;color:var(--accent)}

.hero{padding:28px 0 12px}
.hero h1{margin:0 0 8px;font-family:var(--font-display);font-size:clamp(24px,3.5vw,36px);font-weight:700;color:var(--espresso)}
.hero p{margin:0;color:var(--muted);font-size:16px}

.card{
  background: var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow: var(--shadow);
}
.card-pad{padding:16px}
.grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:16px;
}
@media (max-width: 920px){ .grid{grid-template-columns: repeat(2, minmax(0,1fr));} }
@media (max-width: 620px){ .grid{grid-template-columns: 1fr;} }

.listing{
  overflow:hidden;
  display:flex;flex-direction:column;
  min-height: 260px;
  transition: box-shadow .25s, transform .25s;
}
.listing:hover{
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}
.thumb{
  width:100%;aspect-ratio: 16/10;
  background: var(--cream);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb .noimg{color:var(--muted);font-size:14px}

.listing-body{padding:14px;display:flex;flex-direction:column;gap:8px;flex:1}
.title{font-family:var(--font-display);font-weight:600;letter-spacing:.1px;color:var(--espresso)}
.meta{color:var(--muted);font-size:14px}
.listing-actions{margin-top:auto;display:flex;gap:10px;flex-wrap:wrap}
.badges{display:flex;gap:8px;flex-wrap:wrap}
.badge{
  font-size:12px;padding:4px 10px;border-radius:999px;
  background: var(--accent-light);
  border: 1px solid rgba(196,100,58,.15);
  color: var(--accent);font-weight:500;
}

.controls{
  display:grid;
  grid-template-columns: 2fr 1fr 1fr 1fr auto;
  gap:10px;
}
@media (max-width: 920px){ .controls{grid-template-columns: 1fr 1fr;} }
.filter-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.filter-checkbox{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px}
.input, select{
  width:100%;padding:10px 14px;border-radius:10px;
  border:1px solid var(--line);
  background: var(--card);color: var(--text);
  outline:none;font-family:var(--font-body);font-size:14px;
  transition: border-color .2s;
}
.input:focus, select:focus{border-color:var(--accent)}
.input::placeholder{color:rgba(139,115,85,.5)}
.btn{
  padding:10px 16px;border-radius:10px;
  border:1px solid var(--accent);
  background: var(--accent);color: #fff;
  cursor:pointer;font-weight:600;
  font-family:var(--font-body);font-size:14px;
  transition: background .2s;
}
.btn:hover{background: var(--accent-hover)}
.btn.secondary{
  border-color: var(--line);
  background: var(--card);color: var(--espresso);
}
.btn.secondary:hover{background:var(--cream)}

.pager{
  display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  padding:14px 0;color: var(--muted);font-size:14px;
}
.pager .links{display:flex;gap:8px;flex-wrap:wrap}
.pager a{
  text-decoration:none;padding:8px 12px;border-radius:10px;
  border:1px solid var(--line);background: var(--card);
  color:var(--espresso);font-weight:500;transition: all .2s;
}
.pager a:hover{background:var(--cream);border-color:var(--accent)}
.pager .current{
  padding:8px 12px;border-radius:10px;border:1px solid var(--accent);
  background: var(--accent);color: #fff;font-weight:600;
}
.results-summary{margin-top:10px}
.related-searches{margin:20px 0}
.related-search-links{display:flex;flex-wrap:wrap;gap:8px}
.related-search-link{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:var(--accent-light);
  border:1px solid rgba(196,100,58,.15);
  color:var(--accent);
  text-decoration:none;
  font-size:13px;
  line-height:1.2;
  transition:background .2s,border-color .2s,color .2s;
}
.related-search-link:hover{
  background:#f4e3d9;
  border-color:rgba(196,100,58,.3);
  color:var(--accent-hover);
}
.landing-intro{margin-bottom:20px}
.property-breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin:4px 0 18px;
  color:var(--muted);
  font-size:13px;
}
.property-breadcrumbs a{
  color:inherit;
  text-decoration:none;
}
.property-breadcrumbs a:hover{color:var(--accent)}
.property-breadcrumb-separator{color:rgba(139,115,85,.7)}
.property-about-listing{margin-top:20px}
.property-more-links{display:grid;gap:6px}
.property-more-link-item{margin:0}
.property-debug-box{margin-top:20px}
.debug-pre{
  margin:0;
  padding:14px;
  border-radius:12px;
  background:#f6efe6;
  border:1px solid var(--line);
  color:var(--espresso);
  font-size:12px;
  line-height:1.5;
  overflow:auto;
  white-space:pre-wrap;
  word-break:break-word;
}

.footer{
  margin-top:36px;padding:20px 0;
  border-top:1px solid var(--line);
  color: var(--muted);font-size:14px;
}
.footer-top{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
}
.footer-links{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.footer-landings{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.footer-landings-title{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:700;
  margin-bottom:8px;
}
.footer-landings-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.footer-note{margin-top:10px}
.footer a{opacity:.8;transition:opacity .2s}
.footer a:hover{opacity:1;color:var(--accent)}

.kv{
  display:grid;grid-template-columns: 1fr 1fr;gap:14px;
}
@media (max-width: 820px){ .kv{grid-template-columns: 1fr;} }

.gallery{
  display:grid;grid-template-columns: repeat(3, minmax(0,1fr));gap:10px;
}
@media (max-width: 820px){ .gallery{grid-template-columns: repeat(2, minmax(0,1fr));} }
.gallery img{
  width:100%;height:180px;object-fit:cover;border-radius:12px;
  border:1px solid var(--line);background: var(--cream);
  transition: transform .25s;
}
.gallery img:hover{transform:scale(1.03)}

.map-embed{
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background: var(--cream);
}
.map-embed iframe{
  display:block;
  width:100%;
  height:420px;
  border:0;
}
.map-embed-wide{
  margin-left:-16px;
  margin-right:-16px;
  border-left:0;
  border-right:0;
  border-radius:0;
}
@media (max-width: 620px){
  .map-embed iframe{height:360px;}
}

.x2-hero-property{
  display:grid;
  grid-template-columns:1.25fr .9fr;
  gap:20px;
  margin-bottom:20px;
}
.x2-gallery-lead{
  min-height:320px;
  overflow:hidden;
  border-radius:20px;
  background:var(--cream);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.x2-gallery-lead img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.x2-noimg{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
}
.x2-sidebar{
  padding:24px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
}
.x2-kicker{
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:700;
}
.x2-sidebar h1{
  margin:10px 0 12px;
  font-family:var(--font-display);
  font-size:clamp(30px,4vw,48px);
  line-height:1.02;
  color:var(--espresso);
}
.x2-location{
  margin:0 0 18px;
  color:var(--muted);
  font-size:17px;
}
.x2-summary{
  display:grid;
  gap:10px;
}
.x2-summary-card{
  padding:14px 16px;
  border-radius:16px;
  background:#fcf8f3;
  border:1px solid var(--line);
}
.x2-summary-label{
  font-size:13px;
  color:var(--muted);
  margin-bottom:4px;
}
.x2-summary-value{
  color:var(--espresso);
  font-size:15px;
  line-height:1.45;
}
.x2-address-link{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid rgba(196,100,58,.35);
  transition:border-color .2s,color .2s;
}
.x2-address-link:hover{
  color:var(--accent);
  border-bottom-color:var(--accent);
}
.x2-area-links{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.x2-area-link{
  color:var(--accent);
  text-decoration:none;
  font-size:14px;
  line-height:1.4;
  transition:color .2s;
}
.x2-area-link:hover{
  color:var(--accent-hover);
}
.x2-area-separator{
  color:var(--muted);
  font-size:13px;
}
.x2-sidebar-actions{margin-top:18px}
.x2-detail-grid{
  display:grid;
  grid-template-columns:1.25fr .95fr;
  gap:20px;
}
.x2-section{
  padding:22px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
}
.x2-section h2{
  margin:0 0 14px;
  font-family:var(--font-display);
  font-size:30px;
  color:var(--espresso);
}
.x2-bodycopy{
  font-size:16px;
  line-height:1.8;
}
.x2-side-stack{
  display:grid;
  gap:20px;
}
.x2-feature-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.x2-feature{
  padding:16px;
  background:#fcf8f3;
  border:1px solid var(--line);
  border-radius:16px;
}
.x2-feature .small{display:block;margin-bottom:4px}
.x2-photo-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.x2-photo-grid img{
  display:block;
  width:100%;
  height:180px;
  object-fit:cover;
  border-radius:14px;
  border:1px solid var(--line);
}
.x2-map iframe{
  display:block;
  width:100%;
  height:460px;
  border:0;
  border-radius:20px;
}
@media (max-width: 980px){
  .x2-hero-property,.x2-detail-grid{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .x2-photo-grid,.x2-feature-grid{grid-template-columns:1fr}
  .x2-sidebar,.x2-section{padding:18px}
  .x2-map iframe{height:360px}
}

.notice{
  padding:14px;border-radius:12px;border:1px solid var(--line);
  background: var(--cream);color: var(--muted);
}
.small{font-size:13px;color:var(--muted)}
hr.sep{border:0;border-top:1px solid var(--line);margin:16px 0}
