/* M&P O'Sullivan theme — colours from the V1 storefront theme */
:root {
  /* White text is 4.64:1 against this blue — clears AA (4.5:1) but only
     just; worth a second look in the design pass. */
  --primary: #3474cd;
  --primary-foreground: oklch(0.985 0 0);
  --ring: #3474cd;
  /* V1 header accent colour. */
  --brand-accent: #211f72;

  /* Utility strip — the brand navy, not the default --muted grey (Mike,
     2026-09-15). White text/links, since #211f72 is dark enough to need
     light foreground rather than the default muted-on-light pairing. */
  --top-bar: #211f72;
  /* 0.72 measured at 5.6:1 against this navy — clears AA on paper but read
     weak in practice (Mike, 2026-09-16). 0.9 matches the barrygroup dark-
     top-bar precedent: 10.4:1, comfortably legible. */
  --top-bar-foreground: oklch(0.9 0 0);
  --top-bar-foreground-strong: oklch(1 0 0);
  /* Account switcher's code + chevron on the strip (`account-select-
     command.tsx`) default to var(--primary), which on this navy is only
     ~3:1 — weaker than the light foreground pair above (codex review,
     2026-09-16). White, matching the barrygroup/turnerprice precedent for a
     dark top bar. */
  --top-bar-accent: oklch(1 0 0);

  /* The lockup (icon + "M&P O'Sullivan" wordmark) is ~4:1, so the 1.25rem
     platform default rendered it just 81px wide — the wordmark was
     illegible (Mike, 2026-09-15). 3rem/48px gives it real presence at 194px
     wide, leaving 12px of clearance either side in the 72px default header
     row — the same clearance dunstersfarm runs at this height, so no
     --store-header-height-desktop bump is needed. */
  --store-logo-height: 3rem;

  /* Search pill's magnifier tile — the brand blue, following --primary
     rather than a second copy of the hex (Mike, 2026-09-15). White glyph
     (8.79:1 on this blue — the same pairing --primary-foreground already
     uses), and the tile sized up from the bare-glyph default (1rem) to read
     as a real icon tile rather than a tinted magnifier. */
  --search-icon-background: var(--primary);
  --search-icon-foreground: var(--primary-foreground);
  /* 1.875rem/30px (Mike, 2026-09-15) — the tile's gap to the pill's border
     is (pill height − tile size) / 2, so this gives 5px on every side
     against the pill's 40px desktop height. */
  --search-icon-size: 1.875rem;
  /* Matches the search pill's own corner radius (--search-field-radius)
     rather than a second value to keep in step (Mike, 2026-09-15). */
  --search-icon-radius: var(--search-field-radius);
  /* 0.25rem/4px + the pill's 1px border makes the left gap 5px, matching the
     top/bottom gap the tile now gives for free (Mike, 2026-09-15). */
  --search-icon-inset-start: 0.25rem;
}

.dark {
  --primary: oklch(from #3474cd 0.72 c h);
  --primary-foreground: oklch(0.204 0 0);
  --ring: oklch(from #3474cd 0.72 c h);
}
