html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-sans);
  font-size: var(--fs-16);
  line-height: var(--lh-base);
  color: var(--color-text-primary);
  background: var(--color-bg-body);
}

main {
  min-height: calc(100vh - var(--header-height));
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  color: var(--color-navy-900);
  letter-spacing: -0.02em;
  line-height: var(--lh-tight);
  margin-bottom: var(--space-16);
}

h1 { font-size: clamp(1.9rem, 1.45rem + 1.6vw, var(--fs-40)); }
h2 { font-size: clamp(1.6rem, 1.25rem + 1.2vw, var(--fs-32)); }
h3 { font-size: clamp(1.25rem, 1.1rem + 0.8vw, var(--fs-24)); }
h4 { font-size: var(--fs-20); }

p {
  margin-bottom: var(--space-16);
  color: var(--color-text-secondary);
}

small {
  font-size: var(--fs-14);
  color: var(--color-text-muted);
}

section {
  padding-block: var(--space-64);
}

hr {
  border: 0;
  border-top: 1px solid var(--color-border-soft);
  margin-block: var(--space-24);
}

:focus-visible {
  outline: 3px solid rgba(31, 71, 120, 0.35);
  outline-offset: 2px;
}

::selection {
  color: var(--color-white);
  background: var(--color-brand-primary);
}
