/* Custom overrides beyond Tailwind utilities go here */

/* Nav links with animated underline */
.nav-link {
  position: relative;
  font-weight: 500;
  color: #4A2E3E;
  padding-bottom: 4px;
}

.nav-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background-color: #4A2E3E;
  transition: width 0.3s ease;
}

.nav-link:hover::after {
  width: 100%;
}

/* Hamburger icon */
.hamburger-line {
  display: block;
  height: 2px;
  width: 100%;
  background-color: #4A2E3E;
  border-radius: 2px;
  transition: transform 0.35s ease, opacity 0.35s ease;
}

#menu-toggle.open .hamburger-line:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
}

#menu-toggle.open .hamburger-line:nth-child(2) {
  opacity: 0;
}

#menu-toggle.open .hamburger-line:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
}

/* Mobile menu open state */
#mobile-menu.open {
  max-height: 400px;
}

/* Hero text fade-in animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.fade-in-up {
  opacity: 0;
  animation: fadeInUp 1s ease forwards;
}

.fade-delay-1 {
  animation-delay: 0.3s;
}

/* Hero background subtle zoom-in on load */
@keyframes heroZoom {
  from { transform: scale(1.12); }
  to { transform: scale(1.05); }
}

.hero-bg {
  animation: heroZoom 8s ease-out forwards;
}

/* Navbar shrink state on scroll */
#navbar.scrolled {
  height: auto;
}

/* Generic scroll-reveal (used across sections) */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal.reveal-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 {
  transition-delay: 0.15s;
}

.reveal-delay-2 {
  transition-delay: 0.3s;
}

.reveal-delay-3 {
  transition-delay: 0.45s;
}

/* Accordion (service area) */
.accordion-icon.rotate {
  transform: rotate(45deg);
}

