/* ============================================================================
   BA Pages — Legal pages (Privacy / Terms) — v2.1.1 LUXURY stylesheet
   ----------------------------------------------------------------------------
   Premium, design-system-matched styles for [ba_privacy] and [ba_terms].
   Mirrors the existing `.stasis` design tokens so legal pages look like
   a native part of the site, not generic WordPress legal text.
   ============================================================================ */

/* ── 1. Hero — same lab-scene veil pattern as About page ────────────── */
.stasis .ba-legal-hero {
    position: relative;
    min-height: 360px;
    display: flex;
    align-items: flex-end;
    background:
        linear-gradient(180deg, #0B1524 0%, #102036 60%, #152844 100%);
    color: #fff;
    overflow: hidden;
    isolation: isolate;
}
.stasis .ba-legal-hero__bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(circle at 20% 30%, rgba(94, 200, 242, 0.20), transparent 60%),
        radial-gradient(circle at 80% 70%, rgba(203, 160, 91, 0.14), transparent 55%),
        linear-gradient(180deg, #0B1524 0%, #102036 100%);
}
.stasis .ba-legal-hero__bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(transparent 50%, rgba(255, 255, 255, 0.04) 50%),
        linear-gradient(90deg, transparent 50%, rgba(255, 255, 255, 0.04) 50%);
    background-size: 60px 60px;
    opacity: 0.4;
    pointer-events: none;
}
.stasis .ba-legal-hero__veil {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(11, 21, 36, 0.0) 0%, rgba(11, 21, 36, 0.45) 100%);
}
.stasis .ba-legal-hero__inner {
    position: relative;
    z-index: 1;
    padding: 96px 0 56px;
    width: 100%;
    max-width: var(--wrap, 1200px);
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}
.stasis .ba-legal-hero__title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(38px, 5.4vw, 68px);
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin: 14px 0 18px;
    color: #fff;
    font-weight: 700;
    max-width: 16ch;
}
.stasis .ba-legal-hero__lede {
    font-size: clamp(15px, 1.4vw, 18px);
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.78);
    max-width: 60ch;
    margin: 0 0 36px;
}
.stasis .ba-legal-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    padding: 18px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.stasis .ba-legal-hero__meta-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.stasis .ba-legal-hero__meta-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
}
.stasis .ba-legal-hero__meta-item strong {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 16px;
    color: #fff;
    font-weight: 600;
}

