/* cs-promo-cta — eyebrow + heading + caption on the left, pill button right.
   All rem values follow BB Theme's html { font-size: 10px } base. */

/* Strip BB's default row chrome. */
.fl-row-content-wrap:has(.cs-promo-cta) {
  padding-block: 0;
}
.fl-module-content:has(.cs-promo-cta) {
  margin-block: 0;
}

.cs-promo-cta {
  padding-block: var(--cs-space-xl);
  font-family: var(--cs-font-body);
  color: var(--cs-ink);
}

.cs-promo-cta__inner {
  max-width: var(--cs-container);
  margin: 0 auto;
  padding-inline: var(--cs-gutter);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--cs-space-xl);
  align-items: center;
}

/* Boxed variant — rounded card background */
.cs-promo-cta--boxed .cs-promo-cta__inner {
  max-width: 118rem;
  padding: 4rem var(--cs-space-2xl);
  border-radius: 3.2rem;
}

/* ---------- Text ---------- */
.cs-promo-cta__eyebrow {
  margin: 0 0 var(--cs-space-sm);
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  font-family: var(--cs-font-display);
  font-weight: 700;
  font-size: 1.6rem; /* 16px */
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: var(--cs-blue-dark);
}

.cs-promo-cta__eyebrow-line {
  width: 3.4rem;
  height: 0.2rem;
  background: var(--cs-blue-dark);
}

/* Doubled class + font-style so BB Global h2 rules lose. */
.cs-promo-cta .cs-promo-cta__heading {
  margin: 0;
  font-family: var(--cs-font-display);
  font-weight: 800;
  font-size: clamp(3.2rem, 3vw + 1rem, 4.8rem); /* → 48px */
  font-style: normal;
  line-height: 1.212;
  letter-spacing: var(--cs-tracking-tight);
  color: var(--cs-ink);
  text-transform: capitalize;
}

.cs-promo-cta__caption {
  margin: var(--cs-space-sm) 0 0;
  font-family: var(--cs-font-display);
  font-weight: 500;
  font-size: 1.5rem; /* 15px */
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: var(--cs-blue-dark);
}

/* White heading variant (boxed on a colored card) */
.cs-promo-cta--heading-white .cs-promo-cta__heading {
  color: var(--cs-white);
}

/* ---------- Button ---------- */
.cs-promo-cta .cs-promo-cta__cta,
.cs-promo-cta .cs-promo-cta__cta:link,
.cs-promo-cta .cs-promo-cta__cta:visited {
  display: inline-block;
  min-width: min(33rem, 100%); /* 330px */
  padding: 1rem 3.2rem;
  border-radius: var(--cs-radius-pill);
  font-family: var(--cs-font-display);
  font-weight: 700;
  font-size: 1.6rem; /* 16px */
  line-height: 1.5;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  transition: background 250ms ease-in-out, color 250ms ease-in-out, box-shadow 250ms ease-in-out, filter 250ms ease-in-out, transform 250ms ease-in-out;
}

.cs-promo-cta .cs-promo-cta__cta--blue,
.cs-promo-cta .cs-promo-cta__cta--blue:link,
.cs-promo-cta .cs-promo-cta__cta--blue:visited {
  background: #5274b1;
  color: var(--cs-white);
}
.cs-promo-cta .cs-promo-cta__cta--blue.cs-promo-cta__cta--blue:hover,
.cs-promo-cta .cs-promo-cta__cta--blue.cs-promo-cta__cta--blue:focus-visible {
  background: var(--cs-blue-dark);
  color: var(--cs-white);
  transform: scale(1.02);
}

