/* Home hero: full-bleed banner that scales with viewport width.
   Image is 1920x600 (3.2:1 ratio = 31.25vw).
   Height tracks width so the image fills with zero white-space,
   clamped so it stays compact on every screen. */
.hero-banner.hero-fixed-400 {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-top: 0 !important;
  overflow: hidden;
  padding: 0 !important;
  min-height: 0 !important;
}

.hero-banner.hero-fixed-400.image-cover {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
}

/* Mobile: width-proportional height, floor of 200px */
@media (max-width: 767px) {
  .hero-banner.hero-fixed-400 {
    height: 45vw !important;
    min-height: 200px !important;
    max-height: 300px !important;
  }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991px) {
  .hero-banner.hero-fixed-400 {
    height: 35vw !important;
    min-height: 250px !important;
    max-height: 380px !important;
  }
}

/* Desktop */
@media (min-width: 992px) and (max-width: 1399px) {
  .hero-banner.hero-fixed-400 {
    height: 30vw !important;
    min-height: 300px !important;
    max-height: 450px !important;
  }
}

/* Large desktop: near full image (31.25vw = exact match) */
@media (min-width: 1400px) {
  .hero-banner.hero-fixed-400 {
    height: 31.25vw !important;
    min-height: 350px !important;
    max-height: 550px !important;
  }
}
