:root{
  --brand-dark:#1e40af;
  --brand-accent:#3b82f6;
  --purple-1:#9333ea;
  --purple-2:#a855f7;
  --green-1:#059669;
  --green-2:#10b981;
}

/* Hero zoom-in (background image) */
.hero-bg{
  transform: scale(1.08);
  animation: heroZoom 12s ease-out forwards;
}
@keyframes heroZoom{
  from{ transform: scale(1.15); }
  to{ transform: scale(1.05); }
}

/* Scroll indicator */
.scroll-indicator{
  animation: bounceDown 1.6s infinite;
}
@keyframes bounceDown{
  0%,100%{ transform: translateY(0); opacity: .8; }
  50%{ transform: translateY(10px); opacity: 1; }
}

/* Fade-in on scroll */
.reveal{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 700ms ease, transform 700ms ease;
}
.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

/* Fullscreen overlay menu */
#overlayMenu{
  visibility: hidden;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms;
}
#overlayMenu.is-open{
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 220ms ease, transform 220ms ease;
}

/* Header background when scrolled */
.header-solid{
  background: rgba(10, 18, 40, 0.78);
  backdrop-filter: blur(10px);
}

/* Better focus ring */
:focus-visible{
  outline: 3px solid rgba(59,130,246,.7);
  outline-offset: 3px;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .hero-bg, .scroll-indicator{ animation: none !important; }
  .reveal{ transition: none !important; }
  html{ scroll-behavior: auto !important; }
}


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


/* Desktop service dropdown open state */
.nav-service-wrap.is-open #navServiceMenu{ opacity: 1; pointer-events: auto; }
.nav-service-wrap.is-open #navServiceChevron{ transform: rotate(180deg); }

/* Header: default has subtle bg, scrolled gets more solid */
.header-transparent.header-solid{ background: rgba(10, 18, 40, 0.92); }
