:root{
  --brand-blue:#003cc7;
  --brand-blue-dark:#06152f;
  --brand-blue-deep:#08111f;
  --brand-yellow:#e0c300;
  --brand-yellow-soft:#f4dd48;
  --text:#162033;
  --muted:#72809a;
  --white:#ffffff;
  --soft-bg:#f6f8fc;
  --border:rgba(10, 25, 52, 0.08);
  --shadow-lg:0 18px 50px rgba(6, 21, 47, 0.14);
  --shadow-md:0 10px 24px rgba(6, 21, 47, 0.10);
  --radius-lg:24px;
  --radius-md:18px;
  --transition:all .35s ease;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:"Inter", sans-serif;
  color:var(--text);
  background:var(--white);
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6,
.navbar-brand,
.nav-link,
.btn{
  font-family:"Montserrat", sans-serif;
}

a{
  text-decoration:none;
}

img{
  max-width:100%;
  display:block;
}

.section-space,
.section-padding{
  padding:90px 0;
}

/* Navbar */
.custom-navbar{
  background:rgba(4, 10, 22, 0.20);
  backdrop-filter:blur(14px);
  padding:14px 0;
  transition:var(--transition);
}

.custom-navbar.scrolled{
  background:rgba(6, 21, 47, 0.96);
  box-shadow:0 10px 30px rgba(0,0,0,0.12);
  padding:10px 0;
}

.brand-logo{
  height:52px;
  width:auto;
}

.navbar-nav{
  gap:8px;
}

.navbar-nav .nav-link{
  color:rgba(255,255,255,0.92);
  font-size:.88rem;
  font-weight:600;
  padding:8px 12px !important;
  position:relative;
  transition:var(--transition);
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active{
  color:var(--brand-yellow);
}

.navbar-nav .nav-link::after{
  content:"";
  position:absolute;
  left:12px;
  bottom:3px;
  width:0;
  height:2px;
  background:var(--brand-yellow);
  transition:var(--transition);
}

.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after{
  width:calc(100% - 24px);
}

.nav-cta{
  padding:10px 20px;
}

/* Buttons */
.btn-brand{
  background:linear-gradient(135deg,var(--brand-yellow),var(--brand-yellow-soft));
  border:none;
  color:#111;
  font-size:.92rem;
  font-weight:700;
  border-radius:40px;
  padding:11px 22px;
  box-shadow:0 12px 26px rgba(224,195,0,0.20);
  transition:var(--transition);
}

.btn-brand:hover{
  color:#111;
  transform:translateY(-2px);
  box-shadow:0 16px 30px rgba(224,195,0,0.26);
}

.btn-outline-premium{
  border:1.5px solid rgba(255,255,255,0.42);
  color:var(--white);
  background:rgba(255,255,255,0.05);
  border-radius:40px;
  padding:11px 22px;
  font-size:.92rem;
  font-weight:700;
  transition:var(--transition);
}

.btn-outline-premium:hover{
  background:var(--white);
  color:var(--brand-blue-dark);
}

.btn-outline-light{
  border-radius:40px;
  padding:11px 22px;
  font-size:.92rem;
  font-weight:700;
}

/* Yellow hamburger icon */
.navbar-toggler{
  border: none;
}

.navbar-toggler:focus{
  box-shadow: none;
}

.navbar-toggler-icon{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23e0c300' stroke-width='2.5' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* Hero Banner */
.hero-banner,
.hero-section{
  position:relative;
  min-height:100vh;
  background:
    linear-gradient(100deg, rgba(4, 12, 25, 0.90) 0%, rgba(4, 12, 25, 0.72) 42%, rgba(4, 12, 25, 0.48) 100%),
    url("https://images.unsplash.com/photo-1511818966892-d7d671e672a2?auto=format&fit=crop&w=1800&q=80") center center/cover no-repeat;
  overflow:hidden;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top right, rgba(0,60,199,0.20), transparent 30%),
    linear-gradient(180deg, rgba(0,0,0,0.08), rgba(0,0,0,0.22));
}

.hero-container{
  position:relative;
  z-index:2;
}

.hero-row{
  padding-top:95px;
  padding-bottom:45px;
}

.hero-content{
  color:var(--white);
}

.hero-badge,
.hero-tag{
  display:inline-block;
  padding:8px 15px;
  border-radius:40px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.18);
  color:var(--brand-yellow);
  font-size:.82rem;
  font-weight:700;
  margin-bottom:18px;
}

.hero-content h1{
  font-size:clamp(2rem, 2.6vw, 2.8rem);
  line-height:1.12;
  font-weight:800;
  margin-bottom:16px;
  max-width:650px;
}

.hero-content h1 span{
  color:var(--brand-yellow);
}

.hero-content p{
  font-size:.98rem;
  line-height:1.7;
  color:rgba(255,255,255,0.84);
  max-width:580px;
  margin-bottom:24px;
}

.hero-btns,
.hero-actions{
  margin-bottom:26px;
}

.hero-stats{
  max-width:480px;
}

.hero-stat-box{
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.12);
  backdrop-filter:blur(10px);
  padding:14px 12px;
  border-radius:16px;
  text-align:center;
}

