/* Copied from the Harvest Academy Design System (brand/colors_and_type.css in the
   parent-dashboard repo). Do not edit here; change the design system and re-copy. */
/* ============================================================
   HARVEST ACADEMY — Colors & Type Foundations
   Editorial / classical brand system for board-level materials.
   Greensboro, NC · Est. Anno Domini 2023 · Soli Deo Gloria
   ============================================================ */

/* ---- Webfonts ---------------------------------------------
   SUBSTITUTION NOTE: original report fonts were not supplied.
   These Google Fonts are close editorial matches:
   - Cormorant Garamond  -> high-contrast display serif (headlines, numerals)
   - EB Garamond         -> old-style book serif (longform, letters)
   - Hanken Grotesk      -> humanist grotesque (eyebrows, labels, data, UI)
   Replace with licensed brand fonts if/when provided.
----------------------------------------------------------- */

:root {
  /* ---------- Brand core ---------- */
  --bronze:        #B07848;   /* primary brand mark color (logo) */
  --bronze-deep:   #8F5E33;   /* text-safe bronze on cream */
  --bronze-dark:   #6E4621;   /* deep accent, hover ink */
  --bronze-tint:   #E7D7C2;   /* soft fill, rules on cream */
  --bronze-wash:   #F0E5D5;   /* faint panel fill */

  /* ---------- Ink (warm near-black) ---------- */
  --ink:           #1C1814;   /* primary ink + dark cover bg */
  --ink-soft:      #2A2520;   /* raised dark panels */
  --ink-700:       #443D35;   /* secondary text on cream */
  --ink-500:       #6B6258;   /* muted / captions */
  --ink-300:       #9C9486;   /* faint / disabled */

  /* ---------- Paper (warm cream) ---------- */
  --paper:         #F7F2E9;   /* primary editorial ground */
  --paper-alt:     #EFE6D6;   /* alternating section ground */
  --paper-card:    #FCF9F2;   /* card / inset surface */
  --paper-white:   #FFFFFF;

  /* ---------- Lines & shadow ---------- */
  --line:          rgba(28,24,20,0.14);
  --line-strong:   rgba(28,24,20,0.30);
  --line-cream:    rgba(244,236,221,0.18);  /* hairlines on ink */
  --shadow-sm:     0 1px 2px rgba(28,24,20,0.06);
  --shadow-md:     0 8px 28px -12px rgba(28,24,20,0.22);
  --shadow-lg:     0 24px 60px -24px rgba(28,24,20,0.34);

  /* ---------- Semantic (data / status) — desaturated to sit beside bronze ---------- */
  --positive:      #5B7A4E;   /* surplus / growth (sage) */
  --positive-tint: #DCE6D2;
  --caution:       #B98438;   /* attention (amber-bronze) */
  --negative:      #9A4B3C;   /* shortfall (brick) */

  /* ---------- Type families ---------- */
  --font-display: 'Cormorant Garamond', 'Hoefler Text', Georgia, serif;
  --font-serif:   'EB Garamond', 'Iowan Old Style', Georgia, serif;
  --font-sans:    'Hanken Grotesk', 'Helvetica Neue', Arial, sans-serif;

  /* ---------- Type scale (editorial, generous) ---------- */
  --fs-display:  clamp(3.5rem, 7vw, 6.5rem);  /* hero headlines */
  --fs-h1:       clamp(2.6rem, 4.5vw, 4rem);
  --fs-h2:       clamp(2rem, 3vw, 2.75rem);
  --fs-h3:       1.6rem;
  --fs-h4:       1.25rem;
  --fs-lead:     1.375rem;   /* standfirst / deck copy */
  --fs-body:     1.0625rem;
  --fs-small:    0.9375rem;
  --fs-caption:  0.8125rem;
  --fs-label:    0.6875rem;  /* tracked eyebrow caps */

  /* ---------- Tracking ---------- */
  --track-label: 0.22em;     /* eyebrow / small caps */
  --track-tight: -0.01em;    /* large display */

  /* ---------- Spacing scale (8pt base, editorial step) ---------- */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 64px;
  --sp-9: 96px; --sp-10: 128px;

  /* ---------- Radii (restrained — editorial, not bubbly) ---------- */
  --r-xs: 2px; --r-sm: 4px; --r-md: 6px; --r-lg: 10px; --r-pill: 999px;

  /* ---------- Layout ---------- */
  --measure: 38rem;          /* optimal reading column */
  --gutter:  clamp(20px, 5vw, 88px);
}

/* ============================================================
   SEMANTIC TYPE — apply these classes or copy the rules
   ============================================================ */
.ha-eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--bronze-deep);
}
.ha-display {
  font-family: var(--font-display);
  font-size: var(--fs-display);
  font-weight: 600;
  line-height: 0.98;
  letter-spacing: var(--track-tight);
  color: var(--ink);
}
.ha-h1 { font-family: var(--font-display); font-size: var(--fs-h1); font-weight: 600; line-height: 1.04; letter-spacing: var(--track-tight); color: var(--ink); }
.ha-h2 { font-family: var(--font-display); font-size: var(--fs-h2); font-weight: 600; line-height: 1.08; color: var(--ink); }
.ha-h3 { font-family: var(--font-display); font-size: var(--fs-h3); font-weight: 600; line-height: 1.15; color: var(--ink); }
.ha-h4 { font-family: var(--font-sans); font-size: var(--fs-h4); font-weight: 600; line-height: 1.3; color: var(--ink); }
.ha-lead {
  font-family: var(--font-serif);
  font-size: var(--fs-lead);
  font-style: italic;
  line-height: 1.5;
  color: var(--ink-700);
}
.ha-body {
  font-family: var(--font-serif);
  font-size: var(--fs-body);
  line-height: 1.62;
  color: var(--ink-700);
}
.ha-caption {
  font-family: var(--font-sans);
  font-size: var(--fs-caption);
  line-height: 1.45;
  color: var(--ink-500);
}
/* Tabular figures for all financial / data display */
.ha-numeral {
  font-family: var(--font-display);
  font-weight: 500;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.ha-data {
  font-family: var(--font-sans);
  font-variant-numeric: tabular-nums lining-nums;
}

/* Drop cap — used to open longform letters (see annual report) */
.ha-dropcap::first-letter {
  font-family: var(--font-display);
  font-weight: 600;
  float: left;
  font-size: 4.6em;
  line-height: 0.78;
  padding: 0.04em 0.1em 0 0;
  color: var(--bronze-deep);
}

/* Hairline divider with centered ornament */
.ha-rule {
  border: 0;
  border-top: 1px solid var(--line);
}
