:root{
  --r-primary:#0F172A;
  --r-accent:#2563EB;
  --r-success:#10B981;
  --r-bg:#F8FAFC;
  --r-card:rgba(255,255,255,.55);
  --r-border:rgba(15,23,42,.10);
  --r-shadow:0 18px 45px rgba(15,23,42,.12);
  --r-shadow-sm:0 10px 30px rgba(15,23,42,.10);
  --r-danger:#EF4444;
}

html,body{height:100%}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background: radial-gradient(1200px 500px at 20% 10%, rgba(37,99,235,.18), transparent 60%),
              radial-gradient(900px 420px at 80% 0%, rgba(16,185,129,.18), transparent 60%),
              var(--r-bg);
  color:var(--r-primary);
}

.navbar-blur{
  background:rgba(248,250,252,.55);
  backdrop-filter: blur(14px);
  border-bottom:1px solid var(--r-border);
}

.brand-mark{
  display:inline-flex;
  width:38px; height:38px;
  border-radius:14px;
  background: radial-gradient(14px 14px at 30% 30%, rgba(255,255,255,.95), rgba(255,255,255,.2)),
              linear-gradient(135deg, rgba(37,99,235,1), rgba(16,185,129,.85));
  box-shadow:0 18px 40px rgba(15,23,42,.18);
  border:1px solid rgba(255,255,255,.35);
}

.glass{
  background: var(--r-card);
  border:1px solid var(--r-border);
  box-shadow: var(--r-shadow);
  backdrop-filter: blur(16px);
}

.glass-soft{
  background: rgba(255,255,255,.45);
  border:1px solid rgba(15,23,42,.08);
  box-shadow: var(--r-shadow-sm);
  backdrop-filter: blur(14px);
}

.gradient-border{
  position:relative;
  isolation:isolate;
}
.gradient-border::before{
  content:"";
  position:absolute; inset:-1px;
  border-radius:18px;
  background: linear-gradient(135deg, rgba(37,99,235,.55), rgba(16,185,129,.35), rgba(15,23,42,.06));
  z-index:-1;
}

.btn-accent{
  background:var(--r-accent);
  border-color:var(--r-accent);
  color:#fff;
}
.btn-accent:hover{filter:brightness(.95); color:#fff}
.text-accent{color:var(--r-accent)!important}
.badge-verified{background:rgba(16,185,129,.14); color:var(--r-success); border:1px solid rgba(16,185,129,.25)}

.hero{
  padding:64px 0 26px;
}
.hero-title{
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.05;
}
.subtle{
  color:rgba(15,23,42,.70);
}

.anim-fade-up{
  animation:fadeUp .55s ease both;
}
@keyframes fadeUp{
  from{opacity:0; transform:translateY(10px)}
  to{opacity:1; transform:translateY(0)}
}

.property-card{
  transition:transform .18s ease, box-shadow .18s ease;
}
.property-card:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 55px rgba(15,23,42,.16);
}

.section-title{
  font-weight:800;
  letter-spacing:-.015em;
}

.logo-strip{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  align-items:center;
  opacity:.78;
}
.logo-pill{
  display:inline-flex;
  align-items:center;
  padding:.55rem .85rem;
  border-radius:999px;
  background:rgba(15,23,42,.04);
  border:1px solid rgba(15,23,42,.07);
  font-weight:600;
  font-size:.9rem;
}

.stat-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:12px;
}
@media (max-width: 575.98px){
  .stat-grid{grid-template-columns: repeat(2, minmax(0,1fr));}
}
.stat-card{
  padding:14px 14px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.42);
  backdrop-filter: blur(12px);
}
.stat-card .kpi{
  font-weight:800;
  font-size:1.25rem;
  letter-spacing:-.015em;
}
.stat-card .lbl{
  color:rgba(15,23,42,.72);
  font-size:.85rem;
}

.skeleton{
  position:relative;
  overflow:hidden;
  background:rgba(15,23,42,.06);
  border-radius:14px;
}
.skeleton::after{
  content:"";
  position:absolute; inset:0;
  transform:translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  animation: shimmer 1.1s infinite;
}
@keyframes shimmer{
  100%{transform:translateX(100%)}
}

.img-cover{object-fit:cover}
.rounded-18{border-radius:18px}
.shadow-premium{box-shadow:var(--r-shadow)}

.scroll-row{
  display:flex;
  gap:14px;
  overflow:auto;
  padding-bottom:4px;
  scroll-snap-type:x mandatory;
}
.scroll-row > *{
  scroll-snap-align:start;
}
.scroll-card{
  min-width:290px;
}

.footer{
  border-top:1px solid var(--r-border);
  background:rgba(248,250,252,.55);
  backdrop-filter: blur(12px);
}

.form-control, .form-select{
  border-radius:14px;
  border-color:rgba(15,23,42,.12);
}
.form-control:focus, .form-select:focus{
  border-color:rgba(37,99,235,.35);
  box-shadow:0 0 0 .2rem rgba(37,99,235,.18);
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem .65rem;
  border-radius:999px;
  background:rgba(15,23,42,.05);
  border:1px solid rgba(15,23,42,.08);
  font-size:.85rem;
}

.price-pill{
  display:inline-flex;
  align-items:center;
  padding:.35rem .6rem;
  border-radius:999px;
  background:rgba(15,23,42,.06);
  border:1px solid rgba(15,23,42,.10);
  font-weight:700;
}

.calc-result{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
.calc-box{
  border-radius:16px;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(255,255,255,.55);
  padding:12px;
}
.calc-box .v{
  font-weight:800;
  letter-spacing:-.01em;
}
.calc-box .k{
  color:rgba(15,23,42,.70);
  font-size:.85rem;
}
