/* ============================================================
   Minturn & Co. — Base tokens, reset, typography
   ============================================================ */

:root {
  /* Brand palette */
  --green:        #21412F;
  --green-deep:   #18301F;
  --green-soft:   #2C5239;
  --gold:         #B8923C;
  --gold-deep:    #7C5F20;
  --gold-light:   #D4B872;
  --gold-faint:   #E7D9B0;
  --cream:        #F8F3E9;
  --cream-2:      #F4ECD8;
  --cream-3:      #EFE6D2;
  --ink:          #2A2620;
  --ink-muted:    #6B655B;
  --ink-faint:    #9A9489;
  --charcoal:     #1C1C1E;
  --white:        #FFFFFF;

  /* Type */
  --font-serif: 'Libre Baskerville', 'Baskerville', Georgia, serif;
  --font-sans:  'Libre Baskerville', Georgia, serif;

  /* Type scale (modular, 1.25) */
  --text-xs:   0.75rem;    /* 12 */
  --text-sm:   0.875rem;   /* 14 */
  --text-base: 1.0625rem;  /* 17 */
  --text-md:   1.1875rem;  /* 19 */
  --text-lg:   1.5rem;     /* 24 */
  --text-xl:   1.875rem;   /* 30 */
  --text-2xl:  2.5rem;     /* 40 */
  --text-3xl:  3.25rem;    /* 52 */
  --text-hero: 4.25rem;    /* 68 */

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --space-10: 5rem;

  /* Layout */
  --container: 1120px;
  --container-narrow: 760px;
  --gutter: 1.5rem;

  /* Lines */
  --rule: 1px solid var(--cream-3);
  --rule-gold: 1px solid var(--gold);
  --rule-gold-soft: 1px solid rgba(184, 146, 60, 0.35);

  /* Motion */
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur: 0.4s;
}

/* ---- Reset ---- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html:focus-within { scroll-behavior: smooth; }

body {
  font-family: var(--font-serif);
  font-size: var(--text-base);
  line-height: 1.65;
  color: var(--ink);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1;
}

img, svg, picture { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }
ul, ol { padding: 0; list-style: none; }

/* ---- Type ---- */
h1, h2, h3, h4 { font-weight: 700; line-height: 1.18; letter-spacing: -0.01em; color: var(--green); }

p { max-width: 66ch; }
p + p { margin-top: var(--space-4); }

.eyebrow {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold-deep);
}

.lead { font-size: var(--text-md); line-height: 1.6; color: var(--ink); }

::selection { background: var(--gold); color: var(--green-deep); }

:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* ---- Accessibility ---- */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 1000;
  background: var(--green); color: var(--cream); padding: var(--space-3) var(--space-4);
}
.skip-link:focus { left: var(--space-4); top: var(--space-4); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
