/*
 * Banner Module
 * ========================================================================
 * Styles for the hero banner section including responsive backgrounds,
 * content layout, and interactive elements.
 */

/* ==========================================================================
   Base Banner Styles
   ========================================================================== */

.hero-banner {
  position: relative;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-image: var(--mobile-bg);
  padding: 4.375rem 0;
  padding-top: 9.375rem;
  color: var(--bs-white);
  z-index: 1;
  display: flex;
}

/* ==========================================================================
   Desktop Styles
   ========================================================================== */
@media (min-width: 62rem) {
  .hero-banner {
    background-image: var(--desktop-bg);
    min-height: 52.875rem;
  }
}

/* Tablet and Mobile - Full viewport height */
@media (max-width: 61.99875rem) {
  .hero-banner {
    min-height: 42.75rem;
    padding: 3.125rem 0;
    padding-top: 6.25rem;
  }
}

/* Overlay gradient */
.hero-banner::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(
    89.99deg,
    var(--bs-black) 0.01%,
    rgba(var(--bs-primary-900-rgb), 0.1) 73.78%
  );
  z-index: 1;
}
@media (max-width: 61.99875rem) {
  .hero-banner::before {
    background: rgba(var(--bs-black-rgb), 0.5);
  }
}

/* Container */
.hero-banner .hero-container {
  position: relative;
  z-index: 22;
}

/* Title */
.hero-banner .hero-title {
  font-size: 4.0625rem;
  line-height: 4.6875rem;
  letter-spacing: 0;
  font-weight: 400;
  margin-bottom: 1.5rem;
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: 4.0625rem;
    line-height: 4.6875rem;
    letter-spacing: 0;
    font-weight: 400;
    margin-bottom: 1.5rem;
  }
  p {
    margin-bottom: 0;
  }
  .font-serif {
    font-size: 5.75rem;
    line-height: 4.875rem;
    font-weight: 300;
  }
  strong {
    font-weight: 700;
  }
  span {
    color: var(--bs-secondary);
  }
}

/* Tablet Large (1024px / 64rem) */
@media (max-width: 64rem) {
  .hero-banner .hero-title {
    font-size: 3.5rem;
    line-height: 4.25rem;
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      font-size: 3.5rem;
      line-height: 4.25rem;
    }
    .font-serif {
      font-size: 4.75rem;
      line-height: 4.5rem;
    }
  }
}

/* Tablet Medium (768px / 48rem) */
@media (max-width: 48rem) {
  .hero-banner .hero-title {
    font-size: 2.125rem;
    line-height: 2.75rem;
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      font-size: 2.125rem;
      line-height: 2.75rem;
    }
    .font-serif {
      font-size: 2.875rem;
      line-height: 2.75rem;
    }
  }
}

/* Subtitle */
.hero-banner .hero-sub-title {
  font-size: 1.5rem;
  line-height: 2.25rem;
  font-weight: 400;

  margin-bottom: 2rem;
  &.small-wrapper {
    max-width: 41.875rem;
  }
  &.full-wrapper {
    max-width: 100%;
  }
}

/* Tablet Large (1024px / 64rem) */
@media (max-width: 64rem) {
  .hero-banner .hero-sub-title {
    font-size: 1.375rem;
    line-height: 2rem;
  }
}

/* Tablet Medium (768px / 48rem) */
@media (max-width: 48rem) {
  .hero-banner .hero-sub-title {
    font-size: 1.3125rem;
    line-height: 1.9375rem;
    br {
      display: none;
    }
  }
}

/* Mobile (<768px / 47.9375rem) */
@media (max-width: 47.9375rem) {
  .hero-banner .hero-sub-title {
    font-size: 1.25rem;
    line-height: 1.875rem;
    br {
      display: none;
    }
  }
}

/* Button container */
.hero-banner .hero-button-wrapper {
  margin-top: 1.875rem;
}
