/* Savona Foodservice theme */
:root {
  /* Brand primary — Savona's gold, not the wordmark ink (Mike, 2026-09-15).
     REVERSES the previous split, which kept --primary as the ink (#1d1d1b)
     and confined the gold to --add-button alone. Do not "fix" it back — this
     matches the Woods model on purpose: one token carrying the brand colour
     everywhere (text, buttons, rings) rather than surface-only.

     FLAGGED, NOT SILENT: gold as text on white (text-primary) is 2.95:1,
     under the 4.5:1 AA floor — the near-black it replaces cleared AA
     comfortably. White text ON the gold (buttons) is 1.96:1, also under AA;
     near-black text there was 8.79:1. Both accepted by explicit decision
     (Mike, 2026-09-15) for parity with woods.css and creed.css, which take
     the same trade for their own golds/oranges — brand fidelity over the
     contrast floor.

     --add-button/-foreground and --basket-background/-foreground are no
     longer set here: all four default to this --primary/--primary-foreground
     pair in globals.css, so the Add-to-basket CTA and the mini-cart qty badge
     follow automatically — the "no second token to set" woods.css documents. */
  --primary: #c8b47f;
  --primary-foreground: oklch(1 0 0);
  --ring: #c8b47f;

  /* The gold of their fork device, taken from the logo artwork's own fill.
     (`tenants.primary_colour` in the database says #AB904B, a deeper gold —
     the artwork is the source of truth here, as it is for the logo itself.)
     Same value as --primary above now, kept as its own token because it has
     its own separate reach (the page-builder --palette-* derivation), not a
     second copy of --primary to keep in step. */
  --brand-accent: #c8b47f;

  /* Logo on the dark header (Mike, 2026-11-02). 48px on desktop in an 80px
     row (5rem, the tallest any tenant runs); the phone keeps 36px so it still
     fits beside the account and basket controls. The fork rises well above
     the wordmark, so centring the box leaves the WORDMARK low: -3px lifts it
     back to the search pill's line while the fork clears the top-bar rule. */
  --store-logo-height: 3rem;
  --store-logo-height-mobile: 2.25rem;
  --store-logo-offset-y: -3px;
  --store-header-height-desktop: 5rem;

  /* Utility strip — near-black, the same ink --primary used to carry before
     it moved onto the gold (Mike, 2026-09-15). No --top-bar-accent override:
     it defaults to var(--primary), which is this same gold, so restating the
     hex here would just be a second copy to keep in step. The strip's own
     link text stays neutral so the gold accent is the only thing that lifts.
     The header below is the same ink now, so a 1px rule separates the two:
     white at 30%, not the default gold and not solid white, which reads as a
     hard edge on near-black. */
  --top-bar: #1d1d1b;
  --top-bar-foreground: oklch(0.72 0 0);
  --top-bar-foreground-strong: oklch(1 0 0);
  --top-bar-rule: oklch(1 0 0 / 0.3);
  --top-bar-rule-height: 1px;

  /* Dark header band (Mike, 2026-11-02), the same ink as the strip. A dark
     header was tried in September at the 5rem row and rejected for want of
     platform support; these tokens are that support. Controls on the band
     reverse to a white wash with near-white glyphs, the sidebar toggle gets
     the same box (so it is inset off the phone's screen edge), and the
     in-band nav pills follow. Brand controls (Sign in, the basket badge) stay
     gold. The light-on-dark logo comes from `headerLogoVariant`
     (store-logo-assets.ts), not from here. */
  --header: #1d1d1b;
  --header-foreground: oklch(0.95 0 0);
  --header-control: oklch(1 0 0 / 0.08);
  --header-control-foreground: oklch(0.95 0 0);
  --header-control-border: transparent;
  --header-control-hover: oklch(1 0 0 / 0.16);
  --header-control-hover-foreground: oklch(0.95 0 0);
  --header-toggle: oklch(1 0 0 / 0.08);
  --header-toggle-inset: 0.75rem;
  --header-pill: oklch(1 0 0 / 0.08);
  --header-pill-foreground: oklch(0.95 0 0);
  /* 8px under the band on desktop, so the nav row and the sidebar's first
     item don't butt against its hard dark edge. */
  --header-band-gap: 0.5rem;

  /* Search pill — solid white on the dark band, no border: against #1d1d1b
     the fill is the boundary. Wider than the 48rem default (Mike,
     2026-11-02), so on a 1440px screen it spans the gap between logo and
     actions. */
  --search-field: oklch(1 0 0);
  --search-field-border: transparent;
  --search-field-max-width: 64rem;
}

.dark {
  /* Storefront currently forces light mode; kept for parity with the other
     tenant themes. Derived from the gold now, not the ink it used to track —
     same `oklch(from … 0.72 c h)` shape the other themes use.

     --primary-foreground stays near-black here, NOT mirrored to white — same
     call woods.css makes for the same reason: the dark-mode primary is
     lightened to L 0.72, so white on it is worse than on the light-mode gold
     while near-black is comfortable. Parity housekeeping, not a live surface
     while the storefront forces light mode. */
  --primary: oklch(from #c8b47f 0.72 c h);
  --primary-foreground: oklch(0.204 0 0);
  --ring: oklch(from #c8b47f 0.72 c h);
}
