/* Theme Design System */
:root{
  --brand:#7A1B2C; /* primary red */
  --brand-2:#E74C3C; /* accent red */
  --surface:#ffffff;
  --bg:#f8f7f7;
  --text:#0f172a;
  --muted:#64748b;
  --ring: rgba(122,27,44,.18);
  --radius:12px;
  --shadow-sm:0 2px 10px rgba(15,23,42,.06);
  --shadow-md:0 10px 30px rgba(15,23,42,.10);
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{ background:var(--bg); color:var(--text); font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
img{ max-width:100%; height:auto; display:block; }

/* containers */
.page-container{ max-width:1200px; margin:0 auto; padding:0 16px; }
.section{ padding:24px 0; }

/* headings */
.h1{ font-weight:800; letter-spacing:.2px; color:var(--text); }
.h2{ font-weight:700; color:var(--text); }
.subtle{ color:var(--muted); }

/* buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:.75rem 1.1rem; border-radius:10px; font-weight:700; border:1px solid transparent; cursor:pointer; text-decoration:none; }
.btn-primary{ background:linear-gradient(135deg, var(--brand), var(--brand-2)); color:#fff; box-shadow:var(--shadow-sm); }
.btn-primary:hover{ box-shadow:var(--shadow-md); filter:brightness(.98); }
.btn-ghost{ background:#fff; color:var(--text); border-color:#e5e7eb; }

/* card */
.card{ background:var(--surface); border:1px solid #f0e7ea; border-radius:var(--radius); box-shadow:var(--shadow-sm); overflow:hidden; }
.card-header{ padding:14px 16px; font-weight:700; }
.card-body{ padding:14px 16px; }

/* inputs */
.input{ width:100%; padding:.8rem 1rem; border-radius:10px; border:1px solid #e5e7eb; background:#fff; }
.input:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 4px var(--ring); }

/* navbar polish */
.app-navbar{ background:#fff; border-bottom:1px solid #f0e7ea; box-shadow:0 6px 20px rgba(15,23,42,.04); }
.nav-link{ color:#1f2937; }
.nav-link:hover{ color:var(--brand); }
.icon-btn{ background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:.5rem .7rem; }

/* hero simple overlay helper */
.hero-simple .page-container{ padding:32px 16px; }

/* property card tweaks */
.card-modern{ border:1px solid #f0e7ea; border-radius:14px; box-shadow:var(--shadow-sm); }
.card-modern:hover{ box-shadow:var(--shadow-md); transform: translateY(-2px); transition: all .2s ease; }
.price-badge{ background:linear-gradient(135deg, var(--brand), var(--brand-2)); }
.view-link{ color:var(--brand); }