/**
 * base.css — Base Typography, Focus Outlines, and Semantic Elements
 */

h1, h2, h3, h4, h5, h6 {
  color: var(--color-text-primary);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
}

h1 {
  font-size: var(--font-size-3xl);
  letter-spacing: -0.025em;
  margin-bottom: var(--space-4);
}

h2 {
  font-size: var(--font-size-2xl);
  letter-spacing: -0.02em;
  margin-top: var(--space-8);
  margin-bottom: var(--space-3);
}

h3 {
  font-size: var(--font-size-xl);
  margin-top: var(--space-6);
  margin-bottom: var(--space-2);
}

h4 {
  font-size: var(--font-size-lg);
  margin-top: var(--space-4);
  margin-bottom: var(--space-2);
}

p {
  color: var(--color-text-secondary);
  font-size: var(--font-size-base);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--space-4);
}

strong, b {
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
}

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

code, kbd, samp, pre {
  font-family: var(--font-family-mono);
  font-size: 0.9em;
}

code {
  background-color: var(--color-bg-subtle);
  color: var(--color-brand-primary);
  padding: 0.15em 0.4em;
  border-radius: var(--radius-xs);
  border: 1px solid var(--color-border-subtle);
}

kbd {
  display: inline-block;
  padding: 0.15em 0.45em;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  line-height: 1.2;
  color: var(--color-text-primary);
  background-color: var(--color-bg-surface-elevated);
  border: 1px solid var(--color-border-medium);
  border-radius: var(--radius-xs);
  box-shadow: 0 1px 0 var(--color-border-medium);
}

hr {
  border: 0;
  border-top: 1px solid var(--color-border-subtle);
  margin: var(--space-8) 0;
}

/* Accessible Focus Outlines (WCAG 2.2 AA) */
:focus-visible {
  outline: 2px solid var(--color-brand-primary);
  outline-offset: 3px;
}

/* Skip to Content Link */
.skip-link {
  position: absolute;
  top: -100px;
  left: var(--space-4);
  z-index: 9999;
  padding: var(--space-3) var(--space-5);
  background-color: var(--color-brand-primary);
  color: #FFFFFF;
  font-weight: var(--font-weight-semibold);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  transition: top var(--transition-fast);
}

.skip-link:focus {
  top: var(--space-4);
}

/* Selection Highlight */
::selection {
  background-color: var(--color-brand-primary);
  color: #FFFFFF;
}
