/* OLB Farvesystem v1.0.5 – repair RC1: X-01 disabled-fg alias, X-04 robust fokus-selector, BUG-11 767.98.
   Bygger på v1.0.4 (borders, hover/disabled, kategori, sæson-slots, mobil-nav, fokus). Ingen farveværdi ændret. */
:root {
  --olb-white:#FFFFFF;
  --olb-cream-50:#FAF7F2;
  --olb-cream-100:#F2EDE4;
  --olb-sand-100:#F6E6D8;
  --olb-sand-200:#E5DDD0;
  --olb-stone-150:#ECE8E1;
  --olb-stone-200:#E4DED4;
  --olb-stone-450:#8A8479;
  --olb-stone-500:#8C8578;
  --olb-ink-900:#16262E;
  --olb-ink-700:#3F4F57;
  --olb-ink-600:#56646B;
  --olb-petrol-50:#EAF2F3;
  --olb-petrol-100:#E3EEF0;
  --olb-petrol-700:#0E4C5A;
  --olb-petrol-900:#083642;
  --olb-terra-700:#B84A12;
  --olb-terra-800:#8A3410;
  --olb-gold-100:#FCEFD2;
  --olb-gold-400:#F2C14E;
  --olb-red-50:#FDE7EA;
  --olb-red-600:#C8102E;
  --olb-red-800:#A00D25;
  --olb-green-50:#E3F2E7;
  --olb-green-700:#1F7A3D;
  --olb-amber-50:#FFF1D6;
  --olb-amber-800:#7A4A00;
  --olb-error-50:#FDE8E6;
  --olb-error-700:#B42318;
  --olb-blue-50:#E6EEF8;
  --olb-blue-700:#1F5F9E;
  --olb-focus-700:#0A3A40;
  --olb-amber-500:#D98E04;
  /* Kategori-primitives (500 ikon · 700 tekst · 50 tint) */
  --olb-cat-koel-frost-500:#2E7FA3;   --olb-cat-koel-frost-700:#1D5A77;   --olb-cat-koel-frost-50:#E6F1F6;
  --olb-cat-frisk-500:#5E8C3A; --olb-cat-frisk-700:#44692A; --olb-cat-frisk-50:#EDF4E6;
  --olb-cat-slik-500:#C2457A;  --olb-cat-slik-700:#9C2F5E;  --olb-cat-slik-50:#FAE8EF;
  --olb-cat-vin-500:#7B2D45;   --olb-cat-vin-700:#7B2D45;   --olb-cat-vin-50:#F5E9EC;
  --olb-cat-oel-500:#B7791F;   --olb-cat-oel-700:#8A5A14;   --olb-cat-oel-50:#F8EEDC;

  --color-page:var(--olb-cream-50);
  --color-surface:var(--olb-white);
  --color-surface-elevated:var(--olb-white);
  --color-surface-soft:var(--olb-cream-100);
  --color-surface-warm:var(--olb-sand-100);
  --color-surface-cool:var(--olb-petrol-50);
  --color-surface-product:var(--olb-white);
  --color-section-alt:var(--olb-cream-100);

  --color-border:var(--olb-sand-200);          /* kun dekorativ (1,26:1) */
  --color-border-strong:var(--olb-stone-500);  /* inputs/checkbokse – UI ≥ 3:1 */

  --color-text-primary:var(--olb-ink-900);
  --color-text-secondary:var(--olb-ink-700);
  --color-text-muted:var(--olb-ink-600);
  --color-text-inverse:var(--olb-white);
  --color-link:var(--olb-petrol-700);
  --color-link-hover:var(--olb-petrol-900);

  --color-brand-primary:var(--olb-petrol-700);
  --color-brand-secondary:var(--olb-petrol-900);
  --color-brand-soft:var(--olb-petrol-100);

  /* Desktop header / topbar / footer */
  --color-topbar-bg:var(--olb-petrol-900);
  --color-topbar-fg:var(--olb-white);
  --color-header-bg:var(--olb-white);
  --color-header-fg:var(--olb-petrol-700);
  --color-footer-bg:var(--olb-petrol-900);
  --color-footer-fg:var(--olb-white);

  /* Desktop nav bruger selected-subtle-logikken */
  --color-nav-active-fg:var(--olb-petrol-700);
  --color-nav-active-bg:var(--olb-petrol-100);
  --color-nav-indicator:var(--olb-petrol-700);

  --color-cta-bg:var(--olb-terra-700);
  --color-cta-fg:var(--olb-white);
  --color-cta-hover:var(--olb-terra-800);
  --color-cta-disabled-bg:var(--olb-stone-200);
  /* X-01 (v1.0.5): én sandhed for disabled-forgrund. stone-450 målte 2,77:1 / 3,04:1.
     Buttons og Forms bruger allerede text-muted (4,58:1 / 5,01:1). Primitivet stone-450 er deprecated. */
  --color-cta-disabled-fg:var(--color-text-muted);

  --color-cta2-fg:var(--olb-petrol-700);
  --color-cta2-border:var(--olb-petrol-700);
  --color-cta2-hover-bg:var(--olb-petrol-100);

  --color-success:var(--olb-green-700);
  --color-success-soft:var(--olb-green-50);
  --color-warning:var(--olb-amber-800);
  --color-warning-icon:var(--olb-amber-500);   /* kun med statustekst; aldrig eneste statusbærer */
  --color-warning-soft:var(--olb-amber-50);
  --color-error:var(--olb-error-700);
  --color-error-soft:var(--olb-error-50);
  --color-info:var(--olb-blue-700);
  --color-info-soft:var(--olb-blue-50);

  --color-sale:var(--olb-red-600);
  --color-sale-fg:var(--olb-white);
  --color-sale-soft:var(--olb-red-50);
  --color-sale-strong:var(--olb-red-800);

  --color-promo:var(--olb-gold-400);
  --color-promo-fg:var(--olb-ink-900);
  --color-promo-soft:var(--olb-gold-100);
  --color-new-badge:var(--color-promo);

  --color-hover-bg:var(--olb-cream-100);
  --color-disabled-bg:var(--olb-stone-150);
  --color-disabled-fg:var(--color-text-muted);   /* X-01: alias, se ovenfor */

  --color-selected-strong-bg:var(--olb-petrol-700);
  --color-selected-strong-fg:var(--olb-white);
  --color-selected-subtle-bg:var(--olb-petrol-100);
  --color-selected-subtle-fg:var(--olb-petrol-700);
  --color-selected-subtle-border:var(--olb-petrol-700);

  --color-focus-ring:var(--olb-focus-700);
  --color-focus-ring-inverse:var(--olb-white);
  --focus-ring-width:2px;
  --focus-ring-inverse-width:1px;
  --focus-ring-offset:2px;

  --color-scrim:rgba(8,54,66,.55);
  --color-scrim-strong:rgba(8,54,66,.80);

  --color-mobile-header-bg:var(--olb-petrol-700);
  --color-mobile-header-fg:var(--olb-white);
  --color-mobile-header-icon:var(--olb-white);
  /* Bundnavigation på hvid bar = selected subtle (MASTER §5). Guld bruges ikke her (guld = kampagne). */
  --color-mobile-nav-bg:var(--olb-white);
  --color-mobile-nav-fg:var(--olb-ink-700);
  --color-mobile-nav-active-fg:var(--olb-petrol-700);
  --color-mobile-nav-active-bg:var(--olb-petrol-100);
  --color-mobile-nav-indicator:var(--olb-petrol-700);

  /* Aktiv kategori sættes pr. side/sektion */
  --cat-accent:var(--color-brand-primary);
  --cat-accent-text:var(--color-brand-primary);
  --cat-tint:var(--color-surface-cool);

  /* Sæson-slots – standard = core; overskrives af [data-season] */
  --season-hero-bg:var(--color-surface-warm);
  --season-hero-fg:var(--color-text-primary);
  --season-accent:var(--color-promo);
  --season-accent-fg:var(--color-promo-fg);
  --season-badge-bg:var(--color-promo);
  --season-badge-fg:var(--color-promo-fg);
  --season-badge-border:transparent;
  --season-surface:var(--color-surface-warm);
  --season-topbar-bg:var(--color-topbar-bg);
  --season-topbar-fg:var(--color-topbar-fg);
}

