/* legal.css — tokens + page classes for the Legal & Policy Center and the Policy template.
   Pixel truth: design-files/BA Legal Policy Center Page.dc.html and
   design-files/BA Legal Policy Page.dc.html @1440. Fonts Poppins / Lato / JetBrains Mono. */

:root {
  --ba-cloud: var(--pearl-bg); --ba-white: var(--pearl-panel); --ba-fog: var(--pearl-line); --ba-fog-soft: var(--pearl-alt);
  --ba-obsidian: var(--pearl-ink); --ba-deep-space: var(--pearl-ink); --ba-indigo-slate: var(--pearl-ink);
  --ba-muted: var(--pearl-muted); --ba-faint: var(--pearl-muted);
  --ba-violet: var(--pearl-accent); --ba-royal: var(--pearl-accent); --ba-peri: var(--pearl-art); --ba-wash: var(--pearl-soft);
  --ba-radius: 7px; --ba-radius-plate: 18px;
  --ba-font-display: var(--pearl-font-display);
  --ba-font-body: var(--pearl-font-body), -apple-system, "Segoe UI", Roboto, system-ui, sans-serif;
  --ba-font-mono: var(--pearl-font-mono);
}

.lp-page { width: 100%; max-width: 1440px; margin: 0 auto; background: var(--ba-cloud); font-family: var(--ba-font-body); color: var(--ba-obsidian); }
.lp-page a { color: var(--pearl-accent-text); text-decoration: none; }
.lp-page a:hover { color: var(--pearl-accent-text); }

/* ---- shared type ---- */
.lp-h1 { font-family: var(--ba-font-display); font-weight: 600; font-size: 60px; line-height: 1.05; letter-spacing: -0.01em; color: var(--ba-obsidian); margin: 0; text-wrap: balance; }
.lp-h2 { font-family: var(--ba-font-display); font-weight: 600; font-size: 38px; line-height: 1.1; letter-spacing: -0.01em; color: var(--ba-obsidian); margin: 0; text-wrap: balance; }
.lp-kicker { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.lp-kicker__label { font-family: var(--ba-font-mono); font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--pearl-accent-text); }
.lp-kicker__dash { height: 1px; width: 30px; background: var(--ba-fog); }
.lp-crumb { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; font-family: var(--ba-font-mono); font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase; }
.lp-crumb a { color: var(--ba-muted); font-weight: 400; }
.lp-crumb__here { color: var(--pearl-accent-text); font-weight: 600; }
.lp-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 44px; }
.lp-section-head__note { font-family: var(--ba-font-body); font-size: 15.5px; line-height: 1.6; color: var(--ba-muted); margin: 0; max-width: 400px; text-wrap: pretty; }

/* animations (respect reduced-motion) */
@keyframes lpRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes lpDraw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes lpPop  { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: scale(1); } }
.lp-rise { animation: lpRise .24s ease-out both; }
.lp-draw { transform-origin: left center; animation: lpDraw .5s ease-out both; }
.lp-pop  { animation: lpPop .3s ease-out both; }
@media (prefers-reduced-motion: reduce) {
  .lp-rise, .lp-draw, .lp-pop { animation: none !important; }
  .lp-tile, .lp-next, .lp-cta-primary, .lp-route-card, .lp-pol-row, .lp-rel-row { transition: none !important; }
}

/* ============================================================= *
 *  A · POLICY CENTER (hub)   /legal                             *
 * ============================================================= */
.lpc-section { width: 100%; max-width: 1440px; box-sizing: border-box; }
/* Institutional first breath under sticky chrome (8px rhythm; clearer than Trust’s 40px hero pad). */
.lpc-hero { padding: 56px 64px 84px; }
.lpc-hero__grid { display: grid; grid-template-columns: minmax(0,1fr) 480px; gap: 72px; align-items: center; }
.lpc-hero__lede { font-family: var(--ba-font-body); font-size: 18px; line-height: 1.55; color: var(--ba-indigo-slate); margin: 26px 0 0; max-width: 660px; text-wrap: pretty; }
.lp-violet { color: var(--pearl-accent-text); }

