/* ==========================================================================
   AUM Text CTA

   Centred call to action. Bootstrap handles the container width; every
   visual value reads a custom property with its default in the var()
   fallback, so nothing is declared on the element itself and the block's
   own controls can always override.
   ========================================================================== */

.aum-cta {
  width: 100%;
  font-family: var(--aum-font, Lato, sans-serif);
  background: var(--aum-cta-bg, transparent);
  padding-block: var(--aum-cta-pad-y, 96px);
  text-align: center;
}

.aum-cta.is-align-left  { text-align: left; }
.aum-cta.is-align-right { text-align: right; }

.aum-cta__nocontainer {
  width: 100%;
  padding-inline: var(--aum-container-padding, 24px);
}

/* --- Background width -----------------------------------------------------
   Full bleed by default; is-background-contained holds the colour to the
   container so it stops with the content.
   -------------------------------------------------------------------------- */

.aum-cta.is-background-contained {
  max-width: var(--aum-container, 1140px);
  margin-inline: auto;
}

/* --- Inner ---------------------------------------------------------------- */

.aum-cta__inner {
  max-width: var(--aum-cta-max, 720px);
  margin-inline: auto;
}

.aum-cta.is-align-left  .aum-cta__inner { margin-inline: 0 auto; }
.aum-cta.is-align-right .aum-cta__inner { margin-inline: auto 0; }

.aum-cta__panel {
  background: var(--aum-cta-panel-bg, var(--aum-white, #fff));
  border: 1px solid var(--aum-cta-panel-border, var(--aum-border, #e8e8e8));
  padding: var(--aum-cta-panel-pad, 64px) calc(var(--aum-cta-panel-pad, 64px) * .75);
}

/* Hairline rules at the top and bottom of the band. */
.aum-cta.has-edge-rules {
  border-top: 1px solid var(--aum-cta-edge-color, var(--aum-border, #e8e8e8));
  border-bottom: 1px solid var(--aum-cta-edge-color, var(--aum-border, #e8e8e8));
}

/* --- Type ----------------------------------------------------------------- */

.aum-cta__eyebrow {
  font-size: var(--aum-cta-eyebrow, 12px);
  letter-spacing: var(--aum-cta-eyebrow-track, .24em);
  text-transform: uppercase;
  color: var(--aum-cta-eyebrow-color, var(--aum-gray, #9b9b9b));
  margin: 0 0 16px;
}

.aum-cta__title {
  font-size: var(--aum-cta-title, 46px);
  font-weight: var(--aum-cta-title-weight, 300);
  letter-spacing: var(--aum-cta-title-track, .16em);
  text-transform: uppercase;
  color: var(--aum-cta-title-color, var(--aum-gray, #9b9b9b));
  line-height: 1.15;
  margin: 0 0 22px;
}

.aum-cta__title.is-sentence-case { text-transform: none; }

.aum-cta__lede {
  font-size: var(--aum-cta-lede, 19px);
  line-height: var(--aum-cta-lede-leading, 1.7);
  color: var(--aum-cta-lede-color, var(--aum-text, #2b2b2b));
  margin: 0 0 var(--aum-cta-gap, 34px);
}

/* Address lines: two of them, with the key part bolded inline. */
.aum-cta__detail {
  font-size: var(--aum-cta-detail, 20px);
  line-height: 1.6;
  color: var(--aum-cta-detail-color, var(--aum-gray, #9b9b9b));
  margin: 0 0 10px;
}

.aum-cta__detail strong {
  color: inherit;
  font-weight: 700;
}

.aum-cta__detail:last-of-type { margin-bottom: var(--aum-cta-gap, 34px); }

.aum-cta__meta {
  font-size: var(--aum-cta-meta, 13px);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--aum-cta-meta-color, var(--aum-accent-deep, #7b6a58));
  margin: 0 0 var(--aum-cta-gap, 34px);
}

/* --- Rules ---------------------------------------------------------------- */

.aum-cta__rule {
  border: 0;
  border-top: 2px solid var(--aum-cta-rule-color, var(--aum-accent, #d7c6b2));
  width: 48px;
  margin: 0 auto 26px;
  opacity: 1;
}

.aum-cta.is-align-left  .aum-cta__rule { margin-inline: 0 auto; }
.aum-cta.is-align-right .aum-cta__rule { margin-inline: auto 0; }

/* Eyebrow flanked by two short rules. */
.aum-cta__eyebrow-rule {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 18px;
  justify-content: center;
}

.aum-cta.is-align-left  .aum-cta__eyebrow-rule { justify-content: flex-start; }
.aum-cta.is-align-right .aum-cta__eyebrow-rule { justify-content: flex-end; }

.aum-cta__eyebrow-rule::before,
.aum-cta__eyebrow-rule::after {
  content: "";
  height: 1px;
  width: 46px;
  background: var(--aum-cta-rule-color, var(--aum-border, #e8e8e8));
}

.aum-cta__eyebrow-rule .aum-cta__eyebrow { margin: 0; }

/* --- Buttons --------------------------------------------------------------
   Buttons are inner blocks, so they arrive with their own wrappers. This just
   arranges them; the AUM Buttons block owns how each one looks.
   -------------------------------------------------------------------------- */

.aum-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  align-items: center;
}

.aum-cta.is-align-left  .aum-cta__actions { justify-content: flex-start; }
.aum-cta.is-align-right .aum-cta__actions { justify-content: flex-end; }

.aum-cta__actions .aum-buttons-block { width: auto; }
.aum-cta__actions > *:last-child { margin-bottom: 0; }

/* --- Mobile --------------------------------------------------------------- */

@media (max-width: 575.98px) {
  .aum-cta {
    padding-block: var(--aum-cta-pad-y-m, 64px);
  }

  .aum-cta__title {
    font-size: var(--aum-cta-title-m, 28px);
  }

  .aum-cta__panel {
    padding: calc(var(--aum-cta-panel-pad, 64px) * .62) calc(var(--aum-cta-panel-pad, 64px) * .4);
  }

  /* Stacked buttons read better full width than centred and ragged. */
  .aum-cta__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .aum-cta__actions .aum-buttons-block { width: 100%; }
  .aum-cta__actions .aum-buttons-link { display: flex; width: 100%; }
}