/* Fokus: WCAG 2.2 AA. 2px mørk ring + 1px hvid/inverse hjælpering udenpå offset.
   Den hvide ring bærer kontrasten på petrol (9,55:1). Systemet gør ikke krav på AAA 2.4.13.
   Governance: komponenter må ikke sætte outline/box-shadow på :focus-visible, så denne regel overskrives.
   X-04 (v1.0.5): :where() gav (0,1,0), så enhver senere enkelt-klasse-shell med box-shadow
   (.olb-promo, .olb-modal, .olb-sheet, .olb-dropdown, .olb-popover, .olb-product-card) fjernede
   den inverse ring, når shellen blev focus target. :is() giver (0,2,0) og vinder over alle
   (0,1,0)-shells uanset load-order – uden !important og uden komponent-fokusregler.
   Konsekvens: en shell der får fokus viser fokusringen i stedet for sin elevation, mens fokus varer. */
:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:var(--focus-ring-width) solid var(--color-focus-ring);
  outline-offset:var(--focus-ring-offset);
  box-shadow:0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width) + var(--focus-ring-inverse-width)) var(--color-focus-ring-inverse);
}

[data-cat="koel-frost"]  {--cat-accent:var(--olb-cat-koel-frost-500);  --cat-accent-text:var(--olb-cat-koel-frost-700);  --cat-tint:var(--olb-cat-koel-frost-50);}
[data-cat="frisk"]{--cat-accent:var(--olb-cat-frisk-500);--cat-accent-text:var(--olb-cat-frisk-700);--cat-tint:var(--olb-cat-frisk-50);}
[data-cat="slik"] {--cat-accent:var(--olb-cat-slik-500); --cat-accent-text:var(--olb-cat-slik-700); --cat-tint:var(--olb-cat-slik-50);}
[data-cat="vin"]  {--cat-accent:var(--olb-cat-vin-500);  --cat-accent-text:var(--olb-cat-vin-700);  --cat-tint:var(--olb-cat-vin-50);}
[data-cat="oel"]  {--cat-accent:var(--olb-cat-oel-500);  --cat-accent-text:var(--olb-cat-oel-700);  --cat-tint:var(--olb-cat-oel-50);}