/* hero search */
.lpc-search-wrap { position: relative; margin: 32px 0 0; max-width: 660px; }
.lpc-search { width: 100%; box-sizing: border-box; font-family: var(--ba-font-body); font-size: 15.5px; color: var(--ba-obsidian); background: var(--ba-white); border: 1.5px solid var(--ba-fog); border-radius: var(--ba-radius); padding: 17px 18px 17px 46px; }
.lpc-search:focus { outline: none; border-color: var(--pearl-accent-mark); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pearl-accent-mark) 14%, transparent); }
.lpc-search__icon { position: absolute; left: 18px; top: 24px; }
.lpc-drop { position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% + 8px); background: var(--ba-white); border: 1px solid var(--ba-fog); border-radius: var(--ba-radius-plate); box-shadow: 0 24px 60px -20px color-mix(in srgb, var(--pearl-ink) 30%, transparent); padding: 8px; max-height: 420px; overflow: auto; }
.lpc-hit { display: block; padding: 12px 16px; border-radius: var(--ba-radius); cursor: pointer; color: inherit; }
.lpc-hit:hover, .lpc-hit.is-active { background: var(--ba-cloud); color: inherit; }
.lpc-hit__row { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.lpc-hit__title { font-family: var(--ba-font-display); font-weight: 600; font-size: 14.5px; letter-spacing: -0.005em; color: var(--ba-obsidian); }
.lpc-hit__section { font-family: var(--ba-font-mono); font-size: 9.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--pearl-accent-text); white-space: nowrap; }
.lpc-hit__snip { display: block; font-family: var(--ba-font-body); font-size: 12.5px; line-height: 1.5; color: var(--ba-muted); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lpc-hit__mark { background: var(--ba-wash); color: var(--pearl-accent-text); font-weight: 600; border-radius: 3px; padding: 0 2px; }
.lpc-drop__empty { padding: 16px; font-family: var(--ba-font-body); font-size: 13.5px; color: var(--ba-muted); }
.lpc-chips { display: flex; align-items: center; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.lp-chipbtn { font-family: var(--ba-font-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ba-indigo-slate); background: var(--ba-white); border: 1px solid var(--ba-fog); border-radius: 999px; padding: 7px 14px; cursor: pointer; transition: border-color .15s ease, color .15s ease, background .15s ease; }
.lp-chipbtn:hover { border-color: var(--ba-peri); color: var(--pearl-accent-text); background: var(--ba-wash); }
.lpc-hero__stamp { display: flex; align-items: center; gap: 10px; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--ba-fog); max-width: 660px; }
.lpc-hero__stamp-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--pearl-soft); flex: 0 0 auto; }
.lpc-hero__stamp-txt { font-family: var(--ba-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ba-muted); }

/* hero signature — the governed suite */
.lpc-suite { background: var(--ba-white); border: 1px solid var(--ba-fog); border-radius: var(--ba-radius-plate); box-shadow: 0 24px 60px -28px color-mix(in srgb, var(--pearl-ink) 28%, transparent); overflow: hidden; }
.lpc-suite__bar { background: var(--pearl-alt); padding: 15px 28px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.lpc-suite__brand { display: inline-flex; align-items: center; gap: 11px; font-family: var(--ba-font-mono); font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--pearl-ink); }
.lpc-suite__brand-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--pearl-soft); }
.lpc-suite__meta { font-family: var(--ba-font-mono); font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: color-mix(in srgb, var(--pearl-ink) 55%, transparent); }
.lpc-suite__body { padding: 10px 28px 6px; }
.lpc-suite__row { display: grid; grid-template-columns: 108px minmax(0,1fr); gap: 16px; align-items: center; height: 58px; border-bottom: 1px solid var(--ba-fog-soft); }
.lpc-suite__row:last-child { border-bottom: none; }
.lpc-suite__label { font-family: var(--ba-font-mono); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ba-muted); line-height: 1.5; }
.lpc-suite__tiles { display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; }
.lp-tile { box-sizing: border-box; width: 100%; aspect-ratio: 1; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ba-fog); border-radius: var(--ba-radius); background: var(--ba-cloud); font-family: var(--ba-font-mono); font-size: 9.5px; font-weight: 700; letter-spacing: .06em; color: var(--ba-indigo-slate); transition: border-color .15s ease, color .15s ease, background .15s ease, transform .15s ease; }
.lp-tile:hover { border-color: var(--pearl-accent-mark); color: var(--pearl-accent-text); background: var(--ba-wash); transform: translateY(-2px); }
.lpc-suite__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 28px 13px; background: var(--ba-cloud); border-top: 1px solid var(--ba-fog); }
.lpc-suite__foot-a { font-family: var(--ba-font-mono); font-size: 9px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ba-faint); }
.lpc-suite__foot-b { font-family: var(--ba-font-mono); font-size: 10.5px; letter-spacing: .06em; color: var(--pearl-accent-text); }

