/* =====================================================================
   Base typography & layout primitives.
   ===================================================================== */

html { font-family: var(--font-body); color: var(--color-ink); background: var(--color-bg); }
body { font-size: var(--fs-base); }

/* Headings */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 800;
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--color-ink);
}
h1 { font-size: var(--fs-4xl); }
h2 { font-size: var(--fs-3xl); }
h3 { font-size: var(--fs-xl); }
h4 { font-size: var(--fs-lg); font-weight: 700; }

p { color: var(--color-ink-soft); line-height: var(--lh-base); }
p + p { margin-top: var(--space-3); }
p.lead { font-size: var(--fs-md); color: var(--color-ink); }

a { color: var(--color-accent); transition: color var(--dur) var(--ease); }
a:hover { color: var(--color-brand); }

ul, ol { padding-left: 1.25em; color: var(--color-ink-soft); }
li + li { margin-top: var(--space-1); }

strong { color: var(--color-ink); font-weight: 700; }
hr { border: 0; border-top: 1px solid var(--color-line); margin: var(--space-7) 0; }

/* Container */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}
.container--narrow { max-width: var(--container-narrow); }

/* Section rhythm */
.section { padding-block: clamp(3rem, 6vw, 6rem); }
.section--tight { padding-block: clamp(2rem, 4vw, 4rem); }
.section--dark {
  background: var(--color-brand-deep);
  color: #f3f6fb;
}
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4 { color: #fff; }
.section--dark p { color: #c5cfde; }

.section--surface { background: var(--color-surface); }

.section__eyebrow {
  display: inline-block;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: var(--space-3);
}

.section__title {
  font-size: var(--fs-2xl);
  margin-bottom: var(--space-3);
}

.section__intro {
  max-width: 56ch;
  margin-bottom: var(--space-6);
  color: var(--color-ink-soft);
}

/* Skip link */
.skip-link {
  position: absolute; left: -9999px; top: 0;
  background: var(--color-brand); color: #fff;
  padding: .5rem 1rem; border-radius: var(--radius);
  z-index: 999;
}
.skip-link:focus { left: 1rem; top: 1rem; }
