:root {
  --sdx-forest: #14271C; /* CEO 2026-09-23: "a little darker" - was #1F3D2B; #14271C = live --sd-forest-deep. Logo square stays #1F3D2B (brand lock, literal). */
  --sdx-ink: #132a21;
  --sdx-paper: #f3efe4;
  --sdx-paper-2: #e9e1d1;
  --sdx-white: #fffdf7;
  --sdx-orange: #ff552e;
  --sdx-orange-dark: #dc3c1a;
  --sdx-orange-btn: #d14017;       /* CEO 2026-09-23 "darker orange for the buttons": white text 4.71:1 (#ff552e was 3.19). Buttons only; */
  --sdx-orange-btn-hover: #b5361a; /* accents, bars, badges and shadows keep --sdx-orange. Hover 5.99:1. */
  --sdx-mint: #b8d9c4;
  --sdx-muted: #647269;
  --sdx-line: rgba(19,42,33,.18);
  --sdx-display: "Archivo Black", Impact, sans-serif;
  --sdx-sans: "IBM Plex Sans", sans-serif;
  --sdx-mono: "IBM Plex Mono", monospace;
}

/* WORKER A3 — STEP 1 APPENDIX, 2026-09-20
   Appends to WORKER_A2_OUT/sdx-tokens.css. Does NOT touch the 13 CEO-locked tokens.
   Every value below is derived from SALIM_FRESH_WHOLESALE_PROTOTYPE_2026-09-16
   (styles.css, product.css, checkout.css, blog.css). See the evidence table handed
   back with this file for occurrence counts and source lines. Items marked
   UNRESOLVED in that table have no token here on purpose — do not infer one from
   this file alone. */

:root {
  /* ---- SPACING ----------------------------------------------------------
     No clean base-unit grid exists in the source; these are the raw values
     that individually recur 10+ times (padding/margin/gap only). Named by
     their own pixel value, not by an invented ordinal scale. Section-level
     vertical rhythm (60px-140px) is EXCLUDED — those values are each used
     1-4 times, i.e. bespoke per section, not a scale. */
  --sdx-space-3: 3px;
  --sdx-space-4: 4px;
  --sdx-space-5: 5px;
  --sdx-space-6: 6px;
  --sdx-space-7: 7px;
  --sdx-space-8: 8px;
  --sdx-space-9: 9px;
  --sdx-space-10: 10px;
  --sdx-space-12: 12px;
  --sdx-space-13: 13px;
  --sdx-space-14: 14px;
  --sdx-space-15: 15px;
  --sdx-space-16: 16px;
  --sdx-space-17: 17px;
  --sdx-space-18: 18px;
  --sdx-space-20: 20px;
  --sdx-space-22: 22px;
  --sdx-space-24: 24px;
  --sdx-space-25: 25px;
  --sdx-space-26: 26px;
  --sdx-space-28: 28px;
  --sdx-space-30: 30px;
  --sdx-space-34: 34px;
  --sdx-space-38: 38px;
  --sdx-space-40: 40px;
  --sdx-space-42: 42px;

  /* ---- TYPE SCALE ---------------------------------------------------------
     Body/label sizes below recur 10+ times and cover the eyebrow/mono-label,
     UI and lede range actually used by components. Display/heading sizes are
     fluid clamp() and do NOT repeat (each heading is hand-tuned per section)
     except one: --sdx-text-display-md, backed by 3 exact repeats. Do not use
     the display token as a general "big text" size; it is that one exact
     clamp only. */
  --sdx-text-8: 8px;
  --sdx-text-9: 9px;
  --sdx-text-10: 10px;
  --sdx-text-11: 11px;
  --sdx-text-12: 12px;
  --sdx-text-13: 13px;
  --sdx-text-14: 14px;
  --sdx-text-15: 15px;
  --sdx-text-16: 16px;
  --sdx-text-18: 18px;
  --sdx-text-display-md: clamp(48px, 5vw, 72px); /* 3 exact repeats, see evidence table */

  /* ---- CORNER RADII -------------------------------------------------------
     Consolidated from six raw values (50%, 30px, 20px, 4px, 2px, 0). See the
     evidence table for exactly what changes on which element and which
     screenshot to check before this ships. */
  --sdx-radius-0: 0;
  --sdx-radius-crisp: 2px;   /* singleton evidence — flagged, not silently accepted */
  --sdx-radius-badge: 20px;
  --sdx-radius-full: 999px;  /* consolidates .chip's 30px AND .topic-filter's 999px — flagged */
  --sdx-radius-circle: 50%;

  /* ---- SHADOWS --------------------------------------------------------
     Only one shadow value in the whole prototype clears 2 occurrences by a
     real margin (3x). Everything else is a 1-2x singleton on a specific
     decorative element — see evidence table. Do not treat the omissions
     below as an oversight; they are a finding. */
  --sdx-shadow-focus-success: 0 0 0 4px rgba(58, 165, 104, .12);

  /* ---- BREAKPOINTS ------------------------------------------------------
     CORRECTED BY THE DEPUTY 2026-09-20. The brief specified 320/390/768/1440.
     That was the deputy's error: those are the SCREENSHOT widths we test at,
     not breakpoints. Verified against the prototype's own media queries:
       640px x10  <- real
       980px x6   <- real
       320px x0   768px x0   1440px x0   (390px x2, incidental)
     Components are built against the two widths the layout actually switches
     at. The four screenshot widths remain the visual acceptance matrix and do
     not belong in CSS. */
  --sdx-bp-sm: 640px;
  --sdx-bp-lg: 980px;

  /* ---- CARD HOVER -------------------------------------------------------
     ADDED BY THE DEPUTY 2026-09-20. The worker correctly flagged that
     .product-card:hover box-shadow 8px 8px 0 var(--orange) sits at 2
     occurrences, its own coincidence line, so it left the token out. But
     cards are in step 2 scope, so step 2 would have had no token for the card
     hover and no way to build it without hardcoding. Resolved here rather
     than leaving a trap. */
  --sdx-shadow-card-hover: 8px 8px 0 var(--sdx-orange);
}