/* how-to-read + library bands */
.lpc-white { padding: 88px 64px; background: var(--ba-white); border-top: 1px solid var(--ba-fog); }
.lpc-cloud { padding: 88px 64px 96px; background: var(--ba-cloud); border-top: 1px solid var(--ba-fog); }
.lpc-rules { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.lp-card { background: var(--ba-cloud); border: 1px solid var(--ba-fog); border-radius: var(--ba-radius-plate); padding: var(--card-pad-lg); display: flex; flex-direction: column; }
.lp-card__zone { min-height: var(--card-head-h-lg); height: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; position: relative; }
.lp-card__n { position: absolute; top: 0; left: 0; font-family: var(--ba-font-mono); font-size: 11px; font-weight: 700; letter-spacing: .16em; color: var(--ba-faint); }
.lp-card__title { font-family: var(--ba-font-display); font-weight: 600; font-size: var(--fs-card-title-lg); line-height: 1.15; letter-spacing: -0.0075em; color: var(--diagram-ink); margin: 0; }
.lp-card__title span { display: block; height: 1.15em; overflow: hidden; }
.lp-card__rule { height: 1px; background: var(--ba-fog-soft); margin: var(--card-rule-gap); }
.lp-card__line { font-family: var(--ba-font-body); font-size: 14.5px; line-height: 1.62; color: var(--ba-indigo-slate); margin: 0; text-wrap: pretty; }

.lpc-shelves { display: flex; flex-direction: column; gap: 24px; }
.lpc-shelf { background: var(--ba-white); border: 1px solid var(--ba-fog); border-radius: var(--ba-radius-plate); padding: 28px 36px 14px; }
.lpc-shelf__grid { display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 48px; }
.lpc-shelf__count { display: inline-block; margin-top: 16px; font-family: var(--ba-font-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ba-indigo-slate); border: 1px solid var(--ba-fog); border-radius: 999px; padding: 5px 12px; }
.lp-pol-row { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 18px; align-items: center; height: 72px; border-bottom: 1px solid var(--ba-fog-soft); padding: 0 12px; margin: 0 -12px; border-radius: var(--ba-radius); transition: background .15s ease; color: inherit; }
.lp-pol-row:hover { background: var(--ba-cloud); }
.lp-pol-row:hover .lp-pol-row__t { color: var(--pearl-accent-text); }
.lp-pol-row__n { font-family: var(--ba-font-mono); font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--ba-faint); }
.lp-pol-row__t { display: block; font-family: var(--ba-font-display); font-weight: 600; font-size: 15.5px; letter-spacing: -0.005em; color: var(--ba-obsidian); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .15s ease; }
.lp-pol-row__d { display: block; font-family: var(--ba-font-body); font-size: 12.5px; line-height: 1.5; color: var(--ba-muted); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lp-pol-row__ver { font-family: var(--ba-font-mono); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ba-indigo-slate); border: 1px solid var(--ba-fog); border-radius: 999px; padding: 5px 11px; }

/* lifecycle strip */
.lpc-lifecycle { padding: 88px 64px 92px; background: var(--ba-white); border-top: 1px solid var(--ba-fog); }
.lpc-lc-track { display: flex; align-items: center; }
.lpc-lc-step { display: flex; align-items: center; min-width: 0; }
.lpc-lc-node { width: 44px; height: 44px; flex: 0 0 auto; border-radius: 50%; background: var(--ba-white); border: 1.5px solid var(--ba-fog); display: inline-flex; align-items: center; justify-content: center; color: var(--ba-indigo-slate); }
.lpc-lc-node--on { background: var(--pearl-soft); border-color: var(--pearl-accent-mark); color: var(--pearl-ink); }
.lpc-lc-label { margin-left: 16px; flex: 0 0 auto; }
.lpc-lc-label__n { display: block; font-family: var(--ba-font-mono); font-size: 9.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ba-faint); }
.lpc-lc-label__t { display: block; font-family: var(--ba-font-display); font-weight: 600; font-size: 16.5px; letter-spacing: -0.005em; color: var(--ba-obsidian); margin-top: 2px; white-space: nowrap; }
.lpc-lc-line { flex: 1 1 auto; height: 1.5px; background: var(--ba-fog); margin: 0 24px; min-width: 24px; }
.lpc-lc-foot { display: flex; align-items: center; gap: 12px; margin-top: 52px; padding-top: 22px; border-top: 1px solid var(--ba-fog-soft); }
.lpc-lc-foot p { font-family: var(--ba-font-body); font-size: 14px; line-height: 1.6; color: var(--ba-indigo-slate); margin: 0; }

