:root{
  --ps-navy: #0b2447;
  --ps-navy-dark: #081a33;
  --ps-accent: #e02020;
  --ps-accent-dark: #c01818;
  --ps-text-muted: #6b7280;
  --ps-border: #e5e7eb;
  --ps-bg: #f5f6f8;
}

body{font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--ps-bg);color:#1f2937;}

a{color:var(--ps-navy);}

/* ---------- Top navigation ---------- */
.ps-navbar{background:#fff;border-bottom:1px solid var(--ps-border);}
.ps-navbar .navbar-brand{color:var(--ps-navy) !important;font-weight:800;letter-spacing:.2px;}
.ps-navbar .nav-link{color:#374151;font-weight:500;}
.ps-navbar .nav-link:hover{color:var(--ps-navy);}
.btn-ps-accent{background:var(--ps-accent);border-color:var(--ps-accent);color:#fff;font-weight:600;}
.btn-ps-accent:hover{background:var(--ps-accent-dark);border-color:var(--ps-accent-dark);color:#fff;}
.btn-outline-ps-navy{border:1px solid var(--ps-navy);color:var(--ps-navy);font-weight:600;background:#fff;}
.btn-outline-ps-navy:hover{background:var(--ps-navy);color:#fff;}
.ps-navbar-logo{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--ps-accent);color:#fff;flex-shrink:0;}
.ps-nav-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ps-border);border-radius:999px;padding:6px 14px;font-weight:600;font-size:.85rem;color:var(--ps-navy);background:#fff;text-decoration:none;}
.ps-nav-pill:hover{background:var(--ps-bg);}
.ps-nav-user{display:inline-flex;align-items:center;gap:6px;color:#374151;font-weight:600;font-size:.9rem;}

/* ---------- Hero ---------- */
.ps-hero{
  position:relative;
  background:linear-gradient(135deg, var(--ps-navy) 0%, var(--ps-navy-dark) 100%);
  color:#fff;
  padding:64px 0 96px;
  overflow:hidden;
}
.ps-hero::after{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(circle at 80% 20%, rgba(255,255,255,.08), transparent 55%);
  pointer-events:none;
}
.ps-hero h1{font-weight:800;font-size:clamp(1.9rem,4vw,2.75rem);}
.ps-hero p.lead{color:rgba(255,255,255,.85);}

.ps-hero-tabs{display:inline-flex;background:rgba(255,255,255,.12);border-radius:999px;padding:4px;margin-bottom:18px;}
.ps-hero-tabs .ps-tab{border:0;background:transparent;color:#fff;padding:8px 20px;border-radius:999px;font-weight:600;font-size:.9rem;}
.ps-hero-tabs .ps-tab.active{background:#fff;color:var(--ps-navy);}

.ps-search-card{
  background:#fff;
  border-radius:16px;
  padding:14px;
  box-shadow:0 20px 40px rgba(0,0,0,.18);
  margin-top:-56px;
  position:relative;
  z-index:2;
}
.ps-search-card .form-control, .ps-search-card .form-select{border:1px solid var(--ps-border);}
.ps-search-card .btn-ps-accent{padding:.6rem 1.5rem;}

/* ---------- Hero v2 (two-column: copy + photo) ---------- */
.ps-hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:7px 16px;border-radius:999px;margin-bottom:22px;
}
.ps-hero-eyebrow svg{color:#4ade80;}
.ps-hero-v2 h1{font-weight:800;font-size:clamp(2rem,4.2vw,3rem);line-height:1.15;}
.ps-hero-v2 h1 .text-accent{color:var(--ps-accent);}
.ps-hero-v2 p.lead{color:rgba(255,255,255,.8);font-size:1.05rem;}
.ps-hero-photo{border-radius:20px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35);}
.ps-hero-photo img{width:100%;height:100%;object-fit:cover;display:block;min-height:280px;}
.ps-hero-search-v2{background:#fff;border-radius:16px;padding:10px;box-shadow:0 16px 36px rgba(0,0,0,.2);}
.ps-hero-search-v2 .ps-input-icon{min-width:0;}
.ps-hero-search-v2 .ps-input-icon .form-select,
.ps-hero-search-v2 .ps-input-icon .form-control{border:0;background:transparent;padding-left:38px;padding-right:10px;font-weight:600;color:#1f2937;width:100%;}
.ps-hero-search-v2 .ps-input-icon .form-select:focus,
.ps-hero-search-v2 .ps-input-icon .form-control:focus{box-shadow:none;}
.ps-hero-search-v2 .ps-input-icon svg{color:var(--ps-navy);}
.ps-hero-search-v2 .ps-search-divider{width:1px;background:var(--ps-border);align-self:stretch;margin:4px 0;}
@media (min-width: 768px){
  .ps-hero-search-v2 .ps-input-icon:nth-child(1){flex:1.4 1 0;}
  .ps-hero-search-v2 .ps-input-icon:nth-child(3){flex:1 1 0;}
  .ps-hero-search-v2 .ps-input-icon:nth-child(5){flex:1 1 0;}
}
.ps-trust-row{padding:30px 0 10px;}
.ps-trust-item{display:flex;align-items:center;gap:12px;}
.ps-trust-item .ps-trust-icon{
  width:46px;height:46px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;color:#fff;
}
.ps-trust-item .title{color:#fff;font-weight:700;font-size:.92rem;}
.ps-trust-item .subtitle{color:rgba(255,255,255,.65);font-size:.8rem;}
.ps-trust-divider{width:1px;background:rgba(255,255,255,.15);align-self:stretch;}

/* ---------- Category icon cards ---------- */
.ps-category-card{
  border:1px solid var(--ps-border);
  border-radius:14px;
  background:#fff;
  transition:box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}
.ps-category-card:hover{box-shadow:0 8px 20px rgba(11,36,71,.08);transform:translateY(-2px);border-color:var(--ps-navy);}
.ps-category-card .ps-category-icon{
  width:52px;height:52px;border-radius:12px;margin:0 auto 10px;
  background:rgba(11,36,71,.06);color:var(--ps-navy);
  display:flex;align-items:center;justify-content:center;
}
.ps-category-card .ps-category-icon svg{width:24px;height:24px;}
.ps-category-card:hover .ps-category-icon{background:var(--ps-navy);color:#fff;}

/* ---------- "List your property" CTA banner ---------- */
.ps-cta-banner{
  background:linear-gradient(135deg, var(--ps-navy) 0%, var(--ps-navy-dark) 100%);
  border-radius:18px;position:relative;overflow:hidden;
}
.ps-cta-icon{
  width:64px;height:64px;border-radius:16px;flex-shrink:0;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;color:#fff;
}
.ps-cta-icon svg{width:30px;height:30px;}

/* ---------- Property cards (grid, home) ---------- */
.ps-card{
  border:1px solid var(--ps-border);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  transition:box-shadow .15s ease, transform .15s ease;
}
/* Equal-height grid cards opt in explicitly via Bootstrap's .h-100 (used
   alongside .ps-card in property/agent grids). A blanket height:100% on
   .ps-card itself used to also stretch non-grid usages -- like the property
   detail page's info card -- to match a sibling flex column's height,
   which left large blank space inside the card. */
.ps-card:hover{box-shadow:0 12px 28px rgba(11,36,71,.12);transform:translateY(-3px);}
.ps-card .ps-card-img{height:200px;object-fit:cover;width:100%;background:#eef1f5;}
.ps-card .ps-card-badge{position:absolute;top:10px;left:10px;background:var(--ps-accent);color:#fff;font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;}
.ps-card .ps-card-fab{position:absolute;top:10px;right:10px;}
.ps-card-price{color:var(--ps-navy);font-weight:800;font-size:1.1rem;}
.ps-card-meta{color:var(--ps-text-muted);font-size:.85rem;}
.ps-card-tags{position:absolute;left:10px;bottom:10px;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 20px);}
.ps-card-tag{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.95);color:#1f2937;font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.15);}
.ps-card-tag svg{width:11px;height:11px;color:var(--ps-navy);}
.ps-card-stats{display:flex;align-items:center;gap:12px;color:#374151;font-size:.82rem;font-weight:600;}
.ps-card-stats span{display:flex;align-items:center;gap:4px;}
.ps-card-stats svg{width:14px;height:14px;color:var(--ps-navy);}

/* ---------- Property list rows (search results page) ---------- */
.ps-listing-row{
  border:1px solid var(--ps-border);
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  transition:box-shadow .15s ease;
}
.ps-listing-row:hover{box-shadow:0 10px 24px rgba(11,36,71,.1);}
.ps-listing-row .ps-listing-img{height:100%;min-height:180px;object-fit:cover;width:100%;background:#eef1f5;}
.ps-listing-price{color:var(--ps-navy);font-weight:800;font-size:1.25rem;}
.ps-listing-title{font-weight:700;color:#1f2937;}
.ps-listing-meta{color:var(--ps-text-muted);font-size:.9rem;}
.ps-contact-btns .btn{font-weight:600;font-size:.85rem;}

/* ---------- Sticky filter bar ---------- */
.ps-filter-bar{
  background:#fff;
  border:1px solid var(--ps-border);
  border-radius:14px;
  box-shadow:0 10px 24px rgba(11,36,71,.06);
}

/* ---------- Property detail page ---------- */
.ps-gallery-main{position:relative;border-radius:16px;overflow:hidden;}
.ps-gallery-main img{width:100%;max-height:440px;object-fit:cover;display:block;}
.ps-gallery-thumbs{display:flex;gap:8px;margin-top:8px;overflow-x:auto;}
.ps-gallery-thumbs .thumb{position:relative;flex:0 0 auto;width:92px;height:72px;border-radius:10px;overflow:hidden;cursor:pointer;border:2px solid transparent;}
.ps-gallery-thumbs .thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.ps-gallery-thumbs .thumb.active{border-color:var(--ps-navy);}
.ps-gallery-thumbs .thumb .more-overlay{position:absolute;inset:0;background:rgba(11,36,71,.65);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;}
.ps-fab{width:40px;height:40px;border-radius:50%;background:#fff;border:0;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.18);color:var(--ps-navy);}
.ps-fab svg{width:18px;height:18px;}
.ps-badge-featured{position:absolute;top:14px;left:14px;background:var(--ps-navy);color:#fff;font-size:.75rem;font-weight:700;padding:5px 12px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;}
.ps-badge-featured svg{width:13px;height:13px;}
.ps-badge-available{background:#dcfce7;color:#15803d;font-weight:700;font-size:.8rem;padding:5px 14px;border-radius:999px;display:inline-block;}
.ps-feature-pill{background:var(--ps-bg);border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:8px;font-weight:600;color:#1f2937;}
.ps-feature-pill svg{width:18px;height:18px;color:var(--ps-navy);flex-shrink:0;}
.ps-icon-box{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:rgba(11,36,71,.08);color:var(--ps-navy);flex-shrink:0;}
.ps-icon-box svg{width:17px;height:17px;}
.ps-desc-box{background:var(--ps-bg);border-radius:12px;padding:16px;}
.ps-contact-stack .btn{display:flex;align-items:center;justify-content:center;gap:8px;}
.btn svg{width:16px;height:16px;flex-shrink:0;}
.ps-badge-featured svg,
.ps-fab svg{width:14px;height:14px;}
.ps-input-icon{position:relative;}
.ps-input-icon svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ps-text-muted);}
.ps-input-icon .form-control{padding-left:36px;}
.ps-similar-card{position:relative;border-radius:16px;overflow:hidden;}
.ps-similar-card .ps-similar-img-wrap{position:relative;}
.ps-similar-card .ps-similar-img{height:170px;object-fit:cover;width:100%;background:#eef1f5;display:block;}
.ps-similar-card .ps-similar-img-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.35) 100%);}
.ps-similar-card .ps-fab{position:absolute;top:10px;right:10px;width:32px;height:32px;z-index:3;}
.ps-similar-card .ps-fab svg{width:14px;height:14px;}
.ps-similar-badges{position:absolute;top:10px;left:10px;z-index:3;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;align-items:flex-start;max-width:calc(100% - 50px);}
.ps-similar-badge{display:inline-flex;align-items:center;gap:4px;font-size:.66rem;font-weight:700;padding:4px 9px;border-radius:999px;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.18);white-space:nowrap;}
.ps-similar-badge svg{width:11px;height:11px;}
.ps-similar-badge.is-featured{background:var(--ps-navy);}
.ps-similar-badge.is-verified{background:#15803d;}
.ps-similar-badge-dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#15803d;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.18);flex-shrink:0;}
.ps-similar-badge-dot svg{width:11px;height:11px;}
.ps-similar-card .ps-similar-price{color:var(--ps-navy);font-weight:800;font-size:1.05rem;}
.ps-similar-card .ps-similar-meta{color:var(--ps-text-muted);font-size:.82rem;}
.ps-similar-card .ps-similar-stats{display:flex;align-items:center;gap:10px;padding-top:8px;margin-top:8px;border-top:1px solid var(--ps-border);}
.ps-similar-card .ps-similar-stats span{display:flex;align-items:center;gap:4px;color:#374151;font-size:.8rem;font-weight:600;}
.ps-similar-card .ps-similar-stats svg{width:14px;height:14px;color:var(--ps-navy);}
.ps-similar-card:hover{box-shadow:0 14px 30px rgba(11,36,71,.14);transform:translateY(-3px);}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px){
  .ps-navbar .navbar-collapse{border-top:1px solid var(--ps-border);}
  .ps-navbar .nav-link{padding-left:0;}
}
@media (max-width: 767.98px){
  .ps-hero-v2{padding-top:28px;padding-bottom:28px;}
  .ps-hero-v2 h1{font-size:1.65rem;}
  .ps-hero-search-v2{padding:8px;}
  .ps-hero-search-v2 .ps-input-icon{padding:4px 0;}
  .ps-trust-row{padding-top:18px;}
  .ps-cta-banner h4{font-size:1.1rem;}
  .ps-card .ps-card-img{height:170px;}
  .ps-gallery-main img{max-height:260px;}
  .admin-main-inner{padding:16px;}
}

/* ---------- Footer ---------- */
.ps-footer{background:var(--ps-navy-dark);color:rgba(255,255,255,.75);}
.ps-footer a{color:rgba(255,255,255,.75);}
.ps-footer a:hover{color:#fff;}
