/* ====== Shared ====== */
.flex-label { margin: 8px 0 4px; font-size: 12px; opacity: .8; text-transform: uppercase; letter-spacing: .02em; }

/* ====== Callout / Quote Box ====== */
.flex-box-wrap { margin: 1rem 0; line-height: 1.6; }
.flex-box-body.is-bq { /* border-left set inline */ }
.flex-box-title { font-weight: 600; margin: 0 0 .5rem 0; font-size: 1.15em; } /* inline override for sizes */
.flex-box-content p { margin: 0.5rem 0; }
.flex-cite { display: block; font-style: normal; margin-top: .5rem; }

/* ====== CTA Banner ====== */
.flex-banner { position: relative; overflow: hidden; }
.flex-banner-overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.flex-banner-inner { position: relative; z-index: 3; display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; text-align: center; gap: 6px; }
.flex-banner-line1, .flex-banner-line2, .flex-banner-line3 { margin: 0; line-height: 1.2; }
.flex-banner-link { text-decoration: none; display: inline-block; }

/* Constrain within content column */
.wp-block-flex-banner{max-width:100%;}
.wp-block-flex-banner .flex-banner{max-width:var(--flex-banner-max, 1200px);}


/* === Mobile hardening for CTA Banner text & layout (<=600px) === */
@media (max-width: 600px){
  .flex-banner { height: auto !important; }
  .flex-banner-inner { gap: 4px; padding: 8px 10px; overflow-wrap: anywhere; word-break: break-word; }
  .flex-banner-line1 { font-size: clamp(14px, 5.4vw, 30px) !important; line-height: 1.2 !important; }
  .flex-banner-line2 { font-size: clamp(13px, 4.6vw, 20px) !important; line-height: 1.2 !important; }
  .flex-banner-line3 { font-size: clamp(12px, 4.2vw, 16px) !important; line-height: 1.25 !important; }
}