/* routing (Deep Space) */
.lpc-routing { padding: 88px 64px 96px; background: var(--pearl-alt); }
.lpc-routing .lp-kicker__label { color: var(--ba-peri); }
.lpc-routing .lp-kicker__dash { background: color-mix(in srgb, var(--pearl-panel) 20%, transparent); }
.lpc-routing__h2 { font-family: var(--ba-font-display); font-weight: 600; font-size: 38px; line-height: 1.1; letter-spacing: -0.01em; color: var(--pearl-ink); margin: 0; text-wrap: balance; }
.lpc-routing__note { font-family: var(--ba-font-body); font-size: 15.5px; line-height: 1.6; color: color-mix(in srgb, var(--pearl-ink) 62%, transparent); margin: 0; max-width: 400px; text-wrap: pretty; }
.lpc-routes { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.lp-route-card { background: color-mix(in srgb, var(--pearl-panel) 4%, transparent); border: 1px solid color-mix(in srgb, var(--pearl-panel) 13%, transparent); border-radius: var(--ba-radius-plate); padding: 26px 30px; display: flex; flex-direction: column; color: inherit; transition: border-color .16s ease, background .16s ease; }
.lp-route-card:hover { border-color: rgba(197,180,255,.45); background: color-mix(in srgb, var(--pearl-panel) 7%, transparent); }
.lp-route-card__zone { height: 96px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; position: relative; }
.lp-route-card__n { position: absolute; top: 0; left: 0; font-family: var(--ba-font-mono); font-size: 11px; font-weight: 700; letter-spacing: .16em; color: color-mix(in srgb, var(--pearl-ink) 38%, transparent); }
.lp-route-card__t { font-family: var(--ba-font-display); font-weight: 600; font-size: 23px; line-height: 1.16; letter-spacing: -0.0075em; color: var(--pearl-ink); margin: 0; }
.lp-route-card__t span { display: block; }
.lp-route-card__rule { height: 1px; background: color-mix(in srgb, var(--pearl-panel) 14%, transparent); margin: 18px 0; }
.lp-route-card__email { font-family: var(--ba-font-mono); font-size: 13px; font-weight: 700; letter-spacing: .03em; color: var(--ba-peri); }
.lp-route-card__line { font-family: var(--ba-font-body); font-size: 13px; line-height: 1.6; color: color-mix(in srgb, var(--pearl-ink) 60%, transparent); margin: 8px 0 0; text-wrap: pretty; }

/* faq */
.lpc-faq { padding: 88px 64px 92px; background: var(--ba-white); border-top: 1px solid var(--ba-fog); }
.lpc-faq__grid { display: grid; grid-template-columns: minmax(0,0.72fr) minmax(0,1.28fr); gap: 72px; align-items: start; }
.lpc-faq__intro { font-family: var(--ba-font-body); font-size: 16px; line-height: 1.62; color: var(--ba-muted); margin: 18px 0 0; max-width: 380px; text-wrap: pretty; }
.lpc-faq__row { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 32px; padding: 22px 0; border-bottom: 1px solid var(--ba-fog-soft); }
.lpc-faq__q { font-family: var(--ba-font-display); font-weight: 600; font-size: 16.5px; line-height: 1.4; letter-spacing: -0.005em; color: var(--ba-obsidian); margin: 0; text-wrap: pretty; }
.lpc-faq__a { font-family: var(--ba-font-body); font-size: 14.5px; line-height: 1.65; color: var(--ba-indigo-slate); margin: 0; text-wrap: pretty; }

/* close band */
.lpc-close { padding: 88px 64px 96px; background: var(--ba-cloud); border-top: 1px solid var(--ba-fog); }
.lpc-close__band { background: var(--ba-wash); border: 1px solid var(--ba-peri); border-radius: var(--ba-radius-plate); padding: 52px 56px; display: flex; align-items: center; justify-content: space-between; gap: 48px; }
.lpc-close__h3 { font-family: var(--ba-font-display); font-weight: 600; font-size: 30px; line-height: 1.15; letter-spacing: -0.01em; color: var(--ba-obsidian); margin: 0; text-wrap: balance; }
.lpc-close__p { font-family: var(--ba-font-body); font-size: 16px; line-height: 1.6; color: var(--ba-indigo-slate); margin: 14px 0 0; text-wrap: pretty; }
.lpc-nexts { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; margin-top: 24px; }
.lp-next { background: var(--ba-white); border: 1px solid var(--ba-fog); border-radius: var(--ba-radius-plate); padding: 26px 30px 28px; display: flex; flex-direction: column; color: inherit; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.lp-next:hover { border-color: var(--ba-peri); box-shadow: 0 20px 44px -26px color-mix(in srgb, var(--pearl-ink) 34%, transparent); transform: translateY(-3px); }
.lp-next:hover .lp-next__t { color: var(--pearl-accent-text); }
.lp-next__zone { height: 96px; display: flex; align-items: flex-end; position: relative; }
.lp-next__k { position: absolute; top: 0; left: 0; font-family: var(--ba-font-mono); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ba-faint); }
.lp-next__t { font-family: var(--ba-font-display); font-weight: 600; font-size: 23px; line-height: 1.16; letter-spacing: -0.0075em; color: var(--ba-obsidian); margin: 0; transition: color .16s ease; }
.lp-next__t span { display: block; }
.lp-next__rule { height: 1px; background: var(--ba-fog); margin: 18px 0; }
.lp-next__d { font-family: var(--ba-font-body); font-size: 13.5px; line-height: 1.6; color: var(--ba-muted); margin: 0; text-wrap: pretty; }

/* CTAs */
.lp-cta-primary { display: inline-flex; align-items: center; gap: 14px; background: var(--pearl-alt); color: var(--pearl-ink); font-family: var(--ba-font-body); font-weight: 600; font-size: 16px; padding: 18px 28px; border-radius: var(--ba-radius); transition: transform .15s ease, box-shadow .15s ease; }
.lp-cta-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 24px color-mix(in srgb, var(--pearl-ink) 18%, transparent); color: var(--pearl-ink); }
.lp-cta-secondary { display: inline-flex; align-items: center; gap: 14px; background: transparent; color: var(--ba-obsidian); font-family: var(--ba-font-body); font-weight: 600; font-size: 16px; padding: 17px 26px; border-radius: var(--ba-radius); border: 1.5px solid var(--ba-fog); transition: border-color .15s ease, color .15s ease; }
.lp-cta-secondary:hover { border-color: var(--ba-obsidian); color: var(--ba-obsidian); }

