/* =========================================================
   APS Callout (Full-Width) — Final CSS (with back-compat)
   ========================================================= */

/* Base (no hard hex bg; use CSS variables so schemes work) */
.callout-adv {
  --callout-bg: #0E395D;  /* default; schemes override */
  --callout-text: #ffffff;
  --callout-accent: #EC8A20;

  background: var(--callout-bg);
  color: var(--callout-text);
  margin: 0 0 0px;
  padding: 0; /* vertical padding handled by py-* */
}

/* Normal full-bleed when the block has alignfull */
.callout-adv.alignfull {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: auto;
}

/* Back-compat: make old .callout-adv (no align*) full-bleed in content */
.entry-content > .callout-adv:not(.alignfull):not(.alignwide) {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: auto;
}

/* Constrain readable width inside */
.callout-adv .callout-adv__inner {
  max-width: min(90vw, var(--wp--style--global--wide-size, 1140px));
  margin: 0 auto;
  padding-inline: clamp(16px, 2vw, 32px);
  display: block;
}

/* Slightly tighter on ultrawide screens */
@media (min-width: 1600px) {
  .callout-adv .callout-adv__inner {
    max-width: min(85vw, var(--wp--style--global--wide-size, 1280px));
  }
}

/* Vertical padding sizes */
.callout-adv.py-sm { padding-top: 16px; padding-bottom: 16px; }
.callout-adv.py-md { padding-top: 28px; padding-bottom: 28px; }
.callout-adv.py-lg { padding-top: 48px; padding-bottom: 48px; }

/* Typography */
.callout-adv p { color: var(--callout-text); }
.callout-adv h2,
.callout-adv h3 { color: var(--callout-accent); }
.callout-adv h3 {
  font: 2.2rem/2.2rem p22-underground, sans-serif;
  font-display: swap;
  font-weight: 900;
}
.callout-adv a { color: inherit; text-decoration: underline; }

/* Color schemes (now actually work because base uses variables) */
.callout-adv.scheme-dark  { --callout-bg:#0E395D; --callout-text:#fff;    --callout-accent:#EC8A20; }
.callout-adv.scheme-light { --callout-bg:#E6F1FA; --callout-text:#0E395D; --callout-accent:#0E395D; }
.callout-adv.scheme-white { --callout-bg:#fff;    --callout-text:#0E395D; --callout-accent:#EC8A20; border:1px solid #e5e7eb; }

/* ---------------------------------------------------------
   Guardrails against post-load layout “snap” from WP 6.x
   --------------------------------------------------------- */
.site-content, .entry-content, .container, .wrap { overflow: visible; }

.callout-adv .wp-block,
.callout-adv .wp-block-group,
.callout-adv .wp-block-columns,
.callout-adv .wp-block-column {
  max-width: none !important;
  width: auto !important;
}
.callout-adv .wp-block-columns { gap: 32px; }

.callout-adv :where(.is-layout-constrained) { max-width: none !important; }
.callout-adv :where(.wp-block-group.is-layout-constrained) > :where(*) { max-width: none !important; }
.callout-adv [class*="wp-container-"] { max-width: none !important; }
.callout-adv :where(.is-layout-flex) { display: flex; flex-wrap: wrap; gap: 32px; }

/* Kill accidental vertical text utilities */
.callout-adv [style*="writing-mode"],
.callout-adv .is-vertical,
.callout-adv .vertical-text {
  writing-mode: horizontal-tb !important;
  text-orientation: initial !important;
  transform: none !important;
}
.callout-adv .wp-block-button__link { white-space: normal; }

/* ---- Color engine (with fallbacks) ---- */
.callout-adv {
  /* Paint the band using vars, with hard fallbacks */
  background: var(--callout-bg, #0E395D);
  color: var(--callout-text, #ffffff);
}

.callout-adv p,
.callout-adv li,
.callout-adv a { color: inherit; }
.callout-adv h2,
.callout-adv h3 { color: var(--callout-accent, currentColor); }

/* Schemes: set vars AND explicit colors so they win regardless of order */
.callout-adv.scheme-dark {
  --callout-bg:#0E395D; --callout-text:#ffffff; --callout-accent:#EC8A20;
  background-color:#0E395D; color:#ffffff;
}

.callout-adv.scheme-light {
  --callout-bg:#E6F1FA; --callout-text:#0E395D; --callout-accent:#0E395D;
  background-color:#E6F1FA; color:#0E395D;
}

.callout-adv.scheme-grey {
  --callout-bg:#F0F2F8; --callout-text:#0E395D; --callout-accent:#0E395D;
  background-color:#F0F2F8; color:#0E395D;
}

.callout-adv.scheme-white {
  --callout-bg:#ffffff; --callout-text:#0E395D; --callout-accent:#EC8A20;
  background-color:#ffffff; color:#0E395D; border:1px solid #e5e7eb;
}

/* Back-compat: full-bleed even if the block didn't get alignfull */
.callout-adv:not(.alignfull):not(.alignwide) {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: auto !important;
}

/* Safety: treat a stray 'align' class as full width, too */
.callout-adv.align {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: auto !important;
}
