.typageant-sale-banner {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 420px;
  overflow: hidden;
  background: rgb(var(--color-background));
}

.typageant-sale-banner__media {
  position: absolute;
  inset: 0;
}

.typageant-sale-banner__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.typageant-sale-banner__scrim {
  position: absolute;
  inset: 0;
  background: rgb(var(--color-background) / var(--scrim-opacity, 30%));
}

.typageant-sale-banner__inner {
  position: relative;
  width: 100%;
  max-width: 1760px;
  padding: 96px 80px;
  margin: 0 auto;
}

.typageant-sale-banner__content {
  max-width: 560px;
}

.typageant-sale-banner__eyebrow {
  margin: 0 0 18px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.72;
}

.typageant-sale-banner__title {
  margin: 0 0 18px;
  font-size: clamp(32px, 3.4vw, 50px);
  font-weight: 500;
  line-height: 1.14;
}

.typageant-sale-banner__body {
  max-width: 460px;
  margin: 0 0 32px;
  font-size: 15px;
  line-height: 1.6;
  opacity: 0.82;
}

.typageant-sale-banner__button {
  display: inline-block;
  padding: 15px 38px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  /* Driven by the scheme's text colour, not its button colour: in scheme-2 the
     button background equals the section background, which hides the button. */
  color: rgb(var(--color-background));
  text-transform: uppercase;
  text-decoration: none;
  background: rgb(var(--color-text));
  border: 1px solid rgb(var(--color-text));
  border-radius: var(--button-border-radius);
  transition: opacity 0.25s ease;
}

.typageant-sale-banner__button:hover {
  opacity: 0.82;
}

/* No background image: centre the copy instead of leaving half the band empty. */
.typageant-sale-banner--plain {
  min-height: 320px;
}

.typageant-sale-banner--plain .typageant-sale-banner__inner {
  padding-block: 80px;
}

.typageant-sale-banner--plain .typageant-sale-banner__content {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

.typageant-sale-banner--plain .typageant-sale-banner__body {
  margin-inline: auto;
}

@media (max-width: 959px) {
  .typageant-sale-banner {
    min-height: 340px;
  }

  .typageant-sale-banner__inner {
    padding: 56px 24px;
  }

  .typageant-sale-banner__content {
    max-width: none;
  }

  .typageant-sale-banner__eyebrow {
    margin-bottom: 12px;
    font-size: 11px;
  }

  .typageant-sale-banner__title {
    margin-bottom: 14px;
  }

  .typageant-sale-banner__body {
    margin-bottom: 24px;
    font-size: 14px;
  }

  .typageant-sale-banner__button {
    padding: 13px 30px;
  }
}
