* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-sans);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.55;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.container {
  width: min(100% - 32px, var(--container));
  margin-inline: auto;
}
.section {
  padding: 72px 0;
  scroll-margin-top: calc(var(--header-height) + 18px);
}
.section.compact { padding: 40px 0; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  color: var(--color-primary);
  background: rgba(0, 89, 168, .08);
  font-size: .86rem;
  font-weight: 800;
}
.h1, h1 { font-size: clamp(2.2rem, 8vw, 5.2rem); line-height: .98; letter-spacing: -.06em; margin: 0; }
.h2, h2 { font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.08; letter-spacing: -.04em; margin: 0; }
.h3, h3 { font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.18; margin: 0; }
p { color: var(--color-muted); margin: 0; }
.text-rich h1, .text-rich h2, .text-rich h3 { margin: 1rem 0 .5rem; }
.text-rich p { margin: .7rem 0; }
.text-rich ul, .text-rich ol { color: var(--color-muted); padding-left: 1.25rem; }
.hidden { display: none !important; }
.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; }
.loading-screen, .admin-loading {
  min-height: 100vh;
  display: grid;
  place-items: center;
  gap: 10px;
  align-content: center;
  color: var(--color-muted);
}
.loading-screen strong { color: var(--color-primary); font-size: 2rem; }