.hero-stat-box h4{
  margin:0 0 4px;
  font-size:1.2rem;
  color:var(--brand-yellow);
  font-weight:800;
}

.hero-stat-box p{
  margin:0;
  font-size:.85rem;
  color:rgba(255,255,255,0.78);
}

/* Hero Search / Side Card */
.hero-side-card,
.hero-search-card{
  background:rgba(255,255,255,0.96);
  border-radius:24px;
  box-shadow:var(--shadow-lg);
  padding:24px;
  margin-top:22px;
}

.hero-side-top{
  margin-bottom:18px;
}

.mini-label{
  display:inline-block;
  color:var(--brand-blue);
  font-weight:700;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:8px;
}

.hero-side-top h4{
  margin:0;
  font-size:1.35rem;
  font-weight:800;
  color:var(--brand-blue-dark);
}

.hero-search-wrap{
  position:absolute;
  left:0;
  right:0;
  bottom:-52px;
  z-index:3;
}

.hero-search-card .form-label,
.form-label{
  font-size:.85rem;
  font-weight:600;
  color:var(--text);
  margin-bottom:6px;
}

.form-control,
.form-select,
textarea{
  min-height:48px;
  border-radius:12px;
  border:1px solid rgba(10, 25, 52, 0.12);
  padding-left:14px;
  font-size:.92rem;
  box-shadow:none !important;
}

.form-control:focus,
.form-select:focus,
textarea:focus{
  border-color:var(--brand-blue);
}

.search-btn{
  min-height:48px;
  font-size:.92rem;
}

/* Section heading */
.section-head,
.section-heading{
  margin-bottom:10px;
}

.section-heading.left-head p{
  margin-left:0;
}

.section-kicker,
.section-tag{
  display:inline-block;
  color:var(--brand-blue);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:12px;
}

.text-gold{
  color:var(--brand-yellow) !important;
}

.section-head h2,
.section-heading h2{
  font-size:clamp(1.7rem, 3vw, 2.5rem);
  line-height:1.18;
  font-weight:800;
  color:var(--brand-blue-dark);
  margin-bottom:14px;
}

.section-head p,
.section-heading p{
  color:var(--muted);
  line-height:1.7;
  max-width:620px;
  margin-inline:auto;
}

.section-heading.left-head p{
  margin-inline:0;
}

/* About Preview / About */
.about-preview{
  background:linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
}

.about-section{
  padding-top:130px;
}

.about-preview-image,
.about-image-wrap{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}

.about-preview-image img{
  width:100%;
  height:520px;
  object-fit:cover;
}

.about-main-img{
  width:100%;
  min-height:500px;
  object-fit:cover;
  border-radius:24px;
}

.floating-card{
  position:absolute;
  right:16px;
  bottom:18px;
  background:var(--white);
  padding:18px;
  border-radius:16px;
  box-shadow:var(--shadow-md);
  max-width:240px;
  border-left:4px solid var(--brand-yellow);
}

.floating-card h5{
  margin-bottom:6px;
  font-weight:700;
  font-size:1rem;
}

.floating-card p{
  margin:0;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.6;
}

.info-card,
.icon-box{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:18px;
  padding:20px;
  height:100%;
  box-shadow:0 8px 20px rgba(8, 17, 31, 0.05);
  transition:var(--transition);
}

.info-card:hover,
.icon-box:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-md);
}

.icon-box i{
  font-size:1.4rem;
  color:var(--brand-blue);
  margin-bottom:12px;
  display:inline-block;
}

.info-card h5,
.icon-box h5{
  font-size:1rem;
  font-weight:700;
  margin-bottom:8px;
  color:var(--brand-blue-dark);
}

.info-card p,
.icon-box p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
  font-size:.92rem;
}

/* Property Cards */
.property-card{
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--shadow-md);
  position:relative;
  height:100%;
  transition:var(--transition);
}

.property-card:hover{
  transform:translateY(-6px);
}

.property-img{
  position:relative;
  overflow:hidden;
}

.property-img img{
  width:100%;
  height:240px;
  object-fit:cover;
  transition:transform 0.55s ease;
}