/* WAVE1 additions — 2026-09-22 (Wave 1 engineer)
   Appended only. The 59 tokens above are unchanged. Every value below is lifted from
   REDESIGN_MOCKUP_2026-09-22 (styles.css, with mockup.css winning where they disagree)
   unless marked "live", which means it is copied from the live child theme so the
   restyled pre-footer keeps its current proportions. The logo colours (#E24A16,
   #1F3D2B, #F7F1E8, #EE8A5F) are deliberately NOT tokens: BRAND_LOCK_LOGO_2026-09-20
   keeps them literal. */
:root {
  /* ---- COLOUR ---- */
  --sdx-on-accent: #fff;                          /* text on orange / forest / ink */
  --sdx-kicker-light: #ff9a78;                    /* .kicker--light */
  --sdx-header-bg: rgba(243, 239, 228, .93);      /* .site-header */
  --sdx-field-border: rgba(19, 42, 33, .25);      /* .flow-fields input */
  --sdx-field-focus: 0 0 0 2px rgba(255, 85, 46, .14);
  --sdx-field-invalid: #a92b18;
  --sdx-scrim: rgba(5, 26, 18, .7);               /* .drawer-scrim */
  --sdx-gate-backdrop: rgba(4, 25, 17, .96);      /* .age-gate */
  --sdx-footer-bg: #081d15;                       /* .site-footer */
  --sdx-footer-text: #c2cec7;                     /* .footer-grid a, p */
  --sdx-footer-muted: #8fa198;                    /* column heads, mail labels, payment label */
  --sdx-footer-faint: #73857b;                    /* .footer-bottom */
  --sdx-footer-fda: #81938a;                      /* .footer-fda-disclaimer */
  --sdx-footer-fda-label: #b5c2bb;                /* .footer-fda-disclaimer b */
  --sdx-rule-on-dark: rgba(255, 255, 255, .18);   /* hairlines on forest / footer */
  --sdx-rule-on-dark-strong: rgba(255, 255, 255, .45); /* search input underline */
  --sdx-placeholder-on-dark: rgba(255, 255, 255, .44);
  --sdx-cov-text: #cfdbcb;                        /* live: .sd-cov__p / __lbl */
  --sdx-cov-tile: rgba(255, 255, 255, .06);       /* coverage proof tile fill on forest */

  /* ---- TYPE ---- */
  --sdx-text-19: 19px;                            /* hero-lede / brand fallback */
  --sdx-text-22: 22px;                            /* search panel input */
  --sdx-text-30: 30px;                            /* age gate title, phone */
  --sdx-text-36: 36px;                            /* drawer title */
  --sdx-text-38: 38px;                            /* age gate title */
  --sdx-text-21: 21px;                            /* .product-card h3 */
  --sdx-text-close: 29px;                         /* the x in .drawer-close */
  --sdx-text-display-sm: clamp(30px, 3.4vw, 44px);/* live: coverage band heading */
  --sdx-text-figure: clamp(34px, 3.6vw, 50px);    /* live: coverage band figures */
  --sdx-track-kicker: .15em;
  --sdx-track-utility: .11em;
  --sdx-track-label: .12em;                       /* ticker, footer column heads */
  --sdx-track-label-sm: .08em;                    /* footer mail labels, footer bottom */
  --sdx-track-control: .1em;                      /* search label, field hints */
  --sdx-track-button: -.01em;
  --sdx-track-display: -.045em;                   /* age gate title, hero h1 */
  --sdx-track-drawer: -.04em;

  /* ---- SPACE ---- */
  --sdx-space-48: 48px;
  --sdx-space-55: 55px;
  --sdx-space-64: 64px;
  --sdx-space-72: 72px;                           /* live: coverage band padding */
  --sdx-space-75: 75px;

  /* ---- SIZES ---- */
  --sdx-shell-max: 1180px;                        /* .shell */
  --sdx-shell-gutter: 40px;                       /* total side gutter, >640px */
  --sdx-shell-gutter-sm: 28px;                    /* total side gutter, <=640px */
  --sdx-utility-h: 31px;
  --sdx-header-h: 76px;
  --sdx-header-h-sm: 66px;
  --sdx-search-h: 96px;
  --sdx-ticker-h: 48px;
  --sdx-control-h: 52px;                          /* .button */
  --sdx-control-h-sm: 40px;                       /* .button--small */
  --sdx-field-h: 50px;                            /* .flow-fields input */
  --sdx-chip-h: 38px;
  --sdx-icon-btn: 42px;
  --sdx-icon-btn-sm: 36px;                        /* <=390px */
  --sdx-count: 19px;                              /* cart / order count badge */
  --sdx-drawer-w: 520px;
  --sdx-gate-w: 480px;
  --sdx-card-media-h: 310px;                      /* .product-card__media */
  --sdx-field-area-h: 105px;                      /* textarea */
  --sdx-close-btn: 44px;                          /* .drawer-close */
  --sdx-icon: 20px;                               /* .icon-button svg */
  --sdx-icon-tool: 19px;                          /* .header-tool svg */
  --sdx-icon-sm: 14px;                            /* mobile sub-menu chevron */
  --sdx-count-sm: 16px;                           /* count badge on icon-only tools, <=720px */
  --sdx-menu-bar-w: 21px;                         /* hamburger bar */
  --sdx-header-brand-col: 260px;                  /* .header-grid first column */
  --sdx-header-brand-col-md: 220px;               /* same, <=1120px */
  --sdx-header-blur: 14px;                        /* .site-header backdrop blur */
  --sdx-submenu-w: 220px;                         /* desktop dropdown (not in the mockup: the live menu has sub-menus) */
  --sdx-footer-blurb-w: 300px;
  --sdx-footer-warn-min: 330px;                   /* .footer-disclosures second column */
  --sdx-footer-warn-max: 430px;

  /* ---- ELEVATION / LAYERS ---- */
  --sdx-shadow-gate: 10px 10px 0 var(--sdx-orange);
  --sdx-shadow-drawer: -28px 0 70px rgba(4, 25, 17, .18);
  --sdx-focus-ring: 3px solid var(--sdx-orange);
  --sdx-focus-offset: 3px;
  --sdx-focus-offset-sm: 2px;
  --sdx-btn-lift: translateY(-2px);               /* .button:hover */
  --sdx-card-lift: translate(-4px, -4px);         /* .product-card:hover, pairs with --sdx-shadow-card-hover */
  --sdx-z-header: 25;
  --sdx-z-utility: 30;
  --sdx-z-scrim: 70;
  --sdx-z-drawer: 80;

  /* ---- MOTION ---- */
  --sdx-dur-fast: .18s;
  --sdx-dur: .25s;
  --sdx-dur-panel: .3s;
  --sdx-dur-drawer: .34s;
  --sdx-ease-drawer: cubic-bezier(.2, .75, .25, 1);
  --sdx-ticker-dur: 32s;
}
