/* Heartland & Vine Insurance: brand tokens
   SAMPLE WORK: Heartland & Vine is an illustrative firm, invented for a showcase.
   One system for every surface: site, guides, checklist, emails, posts.
   Fonts: copy artifacts/brand/fonts/ into a fonts/ folder beside this file's copy;
   the url() paths below are relative to this file. Never link a remote font. */

@font-face { font-family: "Fraunces"; src: url("fonts/Fraunces-SemiBold.ttf") format("truetype"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Fraunces"; src: url("fonts/Fraunces-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Fraunces"; src: url("fonts/Fraunces-Italic.ttf") format("truetype"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("fonts/PublicSans-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("fonts/PublicSans-Italic.ttf") format("truetype"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("fonts/PublicSans-SemiBold.ttf") format("truetype"); font-weight: 600; font-style: normal; font-display: swap; }

:root {
  /* Palette — named for Oklahoma, used by role */
  --hv-prairie-ink:  #1F2B24; /* body text, headlines, dark grounds */
  --hv-red-dirt:     #A8452B; /* the arch; one accent per surface; links */
  --hv-vine:         #4F6B4A; /* labels, secondary headings, icons */
  --hv-storm-slate:  #5B6B78; /* weather and risk notes, captions */
  --hv-porch-light:  #E9B949; /* highlight on Prairie Ink ONLY, never text on light grounds */
  --hv-limestone:    #E4DACB; /* panels, rules, table bands */
  --hv-paper:        #F4EDE1; /* the main ground everywhere */
  --hv-fence-white:  #FBF8F2; /* form fields, cards that sit on Paper */

  /* Roles */
  --hv-ground: var(--hv-paper);
  --hv-text: var(--hv-prairie-ink);
  --hv-accent: var(--hv-red-dirt);
  --hv-label: var(--hv-vine);
  --hv-rule: #CFC3B0; /* Limestone, one step down, for hairlines */

  /* Type families */
  --hv-font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --hv-font-text: "Public Sans", "Helvetica Neue", Arial, sans-serif;

  /* Type scale (web; 1rem = 16px). Display = Fraunces 600; text = Public Sans 400. */
  --hv-size-display: clamp(2.5rem, 1.6rem + 3vw, 4rem);  /* page hero, one per page */
  --hv-size-h1: clamp(2rem, 1.5rem + 1.8vw, 2.75rem);
  --hv-size-h2: 1.75rem;
  --hv-size-h3: 1.25rem;    /* Public Sans 600 */
  --hv-size-body: 1.0625rem; /* 17px: plain language reads big */
  --hv-size-small: 0.875rem;
  --hv-size-label: 0.75rem;  /* Public Sans 600, uppercase, tracked */
  --hv-tracking-label: 0.16em;
  --hv-tracking-display: -0.01em;
  --hv-leading-display: 1.08;
  --hv-leading-body: 1.55;
  --hv-measure: 64ch;

  /* Shape and space */
  --hv-radius-arch: 999px 999px 0 0; /* the arch: round top, square foot */
  --hv-radius: 6px;                   /* cards, fields, buttons */
  --hv-space-1: 0.25rem; --hv-space-2: 0.5rem; --hv-space-3: 1rem;
  --hv-space-4: 1.5rem;  --hv-space-5: 2.5rem; --hv-space-6: 4rem;
}

/* The sample label every surface carries */
.hv-sample-label {
  font: 600 var(--hv-size-label)/1 var(--hv-font-text);
  letter-spacing: var(--hv-tracking-label);
  text-transform: uppercase;
  color: var(--hv-prairie-ink);
  background: var(--hv-porch-light);
  padding: 0.45em 0.8em;
  display: inline-block;
}

/* The ampersand, wherever "and" is the point */
.hv-amp { font-family: var(--hv-font-display); font-style: italic; font-weight: 400; color: var(--hv-red-dirt); }
