/* Bass Portal UI 0.1.11 — shared public design foundation. */
:root{
  --bp-ui-bg:var(--background-color,#002233);
  --bp-ui-surface:#071d2a;
  --bp-ui-surface-2:#0a2635;
  --bp-ui-blue:var(--brand-color-blue,#0072c2);
  --bp-ui-amber:var(--brand-color-orange,#ffaa1c);
  --bp-ui-text:var(--brand-color-white,#eef1ff);
  --bp-ui-muted:#aeb9c4;
  --bp-ui-muted-soft:#8f9ca8;
  --bp-ui-border:rgba(238,241,255,.18);
  --bp-ui-container:1720px;
  --bp-ui-pad:max(5vw,calc((100vw - var(--bp-ui-container))/2));
  --bp-ui-section-gap:clamp(56px,7vw,104px);
  --bp-ui-component-gap:clamp(16px,2vw,28px);
  --bp-ui-radius:0px;
  --bp-ui-button-min-height:46px;
  --bp-ui-button-padding-block:12px;
  --bp-ui-button-padding-inline:22px;
  --bp-ui-card-border:var(--bp-ui-border);
  --bp-ui-card-background:var(--bp-ui-surface);
  --bp-ui-fast:150ms;
  --bp-ui-font-body:input-mono,monospace;
  --bp-ui-hero-lead-size:clamp(1rem,1.35vw,1.25rem);
  --bp-ui-hero-lead-line-height:1.5;
  --bp-ui-hero-lead-weight:400;
  --bp-ui-font-heading:roc-grotesk,sans-serif;
  --font-base:var(--bp-ui-font-body);
  --font-headings:var(--bp-ui-font-heading);
  --bp-ui-control-min-height:46px;--bp-ui-control-bg:rgba(174,185,196,.12);
  --bp-ui-control-bg-focus:rgba(174,185,196,.17);--bp-ui-control-border-color:rgba(174,185,196,.78);
  --bp-ui-control-placeholder:#82909d;--bp-ui-control-chamfer:8px;
  --bp-ui-control-padding-block:10px;--bp-ui-control-padding-inline:11px;--bp-ui-focus-color:var(--bp-ui-amber);
}
.bp-container{width:100%;padding-inline:var(--bp-ui-pad);margin-inline:auto}
.bp-section{padding-block:var(--bp-ui-section-gap)}
.bp-section-title{margin:0 0 clamp(24px,3vw,44px);font:800 clamp(2rem,4.5vw,5rem)/.95 var(--bp-ui-font-heading);text-transform:uppercase;color:var(--bp-ui-blue)}
.bp-kicker{font:700 12px/1.2 var(--bp-ui-font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--bp-ui-amber)}
.bp-grid{display:grid;gap:var(--bp-ui-component-gap)}
.bp-card{min-width:0;border:1px solid var(--bp-ui-card-border);background:var(--bp-ui-card-background);color:var(--bp-ui-text)}
.bp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--bp-ui-button-min-height);padding:var(--bp-ui-button-padding-block) var(--bp-ui-button-padding-inline);border:1px solid transparent;border-radius:var(--bp-ui-radius);font:700 14px/1.3 var(--bp-ui-font-heading);text-transform:uppercase;text-decoration:none;text-align:center;cursor:pointer;transition:background var(--bp-ui-fast) ease,color var(--bp-ui-fast) ease,border-color var(--bp-ui-fast) ease,transform var(--bp-ui-fast) ease}
.bp-btn--primary{background:var(--bp-ui-amber);border-color:var(--bp-ui-amber);color:var(--bp-ui-bg)}
.bp-btn--primary:hover{background:transparent;color:var(--bp-ui-amber)}
.bp-btn--secondary{background:transparent;border-color:var(--bp-ui-border);color:var(--bp-ui-text)}
.bp-btn--secondary:hover{border-color:var(--bp-ui-blue);color:var(--bp-ui-blue)}
.bp-btn--text{min-height:auto;padding:0;border:0;background:transparent;color:var(--bp-ui-amber)}
.bp-btn:focus-visible{outline:2px solid var(--bp-ui-amber);outline-offset:4px}
.bp-divider{border:0;border-top:1px solid var(--bp-ui-border);margin:0}
@media(max-width:760px){
  :root{--bp-ui-pad:5vw;--bp-ui-section-gap:48px}
  .bp-btn{width:100%;max-width:100%}
}
@media(prefers-reduced-motion:reduce){.bp-btn{transition:none}}

/* Bass Portal UI 0.1.63 — footer owns the same canonical container geometry as Site V2.
   Important: no shared .bp-container class and no nested 1480/1260px width overrides. */
.bp-global-footer{position:relative;overflow:hidden;background:radial-gradient(circle at 8% 0%,rgba(0,114,194,.14),transparent 34%),linear-gradient(180deg,#03151f,#020e15);color:var(--bp-ui-text);letter-spacing:normal}
.bp-global-footer:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(238,241,255,.12) 18%,rgba(0,114,194,.30) 50%,rgba(238,241,255,.12) 82%,transparent)}
.bp-global-footer__inner{box-sizing:border-box;width:min(1720px,100%);margin-inline:auto;padding:68px clamp(22px,4vw,72px) 28px}
.bp-global-footer__grid,.bp-global-footer__bottom{width:100%;margin-inline:0}
.bp-global-footer__grid{display:grid;grid-template-columns:minmax(250px,1.35fr) repeat(4,minmax(130px,1fr));column-gap:clamp(30px,3vw,58px);row-gap:38px;align-items:start}
.bp-global-footer__brand{padding-right:12px}.bp-global-footer__logo{display:inline-block;margin:0 0 24px;text-decoration:none}.bp-global-footer__logo img{display:block;width:150px;max-width:100%;height:auto}
.bp-global-footer__brand p{max-width:300px;margin:0;color:rgba(238,241,255,.62);font:400 14px/1.65 var(--bp-ui-font-body);letter-spacing:0;text-transform:none}
.bp-global-footer nav h2{margin:0 0 20px;color:rgba(238,241,255,.58);font:800 14px/1.2 var(--bp-ui-font-heading);letter-spacing:.13em;text-transform:uppercase}
.bp-global-footer nav ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.bp-global-footer nav li{margin:0;padding:0}
.bp-global-footer nav a,.bp-footer-cookie-settings{display:inline-flex;align-items:center;gap:7px;border:0;padding:0;background:none;color:rgba(238,241,255,.84);font:700 14px/1.35 var(--bp-ui-font-heading);letter-spacing:0;text-transform:none;text-decoration:none;cursor:pointer;transition:color .2s ease}
.bp-global-footer nav a:after{content:"↗";font-size:10px;color:#0a8de6;opacity:0;transform:translate(-3px,2px);transition:.2s ease}.bp-global-footer nav a:hover,.bp-footer-cookie-settings:hover{color:#fff}.bp-global-footer nav a:hover:after{opacity:1;transform:translate(0,2px)}
.bp-global-footer__bottom{margin-top:58px;padding-top:21px;border-top:1px solid rgba(238,241,255,.08);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;color:rgba(238,241,255,.42);font:400 11px/1.5 var(--bp-ui-font-body);letter-spacing:0;text-transform:none}
.bp-global-footer__bottom>div:first-child{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bp-global-footer__status{display:inline-flex;align-items:center;gap:7px}.bp-global-footer__status span{width:6px;height:6px;border-radius:50%;background:#0a8de6;box-shadow:0 0 14px rgba(10,141,230,.65)}
/* Header responsive navigation rules live in components/navigation.css. */

/* Canonical public brand heading contract */
:root{--bp-ui-heading-case:uppercase}
body:not(.wp-admin):not(.bpui-account-body) :is(.wp-site-blocks,.bp-site-v2,.bp-contact-tree) :is(h1,h2,h3,h4,h5,h6){font-family:var(--bp-ui-font-heading);text-transform:var(--bp-ui-heading-case)}

/* CSS OWNERSHIP AUDIT (2026-10-26): homepage .bp-home8-title is the visual reference.
   This file declares shared Hero tokens and a grouped selector, but site-v2.css
   still has desktop/mobile route-specific rules (What We Offer, Studio, School).
   CSS cascade and rendered font must be verified before removing overrides.
   Label Hero also has rules in child-theme main.css; ownership is not yet unified.
   Documentation: Bass Portal UI — CSS Architecture & Hero Typography Audit.
   Do not change Hero H1, section H2 and kicker styles together. */
/* Canonical public hero typography — shared across Site V2 routes. */
:root{--bp-ui-hero-kicker-size:12px;--bp-ui-hero-kicker-tracking:.10em;--bp-ui-hero-kicker-gap:14px;--bp-ui-hero-title-size:clamp(3.7rem,7.3vw,7.7rem);--bp-ui-hero-title-letter-spacing:-.075em;--bp-ui-hero-title-line-height:.86;--bp-ui-hero-title-max-width:1050px}
.bp-site-v2 :is(.bp-hero-kicker,.bp-eyebrow):is(.bp-hero-kicker){font-family:var(--bp-ui-font-heading);font-size:var(--bp-ui-hero-kicker-size);font-weight:900;line-height:1.15;letter-spacing:var(--bp-ui-hero-kicker-tracking);margin-bottom:var(--bp-ui-hero-kicker-gap)}
.bp-site-v2 :is(.bp-woo-v4-title,.bp-display,.bp-studio-v6-hero-copy h1 .bp-studio-v6-h1-main,.bp-school-v4-hero-copy .bp-display){font-family:var(--bp-ui-font-heading);font-size:calc(var(--bp-ui-hero-title-size) * 1.05);font-weight:900;line-height:.85;letter-spacing:-.06em;text-transform:uppercase}
@media(max-width:760px){:root{--bp-ui-hero-kicker-size:10px;--bp-ui-hero-kicker-tracking:.085em;--bp-ui-hero-kicker-gap:12px;--bp-ui-hero-title-size:clamp(2.6rem,13vw,4.8rem);--bp-ui-hero-title-letter-spacing:-.055em;--bp-ui-hero-title-line-height:.88}}