.property-card:hover .property-img img{
  transform:scale(1.06);
}

.property-badge{
  position:absolute;
  left:16px;
  top:16px;
  background:var(--brand-yellow);
  color:#111;
  font-size:.76rem;
  font-weight:700;
  padding:7px 12px;
  border-radius:40px;
}

.property-body{
  padding:20px;
  position:relative;
}

.price-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}

.price-row h5{
  font-weight:700;
  margin:0;
  font-size:1rem;
}

.price-row span{
  color:var(--brand-blue);
  font-weight:800;
  font-size:.95rem;
}

.property-body p{
  color:var(--muted);
  font-size:.9rem;
}

.property-meta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  padding-top:10px;
  border-top:1px solid rgba(0, 0, 0, 0.06);
  font-size:.85rem;
  color:var(--text);
}

.property-meta i{
  color:var(--brand-blue);
  margin-right:4px;
}

.property-link{
  display:inline-block;
  margin-top:15px;
  color:var(--brand-blue);
  font-weight:700;
  font-size:.9rem;
}

/* Stats */
.stats-section{
  padding:0 0 90px;
  margin-top:-10px;
}

.stats-grid{
  background:linear-gradient(135deg, #08162d, #0f2347);
  border-radius:24px;
  padding:24px;
  box-shadow:var(--shadow-lg);
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
}

.stat-box{
  text-align:center;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:18px;
  padding:20px 16px;
}

.stat-box h3{
  color:var(--brand-yellow);
  font-size:1.9rem;
  margin-bottom:6px;
  font-weight:800;
}

.stat-box p{
  margin:0;
  color:rgba(255,255,255,0.82);
  font-size:.9rem;
}

/* Testimonials */
.testimonial-section{
  background:var(--white);
}

.testimonial-card{
  max-width:820px;
  background:linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
  border:1px solid var(--border);
  border-radius:24px;
  padding:34px;
  text-align:center;
  box-shadow:var(--shadow-md);
}

.quote-icon{
  width:58px;
  height:58px;
  border-radius:50%;
  background:rgba(0, 57, 198, 0.08);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--brand-blue);
  font-size:1.4rem;
  margin-bottom:16px;
}

.testimonial-card p{
  font-size:.98rem;
  color:var(--muted);
  line-height:1.75;
  margin-bottom:16px;
}

.testimonial-card h5{
  margin-bottom:4px;
  font-weight:700;
  font-size:1rem;
}

.testimonial-card span{
  color:var(--brand-blue);
  font-weight:600;
  font-size:.88rem;
}

.slider-btn{
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--brand-blue-dark);
  color:var(--white);
  border:none;
  font-size:.9rem;
}

.slider-btn:hover{
  background:var(--brand-blue);
  color:var(--white);
}

/* Partners */
.partners-section{
  padding:0 0 90px;
}

.partner-strip{
  margin-top:34px;
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:18px;
}

.partner-logo{
  min-height:82px;
  border-radius:16px;
  background:var(--white);
  border:1px solid var(--border);
  box-shadow:0 8px 22px rgba(9, 27, 57, 0.05);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  color:#7a8597;
  font-size:.92rem;
  transition:var(--transition);
}

.partner-logo:hover{
  transform:translateY(-4px);
  color:var(--brand-blue);
}

/* News */
.news-card{
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--shadow-md);
  height:100%;
  transition:var(--transition);
}

.news-card:hover{
  transform:translateY(-6px);
}

.news-card img{
  width:100%;
  height:220px;
  object-fit:cover;
}

.news-body{
  padding:20px;
}

.news-date{
  display:inline-block;
  margin-bottom:10px;
  color:var(--brand-blue);
  font-weight:700;
  font-size:.78rem;
}

.news-body h5{
  font-weight:700;
  line-height:1.5;
  margin-bottom:12px;
  font-size:1rem;
}

.news-body a{
  color:var(--brand-blue);
  font-weight:700;
  font-size:.88rem;
}

/* Inquiry */
.inquiry-section{
  background:linear-gradient(120deg, #07152c 0%, #0d2658 100%);
}

.inquiry-form-card{
  background:rgba(255,255,255,0.98);
  border-radius:24px;
  padding:26px;
  box-shadow:var(--shadow-lg);
}

/* Contact */
.contact-section{
  background:#04101f;
  color:var(--white);
}

.footer-logo{
  height:56px;
  width:auto;
}

.contact-info p,
.contact-info li{
  color:rgba(255,255,255,0.72);
  font-size:.92rem;
  line-height:1.7;
}

.contact-info h5{
  margin-bottom:16px;
  font-weight:700;
  font-size:1rem;
}

.contact-info ul li{
  margin-bottom:10px;
}

.contact-info i{
  color:var(--brand-yellow);
  margin-right:8px;
}

.social-links{
  display:flex;
  gap:12px;
}

.social-links a{
  width:40px;
  height:40px;
  background:rgba(255,255,255,0.08);
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--white);
  transition:var(--transition);
}

