/* BidClarity brand system v1.0.2 — the one stylesheet every site and app page loads (Track B, F1; DECISIONS c931 3e).
   Order on a page: this file first, then /styles/tokens.css (the ONE PORTAL leftovers, bridged below), then the page's own CSS.
   1. tokens: assets/brand/tokens/tokens.css, loaded once from here (edited only in the web repo; the app copies a pinned version).
   2. fonts: self-hosted Public Sans 2.001 (400/500/600/800) and the Fraunces 1.000 italic variable font (400–500), from
      assets/brand/fonts/ with their licences. No Google Fonts request on a page that loads this file.
   3. the ONE PORTAL bridge: the 14 names that /styles/tokens.css also defined (--bc-bg, --bc-text, --bc-surface, --bc-border,
      --bc-link, --bc-focus, --bc-text-muted, --bc-radius-sm, --bc-space-2/4/6/8/12/16) are owned by tokens.css above; the portal
      file no longer sets them (the seven colour roles mean the same thing and take the brand values; the portal's step-indexed
      spacing names and 6px radius-sm were renamed at their uses to the brand's pixel-named tokens and --bc-radius). */
@import url("tokens/tokens.css?v=b102-7");

/* Public Sans — body, interface and headings. swap: text shows in the fallback until the file lands (no invisible text). */
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/public-sans/PublicSans-Regular.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/public-sans/PublicSans-Medium.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/public-sans/PublicSans-SemiBold.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 800; font-display: swap; src: url("fonts/public-sans/PublicSans-ExtraBold.woff2") format("woff2"); }
/* Fraunces italic — the one contrast span in a major marketing statement (brand-system §3). The official repo has no static
   500 italic, so the variable italic serves 400–500. Axes matched to the approved screenshots by render (B, 2026-10-22):
   opsz 9, SOFT 0, WONK 0 (WONK 1 adds the curled l the approved sample does not have; opsz 144 is the narrow high-contrast cut). */
@font-face { font-family: "Fraunces"; font-style: italic; font-weight: 400 500; font-display: swap; src: url("fonts/fraunces/Fraunces-Italic-Variable.woff2") format("woff2"); }
.bc-contrast, .bc-scope .bc-contrast { font-optical-sizing: none; font-variation-settings: "opsz" 9, "SOFT" 0, "WONK" 0; }
/* No synthesised weights or italics anywhere the brand fonts are used. */
.bc-scope, .bc-contrast { font-synthesis: none; }

/* The logo ™: the SVGs carry no trademark sign, so markup places it beside the wordmark (brand-system §8; D8). */
.bc-brand { display: inline-flex; align-items: flex-start; gap: 1px; text-decoration: none; color: inherit; }
.bc-brand img { display: block; height: 32px; width: auto; }
.bc-brand .bc-tm { font: 600 .625rem/1 var(--bc-font-sans); letter-spacing: 0; margin-top: 1px; }
.bc-brand--footer img { height: 28px; }
