/** Hero Banner Component - Optimized for Performance **/

.c-hero__front {
  background-size: cover;
  background-position: center;
  position: relative;
  padding: 2rem;
  /* Optimize rendering performance */
  will-change: transform;
  transform: translateZ(0);
}

/* Lazy loading optimization */
.c-hero__front.lazy-loading {
  background-color: #6897c1; /* Fallback color while loading */
}

.c-hero__front.lazy-loaded {
  transition: opacity 0.3s ease-in-out;
}

.c-hero__text {
  background-color: rgba(104,151,193, .8);
  padding: 1rem;
  position: relative;
  z-index: 2;
}

.c-hero__text h1 {
  font-size: 30px;
  margin: 0 0 1rem 0;
}

.c-hero__text p {
  font-size: 18px;
  margin: 0;
}

/* Responsive optimizations */
@media only screen and (min-width: 425px) {
  .c-hero__front {
    padding: 50px;
  }
  .c-hero__text {
    padding: 35px 50px;
  }
  .c-hero__text h1 {
    font-size: 40px;
  }
  .c-hero__text p {
    font-size: 24px;
  }
}

@media only screen and (min-width: 1024px) {
  .c-hero {
    display: flex;
  }

  .c-hero__front {
    height: calc(100vh - 180px);
    padding: 0;
    min-height: 400px;
  }

  .c-hero__text {
    align-self: center;
    padding: 29px 50px;
    width: 50%;
  }

  .c-hero__text h1 {
    font-size: 55px;
  }

  .c-hero__text p {
    font-weight: 700;
    margin: 7px 0 5px 0;
  }
}

/* Performance optimizations for mobile */
@media only screen and (max-width: 767px) {
  .c-hero__front {
    /* Use smaller background image on mobile */
    background-size: cover;
    background-attachment: scroll; /* Prevent parallax issues on mobile */
  }
}
