/* Fixed marketing compositions share system roles; original art/show remains source-faithful. */
@font-face { font-family:Montserrat; src:url('/design-system/montserrat.ttf') format('truetype'); font-style:normal; font-weight:100 900; font-display:swap; }
:root { font-family:var(--bubba-font-body); --blue:var(--bubba-color-brand-blue); --blue-deep:var(--bubba-color-heading); --red:var(--bubba-color-action); --yellow:var(--bubba-color-accent); --ink:var(--bubba-ui-text); --muted:var(--bubba-ui-muted); --off-white:var(--bubba-ui-canvas); --line:var(--bubba-ui-line); --success:var(--bubba-ui-success); --warning:var(--bubba-ui-warning); --danger:var(--bubba-ui-error); --brand-blue:var(--bubba-ui-primary); --brand-blue-dark:var(--bubba-ui-primary-hover); --brand-red:var(--bubba-color-action); --brand-red-dark:var(--bubba-color-action-hover); --brand-heading:var(--bubba-ui-heading); --brand-text:var(--bubba-ui-text); --brand-muted:var(--bubba-ui-muted); --brand-line:var(--bubba-ui-line); --brand-soft:var(--bubba-ui-canvas); }
html { font-family:var(--bubba-font-body); }
body { min-width:320px; }
body :where(p,a,button,input,select,textarea,label,li,.header-meta,.notice,.footer-note,.fine-print) { font-family:var(--bubba-font-body); }
.policy { max-width:800px; padding:48px 24px 64px; }
.policy h1 { font-family:var(--bubba-font-body); font-size:clamp(28px,5vw,44px); font-style:normal; line-height:1.2; letter-spacing:-.025em; overflow-wrap:anywhere; }
.policy h2 { margin-top:32px; font-size:22px; }
.policy p { font-weight:400; font-size:16px; line-height:1.75; max-width:72ch; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--bubba-ui-focus); outline-offset:3px; box-shadow:0 0 0 3px var(--bubba-ui-focus-inner); }
:where(button,input,select,textarea),.button,.submit-button,.footer-links a { min-height:44px; }
input,select,textarea { background:var(--bubba-ui-surface); color:var(--bubba-ui-text); border-color:var(--bubba-ui-border); caret-color:var(--bubba-ui-text); }
input::placeholder,textarea::placeholder { color:var(--bubba-ui-muted); opacity:1; }
input[aria-invalid=true],textarea[aria-invalid=true] { border:2px solid var(--bubba-ui-error-border); }
.submit-button:disabled,button:disabled,fieldset:disabled .submit-button { background:var(--bubba-ui-disabled-surface); color:var(--bubba-ui-disabled-text); opacity:1; cursor:not-allowed; }
.notice.info,.notice-info { color:var(--bubba-ui-info); background:var(--bubba-ui-info-surface); border-color:var(--bubba-ui-info-border); }
.notice.warning,.notice-warning { color:var(--bubba-ui-warning); background:var(--bubba-ui-warning-surface); border-color:var(--bubba-ui-warning-border); }
.notice.error,.notice-error { color:var(--bubba-ui-error); background:var(--bubba-ui-error-surface); border-color:var(--bubba-ui-error-border); }
.notice.success,.notice-success { color:var(--bubba-ui-success); background:var(--bubba-ui-success-surface); border-color:var(--bubba-ui-success-border); }
::selection { background:var(--bubba-ui-selection); color:var(--bubba-ui-selection-text); }
* { scrollbar-color:var(--bubba-ui-scrollbar) var(--bubba-ui-scrollbar-track); }
.skip-link { position:absolute; z-index:200; top:-100px; left:16px; padding:12px 16px; background:var(--bubba-ui-surface); color:var(--bubba-ui-link); }
.skip-link:focus { top:8px; }
.footer-links a { display:inline-flex; align-items:center; }
.site-header { background:var(--bubba-color-heading); padding:12px max(16px,calc((100vw - 1120px)/2)); }
.header-meta span,.footer-note { color:#D9E8FB; }
:is(.site-header,.site-footer)[data-bubba-composition=after-dark] { --bubba-ui-focus:var(--bubba-color-surface); --bubba-ui-focus-inner:var(--bubba-color-dark); }
.header-meta a,.bhlh-header nav a { display:inline-flex; align-items:center; min-height:44px; }
/* A fixed navy composition needs its own focus context; white badges keep light-field text. */
.hero { --bubba-ui-focus:var(--bubba-color-surface); --bubba-ui-focus-inner:var(--bubba-color-heading); background:var(--bubba-color-heading); color:var(--bubba-color-surface); }
.hero .eyebrow { background:var(--bubba-color-surface); color:var(--bubba-color-heading); margin:0 0 1.25rem; }
.button { color:inherit; }
:is(.hero,.policy) .button.primary { background:var(--bubba-ui-primary); color:var(--bubba-ui-on-primary); }
:is(.hero,.policy) .button.primary:is(:hover,:active):not(:disabled):not([aria-disabled=true]) { background:var(--bubba-ui-primary-hover); color:var(--bubba-ui-on-primary); }
.hero .button.secondary { background:var(--bubba-ui-surface); color:var(--bubba-color-heading); border-color:var(--bubba-ui-surface); }
.hero .button.outline { background:transparent; color:var(--bubba-color-surface); border-color:currentColor; }
.hero .button:is(.secondary,.outline):is(:hover,:active):not(:disabled):not([aria-disabled=true]) { background:var(--bubba-ui-selected); color:var(--bubba-color-heading); border-color:var(--bubba-ui-selected); }
.hero .button:is(:disabled,[aria-disabled=true]) { background:var(--bubba-ui-disabled-surface); color:var(--bubba-ui-disabled-text); border-color:var(--bubba-ui-border); opacity:1; }
[data-bubba-composition=illustrated-links] .feature-copy strong,[data-bubba-composition=illustrated-links] .action strong,[data-bubba-composition=illustrated-links] h2 { font-family:var(--bubba-font-body); font-weight:850; letter-spacing:-.02em; }
[data-bubba-composition=illustrated-links] .feature-copy strong { font-size:clamp(18px,5vw,25px); }
[data-bubba-composition=illustrated-links] .action strong { font-size:18px; }
[data-bubba-composition=illustrated-links] .socials { background:var(--bubba-color-heading); }
@media(max-width:600px) { .policy { padding:32px 16px 48px; } .header-meta { max-width:65%; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
