@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/spacegrotesk/v22/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj62UUsj.ttf) format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/spacegrotesk/v22/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj7oUUsj.ttf) format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/spacegrotesk/v22/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj7aUUsj.ttf) format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/spacegrotesk/v22/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj42Vksj.ttf) format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/spacegrotesk/v22/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj4PVksj.ttf) format('truetype');
}
.page-hero {
  position: relative;
  width: 100%;
  height: 800px;
  overflow: hidden;
  font-family: 'Space Grotesk', sans-serif;
  color: white;
  border-radius: 8px;
  margin-top: 0;
  padding-top: 60px;
}
.page-hero .image-block {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.page-hero .image-block img,
.page-hero .image-block picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.page-hero .content {
  position: absolute;
  bottom: 10%;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  width: 90%;
  max-width: 1200px;
}
.page-hero .content .subtitle {
  font-size: 16px;
  text-transform: uppercase;
  margin-bottom: 10px;
  font-weight: 400;
  letter-spacing: 1px;
}
.page-hero .content .title {
  /* keep the title visually large but responsive: clamp ensures min and max sizes */
  font-size: clamp(40px, 6.5vw, 72px);
  font-weight: 500;
  line-height: 1.05;
  word-break: break-word;
}
.page-hero.no-image {
  /* allow the hero to grow if content needs more vertical space instead of clipping */
  min-height: 250px;
  height: auto;
  background: #212121;
  display: flex;
  align-items: center;
  justify-content: center;
  /* give some vertical breathing room when there's only text */
  padding: 40px 0;
  /* ensure content is visible even if parent has overflow hidden in other contexts */
  overflow: visible;
}
.page-hero.no-image .image-block {
  display: none;
}
.page-hero.no-image .content {
  position: static;
  transform: none;
  bottom: auto;
  left: auto;
  padding: 40px 20px;
}
.page-hero.no-image .content .title {
  /* responsive large title for the no-image variant */
  font-size: clamp(40px, 7vw, 64px);
}
.page-hero.no-image .content .subtitle {
  font-size: 14px;
  margin-bottom: 6px;
}
@media (min-width: 769px) {
  .page-hero {
    margin-top: -20px;
  }
  .page-hero .content .title {
    margin-top: 40px;
  }
}
@media (max-width: 768px) {
  .page-hero {
    height: 620px;
    padding-top: 80px;
  }
  .page-hero .content {
    bottom: 8%;
  }
  .page-hero .content .title {
    margin-top: 15px;
  }
  /* font-size is driven by clamp() above so no fixed override here */
}
@media (max-width: 480px) {
  .page-hero .content {
    bottom: 6.5%;
  }
  /* reduce title size on small screens to avoid truncation */
  .page-hero .content .title {
    font-size: 38px;
    line-height: 1.2;
  }
  .page-hero.no-image .content .title {
    font-size: 38px;
    line-height: 1.2;
  }
}