/* ============================================================= *
 *  B · POLICY TEMPLATE   /legal/<slug>                          *
 * ============================================================= */
.lp-doc { width: 100%; max-width: 1440px; box-sizing: border-box; padding: 56px 64px 96px; display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 72px; align-items: start; }
.lp-article { max-width: 760px; min-width: 0; }
.lp-doc__h1 { font-family: var(--ba-font-display); font-weight: 600; font-size: 44px; line-height: 1.08; letter-spacing: -0.01em; color: var(--ba-obsidian); margin: 0; text-wrap: balance; }
.lp-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 20px; padding-bottom: 26px; border-bottom: 1px solid var(--ba-fog); }
.lp-pill { font-family: var(--ba-font-mono); font-size: 9.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ba-indigo-slate); border: 1px solid var(--ba-fog); border-radius: 999px; padding: 5px 11px; background: var(--ba-white); }
.lp-summary { background: var(--ba-wash); border: 1px solid var(--ba-fog); border-radius: var(--ba-radius); padding: 20px 24px 19px; margin-top: 28px; }
.lp-summary__k { font-family: var(--ba-font-mono); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--pearl-accent-text); margin-bottom: 8px; }
.lp-summary__p { font-family: var(--ba-font-body); font-size: 15px; line-height: 1.65; color: var(--ba-indigo-slate); margin: 0; text-wrap: pretty; }
.lp-doc__aftertitle { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 32px; padding: 20px 0 0; flex-wrap: wrap; }
.lp-doc__perma { font-family: var(--ba-font-mono); font-size: 10.5px; letter-spacing: .06em; color: var(--ba-faint); }

