/* ==========================================================
   GREENCRUST — Design tokens
   Palette matched to legal.greencrust.in: deep forest green + white + tan-gold
   Type: Fraunces (display) / Work Sans (body)
   ========================================================== */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600&family=Work+Sans:wght@400;500;600&display=swap');

:root{
  --green-950:#0F2419;
  --green-800:#1D4633;
  --green-600:#2F6B4F;
  --stone-50:#FFFFFF;
  --stone-100:#F4F4F0;
  --ochre:#C9A24D;
  --ink:#1B1F1B;
  --line: rgba(15,36,25,0.12);
  --radius: 2px;
}

*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Work Sans', sans-serif;
  color:var(--ink);
  background:var(--stone-50);
  line-height:1.5;
}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:600;
  margin:0 0 .4em;
  color:var(--green-950);
}
a{color:inherit; text-decoration:none;}
.container{max-width:1180px; margin:0 auto; padding:0 24px;}

/* Header */
.site-header{background:var(--stone-50); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50;}
.topbar{background:var(--green-800); color:var(--stone-100);}
.topbar-inner{display:flex; gap:24px; padding:6px 24px; font-size:.78rem;}
.topbar-inner a{color:var(--stone-100);}
.topbar-inner a:hover{color:var(--ochre);}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:18px 24px;}
.logo{font-family:'Fraunces',serif; font-size:1.5rem; font-weight:600; color:var(--green-950);}
.logo-img{height:44px; display:block;}
.logo span{color:var(--ochre);}
.main-nav a{margin-left:28px; font-size:.92rem; font-weight:500; color:var(--green-800);}
.main-nav a:hover{color:var(--ochre);}

/* Hero */
.hero{background:var(--green-800); color:var(--stone-50); padding:64px 0 80px; position:relative;}
.hero h1{color:var(--stone-50); font-size:2.4rem; max-width:640px;}
.hero p{color:rgba(246,243,236,.75); font-size:1.05rem; max-width:520px;}

