/** Base typography, focus treatment, and Astra-safe content defaults. */
body {
  color: var(--vc-ink);
  font-family: var(--vc-sans);
  font-size: clamp(1rem, 0.96rem + 0.15vw, 1.0625rem);
  line-height: 1.7;
}

h1, h2, h3, h4, h5, h6,
.editor-post-title__input {
  color: var(--vc-navy);
  font-family: var(--vc-serif);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.12;
  text-wrap: balance;
}

h1 { font-size: clamp(2.75rem, 1.8rem + 3.2vw, 5.25rem); }
h2 { font-size: clamp(2rem, 1.45rem + 1.9vw, 3.25rem); }
h3 { font-size: clamp(1.35rem, 1.15rem + 0.7vw, 1.75rem); }

.vc-display-title {
  color: inherit;
  font-family: var(--vc-serif);
  font-size: clamp(2.75rem, 1.8rem + 3.2vw, 5.25rem);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.12;
  margin-block: 0.67em;
  text-wrap: balance;
}

a { color: var(--vc-gold-dark); text-underline-offset: 0.2em; }
a:hover { color: var(--vc-navy-soft); }

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 3px solid var(--vc-gold);
  outline-offset: 3px;
}

.vc-shell {
  margin-inline: auto;
  max-width: var(--vc-wide);
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.vc-section { padding-block: var(--vc-space-xl); }
.vc-section--mist { background: var(--vc-mist); }
.vc-section--navy { background: var(--vc-navy); color: var(--vc-white); }
.vc-section--navy :is(h1, h2, h3, p, a) { color: inherit; }

.vc-eyebrow {
  color: var(--vc-gold-dark);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  margin-block: 0 var(--vc-space-xs);
  text-transform: uppercase;
}

.vc-section--navy .vc-eyebrow { color: var(--vc-gold-light); }
.vc-lead { font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); max-width: 62ch; }
.vc-prose { margin-inline: auto; max-width: var(--vc-content); }
.vc-prose > * + * { margin-block-start: 1.35em; }

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