/* ── Garden Swap — Typography Tokens (Potting Shed rebrand) ──
   Editorial serif display (Newsreader) + humanist grotesque UI
   (Hanken Grotesk). Hierarchy now comes from FAMILY as well as
   size/weight — serif for names, headlines, and editorial voice;
   grotesque for everything functional.
   ──────────────────────────────────────────────────────────── */

:root {
    /* ── Families ──────────────────────────────────────────── */
    --font-serif:  'Newsreader', Georgia, 'Times New Roman', serif;
    --font-sans:   'Hanken Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-mono:   ui-monospace, Menlo, Consolas, monospace;

    --font-display: var(--font-serif);   /* headings, plant names */
    --font-body:    var(--font-sans);    /* UI, body, labels      */
    --font-system:  var(--font-sans);    /* legacy alias          */

    /* ── Type scale (rem, 16px base) ───────────────────────── */
    --text-xs:    0.75rem;   /* badges, tiny labels   12px   */
    --text-sm:    0.8125rem; /* meta, captions        13px   */
    --text-base:  0.9375rem; /* body / inputs         15px   */
    --text-md:    1.0625rem; /* card titles           17px   */
    --text-lg:    1.375rem;  /* section / view titles 22px   */
    --text-xl:    1.75rem;   /* modal / detail titles 28px   */
    --text-2xl:   2.125rem;  /* hero headlines        34px   */
    --text-3xl:   2.75rem;   /* display               44px   */
    --text-price: 2.25rem;   /* tier price            36px   */

    /* ── Weights ───────────────────────────────────────────── */
    --weight-light:    300;
    --weight-normal:   400;
    --weight-medium:   500;
    --weight-semibold: 600;
    --weight-bold:     700;
    --weight-extra:    800;

    /* ── Line heights ──────────────────────────────────────── */
    --leading-tight:  1.1;
    --leading-snug:   1.3;
    --leading-normal: 1.55;

    /* ── Letter spacing ────────────────────────────────────── */
    --tracking-tight: -0.02em;  /* large serif display   */
    --tracking-caps:  0.08em;   /* uppercase eyebrows    */

    /* ── Semantic roles ────────────────────────────────────── */
    --type-display-family: var(--font-serif);
    --type-display-weight: var(--weight-normal);
    --type-title-family:   var(--font-serif);
    --type-title-weight:   var(--weight-medium);
    --type-body-family:    var(--font-sans);
    --type-body-weight:    var(--weight-normal);
    --type-label-family:   var(--font-sans);
    --type-label-weight:   var(--weight-semibold);
    --type-eyebrow-size:   var(--text-xs);     /* uppercase tracked */
    --type-badge-weight:   var(--weight-semibold);
}