/* related plate */
.lp-related { margin-top: 40px; background: var(--ba-white); border: 1px solid var(--ba-fog); border-radius: var(--ba-radius-plate); padding: 24px 30px 12px; }
.lp-related__k { font-family: var(--ba-font-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--pearl-accent-text); padding-bottom: 14px; border-bottom: 1px solid var(--ba-fog); }
.lp-rel-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 12px; margin: 0 -12px; border-bottom: 1px solid var(--ba-fog-soft); border-radius: var(--ba-radius); transition: background .15s ease; color: inherit; }
.lp-rel-row:last-child { border-bottom: none; }
.lp-rel-row:hover { background: var(--ba-cloud); }
.lp-rel-row:hover .lp-rel-row__t { color: var(--pearl-accent-text); }
.lp-rel-row__t { display: block; font-family: var(--ba-font-display); font-weight: 600; font-size: 14.5px; letter-spacing: -0.005em; color: var(--ba-obsidian); }
.lp-rel-row__d { display: block; font-family: var(--ba-font-body); font-size: 12.5px; color: var(--ba-muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Sticky chrome clearance for TOC rail + hash anchors (header ~98px + 32px breath). */
.lp-page {
  --lp-sticky-header: 98px;
  --lp-anchor-offset: calc(var(--lp-sticky-header) + 32px);
}

/* sidebar / TOC rail — stick below sticky page header, not under it */
.lp-aside { position: sticky; top: var(--lp-anchor-offset); }
.lp-toc { background: var(--ba-white); border: 1px solid var(--ba-fog); border-radius: var(--ba-radius-plate); padding: 22px 14px 14px; max-height: calc(100vh - 220px); overflow: auto; }
.lp-toc__k { font-family: var(--ba-font-mono); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ba-faint); padding: 0 14px 12px; border-bottom: 1px solid var(--ba-fog-soft); margin-bottom: 8px; }
.lp-toc__link { display: block; padding: 7px 14px; border-left: 2px solid transparent; font-family: var(--ba-font-body); font-size: 13px; line-height: 1.45; color: var(--ba-muted); transition: color .15s ease, border-color .15s ease, background .15s ease; }
.lp-toc__link:hover { color: var(--ba-obsidian); background: var(--ba-cloud); }
.lp-toc__link.is-active { color: var(--ba-obsidian); font-weight: 600; border-left-color: var(--pearl-accent-mark); }
.lp-aside__contact { background: var(--ba-white); border: 1px solid var(--ba-fog); border-radius: var(--ba-radius-plate); padding: 20px 24px; margin-top: 16px; }
.lp-aside__contact-k { font-family: var(--ba-font-mono); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ba-faint); margin-bottom: 8px; }
.lp-aside__contact-a { font-family: var(--ba-font-mono); font-size: 12.5px; font-weight: 700; letter-spacing: .02em; }
.lp-aside__all { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; font-family: var(--ba-font-body); font-weight: 600; font-size: 13.5px; color: var(--pearl-accent-text); }

/* governed policy body — trusted HTML from legalContent.js */
.lp-policy-body { font-family: var(--ba-font-body); font-size: 15px; line-height: 1.72; color: var(--ba-indigo-slate); margin-top: 8px; }
/* Native #hash TOC jumps: offset must clear sticky .ba-page-header (~98px), not the
   design-handoff 28px (that assumed no sticky chrome). Prefer section margin so the
   numbered h2 (inside section padding) lands fully visible under the nav. */
