  :root{
      --brand: #1a365d;     /* deep navy */
      --accent: #c4971d;    
      --accent-dark: #c4971d; /* golden yellow */
      --ink-300: #6b7280;
      --surface: #f9fafb;
    }
    body{font-family:"Poppins",sans-serif;background:var(--surface);}

    /* Navbar */
    .navbar{background:var(--brand);}
    .navbar .nav-link{color:#fff!important;transition:opacity .2s;}
    .navbar .nav-link:hover{opacity:.85;}
    .navbar .dropdown-menu{
      border:none;border-radius:.5rem;box-shadow:0 12px 28px rgba(0,0,0,.15);
      padding:.5rem 0; min-width:14rem;
    }
    .dropdown-item{padding:.7rem 1rem;color:#374151;}
    .dropdown-item:hover{background:#eef2ff;}
    .dropdown-toggle::after{display:none;}

    /* Hero */
    .hero{position:relative;height:100vh;overflow:hidden;}
    .carousel-item img{height:100vh;object-fit:cover;}
    .hero-overlay{
      position:absolute;inset:0;z-index:1;
      background:linear-gradient(to bottom, rgba(0,0,0,.7), rgba(0,0,0,.25));
    }
    .hero-content{
      position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
      z-index:2;max-width:900px;text-align:center;color:#fff;
      animation:fadeUp 1s ease forwards;
    }
    @keyframes fadeUp{from{opacity:0;transform:translate(-50%,-40%)} to{opacity:1;transform:translate(-50%,-50%)}}

    /* Search box */
    .search-box{
      background:#fff;border-radius:2rem;padding:1rem;box-shadow:0 10px 30px rgba(0,0,0,.2);
    }
    .search-box .form-control, .search-box .form-select{border-radius:2rem;}

    /* Services */
    .service-card{transition:transform .25s, box-shadow .25s;border-radius:1rem;background:#fff;}
    .service-card:hover{transform:translateY(-6px);box-shadow:0 16px 34px rgba(0,0,0,.08);}

    /* Property Cards */
    .card{transition:transform .25s, box-shadow .25s;border-radius:.9rem;}
    .card:hover{transform:translateY(-6px);box-shadow:0 16px 34px rgba(0,0,0,.08);}
    .card-img-wrapper{aspect-ratio:4/3;overflow:hidden;border-radius:.9rem .9rem 0 0;position:relative;}
    .card-img-wrapper img{width:100%;height:100%;object-fit:cover;transition:transform .35s;}
    .card:hover .card-img-wrapper img{transform:scale(1.06);}
    .price-badge{
      position:absolute;top:10px;left:10px;background:var(--accent);color:var(--brand);
      font-weight:700;padding:.35rem .7rem;border-radius:.5rem;font-size:.9rem;
    }
    .property-location{font-size:.9rem;color:var(--ink-300);}
    .property-price{font-weight:800;color:var(--accent-dark);}

    /* Filters */
    .filter-box{
      background:#fff;border-radius:1rem;box-shadow:0 8px 24px rgba(0,0,0,.06);
      padding:1.5rem;position:sticky;top:90px;
    }
    .filter-box .form-label{font-weight:600;color:#1f2937;}

/* main container */
    .main-container{padding:4rem 0;}
    .main-content {
  margin-top: 80px; 
} 

    /* CTA */
  
  .cta-section {
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.cta-bg {
  position: absolute;
  inset: 0;
  background: url("/static/images/house7.jpg") center/cover no-repeat;
  z-index: 0;
}

.cta-overlay {
  position: absolute;
  inset: 0;
  background: rgba(26, 54, 93, 0.7); /* navy overlay */
  z-index: 1;
}

.cta-content {
  z-index: 2;
}
 /* Footer */
    footer{background:#111827;color:#e5e7eb;}
    footer a{text-decoration:none;color:#e5e7eb;}
    footer a:hover{color:var(--accent);}

    /* Utilities */
    .sort-bar{display:flex;justify-content:flex-end;align-items:center;gap:.5rem}


  /* Breadcrumb */
.breadcrumb {
  background: transparent;
  padding: 0;
  margin: 0;
}

.breadcrumb-item + .breadcrumb-item::before {
  content: "›";
  color: var(--ink-300);
}

.breadcrumb a {
  color: var(--brand);
  text-decoration: none;
  font-weight: 500;
}

.breadcrumb a:hover {
  color: var(--accent);
}

.breadcrumb .active {
  color: var(--ink-300);
  font-weight: 600;
}

/* Property Page */
.property-hero {
        position: relative;
        /* Mobile/Default: Taller for impact */
        height: 50vh; 
        min-height: 450px; 
        background: center/cover no-repeat; /* Background URL is now set inline using the clean Jinja variable */
        border-radius: 1rem;
        overflow: hidden;
        margin-bottom: 2rem; /* Added margin for separation */
    }

    /* Desktop: Significantly increased height */
    @media (min-width: 992px) {
        .property-hero {
            height: 75vh; /* Very prominent height on desktop */
            max-height: 800px; /* Optional: cap the max height for ultra-wide screens */
        }
    }

    .property-hero-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(0,0,0,0.7), rgba(0,0,0,0.3));
        display: flex;
        align-items: flex-end;
        padding: 2rem;
        color: #fff;
    }

    /* 2. GALLERY and CARD STYLING */
    .section-title {
        text-transform: uppercase;
        font-weight: 600;
        color: var(--ink-300);
        font-size: 0.95rem;
        letter-spacing: .05em;
        margin-bottom: 1rem;
    }

    .text-justify {
        text-align: justify;
    }

    .feature-badge {
        /* Merged with your provided CSS */
        background: var(--surface); /* Assuming --surface is a light background color */
        border-radius: 50px;
        padding: .4rem .9rem;
        font-size: 0.85rem;
        margin: 0.25rem;
        display: inline-block;
        border: 1px solid #e5e7eb;
        color: #001f3f; /* Added color for contrast if --navy-color isn't used */
    }

    .card-img-container {
        aspect-ratio: 4/3;
        overflow: hidden;
        border-radius: .5rem;
    }

    .card-img-container img {
        height: 100%;
        width: 100%;
        object-fit: cover;
        transition: transform 0.3s ease;
    }

    .card-img-container img:hover {
        transform: scale(1.05);
    }

    .sticky-sidebar {
        position: sticky;
        top: 90px;
    }

.land-image {
        border-radius: 12px;
        box-shadow: 0 4px 20px rgba(0,0,0,0.1);
        max-height: 600px;
        object-fit: cover;
        width: 100%;
    }
    .land-card {
        border-radius: 12px;
        box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    }
/* Page title section */
  .page-title {
  position: relative;
  background: url("/static/images/house7.jpg") center/cover no-repeat;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-title-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55); /* dark overlay */
  z-index: 1;
}

.page-title .container {
  position: relative;
  z-index: 2;
}

.page-title h1 {
  font-weight: 700;
  font-size: 2.5rem;
  color: #fff;
}

.page-title p {
  color: rgba(255, 255, 255, 0.8);
}

.page-title-btn {
  display: inline-block;
  padding: 0.9rem 2.5rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: #212529; /* dark text for good contrast */
  background: #ffc107; /* your chosen yellow */
  border: none;
  border-radius: 50px;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.25);
  transition: all 0.3s ease;
  text-decoration: none;
}

.page-title-btn:hover {
  background: #e0a800; /* darker shade for hover */
  color: #fff; /* switch to white on hover */
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* header */
.page-header {
  position: relative;
  height: 200px;
  background: #f9fafb;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #212529;
  border-radius: .5rem;
  margin-bottom: 2rem;
}

.page-header h1 {
  font-size: 2rem;
  font-weight: 700;
  margin: 0;
}

.page-header p {
  font-size: 0.95rem;
  color: #d1d5db; /* soft gray */
  margin: 0;
}


/* Login page */
.login-hero {
  position: relative;
  min-height: 100vh;
  background: url("/static/images/house7.jpg") center/cover no-repeat;
}

.login-overlay {
  position: absolute;
  inset: 0;
  background: rgba(26, 54, 93, 0.7); /* same navy overlay as CTA */
  z-index: 1;
}

.login-card {
  position: relative;
  z-index: 2;
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
  max-width: 420px;
  width: 100%;
}
.password-toggle {
  position: absolute;
  top: 38px;
  right: 12px;
  cursor: pointer;
  color: var(--ink-300);
}
.password-toggle:hover {
  color: var(--brand);
}

/* Hot deal and distress sale properties */
/* Distress Sale Badge */
.distress-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: linear-gradient(135deg, #d4af37, #b8860b); /* rich gold */
  color: #fff;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 30px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.25);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Hot Deal Badge */
.hotdeal-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: linear-gradient(135deg, #ff512f, #dd2476); /* fiery red/orange */
  color: #fff;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 30px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.25);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}


/* blog */
.hero-image {
  height: 400px !important; /* Reduced from 650px */
  object-fit: cover;
  filter: brightness(60%);
  transition: filter 0.5s ease;
  margin-top: 70px;
}
.carousel-item.active .hero-image {
  filter: brightness(70%);
}
.btn-outline-light {
  border: 2px solid white;
  color: white;
  transition: all 0.3s ease;
}
.btn-outline-light:hover {
  background-color: white;
  color: #212529;
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(255,255,255,0.1);
}

/* Admin dashboard */
.logo .tagline {
  font-size: 14px;
  color: #ccc; /* Optional: change color */
  display: block;
  line-height: 1;
}

.project-img {
  height: 250px;
  object-fit: cover;
  width: 100%;
  border-radius: 5px; /* optional for nicer visuals */
}


.sidebar {
    background-color: #343a40;
    color: white;
    padding: 20px 10px;
    height: 100vh;
  }

  .sidebar a {
    color: white;
    display: block;
    padding: 10px;
    text-decoration: none;
    border-radius: 5px;
    margin-bottom: 10px;
  }
  .sidebar a:hover {
    background: #4b4949;
  }
  .active-link {
    background-color: #ccaa35 !important;
    color: black !important;
    font-weight: bold;
    }

  @media (max-width: 768px) {
    .sidebar {
      position: relative;
      width: 100%;
      height: 100%;
      padding: 10px;
    }

    .content {
      padding: 15px;
    }
  }

/* Admin Navbar */
.admin-navbar {
  background: var(--brand);
  color: white;
  padding: 10px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
} 



/* ===== Custom Navy Button (Filled) ===== */
.btn-navy {
  background-color: #1a365d;
  color: #ffffff;
  border: 1px solid #1a365d;
  border-radius: 0.375rem;
  padding: 0.5rem 1.25rem;
  font-weight: 500;
  transition: all 0.3s ease;
}
.btn-navy:hover {
  background-color: #162c4c; /* darker navy */
  border-color: #162c4c;
  color: #ffffff;
  transform: translateY(-2px);
}
.btn-navy:active {
  background-color: #0f1e33;
  border-color: #0f1e33;
  transform: translateY(0);
}

/* ===== Custom Navy Button (Outline) ===== */
.btn-outline-navy {
  background-color: transparent;
  color: #1a365d;
  border: 1px solid #1a365d;
  border-radius: 0.375rem;
  padding: 0.5rem 1.25rem;
  font-weight: 500;
  transition: all 0.3s ease;
}
.btn-outline-navy:hover {
  background-color: #1a365d;
  color: #ffffff;
  transform: translateY(-2px);
}
.btn-outline-navy:active {
  background-color: #162c4c;
  border-color: #162c4c;
  color: #ffffff;
  transform: translateY(0);
}

/* ===== Navy Text Colors ===== */
.text-navy {
  color: #1a365d !important;
}

.text-navy-dark {
  color: #162c4c !important; /* darker navy */
}

.text-navy-light {
  color: #2a4a80 !important; /* lighter shade */
}

/* ===== Navy Background Colors (for sections, badges, etc.) ===== */
.bg-navy {
  background-color: #1a365d !important;
  color: #ffffff !important;
}

.bg-navy-light {
  background-color: #2a4a80 !important;
  color: #ffffff !important;
}

.bg-navy-dark {
  background-color: #0f1e33 !important;
  color: #ffffff !important;
}

/* ===== Navy Links ===== */
a.text-navy {
  color: #1a365d;
  text-decoration: none;
  transition: color 0.2s ease;
}
a.text-navy:hover {
  color: #162c4c;
  text-decoration: underline;
}


footer {
  padding-top: 1.5rem !important;
  padding-bottom: 1rem !important;
  background-color: #1a365d !important; /* A professional dark blue */
  color: #fff;
}

footer a {
  color: #fff !important;
  transition: color 0.3s ease-in-out;
}

footer a:hover {
  color: #f29f05 !important; /* A bright accent color for hover */
}

footer .text-warning {
  color: #f29f05 !important; /* Use a consistent accent color */
}

footer .list-unstyled li {
  margin-bottom: 0.5rem;
}

.social-icons a {
  font-size: 1.25rem;
}

.bg-dark {
  background-color: #1a365d !important;
}

.text-white {
  color: #fff !important;
}

.text-muted {
  color: #c0c0c0 !important;
}

.fw-bold {
  font-weight: 700 !important;
}

.pt-5 {
  padding-top: 3rem !important;
}

.pb-4 {
  padding-bottom: 1.5rem !important;
}

.me-3 {
  margin-right: 1rem !important;
}

/* Reduce logo size */
.footer-logo {
  height: 50px; /* Adjust as needed */
  width: auto;
}

/* Ensure vertical alignment */
.d-flex.align-items-center {
  display: flex !important;
  align-items: center !important;
}

/* Adjust company name styling */
.footer h4 {
  font-size: 1.5rem; /* Adjust font size to fit the new layout */
}

/* Home Page Hero and Search Bar */
  .hero {
    position: relative;
    height: 60vh;
    overflow: hidden;
  }

  .hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.45);
    z-index: 10;
  }

  .hero-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 20;
    text-align: center;
    color: #fff;
  }

  .search-bar-wrapper {
    position: relative;
    z-index: 100;
    margin-top: -80px; /* Overlaps hero section */
  }

  .search-form {
    border-radius: 12px;
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    padding: 2rem; /* Increased padding for a more spacious look */
  }

  .search-form .nav-pills .nav-link {
    color: #1a365d;
    font-weight: 500;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    transition: all 0.3s ease;
  }

  .search-form .nav-pills .nav-link.active {
    background-color: #1a365d;
    color: #fff;
    font-weight: 600;
  }

  .search-form .nav-pills .nav-link:hover {
    color: #1a365d;
    background-color: #fff;
    border-color: #1a365d;
    box-shadow: 0 0 0 0.25rem rgba(26, 54, 93, 0.5);
    
    
  }

  .form-control-lg.search-input {
    border-radius: 8px;
    border: 1px solid #ced4da;
    padding-left: 45px;
    background-color: #f8f9fa;
  }

  .search-input-group {
    position: relative;
  }

  .search-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #6c757d;
    z-index: 2;
  }

  .search-form .btn-lg {
    border-radius: 8px;
  }

.latest-news .news-img {
  width: 100%;
  height: 180px;        
  object-fit: cover;    
  border-radius: 6px;
}

.latest-news .news-title {
  font-size: 0.95rem;
  line-height: 1.4;
  color: #1a365d;       /* your custom navy */
  font-weight: 500;
}

.latest-news .news-card:hover .news-title {
  text-decoration: underline;
}

.sidebar {
    background-color: #343a40;
    color: white;
    padding: 20px 10px;
    height: 100vh;
  }

  .sidebar a {
    color: white;
    display: block;
    padding: 10px;
    text-decoration: none;
    border-radius: 5px;
    margin-bottom: 10px;
  }
  .sidebar a:hover {
    background: #4b4949;
  }
  .active-link {
    background-color: #ccaa35 !important;
    color: black !important;
    font-weight: bold;
    }

  @media (max-width: 768px) {
    .sidebar {
      position: relative;
      width: 100%;
      height: 100%;
      padding: 10px;
    }

    .content {
      padding: 15px;
    }
  }

  

  /* General Page and Background Styling */
.auth-page {
  background-color: #f0f2f5;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Background Image with Overlay */
.auth-wrapper {
  background: linear-gradient(rgba(26, 54, 93, 0.8), rgba(26, 54, 93, 0.8));
  background-size: cover;
  min-height: 100vh;
  width: 100%;
}

/* Form Card Styling */
.auth-card {
  background-color: #fff;
  border-radius: 15px;
  max-width: 500px;
  width: 90%;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  animation: fadeIn 0.8s ease-in-out;
}

.auth-logo {
  height: 80px;
  width: 80px;
  object-fit: cover;
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(26, 54, 93, 0.1);
}

/* Form Elements */
.form-label {
  font-weight: 500;
  color: #333;
}

.form-control-lg {
  height: calc(2.5rem + 10px);
  border-radius: 8px;
  font-size: 1rem;
}

/* Password Toggle */
.password-container .position-relative {
  display: flex;
  align-items: center;
}

.password-toggle {
  position: absolute;
  right: 15px;
  cursor: pointer;
  color: #6c757d;
  font-size: 1.1rem;
  transition: color 0.2s;
  z-index: 10;
}

.password-toggle:hover {
  color: #1a365d;
}

/* Submit Button */
.btn-primary {
  background-color: #1a365d;
  border-color: #1a365d;
  transition: all 0.3s ease;
}

.btn-primary:hover {
  background-color: #0d2238;
  border-color: #0d2238;
}

/* Animation for the card */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


.coming-soon-card {
    transition: all 0.3s ease-in-out;
    border-radius: 1rem;
    overflow: hidden;
  }
  .coming-soon-card:hover {
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; /* Larger, softer shadow on hover */
    transform: translateY(-5px); /* Subtle lift effect */
  }