.cs-promo-cta .cs-promo-cta__cta--orange,
.cs-promo-cta .cs-promo-cta__cta--orange:link,
.cs-promo-cta .cs-promo-cta__cta--orange:visited {
  background: var(--cs-orange);
  color: var(--cs-white);
}
.cs-promo-cta .cs-promo-cta__cta--orange.cs-promo-cta__cta--orange:hover,
.cs-promo-cta .cs-promo-cta__cta--orange.cs-promo-cta__cta--orange:focus-visible {
  background: var(--cs-orange);
  color: var(--cs-white);
  filter: brightness(1.08);
  box-shadow: 0 0.8rem 2rem -0.8rem rgba(252, 127, 86, 0.6);
  transform: scale(1.02);
}

.cs-promo-cta .cs-promo-cta__cta--white,
.cs-promo-cta .cs-promo-cta__cta--white:link,
.cs-promo-cta .cs-promo-cta__cta--white:visited {
  background: var(--cs-white);
  color: var(--cs-blue);
  box-shadow: 0 0.2rem 1.2rem rgba(0, 0, 0, 0.08);
}
.cs-promo-cta .cs-promo-cta__cta--white.cs-promo-cta__cta--white:hover,
.cs-promo-cta .cs-promo-cta__cta--white.cs-promo-cta__cta--white:focus-visible {
  background: var(--cs-off-white);
  color: var(--cs-blue-dark);
  transform: scale(1.02);
}

/* ---------- Chair card layout ---------- */
.cs-promo-cta--chair-card .cs-promo-cta__inner {
  /* Full-bleed square band: break out of the row container edge to edge. */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: none;
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(0, 1fr);
  align-items: stretch;
  gap: var(--cs-space-2xl);
  padding: 10rem max(var(--cs-space-2xl), calc((100vw - var(--cs-container)) / 2 - 4rem));
  border-radius: 0;
  min-height: 40rem;
}

.cs-promo-cta--chair-card .cs-promo-cta__media {
  align-self: end; /* anchor illustration toward the bottom-left */
  display: flex;
  justify-content: flex-start;
}

.cs-promo-cta__chair {
  display: block;
  width: 38rem;
  max-width: 100%;
  height: auto;
}

.cs-promo-cta--chair-card .cs-promo-cta__text {
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--cs-space-lg);
}

.cs-promo-cta__body {
  margin: 0;
  font-family: var(--cs-font-display);
  font-weight: 700;
  font-size: clamp(2.2rem, 1.4vw + 1.4rem, 3.2rem);
  line-height: 1.5;
  letter-spacing: var(--cs-tracking-tight);
  color: var(--cs-ink);
  text-align: right;
}

.cs-promo-cta__body em {
  font-style: italic;
}

.cs-promo-cta__body strong {
  font-weight: 800;
}

/* CTA sits at the bottom-left of the text block */
.cs-promo-cta--chair-card .cs-promo-cta__cta-wrap {
  align-self: flex-start;
  display: flex;
}

.cs-promo-cta--chair-card .cs-promo-cta__cta {
  min-width: 0;
}

/* ---------- Responsive ---------- */
@media (max-width: 780px) {
  .cs-promo-cta__inner {
    grid-template-columns: minmax(0, 1fr);
  }
  .cs-promo-cta .cs-promo-cta__cta {
    width: 100%;
  }
}

/* Chair card stacks: illustration centered on top, text + CTA centered */
@media (max-width: 900px) {
  .cs-promo-cta--chair-card .cs-promo-cta__inner {
    grid-template-columns: minmax(0, 1fr);
    padding: 6rem var(--cs-gutter);
    gap: var(--cs-space-lg);
    text-align: center;
  }
  .cs-promo-cta--chair-card .cs-promo-cta__media {
    align-self: center;
    justify-content: center;
  }
  .cs-promo-cta__chair {
    width: 24rem;
  }
  .cs-promo-cta--chair-card .cs-promo-cta__text {
    align-self: stretch;
    align-items: center;
  }
  .cs-promo-cta__body {
    text-align: center;
  }
  .cs-promo-cta--chair-card .cs-promo-cta__cta-wrap {
    align-self: center;
  }
}
