/* ===== Hamburger Menu Styles ===== */

/* Reset for header */
header {
  position: fixed !important;
  top: 0 !important;
  width: 100% !important;
  height: 60px !important;
  background-color: #fff !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 0 1.5rem !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05) !important;
  z-index: 1000 !important;
  left: 0 !important;
  right: 0 !important;
}

/* Logo styling */
header .logo {
  display: flex;
  align-items: center;
  margin: 0;
}

header .logo img {
  height: 40px;
  width: auto;
}

/* ===== Hamburger Icon ===== */
.hamburger {
  width: 28px !important;
  height: 22px !important;
  position: relative !important;
  cursor: pointer !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  z-index: 1001 !important;
}

.hamburger span {
  display: block !important;
  height: 3px !important;
  width: 100% !important;
  background-color: #e93a3a !important;
  border-radius: 2px !important;
  transition: 0.3s !important;
}

/* Transform when active */
.hamburger.active span:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
}

/* ===== Mobile Menu ===== */
.mobile-menu {
  position: fixed !important;
  top: 0 !important;
  right: -100% !important;
  left: auto !important;
  width: 70% !important;
  max-width: 320px !important;
  height: 100vh !important;
  background-color: #fff !important;
  box-shadow: -3px 0 10px rgba(0, 0, 0, 0.1) !important;
  transition: right 0.4s ease !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  padding-top: 100px !important;
  z-index: 999 !important;
}

.mobile-menu.active {
  right: 0 !important;
  left: auto !important;
}

/* Links */
.mobile-menu a {
  color: #000;
  text-decoration: none;
  font-size: 1.2rem;
  padding: 15px 0;
  width: 100%;
  text-align: center;
  transition: color 0.3s ease, background-color 0.3s ease;
  position: relative;
}

.mobile-menu a:hover {
  color: #fff;
  background-color: #e93a3a;
}

/* Active page indicator - red underline */
.mobile-menu a.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 2px;
  background-color: #e93a3a;
}

/* Prevent background scroll when menu is open */
body.no-scroll {
  overflow: hidden;
}

/* ===== Desktop ===== */
@media (min-width: 768px) {
  .hamburger {
    display: none !important;
  }

  .mobile-menu {
    position: static !important;
    height: auto !important;
    flex-direction: row !important;
    justify-content: flex-end !important;
    padding: 0 !important;
    box-shadow: none !important;
    width: auto !important;
    max-width: none !important;
    transition: none !important;
    right: 0 !important;
    left: auto !important;
    display: flex !important;
  }

  .mobile-menu a {
    padding: 0 15px !important;
    background: none !important;
    color: #000 !important;
    font-size: 0.95rem !important;
    width: auto !important;
  }

  .mobile-menu a:hover {
    color: #e93a3a !important;
    background: none !important;
  }

  /* Desktop active indicator - red underline */
  .mobile-menu a.active::after {
    content: '' !important;
    position: absolute !important;
    bottom: -5px !important;
    left: 0 !important;
    width: 100% !important;
    height: 2px !important;
    background-color: #e93a3a !important;
    transform: none !important;
  }

  .mobile-menu a.active {
    color: #e93a3a !important;
  }
}

/* Adjust body padding to account for fixed header */
body {
  padding-top: 60px;
  margin: 0;
}

/* Remove white space under navbar */
main, section:first-of-type {
  margin-top: 0;
}

main#main-content {
  margin-top: 0;
  padding-top: 0;
}

.hero {
  margin-top: 0;
}

/* Ensure hero sections start right after header */
section.hero:first-child,
main > section.hero:first-child {
  margin-top: 0;
  padding-top: 4rem; /* Add some padding for content spacing */
}