/* ── 2. Table of Contents — sticky on desktop, horizontal on mobile ── */
.stasis .ba-legal-toc {
    background: linear-gradient(180deg, #fff 0%, #F8FAFC 100%);
    border-bottom: 1px solid var(--line-light, #E5EAF1);
    padding: 32px 0;
    position: sticky;
    top: 64px;
    z-index: 10;
    backdrop-filter: blur(8px);
}

/* ── 2b. Quick-reference cards (used on Shipping & Returns and Refund Policy) */
.stasis .ba-shipping-quickgrid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    width: 100%;
}
.stasis .ba-shipping-quick {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 22px;
    border: 1px solid var(--line-light, #E5EAF1);
    border-radius: 14px;
    background: #fff;
    transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.stasis .ba-shipping-quick:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 38px -22px rgba(11, 21, 36, 0.35);
    border-color: rgba(94, 200, 242, 0.4);
}
.stasis .ba-shipping-quick__icon {
    width: 42px; height: 42px;
    border-radius: 12px;
    display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, rgba(94, 200, 242, 0.16), rgba(94, 200, 242, 0.04));
    color: #1E88C7;
    margin-bottom: 4px;
}
.stasis .ba-shipping-quick h3 {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--ink, #0B1524);
    margin: 0;
    line-height: 1.25;
}
.stasis .ba-shipping-quick p {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--graphite, #4A5A6C);
    margin: 0;
}
@media (max-width: 980px) {
    .stasis .ba-shipping-quickgrid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .stasis .ba-shipping-quickgrid { grid-template-columns: 1fr; }
    .stasis .ba-shipping-quick { padding: 18px; }
}

/* ── 2c. Hide default WordPress page title on BA legal pages ─────── */
/* When the [ba_privacy] / [ba_terms] / [ba_shipping_returns] /
   [ba_refund_policy] shortcode runs, the page already has a cinematic
   <h1> in the hero. If the active theme (or GoDaddy's MWP) ALSO
   renders a default page-title header in the body, we get a duplicate
   "Privacy Policy" / "Terms of Service" above the hero. Hide the
   theme's default title on the legal root containers. */
.stasis.stasis-legal ~ .entry-header,
.stasis.stasis-legal ~ .page-header,
body.stasis-legal-page .entry-header,
body.stasis-legal-page .page-header,
body.stasis-legal-page h1.entry-title,
body.stasis-legal-page h1.page-title {
    display: none !important;
}

/* ── 2d. Nuclear GoDaddy MWP kill — extra rules for legal pages ──── */
/* The ba-pages.js nuclearGoDaddyKill() handles iframes + in-body
   nodes. The CSS here covers the long-tail class/id patterns that
   GoDaddy Starter Theme injects around the legal pages' content
   (e.g. a duplicate "Privacy Policy" wrapper around <main>). */
body.stasis-legal-page .mwp-bar,
body.stasis-legal-page #mwp-bar,
body.stasis-legal-page .gd-bar,
body.stasis-legal-page .godaddy-bar,
body.stasis-legal-page iframe[src*="myftpupload"],
body.stasis-legal-page iframe[src*="secureserver"],
body.stasis-legal-page iframe[src*="godaddy"],
body.stasis-legal-page .footer-widgets,
body.stasis-legal-page #secondary,
body.stasis-legal-page .colophon,
body.stasis-legal-page aside.sidebar,
body.stasis-legal-page .site-footer > *:not(.stasis) {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* ── 2e. Kill the GoDaddy THEME's actual header/footer on legal pages
   ─────────────────────────────────────────────────────────────
   The ba-pages.css GoDaddy rules only catch the MWP bar (the
   "Managed WordPress Site" / "GoDaddy Quick Links" injected bars).
   The actual GoDaddy Starter Theme renders its own <header> with
   site title + nav + brand — those are NOT in the MWP chrome and
   were slipping through. Hide every possible theme header/footer
   shape here. We deliberately leave the `.stasis` and `.ba-*`
   elements alone (those are ours). */
body.stasis-legal-page > header:not(.ba-header),
body.stasis-legal-page > #masthead,
body.stasis-legal-page > .site-header,
body.stasis-legal-page > nav,
body.stasis-legal-page > div > header:not(.ba-header),
body.stasis-legal-page > div > #masthead,
body.stasis-legal-page > div > .site-header,
body.stasis-legal-page > div > nav,
body.stasis-legal-page > main > header:not(.ba-header),
body.stasis-legal-page > main > #masthead,
body.stasis-legal-page > main > .site-header,
body.stasis-legal-page > main > nav,
body.stasis-legal-page header#masthead,
body.stasis-legal-page .site-header:not(.ba-header),
body.stasis-legal-page header.site-header:not(.ba-header),
body.stasis-legal-page #site-navigation,
body.stasis-legal-page .site-navigation,
body.stasis-legal-page .main-navigation,
body.stasis-legal-page .site-branding,
body.stasis-legal-page .site-title,
body.stasis-legal-page .site-description,
body.stasis-legal-page .primary-menu,
body.stasis-legal-page .nav-menu,
body.stasis-legal-page .header,
body.stasis-legal-page .top-bar,
body.stasis-legal-page .navbar,
body.stasis-legal-page .header-wrap,
body.stasis-legal-page .header-inner,
body.stasis-legal-page .page-header,
body.stasis-legal-page .entry-header,
body.stasis-legal-page .wp-block-template-part.site-header,
body.stasis-legal-page .wp-block-template-part > header:not(.ba-header),
body.stasis-legal-page .wp-block-site-header,
body.stasis-legal-page .wp-block-site-title,
body.stasis-legal-page .wp-block-site-tagline,
body.stasis-legal-page .wp-block-site-logo,
body.stasis-legal-page .wp-block-navigation,
body.stasis-legal-page .has-site-logo,
body.stasis-legal-page .has-site-title,
body.stasis-legal-page .has-site-tagline,
body.stasis-legal-page > footer:not(.ba-footer),
body.stasis-legal-page > #colophon,
body.stasis-legal-page > .site-footer,
body.stasis-legal-page > div > footer:not(.ba-footer),
body.stasis-legal-page > div > #colophon,
body.stasis-legal-page > div > .site-footer,
body.stasis-legal-page > main > footer:not(.ba-footer),
body.stasis-legal-page > main > #colophon,
body.stasis-legal-page > main > .site-footer,
body.stasis-legal-page footer#colophon,
body.stasis-legal-page .site-footer:not(.ba-footer),
body.stasis-legal-page .colophon,
body.stasis-legal-page .site-info,
body.stasis-legal-page .wp-block-site-footer {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}
/* Zero the body/HTML top margin that the theme leaves behind after
   hiding its header — this kills the white-space gap above the BA
   promo bar. */
body.stasis-legal-page,
body.stasis-legal-page #page,
body.stasis-legal-page #content,
body.stasis-legal-page .site,
body.stasis-legal-page .site-content,
body.stasis-legal-page .content-area,
body.stasis-legal-page #primary,
body.stasis-legal-page .entry-content,
body.stasis-legal-page main {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.stasis .ba-legal-toc__inner {
    display: flex;
    align-items: center;
    gap: 32px;
    overflow-x: auto;
    scrollbar-width: none;
}
.stasis .ba-legal-toc__inner::-webkit-scrollbar { display: none; }
.stasis .ba-legal-toc__label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--graphite, #6B7B8E);
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
}
.stasis .ba-legal-toc__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.stasis .ba-legal-toc__list li { flex-shrink: 0; }
.stasis .ba-legal-toc__list a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 100px;
    background: #fff;
    border: 1px solid var(--line-light, #E5EAF1);
    color: var(--ink, #0B1524);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: all .2s var(--ease, ease);
    white-space: nowrap;
}
.stasis .ba-legal-toc__list a:hover {
    border-color: var(--cryo, #5EC8F2);
    background: var(--cryo-tint, #EAF7FD);
    transform: translateY(-1px);
}
.stasis .ba-legal-toc__num {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    color: var(--graphite, #6B7B8E);
    letter-spacing: 0.04em;
}
.stasis .ba-legal-toc__list a:hover .ba-legal-toc__num {
    color: var(--cryo-deep, #2461FF);
}

/* ── 3. Body — magazine-style article ─────────────────────────────── */
.stasis .ba-legal-body {
    background: #fff;
    padding: 80px 0 60px;
    color: var(--ink, #0B1524);
}
.stasis .ba-legal-body__wrap {
    max-width: 760px;
}
.stasis .ba-legal-lead {
    font-size: clamp(17px, 1.5vw, 19.5px);
    line-height: 1.65;
    color: var(--ink, #0B1524);
    margin: 0 0 56px;
    padding: 0 0 32px;
    border-bottom: 1px solid var(--line-light, #E5EAF1);
    font-weight: 400;
}
/* v2.1.2 — switch from absolute-positioned number to a CSS Grid
   layout. The previous version relied on `position: absolute; left: 0`
   + `padding-left: 84px`, which broke on GoDaddy theme's reset CSS
   (it was forcing the number into a small inline badge that overlapped
   the H2 title). Grid is robust against any parent reset. */
.stasis .ba-legal-section {
    display: grid;
    grid-template-columns: 84px 1fr;
    column-gap: 20px;
    align-items: start;
    margin: 0 0 64px;
    scroll-margin-top: 200px;
}
.stasis .ba-legal-section__num {
    /* The number sits in column 1 (84px wide). All visual rules live
       here so even if a parent theme has a `<div>` reset, our
       selectors still win. The `!important`s anchor the critical
       visual properties against any reset CSS that targets `div`. */
    font-family: 'Space Grotesk', sans-serif !important;
    font-size: 48px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    color: var(--cryo-deep, #2461FF) !important;
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    -webkit-text-fill-color: var(--cryo-deep, #2461FF) !important;
    letter-spacing: -0.02em !important;
    text-align: left !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background-color: transparent !important;
    /* Subtle gradient number — using a text-shadow overlay so it works
       on browsers that don't support background-clip:text. */
    text-shadow: 0 1px 0 rgba(94, 200, 242, 0.25) !important;
    opacity: 0.95;
    grid-column: 1;
    grid-row: 1;
}
.stasis .ba-legal-section__title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(24px, 2.4vw, 30px);
    line-height: 1.2;
    font-weight: 700;
    color: var(--ink, #0B1524);
    margin: 0 0 18px;
    letter-spacing: -0.01em;
    grid-column: 2;
    grid-row: 1;
}
/* Everything after the title (subhead, list, callout, contact card)
   spans both columns so it goes full width. */
.stasis .ba-legal-section__sub,
.stasis .ba-legal-section p,
.stasis .ba-legal-section ul,
.stasis .ba-legal-section ol,
.stasis .ba-legal-section .ba-legal-callout,
.stasis .ba-legal-section .ba-legal-contact-card {
    grid-column: 1 / -1;
}
.stasis .ba-legal-section__sub {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 17px;
    font-weight: 600;
    color: var(--ink, #0B1524);
    margin: 24px 0 10px;
}
.stasis .ba-legal-section p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--ink-soft, #3D4A5C);
    margin: 0 0 16px;
}
.stasis .ba-legal-section p strong { color: var(--ink, #0B1524); }
.stasis .ba-legal-section a {
    color: var(--cryo-deep, #2461FF);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
}
.stasis .ba-legal-section a:hover { color: var(--cryo, #5EC8F2); }
.stasis .ba-legal-list {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
}
.stasis .ba-legal-list li {
    position: relative;
    padding: 10px 0 10px 28px;
    font-size: 15.5px;
    line-height: 1.65;
    color: var(--ink-soft, #3D4A5C);
    border-bottom: 1px solid var(--line-light, #E5EAF1);
}
.stasis .ba-legal-list li:last-child { border-bottom: 0; }
.stasis .ba-legal-list li::before {
    content: "";
    position: absolute;
    left: 0; top: 18px;
    width: 14px; height: 14px;
    border-radius: 50%;
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(135deg, var(--cryo, #5EC8F2), var(--cryo-deep, #2461FF)) border-box;
    border: 2px solid transparent;
}
.stasis .ba-legal-list li::after {
    content: "";
    position: absolute;
    left: 4px; top: 22px;
    width: 6px; height: 4px;
    border-left: 2px solid var(--cryo-deep, #2461FF);
    border-bottom: 2px solid var(--cryo-deep, #2461FF);
    transform: rotate(-45deg);
}

/* ── 4. Callout — colored highlight box (CCPA/GDPR/disclaimers) ────── */
.stasis .ba-legal-callout {
    margin: 24px 0;
    padding: 24px 28px;
    background: linear-gradient(180deg, #EAF7FD 0%, #F2FAFE 100%);
    border-left: 3px solid var(--cryo, #5EC8F2);
    border-radius: 0 14px 14px 0;
}
.stasis .ba-legal-callout strong {
    display: block;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 16px;
    color: var(--cryo-deep, #2461FF);
    margin-bottom: 8px;
    font-weight: 700;
}
.stasis .ba-legal-callout p {
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    color: var(--ink, #0B1524);
}
.stasis .ba-legal-callout--strong {
    background: linear-gradient(180deg, #FFF7EB 0%, #FFFCF2 100%);
    border-left-color: var(--brass, #CBA05B);
}
.stasis .ba-legal-callout--strong p {
    text-transform: none;
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 14.5px;
    line-height: 1.7;
}

/* ── 5. Contact card — appears in section 12 / 15 ─────────────────── */
.stasis .ba-legal-contact-card {
    margin: 28px 0 0;
    padding: 32px;
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(135deg, var(--cryo, #5EC8F2), var(--cryo-deep, #2461FF)) border-box;
    border: 1.5px solid transparent;
    border-radius: 18px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 28px;
    box-shadow: 0 14px 38px -22px rgba(11, 21, 36, 0.18);
}
.stasis .ba-legal-contact-card__brand {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 17px;
    color: var(--ink, #0B1524);
    font-weight: 700;
}
.stasis .ba-legal-contact-card__brand .ba-brand-mark img {
    width: 40px; height: 40px;
}
.stasis .ba-legal-contact-card__lines {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.stasis .ba-legal-contact-card__email {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 14px;
    color: var(--cryo-deep, #2461FF);
    text-decoration: none;
    font-weight: 500;
}
.stasis .ba-legal-contact-card__email:hover { text-decoration: underline; }
.stasis .ba-legal-contact-card__address {
    font-style: normal;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--ink-soft, #3D4A5C);
}

/* ── 6. Back to top ─────────────────────────────────────────────── */
.stasis .ba-legal-back-to-top {
    margin: 56px 0 0;
    padding: 32px 0 0;
    border-top: 1px solid var(--line-light, #E5EAF1);
    text-align: center;
}

/* ── 7. Mobile responsive ───────────────────────────────────────── */
@media (max-width: 760px) {
    .stasis .ba-legal-hero { min-height: 280px; }
    .stasis .ba-legal-hero__inner { padding: 64px 0 36px; }
    .stasis .ba-legal-hero__title { font-size: 32px; }
    .stasis .ba-legal-hero__lede { font-size: 14.5px; margin-bottom: 24px; }
    .stasis .ba-legal-hero__meta { gap: 16px; padding: 12px 0; }
    .stasis .ba-legal-toc { position: relative; top: 0; padding: 18px 0; }
    .stasis .ba-legal-toc__inner { gap: 16px; }
    .stasis .ba-legal-toc__list a { padding: 6px 10px; font-size: 12px; }
    .stasis .ba-legal-toc__num { display: none; }
    .stasis .ba-legal-body { padding: 48px 0 40px; }
    .stasis .ba-legal-section { grid-template-columns: 1fr; row-gap: 6px; margin-bottom: 48px; }
    .stasis .ba-legal-section__num { font-size: 32px !important; text-align: left !important; }
    .stasis .ba-legal-section__title { font-size: 22px; }
    .stasis .ba-legal-contact-card {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 18px;
        padding: 24px;
    }
    .stasis .ba-legal-contact-card__brand { justify-content: center; }
    .stasis .ba-legal-contact-card__lines { align-items: center; }
}

/* ── 8. v2.1.2 — Theme chrome kill (targeted, NOT nuclear) ─────────
   The user is on Astra (a hybrid block theme) with Header Layout
   set to "None" in the Customizer. Astra's block template loader
   bypasses our `template_include` filter and renders the BA
   shortcode inside Astra's theme. The .stasis ancestor is nested
   deep inside Astra's structure, so hiding "all children of body
   that are NOT .stasis" hides the entire intermediate tree
   INCLUDING the BA header / footer (they're inside .stasis but
   we were hiding the wrappers around them).
   The fix: target ONLY the specific theme chrome elements
   (Astra + GoDaddy + common theme header/footer/nav classes) and
   leave everything else alone. The BA content will render twice
   (once unstyled at the top, once styled at the bottom) — that's
   addressed by the JS in ba-pages.js that detects + removes the
   duplicate <main class="stasis">. */
body.stasis-legal-page .ast-header,
body.stasis-legal-page .ast-above-header,
body.stasis-legal-page .ast-main-header,
body.stasis-legal-page .ast-below-header,
body.stasis-legal-page .ast-header-sections,
body.stasis-legal-page .ast-above-header-section,
body.stasis-legal-page .ast-main-header-section,
body.stasis-legal-page .ast-below-header-section,
body.stasis-legal-page .ast-site-header,
body.stasis-legal-page .ast-site-identity,
body.stasis-legal-page .ast-site-title,
body.stasis-legal-page .ast-site-description,
body.stasis-legal-page .ast-logo-container,
body.stasis-legal-page .ast-builder-layout-element.ast-site-header,
body.stasis-legal-page .ast-builder-layout-element.ast-above-header,
body.stasis-legal-page .ast-builder-layout-element.ast-main-header,
body.stasis-legal-page .ast-builder-layout-element.ast-below-header,
body.stasis-legal-page .ast-builder-menu-1,
body.stasis-legal-page header.ast-header,
body.stasis-legal-page .site-header:not(.ba-header),
body.stasis-legal-page header#masthead,
body.stasis-legal-page header.site-header:not(.ba-header),
body.stasis-legal-page .site-branding,
body.stasis-legal-page .site-title:not(.ba-brand-word-img),
body.stasis-legal-page .site-description,
body.stasis-legal-page .main-navigation,
body.stasis-legal-page #site-navigation,
body.stasis-legal-page .site-navigation,
body.stasis-legal-page .primary-menu,
body.stasis-legal-page .nav-menu,
body.stasis-legal-page .wp-block-template-part.site-header,
body.stasis-legal-page .wp-block-site-header,
body.stasis-legal-page .wp-block-site-title,
body.stasis-legal-page .wp-block-site-tagline,
body.stasis-legal-page .wp-block-site-logo,
body.stasis-legal-page .wp-block-navigation,
body.stasis-legal-page footer.ast-footer,
body.stasis-legal-page .ast-footer,
body.stasis-legal-page footer#colophon,
body.stasis-legal-page .site-footer:not(.ba-footer),
body.stasis-legal-page .colophon,
body.stasis-legal-page .site-info,
body.stasis-legal-page .wp-block-site-footer,
body.stasis-legal-page .entry-header,
body.stasis-legal-page .page-header,
body.stasis-legal-page h1.entry-title,
body.stasis-legal-page h1.page-title {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Same targeted kill for the My Account page. We do NOT hide the
   WooCommerce content (.woocommerce, .woocommerce-MyAccount-navigation,
   .woocommerce-MyAccount-content, .woocommerce form, etc.) — only
   the theme chrome. */
body.stasis-account-body.woocommerce-account .ast-header,
body.stasis-account-body.woocommerce-account .ast-above-header,
body.stasis-account-body.woocommerce-account .ast-main-header,
body.stasis-account-body.woocommerce-account .ast-below-header,
body.stasis-account-body.woocommerce-account .ast-site-header,
body.stasis-account-body.woocommerce-account .ast-site-identity,
body.stasis-account-body.woocommerce-account .ast-site-title,
body.stasis-account-body.woocommerce-account .ast-logo-container,
body.stasis-account-body.woocommerce-account header.ast-header,
body.stasis-account-body.woocommerce-account .site-header:not(.ba-header),
body.stasis-account-body.woocommerce-account header#masthead,
body.stasis-account-body.woocommerce-account .site-branding,
body.stasis-account-body.woocommerce-account .main-navigation,
body.stasis-account-body.woocommerce-account #site-navigation,
body.stasis-account-body.woocommerce-account .site-title:not(.ba-brand-word-img),
body.stasis-account-body.woocommerce-account footer.ast-footer,
body.stasis-account-body.woocommerce-account .ast-footer,
body.stasis-account-body.woocommerce-account footer#colophon,
body.stasis-account-body.woocommerce-account .site-footer:not(.ba-footer),
body.stasis-account-body.woocommerce-account .colophon,
body.stasis-account-body.woocommerce-account .site-info,
body.stasis-account-body.woocommerce-account .entry-header,
body.stasis-account-body.woocommerce-account .page-header,
body.stasis-account-body.woocommerce-account h1.entry-title,
body.stasis-account-body.woocommerce-account h1.page-title {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Re-apply the critical BA rules with body as the scope so the BA
   content gets styled even when it's rendered outside a .stasis
   wrapper (which is what Astra's block template does on legal
   pages). The .stasis-scoped versions in the rest of this file
   still apply when the wrapper IS present (for specificity
   stacking and to avoid clobbering other plugins' rules). */
body .ba-promo { background: linear-gradient(90deg, #102036 0%, #1B3A5E 50%, #102036 100%); color: #fff; }
body .ba-header { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,0.94); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--line-light, #E5EAF1); }
body .ba-hero { position: relative; min-height: 360px; display: flex; align-items: flex-end; background: linear-gradient(180deg, #0B1524 0%, #102036 60%, #152844 100%); color: #fff; overflow: hidden; isolation: isolate; }
body .ba-display { font-family: 'Space Grotesk', 'IBM Plex Sans', sans-serif; letter-spacing: -0.022em; font-weight: 700; line-height: 1.12; }
body .ba-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 22px; border-radius: 12px; font-weight: 600; font-size: 15px; cursor: pointer; text-decoration: none; border: 1px solid transparent; }
body .ba-btn--brass { background: var(--brass, #CBA05B); color: #1A1408; }
body .ba-wrap { max-width: var(--maxw, 1240px); margin: 0 auto; padding-inline: var(--pad, clamp(20px, 4vw, 48px)); }
body .ba-nav-link { color: inherit; }
body .ba-hero-title { font-size: clamp(38px, 5.4vw, 68px); line-height: 1.05; letter-spacing: -0.02em; color: #fff; margin: 14px 0 18px; max-width: 16ch; }
body .ba-hero-veil { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(11, 21, 36, 0.0) 0%, rgba(11, 21, 36, 0.45) 100%); }
body .ba-hero-photo { position: absolute; inset: 0; z-index: 0; }
body .ba-hero-inner { position: relative; z-index: 2; width: 100%; padding: 96px 0 56px; }
body .ba-footer { background: var(--cryo-deep, #2461FF); color: #fff; padding: 64px 0 24px; }
body .ba-footer-grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
body .ba-footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; padding-top: 32px; margin-top: 32px; border-top: 1px solid rgba(255,255,255,0.12); font-size: 13px; color: rgba(255,255,255,0.7); }
body .ba-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 50; pointer-events: none; }
body .ba-progress-fill { height: 100%; width: 0; background: var(--cryo, #5EC8F2); transition: width 0.1s linear; }
body .ba-tagline-marquee { background: var(--cryo-deep, #2461FF); color: #fff; padding: 14px 0; overflow: hidden; }
body .ba-tagline-track { display: flex; gap: 32px; white-space: nowrap; animation: ba-tagline-scroll 30s linear infinite; }
body .ba-eyebrow { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--cryo-deep, #2461FF); margin-bottom: 12px; font-weight: 600; }
body .ba-eyebrow--light { color: rgba(255,255,255,0.78); }
