.hero {
  grid-template-columns: 1fr;
  min-height: 0;
}

.hero-copy {
  max-width: 1180px;
  padding: 7vw 6vw 5vw;
}

.hero-media {
  width: 100%;
  height: 56.25vw;
  min-height: 320px;
  max-height: 78vh;
  background: #2b2118 var(--hero-poster) center / cover no-repeat;
}

.hero-media video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hero-media .hero-reel {
  opacity: 0;
  transition: opacity 320ms ease;
}

.hero-media .hero-reel.is-playing {
  opacity: 1;
}

.hero-media noscript img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-media::after {
  z-index: 1;
}

.hero-media .crosshair {
  z-index: 2;
}

.hero-media .media-label {
  z-index: 3;
}

.visual.roof,
.visual.property,
.visual.construction,
.visual.custom {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.visual.roof {
  background-image: linear-gradient(rgba(43, 33, 24, .08), rgba(43, 33, 24, .28)), url("../media/card-roof.webp");
}

.visual.property {
  background-image: linear-gradient(rgba(43, 33, 24, .06), rgba(43, 33, 24, .28)), url("../media/card-property.webp");
}

.visual.construction {
  background-image: linear-gradient(rgba(43, 33, 24, .06), rgba(43, 33, 24, .3)), url("../media/card-construction.webp");
}

.visual.custom {
  background-image: linear-gradient(rgba(43, 33, 24, .06), rgba(43, 33, 24, .3)), url("../media/card-custom.webp");
}

@media (prefers-reduced-motion: reduce) {
  .hero-media video {
    display: none;
  }
}

@media (max-width: 700px) {
  .hero-copy {
    padding: 70px 6vw 50px;
  }

  .hero-media {
    height: 56.25vw;
    min-height: 220px;
    max-height: none;
  }

  .hero-media video {
    display: none;
  }
}
