
/*** Navbar — fixed header; transparent over hero, solid when scrolled or on inner pages ***/

:root {
  --navbar-height: 88px;
  --navbar-scroll-offset: calc(var(--navbar-height) + 2rem);
}

@media (max-width: 991.98px) {
  :root {
    --navbar-height: 72px;
    --navbar-scroll-offset: calc(var(--navbar-height) + 1rem);
  }
}

html {
  scroll-padding-top: var(--navbar-scroll-offset);
}

#services,
#contact {
  scroll-margin-top: var(--navbar-scroll-offset);
}

.navbar-light {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  border-bottom: none;
  transition: background 0.35s ease, box-shadow 0.35s ease;
}

/* Home hero: no background, light text */
.navbar-over-hero:not(.navbar-solid) {
  background: transparent;
  box-shadow: none;
}

.navbar-over-hero:not(.navbar-solid) .navbar-nav .nav-link {
  color: var(--light) !important;
}

.navbar-over-hero:not(.navbar-solid) .navbar-nav .nav-link:hover,
.navbar-over-hero:not(.navbar-solid) .navbar-nav .nav-link.active {
  color: #fff !important;
}

.navbar-over-hero:not(.navbar-solid) button,
.navbar-over-hero:not(.navbar-solid) .navbar-toggler {
  color: #fff !important;
}

/* Scrolled or inner pages: white background, dark text */
.navbar-solid,
.navbar-over-hero.navbar-solid {
  background: #fff;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

.navbar-solid .navbar-nav .nav-link,
.navbar-over-hero.navbar-solid .navbar-nav .nav-link {
  padding: 20px 0;
  color: var(--dark) !important;
}

.navbar-solid .navbar-nav .nav-link:hover,
.navbar-solid .navbar-nav .nav-link.active,
.navbar-over-hero.navbar-solid .navbar-nav .nav-link:hover,
.navbar-over-hero.navbar-solid .navbar-nav .nav-link.active {
  color: var(--secondary) !important;
}

.navbar-solid button,
.navbar-solid .navbar-toggler,
.navbar-over-hero.navbar-solid button,
.navbar-over-hero.navbar-solid .navbar-toggler {
  color: var(--dark) !important;
}

.navbar-light .navbar-nav .nav-link {
  position: relative;
  margin: 0 15px;
  padding: 26px 0;
  outline: none;
  transition: 0.5s;
}

.navbar-light .navbar-brand img {
  max-height: 60px;
  transition: 0.5s;
}

.navbar-solid .navbar-brand img,
.navbar-over-hero.navbar-solid .navbar-brand img {
  max-height: 45px;
}

.navbar-light .navbar-brand h1 {
  color: #fff;
}

.navbar-solid .navbar-brand h1,
.navbar-over-hero.navbar-solid .navbar-brand h1 {
  color: var(--primary);
}

/* Offset for fixed navbar on inner pages */
.page-navbar-offset {
  padding-top: 88px;
}

@media (min-width: 992px) {
  .navbar-light .navbar-nav .nav-link::before {
    position: absolute;
    content: "";
    width: 0;
    height: 2px;
    bottom: -1px;
    left: 50%;
    background: var(--secondary);
    transition: 0.5s;
  }

  .navbar-light .navbar-nav .nav-link:hover::before,
  .navbar-light .navbar-nav .nav-link.active::before {
    width: 100%;
    left: 0;
  }

  .navbar-light .navbar-nav .nav-link.nav-contact::before {
    display: none;
  }
}

@media (max-width: 991.98px) {
  .navbar-light .navbar-collapse {
    margin-top: 15px;
    border-top: 0 solid #ddd;
    background: #fff;
    border-radius: 8px;
    padding: 0.5rem 1rem 1rem;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  }

  .navbar-over-hero:not(.navbar-solid) .navbar-collapse {
    background: rgba(255, 255, 255, 0.97);
  }

  .navbar-over-hero:not(.navbar-solid) .navbar-collapse .nav-link {
    color: var(--dark) !important;
  }

  .navbar-light .navbar-nav .nav-link,
  .navbar-solid .navbar-nav .nav-link {
    padding: 10px 0;
    margin-left: 0;
  }

  .navbar-light .navbar-brand img {
    max-height: 45px;
  }
}
