/* HERO SECTION HOME */
.hero-section-home {
  height: 100vh;
  position: relative;
}

.hero-section-home .hero-image {
  height: 100%;
}

.hero-section-home.feature-video {
  position: relative;
  width: 100%;
  height: 100vh; /* or 100% if parent already has height */
  overflow: hidden;
}

.hero-section-home .hero-video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  object-fit: cover;
}

.hero-section-home .hero-overlay {
  background: linear-gradient(
    180deg,
    rgb(29 29 29 / 26%) 0%,
    rgba(29, 29, 29, 0.11) 100%
  );
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
}

.hero-content {
  position: absolute;
  top: 0;
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  padding-bottom: 20vh;
  justify-content: end;
}

h1.hero-title {
  margin: 0;
  font-size: 110px;
  color: var(--white);
  line-height: 100px;
  font-weight: 700;
}

h1.hero-title span.sm-word {
  font-size: 72px;
}

.special-box p {
  color: var(--white);
  font-size: 28px;
  font-weight: 500;
  background: var(--brand-primary);
  padding: 4px 12px;
  font-family: var(--medieval-font);
}

.special-box {
  width: fit-content;
}

.hero-sub-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pre-title {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.hero-cta a {
  color: var(--black);
  font-size: 18px;
  font-weight: 500;
  text-transform: uppercase;
  background: var(--white);
  border: 1px solid var(--white);
  border-radius: 0;
  padding: 8px 56px;
  transition: var(--transition);
}

.hero-cta a:hover {
  background: var(--black);
  color: var(--white);
  border: 1px solid var(--white);
}

.hero-paragraph p {
  color: var(--white);
  font-size: 22px;
  max-width: 65%;
}

/* HERO SECTION STANDARD */
section.hero-section-standard .hero-image {
  height: 60vh;
}

section.hero-section-standard .hero-overlay {
  background: linear-gradient(
    180deg,
    rgba(29, 29, 29, 64%) 0%,
    rgba(29, 29, 29, 10%) 100%
  );
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
}

section.hero-section-standard .hero-content {
  justify-content: end;
  padding-bottom: 120px;
}

section.hero-section-standard h1.hero-title {
  font-size: 80px;
}

/* HERO SECTION SMALL */
section.hero-section-small .hero-image {
  height: 40vh;
}

section.hero-section-small .hero-overlay {
  background: linear-gradient(
    180deg,
    rgba(29, 29, 29, 1) 0%,
    rgba(29, 29, 29, 0.11) 100%
  );
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
}

section.hero-section-standard {
  position: relative;
  height: 60vh;
  overflow: hidden;
}

/* background layers: image OR video */
section.hero-section-standard .hero-image,
section.hero-section-standard .hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

/* video cover */
section.hero-section-standard .hero-video {
  object-fit: cover;
  object-position: center;
}

/* overlay above bg */
section.hero-section-standard .hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* content above overlay */
section.hero-section-standard .hero-content {
  position: relative;
  z-index: 2;
}

/* RESPONSIVE */
@media (max-width: 1191px) {
}

@media (max-width: 1112px) {
  section.hero-section-standard h1.hero-title {
    font-size: 64px;
  }

  .special-box p {
    font-size: 28px;
  }

  h1.hero-title {
    font-size: 92px;
    line-height: 80px;
  }

  h1.hero-title span.sm-word {
    font-size: 54px;
  }
}

@media (max-width: 1032px) {
}

@media (max-width: 880px) {
  section.hero-section-standard .hero-image {
    height: 70vh;
  }

  section.hero-section-standard h1.hero-title {
    font-size: 36px;
  }

  section.hero-section-standard .hero-content {
    padding-bottom: 60px;
  }

  .hero-paragraph p {
    max-width: 100%;
    font-size: 18px;
  }
}

@media (max-width: 776px) {
  section.hero-section-standard .hero-image {
    height: 100%;
  }

  .special-box p {
    font-size: 18px;
    padding: 2px 8px;
  }

  h1.hero-title {
    font-size: 54px;
    line-height: 40px;
  }

  h1.hero-title span.sm-word {
    font-size: 36px;
  }

  .pre-title {
    gap: 4px;
  }

  .hero-sub-content {
    gap: 8px;
  }

  .hero-content {
    justify-content: flex-end;
    padding-bottom: 120px;
  }
}

@media (max-width: 576px) {
  h1.hero-title {
    font-size: 44px;
  }

  h1.hero-title span.sm-word {
    font-size: 32px;
  }
}

@media (max-width: 370px) {
  h1.hero-title {
    font-size: 36px;
  }

  h1.hero-title span.sm-word {
    font-size: 24px;
  }
}
