/* ---- Particle Network ---- */

/* Canvas absolutely fills its host section */
.particle-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  display: block;
}

/* Sections that host the particle canvas */
.particle-host {
  position: relative;
  overflow: hidden;
}

/* Content inside stays above the canvas */
.particle-host > .container {
  position: relative;
  z-index: 1;
}

/* Navbar particle canvas */
.navbar {
  overflow: hidden;
}
.navbar .particle-canvas {
  z-index: 0;
  opacity: 0.6;
}
.navbar .container {
  position: relative;
  z-index: 1;
}

/* ---- Mesh Gradient Canvas ---- */
.mesh-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 0;
}

/* Subtle white veil — softens gradient, improves text legibility */
.mesh-veil {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.14);
  pointer-events: none;
  z-index: 0;
}

/* Content above gradient layer */
.hero-grid,
.hero-sub-wrapper {
  position: relative;
  z-index: 1;
}

/* Hero Section — matches services/about/contact hero pattern */
.hero-section {
    background: #ffffff;
    padding-top: 180px;
    padding-bottom: 100px;
    position: relative;
    overflow: hidden;
    border-bottom: none;
}

/* Container sits above the particle canvas */
.hero-section .container {
    position: relative;
    z-index: 1;
}

/* H1 — bolder, matching sitewide hero style */
.hero-section h1 {
    font-size: clamp(2rem, 7vw, 6rem);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.0;
    margin-bottom: 1.25rem;
    color: var(--color-navy);
    text-transform: uppercase;
}

/* Subtitle text below heading */
.hero-sub-text {
    font-size: 1.1rem;
    color: var(--color-text-body);
    max-width: 520px;
    line-height: 1.6;
    font-weight: 400;
    letter-spacing: -0.01em;
    margin-bottom: 2.5rem;
}

/* Soft fade at the bottom */
.hero-section::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 100px;
    background: linear-gradient(to bottom, transparent, #ffffff);
    pointer-events: none;
    z-index: 0;
}

/* Responsive */

/* Mobile nav: remove backdrop-filter so position:fixed children aren't trapped
   inside the navbar's 90px height (Safari/iOS backdrop-filter containing block bug) */
@media (max-width: 768px) {
    .navbar {
        overflow: visible;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: rgba(255, 255, 255, 0.97);
    }
}

@media (max-width: 992px) {
    .hero-section {
        padding-top: 140px;
        padding-bottom: 60px;
    }
    .hero-section h1 {
        font-size: 2.5rem;
    }
    .hero-sub-text {
        max-width: 100%;
    }
}

@media (max-width: 600px) {
    .hero-section {
        padding-top: 120px;
        padding-bottom: 50px;
    }
    .hero-section h1 {
        font-size: 2.5rem;
    }
    .hero-sub-text {
        font-size: 1.05rem;
        margin-bottom: 2rem;
    }
}