.lp-policy-body section { padding: 28px 0 12px; border-bottom: 1px solid var(--ba-fog-soft); scroll-margin-top: var(--lp-anchor-offset); }
.lp-policy-body section:last-child { border-bottom: none; }
.lp-policy-body h2 { font-family: var(--ba-font-display); font-weight: 600; font-size: 21px; line-height: 1.3; letter-spacing: -0.0075em; color: var(--ba-obsidian); margin: 0 0 14px; scroll-margin-top: var(--lp-anchor-offset); text-wrap: balance; }
.lp-policy-body h3 { font-family: var(--ba-font-display); font-weight: 600; font-size: 16.5px; line-height: 1.35; letter-spacing: -0.005em; color: var(--ba-obsidian); margin: 22px 0 8px; }
.lp-policy-body p { margin: 0 0 14px; text-wrap: pretty; }
.lp-policy-body ul, .lp-policy-body ol { margin: 0 0 14px; padding-left: 22px; }
.lp-policy-body li { margin: 0 0 7px; }
.lp-policy-body li::marker { color: var(--ba-faint); }
.lp-policy-body strong { color: var(--ba-obsidian); font-weight: 600; }
.lp-policy-body em { color: var(--ba-muted); }
.lp-policy-body a { word-break: break-word; }
.lp-policy-body table { width: 100%; border-collapse: collapse; margin: 6px 0 20px; font-size: 13.5px; display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.lp-policy-body th { font-family: var(--ba-font-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-align: left; color: var(--ba-muted); border-bottom: 1px solid var(--ba-fog); padding: 8px 14px 8px 0; }
.lp-policy-body td { border-bottom: 1px solid var(--ba-fog-soft); padding: 10px 14px 10px 0; vertical-align: top; }
.lp-policy-body blockquote { margin: 0 0 14px; padding: 12px 18px; border-left: 2px solid var(--ba-peri); background: var(--ba-wash); border-radius: var(--ba-radius); }
.lp-policy-body hr { border: none; border-top: 1px solid var(--ba-fog-soft); margin: 20px 0; }

/* per-policy footer (compliance) on the Policy template */
.lp-doc-footer { width: 100%; max-width: 1440px; box-sizing: border-box; background: var(--ba-white); border-top: 1px solid var(--ba-fog); }
.lp-doc-footer__in { padding: 48px 64px 40px; }
.lp-doc-footer__top { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--ba-fog-soft); flex-wrap: wrap; }
.lp-doc-footer__title { font-family: var(--ba-font-display); font-weight: 600; font-size: 15px; color: var(--ba-obsidian); }
.lp-compliance { font-family: var(--ba-font-body); font-size: 12px; line-height: 1.7; color: var(--ba-muted); max-width: 1180px; margin: 0; }
.lp-copyline { font-family: var(--ba-font-body); font-size: 12px; color: var(--ba-faint); }

/* print — the policy prints clean and dated; chrome drops out */
@media print {
  .lp-no-print { display: none !important; }
  .lp-doc { display: block !important; padding: 0 !important; }
  .lp-page { width: auto !important; }
  body { background: var(--pearl-panel) !important; }
}

/* ============================================================= *
 *  C · SITE FOOTER (updated — used by SiteFooter.jsx)           *
 * ============================================================= */
.ba-site-footer { width: 100%; max-width: 1440px; box-sizing: border-box; background: var(--ba-white); border-top: 1px solid var(--ba-fog); padding: 58px 64px 40px; color: var(--ba-indigo-slate); font-family: var(--ba-font-body); }
.ba-site-footer__in { max-width: 1312px; margin: 0 auto; }
.ba-site-footer__brandrow { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; padding-bottom: 38px; border-bottom: 1px solid var(--ba-fog-soft); }
.ba-site-footer__wordmark { height: 15px; width: auto; display: block; }
.ba-site-footer__tag { font-family: var(--ba-font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ba-muted); margin-top: 14px; }
.ba-site-footer__social { display: flex; gap: 12px; align-items: center; }
.ba-social { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--ba-fog); display: inline-flex; align-items: center; justify-content: center; color: var(--ba-indigo-slate); transition: color .16s ease, border-color .16s ease; }
.ba-social:hover { color: var(--pearl-accent-text); border-color: var(--ba-peri); }
.ba-site-footer__cols { display: grid; grid-template-columns: repeat(6, 1fr); gap: 28px; padding: 40px 0; }
.ba-site-footer__coltitle { font-family: var(--ba-font-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ba-obsidian); margin-bottom: 12px; }
.ba-foot-link { color: var(--ba-muted); font-family: var(--ba-font-body); font-size: 13.5px; line-height: 2; transition: color .16s ease; }
.ba-foot-link:hover { color: var(--ba-obsidian); }
.ba-site-footer__legal { border-top: 1px solid var(--ba-fog-soft); padding-top: 24px; }
.ba-site-footer__disclaimer { font-family: var(--ba-font-body); font-size: 12px; line-height: 1.7; color: var(--ba-muted); max-width: 1180px; margin: 0; }
.ba-site-footer__copy { font-family: var(--ba-font-body); font-size: 12px; color: var(--ba-faint); }
@media (max-width: 1080px) {
  .ba-site-footer { width: 100%; }
  .ba-site-footer__cols { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .ba-site-footer { padding: 40px 24px; }
  .ba-site-footer__cols { grid-template-columns: repeat(2, 1fr); }
  .ba-site-footer__brandrow { flex-direction: column; gap: 24px; }
}

/* ============================================================= *
 *  RESPONSIVE STARTERS (reference is fixed-1440)                *
 * ============================================================= */
@media (max-width: 1080px) {
  .lp-page, .lpc-section, .lpc-hero, .lpc-white, .lpc-cloud, .lpc-lifecycle, .lpc-routing, .lpc-faq, .lpc-close, .lp-doc, .lp-doc-footer { width: 100%; }
  .lpc-hero__grid { grid-template-columns: 1fr; gap: 40px; }
  .lpc-shelf__grid { grid-template-columns: 1fr; gap: 24px; }
  .lp-doc { grid-template-columns: 1fr; }
  .lp-aside { position: static; }
  .lpc-faq__grid { grid-template-columns: 1fr; gap: 32px; }
  .lpc-lc-track { flex-direction: column; align-items: flex-start; gap: 20px; }
  .lpc-lc-line { display: none; }
  .lpc-close__band { flex-direction: column; align-items: flex-start; gap: 28px; }
  .lpc-routes { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .lpc-hero, .lpc-white, .lpc-cloud, .lpc-lifecycle, .lpc-routing, .lpc-faq, .lpc-close { padding-left: 24px; padding-right: 24px; }
  .lp-doc { padding: 24px; }
  .lpc-rules, .lpc-routes, .lpc-nexts { grid-template-columns: 1fr; }
  .lp-pol-row { grid-template-columns: 32px minmax(0,1fr); }
  .lp-pol-row__ver { display: none; }
  .lpc-faq__row { grid-template-columns: 1fr; gap: 8px; }
  .lp-h1, .lpc-hero .lp-h1 { font-size: var(--fs-h1-sm); }
  .lp-h2 { font-size: var(--fs-h2); }
}


/* ---- preview pack chrome (approved-web-assets) ---- */
html, body { margin: 0; background: var(--ba-cloud); }
.canvas { min-height: 100vh; background: var(--ba-cloud); }
.ba-page { width: 100%; max-width: 1440px; margin: 0 auto; background: var(--ba-cloud); }
/* Combined chrome: wordmark + tabs + CTA in one bar (no separate 56px top strip).
   Must beat .ba-nav-root { top: 56px } from preview-nav.css — that offset overlaps the hero. */
.ba-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 30px 64px 26px;
  background: var(--ba-white);
  border-bottom: 1px solid var(--ba-fog);
  position: sticky;
  top: 0;
  z-index: 90;
  box-sizing: border-box;
}
.ba-page-header.ba-nav-root {
  position: sticky;
  top: 0;
  z-index: 90;
}
.ba-page-header__brand { height: 14px; width: auto; display: block; }
.ba-btn--nav { font-family: var(--ba-font-body); font-weight: 600; font-size: 14px; color: var(--pearl-ink); background: var(--pearl-alt); padding: 12px 18px; border-radius: var(--ba-radius); text-decoration: none; white-space: nowrap; }
.ba-btn--nav:hover { color: var(--pearl-ink); opacity: .92; }
.lp-page { width: 100% !important; max-width: 1440px; margin: 0 auto; }
.lpc-section, .lp-doc, .lp-doc-footer, .ba-site-footer { width: 100% !important; max-width: 1440px; }

/* existing preview footer classes — 6-column Legal update */
.ba-footer { width: 100%; max-width: 1440px; margin: 0 auto; background: var(--ba-white); border-top: 1px solid var(--ba-fog); box-sizing: border-box; padding: 58px 64px 40px; color: var(--ba-indigo-slate); font-family: var(--ba-font-body); }
.ba-foot-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; padding-bottom: 38px; border-bottom: 1px solid var(--ba-fog-soft); }
.ba-foot-social { display: flex; gap: 12px; align-items: center; }
.ba-foot-cols { display: grid; grid-template-columns: repeat(6, 1fr); gap: 28px; padding: 40px 0; }
.ba-foot-coltitle { font-family: var(--ba-font-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ba-obsidian); margin-bottom: 12px; }
.ba-foot-link { display: block; color: var(--ba-muted); font-family: var(--ba-font-body); font-size: 13.5px; line-height: 2; transition: color .16s ease; text-decoration: none; }
.ba-foot-link:hover { color: var(--ba-obsidian); }
.ba-foot-link--accent { color: var(--pearl-accent-text) !important; font-weight: 600; }
.ba-compliance { font-family: var(--ba-font-body); font-size: 12px; line-height: 1.7; color: var(--ba-muted); max-width: 1180px; margin: 0; }

@media (max-width: 1080px) {
  .ba-page-header { padding-left: 32px; padding-right: 32px; }
  .ba-foot-cols { grid-template-columns: repeat(3, 1fr); }
  .ba-footer { padding-left: 32px; padding-right: 32px; }
}
@media (max-width: 760px) {
  .ba-page-header { padding-left: 24px; padding-right: 24px; flex-wrap: wrap; }
  .ba-foot-cols { grid-template-columns: repeat(2, 1fr); }
  .ba-foot-top { flex-direction: column; gap: 24px; }
  .ba-footer { padding-left: 24px; padding-right: 24px; }
  .lpc-suite__row { grid-template-columns: 72px minmax(0,1fr); height: auto; min-height: 52px; padding: 8px 0; }
  .lpc-suite__tiles { gap: 4px; }
  .lp-tile { font-size: 8px; }
}
