/* Hallmark · tokens · theme: Almanac
 * axes — paper band: light (L 96.5%) · display style: roman-serif · accent hue: warm (32°)
 * Every colour and every font in style.css references a token from this file.
 * If a value is needed that isn't here, add it here first, then reference it.
 */

:root {
  color-scheme: light;

  /* ---- Type families -------------------------------------------------- */
  /* 2 + 1. Display + body, plus one outlier carrying exactly one role:
     the figures you act on (prices, phone number). Nowhere else. */
  --font-display: "Fraunces", ui-serif, Georgia, "Times New Roman", serif;
  --font-body:    "IBM Plex Sans", ui-sans-serif, "Segoe UI", sans-serif;
  --font-figure:  "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;

  /* ---- Type scale · major third (1.25) from a 16px body --------------- */
  --text-xs:      0.8rem;      /* 12.8px — colophon, captions          */
  --text-sm:      0.9rem;      /* 14.4px — labels, small caps          */
  --text-base:    1rem;        /* 16px   — body                        */
  --text-md:      1.125rem;    /* 18px   — lede, table figures         */
  --text-lg:      1.5625rem;   /* 25px   — block headings              */
  --text-xl:      1.9531rem;   /* 31.25px — section headings           */
  --text-2xl:     2.4414rem;   /* 39px   — phone number                */
  --text-display-s: clamp(2rem, 3.2vw + 1rem, 3.0518rem);
  --text-display:   clamp(2.375rem, 4.4vw + 0.75rem, 4.0625rem);

  /* ---- Colour · OKLCH, warm-oat anchor (hue 60–85), brick accent ------ */
  --color-paper:      oklch(96.5% 0.012 85);   /* base surface, warm oat  */
  --color-paper-2:    oklch(94.0% 0.016 84);   /* inset figures           */
  --color-paper-3:    oklch(91.5% 0.020 82);   /* the price band          */
  --color-ink:        oklch(24.0% 0.016 60);   /* primary text · 14.9:1   */
  --color-ink-muted:  oklch(44.0% 0.018 62);   /* secondary text · 7.0:1  */
  --color-ink-faint:  oklch(66.0% 0.016 70);   /* NON-TEXT decoration only */
  --color-rule:       oklch(84.0% 0.018 80);   /* hairlines               */
  --color-accent:     oklch(43.0% 0.155 32);   /* brick · links, CTA · 7.9:1 */
  --color-accent-deep:oklch(35.0% 0.140 30);   /* accent hover/active     */
  --color-accent-ink: oklch(96.5% 0.012 85);   /* text ON an accent fill · 7.9:1 */
  --color-focus:      oklch(43.0% 0.155 32);   /* focus ring = accent     */

  /* ---- Space · 4pt scale ---------------------------------------------- */
  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;

  --page-gutter: clamp(1.25rem, 5vw, 5rem);
  --shell-max:   76rem;
  --measure:     62ch;

  /* ---- Rules, radii ---------------------------------------------------- */
  --rule-hair: 1px;
  --rule-bold: 2px;
  --radius-none: 0;
  --radius-sm: 2px;

  /* ---- Motion ---------------------------------------------------------- */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms;
  --dur-short: 200ms;
  --dur-long:  420ms;

  /* ---- Depth ----------------------------------------------------------- */
  --z-base: 1;
  --z-raised: 10;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-sticky-nav: 210;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;

  /* Sticky-call-bar height, so page padding can clear it on mobile. */
  --callbar-height: 3.75rem;
}