.social-links a:hover{
  background:var(--brand-yellow);
  color:#111;
  transform:translateY(-3px);
}

.footer-line{
  border-color:rgba(255,255,255,0.10);
  margin:34px 0 18px;
}

.footer-bottom p{
  color:rgba(255,255,255,0.65);
  font-size:.88rem;
}

/* Back to Top */
.back-to-top{
  position:fixed;
  right:18px;
  bottom:18px;
  width:44px;
  height:44px;
  border:none;
  border-radius:50%;
  background:var(--brand-yellow);
  color:#111;
  font-size:1rem;
  box-shadow:0 12px 25px rgba(0,0,0,0.16);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:var(--transition);
  z-index:999;
}

.back-to-top.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

/* Reveal */
.reveal{
  opacity:0;
  transform:translateY(35px);
  transition:opacity .8s ease, transform .8s ease;
}

.reveal.active{
  opacity:1;
  transform:translateY(0);
}

/* Responsive */
@media (max-width: 1199px){
  .navbar-collapse{
    background:rgba(6, 21, 47, 0.98);
    margin-top:16px;
    padding:18px;
    border-radius:18px;
  }

  .navbar-nav{
    gap:0;
    margin-bottom:16px;
  }

  .nav-actions{
    justify-content:flex-start;
  }

  .hero-content h1{
    max-width:100%;
  }

  .partner-strip{
    grid-template-columns:repeat(3, 1fr);
  }
}

@media (max-width: 991px){
  .section-space,
  .section-padding{
    padding:76px 0;
  }

  .hero-banner,
  .hero-section{
    min-height:auto;
  }

  .hero-row{
    padding-top:110px;
    padding-bottom:60px;
  }

  .hero-content{
    text-align:center;
    margin-bottom:28px;
  }

  .hero-content p{
    margin-left:auto;
    margin-right:auto;
  }

  .hero-btns,
  .hero-actions{
    justify-content:center;
  }

  .hero-stats{
    margin:0 auto;
  }

  .hero-side-card{
    margin-top:10px;
  }

  .hero-search-wrap{
    position:relative;
    bottom:auto;
    margin-top:-30px;
    padding-bottom:10px;
  }

  .about-preview-image img{
    height:400px;
  }

  .about-section{
    padding-top:80px;
  }

  .stats-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  .floating-card{
    right:12px;
    bottom:12px;
  }
}

@media (max-width: 767px){
  .brand-logo{
    height:46px;
  }

  .hero-row{
    padding-top:104px;
    padding-bottom:50px;
  }

  .hero-content{
    text-align:center;
    padding-top:0;
  }

  .hero-badge,
  .hero-tag{
    font-size:.76rem;
    padding:8px 14px;
  }

  .hero-content h1{
    font-size:2rem;
  }

  .hero-content p{
    font-size:.95rem;
    margin-inline:auto;
  }

  .hero-side-card,
  .hero-search-card{
    padding:20px;
    border-radius:20px;
  }

  .hero-stat-box{
    padding:12px 10px;
  }

  .hero-stat-box h4{
    font-size:1.1rem;
  }

  .about-preview-image img{
    height:320px;
  }

  .about-main-img{
    min-height:360px;
  }

  .floating-card{
    position:relative;
    right:auto;
    bottom:auto;
    margin-top:16px;
    max-width:100%;
  }

  .stats-grid{
    grid-template-columns:1fr;
  }

  .partner-strip{
    grid-template-columns:repeat(2, 1fr);
  }

  .testimonial-card{
    padding:26px 18px;
  }

  .section-head h2,
  .section-heading h2{
    font-size:1.9rem;
  }
}

@media (max-width: 575px){
  .container{
    padding-left:18px;
    padding-right:18px;
  }

  .hero-btns .btn,
  .hero-actions .btn,
  .btn-brand,
  .btn-outline-light{
    width:100%;
    justify-content:center;
  }

  .nav-cta{
    width:100%;
    text-align:center;
  }

  .hero-stats .col-4{
    width:100%;
  }

  .hero-side-top h4{
    font-size:1.2rem;
  }

  .about-preview-image img{
    height:260px;
  }

  .partner-strip{
    grid-template-columns:1fr;
  }
}