/* Waypoint token layer — Brand Kit v1.3 is the source of truth (CLAUDE.md).
   Contrast (computed 2026-09-08, WCAG 2.x):
     orange      on cream  2.91:1  -> fills, rules, icons only; never body-size text
     orange      on charcoal 3.30:1, charcoal on orange 3.30:1 -> large/bold text only (>= 18.66px bold)
     orange-deep on cream  4.87:1  -> small orange text and links (AA)
     grey        on cream  5.59:1  (AA);  grey on sand 4.37:1 -> FAILS AA: no grey body text on sand (decision 2026-09-09)
     charcoal    on cream  9.59:1, on sand 7.49:1;  cream on charcoal 9.59:1 */

:root {
  /* Color */
  --wp-orange:      #db7409;
  --wp-orange-deep: #a65400;
  --wp-grey:        #616161;
  --wp-charcoal:    #3e3f3a;
  --wp-cream:       #f5f3ef;
  --wp-sand:        #e1d8c2;
  --wp-white:       #ffffff;

  /* Semantic aliases */
  --wp-bg:            var(--wp-cream);
  --wp-bg-alt:        var(--wp-sand);
  --wp-bg-dark:       var(--wp-charcoal);
  --wp-text:          var(--wp-charcoal);
  --wp-text-muted:    var(--wp-grey);
  --wp-text-on-dark:  var(--wp-cream);
  --wp-link:          var(--wp-orange-deep);
  --wp-link-hover:    var(--wp-charcoal);
  --wp-accent:        var(--wp-orange);
  --wp-border:        var(--wp-sand);
  --wp-focus:         var(--wp-orange);

  /* Type */
  --wp-font-display: "Big Shoulders", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --wp-font-ui:      "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;
  --wp-font-body:    "Glacial Indifference", "Helvetica Neue", Arial, sans-serif;

  --wp-text-xs:   0.75rem;    /* 12 */
  --wp-text-sm:   0.875rem;   /* 14 */
  --wp-text-base: 1rem;       /* 16 */
  --wp-text-md:   1.125rem;   /* 18 */
  --wp-text-lg:   1.25rem;    /* 20 */
  --wp-text-cta:  1.1875rem;  /* 19 — >= 18.66px so bold charcoal on orange passes at 3.3:1 */
  --wp-h4:        1.25rem;
  --wp-h3:        1.5rem;
  --wp-h2:        clamp(2rem, 1.2rem + 3vw, 3rem);
  --wp-h1:        clamp(2.75rem, 1.5rem + 5vw, 4.5rem);
  --wp-leading:       1.6;
  --wp-leading-tight: 1.05;
  --wp-tracking-display: -0.01em;
  --wp-tracking-ui:      0.01em;

  /* Space — 8px base */
  --wp-space-1:  8px;
  --wp-space-2:  16px;
  --wp-space-3:  24px;
  --wp-space-4:  32px;
  --wp-space-5:  40px;
  --wp-space-6:  48px;
  --wp-space-8:  64px;
  --wp-space-12: 96px;

  /* Layout */
  --wp-max:    1280px;
  --wp-narrow: 720px;
  --wp-gutter: var(--wp-space-3);

  /* Shape and motion */
  --wp-radius:      2px;
  --wp-radius-card: 4px;
  --wp-radius-img:  0;
  --wp-ease:        0.15s ease-out;
  --wp-border-w:    1px;
  --wp-rule-w:      3px;
}

/* Base typography on the tokens. Component styling lives in theme.css. */
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
body {
  background-color: var(--wp-bg);
  color: var(--wp-text);
  font-family: var(--wp-font-body);
  font-size: var(--wp-text-base);
  line-height: var(--wp-leading);
  font-weight: 400;
}
h1, h2, .waypoint-display {
  font-family: var(--wp-font-display);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: var(--wp-tracking-display);
  line-height: var(--wp-leading-tight);
  color: var(--wp-text);
  margin: 0 0 var(--wp-space-2);
}
h1 { font-size: var(--wp-h1); }
h2 { font-size: var(--wp-h2); }
h3, h4, h5, h6, .waypoint-ui, legend, label, th {
  font-family: var(--wp-font-ui);
  font-weight: 500;
  letter-spacing: var(--wp-tracking-ui);
  line-height: 1.25;
  color: var(--wp-text);
}
h3 { font-size: var(--wp-h3); margin: 0 0 var(--wp-space-1); }
h4 { font-size: var(--wp-h4); margin: 0 0 var(--wp-space-1); }
h5, h6 { font-size: var(--wp-text-md); margin: 0 0 var(--wp-space-1); }
p { margin: 0 0 var(--wp-space-2); }
a { color: var(--wp-link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; transition: color var(--wp-ease); }
a:hover, a:focus { color: var(--wp-link-hover); }
:focus-visible { outline: 2px solid var(--wp-focus); outline-offset: 2px; }
small, .waypoint-muted { color: var(--wp-text-muted); font-size: var(--wp-text-sm); }
/* Grey fails AA on sand (4.37:1): anything muted inside a sand surface falls back to charcoal. */
.waypoint-section-alt small, .waypoint-section-alt .waypoint-muted, .wp-block-group.is-style-waypoint-alt small, .wp-block-group.is-style-waypoint-alt .waypoint-muted,
.waypoint-lead-time small, .waypoint-lead-time .waypoint-muted, .woocommerce-message small, .woocommerce-info small { color: var(--wp-charcoal); }
img { max-width: 100%; height: auto; border-radius: var(--wp-radius-img); }
hr { border: 0; border-top: var(--wp-rule-w) solid var(--wp-accent); width: var(--wp-space-8); margin: var(--wp-space-4) 0; }

/* Brand rules: no parallax, no scroll-entrance animation. The parent's WOW/animate hooks are gone;
   make sure nothing it tagged stays hidden waiting for an animation that will never run. */
.wow, [data-wow-duration] { visibility: visible !important; animation: none !important; opacity: 1 !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation: none !important; scroll-behavior: auto !important; }
}