/* Finder layout - horizontal filter bar overlapping hero */
.finder{padding:0 24px 60px;}
.filters{
  background:#fff; border:1px solid var(--line); border-radius:8px; padding:20px 22px;
  margin:-90px auto 32px; max-width:1180px;
  box-shadow:0 12px 32px rgba(22,36,30,.18);
  display:flex; flex-wrap:wrap; align-items:end; gap:18px; position:relative; z-index:5;
}
.filters h3{display:none;}
.filter-group{margin-bottom:0; flex:1 1 150px; min-width:150px;}
.filter-group.filter-category{flex:1 1 100%; order:-1; margin-bottom:6px;}
.filter-group.filter-price{flex:1 1 320px; min-width:300px;}
.price-range{display:flex; align-items:center; gap:8px;}
.price-field{display:flex; flex-direction:column; gap:5px; flex:1 1 0; min-width:110px;}
.price-field input{width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:var(--radius); font-family:inherit; font-size:.88rem; background:var(--stone-50); color:var(--ink);}
.price-field select{width:100%; padding:7px 6px; border:1px solid var(--line); border-radius:var(--radius); font-size:.78rem; background:var(--stone-100); color:var(--green-800);}
.price-sep{color:var(--green-600); font-weight:600; padding-top:14px; flex:0 0 auto;}
.price-error{color:#B3261E; font-size:.76rem; margin:6px 0 0;}
.filter-group label{display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:var(--green-600); margin-bottom:6px; font-weight:600;}
.filter-group select, .filter-group input{
  width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:var(--radius);
  font-family:inherit; font-size:.88rem; background:var(--stone-50); color:var(--ink);
}
.pill-group{display:flex; flex-wrap:wrap; gap:8px;}
.pill{
  border:1px solid var(--line); background:var(--stone-50); padding:6px 14px; border-radius:20px;
  font-size:.82rem; cursor:pointer; color:var(--green-800);
}
.pill.active{background:var(--green-800); border-color:var(--green-800); color:#fff;}

.filter-actions{display:flex; gap:8px; flex:0 0 auto;}
.btn-primary{
  background:var(--green-800); color:#fff; border:none; padding:11px 22px; border-radius:var(--radius);
  font-weight:600; cursor:pointer; font-size:.88rem; white-space:nowrap;
}
.btn-primary:hover{background:var(--green-950);}
.btn-link{background:none; border:1px solid var(--line); color:var(--green-600); font-size:.85rem; padding:11px 16px; cursor:pointer; border-radius:var(--radius); white-space:nowrap;}

/* Results grid */
.results-bar{margin-bottom:16px; color:var(--green-600); font-size:.9rem;}
.property-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr)); gap:22px;}
.property-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  display:flex; flex-direction:column; transition:box-shadow .15s ease, transform .15s ease;
}
.property-card:hover{box-shadow:0 8px 24px rgba(18,32,25,.1); transform:translateY(-2px);}
.property-image{position:relative; aspect-ratio:4/3; background:var(--stone-100); overflow:hidden;}
.property-image img{width:100%; height:100%; object-fit:cover; display:block;}
.builder-badge{
  position:absolute; bottom:8px; left:8px; background:rgba(255,255,255,.92); border-radius:4px;
  padding:4px 8px; display:flex; align-items:center; gap:6px; font-size:.72rem; font-weight:600;
}
.builder-badge img{width:16px; height:16px; object-fit:contain;}
.category-tag{
  position:absolute; top:8px; left:8px; background:var(--green-800); color:#fff;
  font-size:.68rem; padding:3px 8px; border-radius:12px; text-transform:uppercase; letter-spacing:.03em;
}
.property-body{padding:16px; flex:1; display:flex; flex-direction:column;}
.property-body h4{font-size:1.02rem; margin-bottom:6px;}
.property-meta{font-size:.82rem; color:var(--green-600); margin-bottom:10px;}
.property-price{font-weight:600; color:var(--ochre); font-size:1.05rem; margin-bottom:12px;}
.property-actions{display:flex; gap:8px; margin-top:auto;}
.property-actions button{
  flex:1; padding:8px; border-radius:var(--radius); font-size:.82rem; cursor:pointer; font-weight:600;
}
.btn-outline{background:none; border:1px solid var(--green-800); color:var(--green-800);}
.btn-outline:hover{background:var(--green-800); color:#fff;}
.btn-fill{background:var(--ochre); border:1px solid var(--ochre); color:#fff;}
.btn-fill:hover{opacity:.9;}

/* Modal */
.modal{display:none; position:fixed; inset:0; background:rgba(18,32,25,.55); z-index:100; align-items:center; justify-content:center;}
.modal.open{display:flex;}
.modal-box{background:#fff; padding:28px; border-radius:var(--radius); width:100%; max-width:380px; position:relative;}
.modal-close{position:absolute; top:10px; right:14px; background:none; border:none; font-size:1.4rem; cursor:pointer; color:var(--green-600);}

/* Forms */
.lead-form{display:flex; flex-direction:column; gap:10px;}
.lead-form input, .lead-form textarea{
  padding:10px; border:1px solid var(--line); border-radius:var(--radius); font-family:inherit; font-size:.9rem;
}
.lead-form button{
  background:var(--ochre); color:#fff; border:none; padding:11px; border-radius:var(--radius); font-weight:600; cursor:pointer;
}
.form-msg{font-size:.82rem; margin:0; color:var(--green-600);}

/* Footer */
.site-footer{background:var(--green-950); color:var(--stone-100); padding:48px 0 20px; margin-top:40px;}
.footer-inner{display:grid; grid-template-columns:1fr 1fr; gap:40px; padding-bottom:30px;}
.site-footer h3, .site-footer h4{color:#fff;}
.footer-logo{height:56px; background:#fff; padding:8px 14px; border-radius:6px; margin-bottom:14px; display:inline-block;}
.footer-contact{list-style:none; padding:0; margin:14px 0 0; font-size:.86rem; color:rgba(246,243,236,.75);}
.footer-contact li{margin-bottom:8px;}
.footer-contact a{color:var(--ochre);}
.footer-contact a:hover{text-decoration:underline;}
.copyright{border-top:1px solid rgba(255,255,255,.12); padding-top:16px; font-size:.8rem; color:rgba(246,243,236,.6);}

@media (max-width:820px){
  .filters{flex-direction:column; align-items:stretch; margin:-60px 16px 24px;}
  .filter-group{flex:1 1 100%;}
  .filter-actions{flex-direction:column;}
  .footer-inner{grid-template-columns:1fr;}
}
