:root{
  --ink:#0a0a0a;
  --paper:#ffffff;
  --panel:#f4f4f2;
  --line:#e5e5e5;
  --muted:#6b6b6b;
}
*{ -webkit-font-smoothing:antialiased; }
body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ink);
  background:var(--paper);
}
h1,h2,h3,h4,h5,.section-title,.hero-title,.display-1,.display-4{
  font-family:'Playfair Display',serif;
  font-weight:500;
  letter-spacing:-.01em;
}
.hero-title{ font-size:clamp(2.5rem,6vw,5.2rem); line-height:1.02; }
.hero-title em{ font-style:italic; }
.section-title{ font-size:clamp(1.8rem,3.2vw,2.75rem); line-height:1.1; }
.eyebrow{ text-transform:uppercase; letter-spacing:.22em; font-size:.72rem; color:var(--muted); font-weight:500;}
.py-6{ padding-top:5.5rem; padding-bottom:5.5rem; }
.bg-light-panel{ background:var(--panel); }
.brand-mark{ display:inline-block; transform:translateY(-1px); margin-right:.25rem;}

/* Topbar */
.topbar{ background:##00754a; color:#fff; }
.topbar a{ color:#fff; text-decoration:none;}
.topbar a:hover{ opacity:.7;}

/* Nav */
.navbar-brand{ letter-spacing:.22em; font-family:'Inter'; font-weight:700; }
.nav-link{ color:#111 !important; font-weight:500; text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; position:relative;}
.nav-link.active::after,.nav-link:hover::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:#111;}
.btn-dark{ background:#00754a; border-color:#000;}
.btn-dark:hover{ background:#222; border-color:#222;}
.btn-outline-dark:hover{ background:#000; color:#fff;}

/* Hero */
.hero{ padding-top:2rem; padding-bottom:6rem; background:#fff; position:relative; overflow:hidden; }
.hero-stats{ display:flex; flex-direction:column; gap:1.25rem; border-left:1px solid var(--line); padding-left:2rem;}
.hero-stats .stat{ display:flex; flex-direction:column;}
.hero-stats .num{ font-family:'Playfair Display',serif; font-size:2.4rem; line-height:1;}
.hero-stats .lbl{ color:var(--muted); font-size:.85rem; text-transform:uppercase; letter-spacing:.14em; margin-top:.4rem;}

.hero-image{ position:relative; margin-top:3rem; }
.hero-image img{ width:100%; height:520px; object-fit:cover; filter:grayscale(100%) contrast(1.05);}
.hero-badge{ position:absolute; left:2rem; bottom:2rem; background:#fff; padding:1.25rem 1.5rem; min-width:280px; border:1px solid var(--line);}

/* Search bar */
.search-bar{ background:#fff; border:1px solid var(--line); margin-top:-2px; position:relative; z-index:5;}
.search-bar .field{ padding:1rem 1.25rem; border-right:1px solid var(--line);}
.search-bar label{ display:block; text-transform:uppercase; letter-spacing:.16em; font-size:.68rem; color:var(--muted); margin-bottom:.35rem;}
.search-bar input,.search-bar select{ width:100%; border:0; outline:0; background:transparent; font-weight:500; color:#111;}

/* Category */
.category{
  display:flex; flex-direction:column; align-items:flex-start; gap:.4rem;
  padding:2rem 1.5rem; border:1px solid var(--line); background:#fff;
  color:#111; text-decoration:none; transition:.2s;
  min-height:180px; justify-content:space-between;
}
.category i{ font-size:2rem;}
.category span{ font-family:'Playfair Display',serif; font-size:1.4rem;}
.category small{ color:var(--muted); text-transform:uppercase; letter-spacing:.14em; font-size:.7rem;}
.category:hover{ background:#000; color:#fff; border-color:#000;}
.category:hover small{ color:#bbb;}

/* Property card */
.property{ background:#fff; border:1px solid var(--line); overflow:hidden; height:100%; display:flex; flex-direction:column;}
.property .img{ position:relative; overflow:hidden; aspect-ratio: 4/3;}
.property .img img{ width:100%; height:100%; object-fit:cover; filter:grayscale(100%); transition:.6s;}
.property:hover .img img{ transform:scale(1.05);}
.property .tag{ position:absolute; top:1rem; left:1rem; background:#000; color:#fff; font-size:.68rem; text-transform:uppercase; letter-spacing:.16em; padding:.35rem .7rem;}
.property .fav{ position:absolute; top:1rem; right:1rem; background:#fff; width:36px; height:36px; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.property .body{ padding:1.25rem 1.4rem 1.5rem; flex:1; display:flex; flex-direction:column;}
.property h5{ font-family:'Playfair Display',serif; font-size:1.25rem; margin-bottom:.35rem;}
.property .loc{ color:var(--muted); font-size:.85rem; margin-bottom:1rem;}
.property .specs{ display:flex; gap:1rem; padding:.9rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:.82rem; color:#333;}
.property .specs span i{ margin-right:.35rem;}
.property .foot{ display:flex; justify-content:space-between; align-items:center; margin-top:1rem;}
.property .price{ font-family:'Playfair Display',serif; font-size:1.35rem;}
.property .foot a{ color:#000; text-decoration:none; font-size:.78rem; text-transform:uppercase; letter-spacing:.16em;}

/* Frame */
.image-frame{ position:relative; }
.image-frame img{ width:100%; height:560px; object-fit:cover; filter:grayscale(100%);}
.image-frame::before{ content:""; position:absolute; inset:20px -20px -20px 20px; border:1px solid #000; z-index:-1;}

.feature i{ font-size:1.4rem; display:inline-block; margin-bottom:.6rem;}
.feature h5{ font-family:'Inter',sans-serif; font-size:1rem; font-weight:600; margin-bottom:.3rem; text-transform:uppercase; letter-spacing:.1em;}
.feature p{ color:var(--muted); font-size:.9rem; margin:0;}

/* Agents */
.agent img{ width:100%; aspect-ratio:3/4; object-fit:cover; filter:grayscale(100%); margin-bottom:1rem;}
.agent h5{ font-family:'Playfair Display',serif; margin:0;}
.agent small{ color:#999; text-transform:uppercase; letter-spacing:.16em; font-size:.72rem;}

/* Testimonial */
.quote{ border-left:2px solid #000; padding:1rem 0 1rem 2rem; margin:0;}
.quote-icon{ font-size:2rem;}
.quote p{ font-family:'Playfair Display',serif; font-size:1.5rem; line-height:1.4; margin:.5rem 0 1rem;}
.quote footer{ color:var(--muted); text-transform:uppercase; letter-spacing:.16em; font-size:.75rem;}

/* CTA */
.cta{ border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* Footer */
.footer{ background:#00754a; color:#fff;}
.footer h6{ text-transform:uppercase; letter-spacing:.16em; font-size:.8rem; margin-bottom:1rem;}
.footer ul{ list-style:none; padding:0; margin:0;}
.footer ul li{ margin-bottom:.5rem;}
.footer a{ color:#bbb; text-decoration:none;}
.footer a:hover{ color:#fff;}
.footer input{ background:#111; border-color:#333; color:#fff;}
.footer input::placeholder{ color:#777;}

/* Inner page hero */
.page-hero{ background:#00754a; color:#fff; padding:6rem 0 4rem;}
.page-hero h1{ font-size:clamp(2.4rem,5vw,4rem);}
.page-hero .crumb{ color:#999; text-transform:uppercase; letter-spacing:.2em; font-size:.75rem;}

/* Filters */
.filter-bar{ background:#fff; border:1px solid var(--line); padding:1.25rem;}

@media (max-width: 767px){
  .search-bar .field{ border-right:0; border-bottom:1px solid var(--line);}
  .hero-image img{ height:340px;}
  .hero-badge{ left:1rem; bottom:1rem; min-width:0; padding:.9rem 1rem;}
  .image-frame img{ height:360px;}
}
