/* GLOBAL */
body {
  font-family: "Roboto", sans-serif;
  background-color: #f4f4f4;
}

/* NAVBAR – desktop overlay by default */
.navbar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background: transparent;
  z-index: 10;
}

.navbar .nav-link {
  color: white;
}

.navbar .nav-link.active {
  color: #f8dd57 !important; /* active link */
}

.navbar .nav-link:hover {
  color: #f8dd57; /* hover yellow */
}

.navbar .NxGen-Header {
  color: #fff;
}

ul.hyphen-list {
  list-style-type: square;
}

/* SERVICE HERO SECTION */
.service {
  background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)),
    url("image/services.webp") center center/cover no-repeat;
  color: white;
  height: 100vh;
  display: flex;
  align-items: center;
}

.service-content-width {
  max-width: 900px;
  margin: 0 auto;
}

/* OUR SERVICE BLOCKS */
.our-service {
  margin: 50px auto;
}

.about-img {
  width: 100%;
  height: auto; /* no stretching on mobile */
  display: block;
  margin: 0 auto; /* center it */
}

.our-service h1 {
  color: #2f3261;
}

.our-service-content .btn {
  border-width: 1px;
  border-color: #2f3261;
  color: #2f3261;
}

.our-service-content .btn:hover {
  border-width: 1px;
  border-color: #2f3261;
  background-color: #2f3261;
  color: white;
}

/* CONTACT / FOOTER */
.contact-us {
  margin-top: 5rem;
  background-color: #212344;
  color: white;
}

.contact-section .form-label {
  color: #e7ecf7;
}

.contact-section .form-control {
  background: transparent;
  border: 1px solid #aab0c0;
  color: #fff;
  border-radius: 0.25rem;
}

.contact-section .form-control:focus {
  background: transparent;
  color: #fff;
  border-color: #fff;
  box-shadow: none;
}

.contact-section .btn-outline-light {
  border-width: 1px;
}

.alert-box {
  position: fixed;
  top: 20px;
  right: 20px;
  width: auto;
  z-index: 9999;
}

/* ----------------- RESPONSIVE ----------------- */

/* TABLET & BELOW (<= 991px) */
@media (max-width: 991.98px) {
  /* Navbar becomes normal dark bar, not overlay */
  .navbar {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
    background: transparent !important;
    z-index: 50;
  }

  /* Hero: shorter and with some top padding instead of full 100vh */
  .service {
    min-height: 100vh; /* taller like homepage */
    padding-top: 140px; /* push text down under transparent navbar */
    padding-bottom: 60px;
    background-position: center top; /* correct anchoring */
  }

  .service-content-width {
    max-width: 100%;
  }

  /* Contact section: reduce side padding and make map responsive */
  .contact-us .pe-5,
  .contact-us .ps-5 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }

  .contact-us iframe {
    width: 100% !important;
    height: 350px;
  }
}

/* MOBILE (<= 767px) */
@media (max-width: 767.98px) {
  /* Hero slightly tighter on small phones */
  .service {
    padding: 6rem 1.25rem 3rem;
  }

  .service-content h1,
  .service-content .display-3 {
    font-size: 2rem;
  }

  .service-content .lead {
    font-size: 1rem;
  }

  /* Stack image/text nicely – already row-cols-1 row-cols-md-2,
     so just tighten padding */
  .our-service .p-5 {
    padding: 2rem 1.5rem !important;
  }

  .our-service-content {
    padding: 1.5rem 1.5rem !important;
  }

  /* Contact: add space above "Get in Touch" and make it full-width */
  .contact-us .col-lg-6.ps-5 {
    padding-top: 2.5rem !important; /* gap under map */
    padding-left: 1rem !important;
  }

  .contact-us .col-lg-6.pe-5 {
    padding-right: 1rem !important;
  }

  .contact-us iframe {
    width: 100% !important;
    height: 260px;
  }
}