@media (max-width:767.98px){ /* BUG-11: canonical notation, lukker 767–768-hullet */
  :root{
    --color-page:var(--olb-white);
    --color-text-muted:var(--olb-ink-700);
    --color-section-alt:var(--olb-white);
  }
  :root,[data-cat]{ --cat-tint:transparent; }
}

/* Sæsoner – ændrer kun --season-* */
[data-season="jul"]{--season-hero-bg:#7E1F24;--season-hero-fg:#FFFFFF;--season-accent:#C9A24B;--season-accent-fg:#16262E;--season-badge-bg:#1E4D3A;--season-badge-fg:#FFFFFF;--season-surface:#F7ECE4;--season-topbar-bg:#1E4D3A;}
/* Påske: hvid tekst på #5E8C3A er 3,97:1 og må kun bruges til stor/fed tekst (ca. ≥18,7px bold eller ≥24px normal). */
[data-season="paaske"]{--season-hero-bg:#F7E27A;--season-hero-fg:#16262E;--season-accent:#5E8C3A;--season-accent-fg:#FFFFFF;--season-badge-bg:#F7E27A;--season-badge-fg:#16262E;--season-surface:#FDF8DC;}
[data-season="sommer"]{--season-hero-bg:#0B6A73;--season-hero-fg:#FFFFFF;--season-accent:#F08A6B;--season-accent-fg:#16262E;--season-badge-bg:#F08A6B;--season-badge-fg:#16262E;--season-surface:#E6F4F3;}
[data-season="blackfriday"]{--season-hero-bg:#111417;--season-hero-fg:#FFFFFF;--season-accent:#F2C14E;--season-accent-fg:#111417;--season-badge-bg:#111417;--season-badge-fg:#F2C14E;--season-surface:#F2EDE4;--season-topbar-bg:#111417;--season-topbar-fg:#F2C14E;}
[data-season="dansk"]{--season-hero-bg:#C8102E;--season-hero-fg:#FFFFFF;--season-accent:#16262E;--season-accent-fg:#FFFFFF;--season-badge-bg:#FFFFFF;--season-badge-fg:#16262E;--season-badge-border:#C8102E;--season-surface:#FDE7EA;}


/* Sæson-topbar:
   Kampagnens wrapper kan have data-season uden at påvirke resten af siden.
   Hvis topbaren også skal følge kampagnen, sættes samme data-season direkte på .olb-topbar.
   I Bricks sættes topbarens normale baggrund/tekst direkte til --season-topbar-bg / --season-topbar-fg,
   så standardværdien følger --color-topbar-* og sæson kan overskrive uden lokal farve. */
.olb-topbar[data-season]{
  background:var(--season-topbar-bg);
  color:var(--season-topbar-fg);
}
