.cta-banner {
  box-sizing: content-box;
  display: block;
  width: auto;
  padding: 88px 24px 104px;
  text-align: center;
  color: rgba(var(--color-text));
  background-color: rgba(var(--color-background));
}

/* Transparent-background variant: the prototype closing CTA sits directly on the
   page (source computed background-color: rgba(0,0,0,0)), unlike the home CTA which
   paints an explicit white scheme background. Toggled, so home stays byte-identical. */
.cta-banner--plain-bg {
  background-color: transparent;
}

/* Compact variant (e.g. product bundle upsell): smaller heading + even vertical padding */
.cta-banner--compact {
  padding: 80px 24px;
}

.cta-banner--compact .cta-banner__heading {
  font-size: 40px;
  line-height: 1.1;
}

.cta-banner--compact .cta-banner__body {
  max-width: 640px;
  font-size: 15.5px;
  line-height: 1.7;
}

.cta-banner--compact .cta-banner__inner {
  gap: 16px;
}

.cta-banner__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  margin: 0 auto;
}

.cta-banner__body {
  max-width: 620px;
}

.cta-banner__heading {
  margin: 0;
  font-size: 54px;
  line-height: 1.05;
  font-weight: 700;
  text-transform: uppercase;
  color: inherit;
}

.cta-banner__body {
  margin: 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  color: inherit;
}

/* Specificity bumped above base `a:not(.button)` (0,1,1) so the button text uses the
   scheme button-text color, not the link color (which would render dark-on-dark). */
.cta-banner a.cta-banner__cta {
  display: inline-block;
  margin-top: 8px;
  padding: 18px 48px;
  font-family: Archivo, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.14em;
  word-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  color: rgb(var(--color-button-text)) !important;
  background: rgb(var(--color-button-background));
}

.cta-banner a.cta-banner__cta:hover {
  background: #e2f9a1 !important;
  color: #000 !important;
}

@media (max-width: 959px) {
  .cta-banner__inner {
    gap: 16px;
  }
  .cta-banner__heading {
    font-size: 30px;
    line-height: 32px;
  }
  .cta-banner--compact .cta-banner__heading {
    font-size: 26px;
    line-height: normal;
  }
  .cta-banner--compact .cta-banner__body {
    font-size: 15.5px;
    color: rgb(255, 255, 255);
  }
  .cta-banner--compact .cta-banner__inner {
    gap: 14px;
  }
  .cta-banner__body {
    font-size: 16px;
    line-height: 1.6;
    color: rgb(85, 82, 75);
  }
  .cta-banner a.cta-banner__cta {
    margin-top: 16px;
  }
  .cta-banner.cta-banner--compact a.cta-banner__cta {
    margin-top: 14px;
    font-size: 13.5px;
  }
}
