/* Homepage hero: crisp photograph, dark overlay and upper-left copy. */
#hero {
  align-items: flex-start;
  justify-content: flex-start;
  min-height: 100svh;
  padding-block: calc(var(--nav-h) + clamp(2rem, 4vh, 3.5rem)) 3.5rem;
  background: url("hero.png") center center / cover no-repeat;
  filter: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

#hero::before,
#hero::after,
#hero .hero-content::before {
  content: none !important;
  display: none !important;
  filter: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

#hero .hero-overlay {
  display: block !important;
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    180deg,
    rgba(12, 18, 24, .28) 0%,
    rgba(12, 18, 24, .26) 20%,
    rgba(12, 18, 24, .12) 50%,
    rgba(12, 18, 24, .02) 80%,
    rgba(12, 18, 24, 0) 100%
  );
  filter: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

#hero .container {
  width: 100%;
  max-width: none;
  padding-inline: var(--gutter);
}

#hero .grid-12 {
  display: block;
  min-height: 0;
  max-width: none;
}

#hero .hero-content {
  width: min(100%, 44rem);
  max-width: none;
  margin: 0;
  padding: 0;
  transform: none !important;
  align-self: flex-start;
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
}

#hero .hero-title {
  font-size: clamp(2.5rem, 6.2vw, 6.5rem);
  line-height: .98;
  letter-spacing: -.04em;
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
  text-shadow: 0 2px 24px rgba(0, 0, 0, .14);
}

#hero .hero-title,
#hero .hero-title-dim {
  color: #fff;
  animation: none;
}

#hero .hero-char {
  color: #b4bac2;
  animation: heroTypeToWhite 120ms ease-out forwards;
  animation-delay: calc(180ms + var(--char-index) * 58ms);
}

@keyframes heroTypeToWhite {
  to { color: #fff; }
}

@media (prefers-reduced-motion: reduce) {
  #hero .hero-char {
    color: #fff;
    animation: none;
  }
}

#hero .hero-actions {
  width: auto;
  align-items: flex-start;
  justify-content: flex-start;
}

/* Wide headline and raised CTA on desktop; retain the mobile line breaks. */
@media (min-width: 769px) {
  #hero .hero-content {
    width: 100%;
  }

  #hero .hero-title {
    font-size: clamp(2rem, 4.2vw, 6rem);
    margin-bottom: 0;
    white-space: nowrap;
  }

  #hero .hero-title br {
    display: none;
  }

  #hero .hero-title-dim {
    display: inline-block;
    margin-inline: .24em;
  }

  #hero .hero-actions {
    margin-top: clamp(2rem, 5vh, 3.5rem);
  }
}
