/* Base reset (minimal, accessible) */
* { box-sizing: border-box; }
html:focus-within { scroll-behavior: smooth; }
html, body { height: 100%; }
body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; color: #1f2937; background: #ffffff; line-height: 1.65; }

/* Color tokens */
:root {
  --brand: #214e8a;
  --brand-600: #1b4274;
  --brand-700: #15345a;
  --text: #1f2937;
  --muted: #6b7280;
  --bg: #ffffff;
  --bg-alt: #f8fafc;
  --border: #e5e7eb;
  --accent: #0ea5e9;
  --success: #16a34a;
  --focus: #fb923c;
  --shadow: 0 10px 30px rgba(17, 24, 39, 0.08);
  --topbar-bg: #1A2E40;
}

/* Typography scale */
h1, h2, h3 { line-height: 1.25; color: var(--text); margin: 0 0 0.5rem; }
h1 { font-size: clamp(1.8rem, 2.5vw + 1.2rem, 3rem); }
h2 { font-size: clamp(1.4rem, 1.2vw + 1rem, 2rem); margin-bottom: 1rem; }
h3 { font-size: clamp(1.1rem, 0.8vw + 0.9rem, 1.25rem); }
p { margin: 0 0 1rem; color: var(--text); }
strong { color: var(--text); }

/* Responsive type downscaling */
@media (max-width: 770px) {
  h1 { font-size: clamp(1.6rem, 4.5vw + 0.8rem, 2.2rem); }
  h2 { font-size: clamp(1.2rem, 3.2vw + 0.6rem, 1.6rem); }
  h3 { font-size: clamp(1rem, 2.4vw + 0.5rem, 1.15rem); }
  body { font-size: 0.98rem; }
}

/* Utilities */
.container { width: min(1120px, 92%); margin: 0 auto; }
.section { padding: 64px 0; }
.section-alt { background: var(--bg-alt); }
.grid-two { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 768px){ .grid-two { grid-template-columns: 1.2fr 0.8fr; align-items: start; } }

/* Sections scroll margin */
section[id] { scroll-margin-top: 96px; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto; }
  * { transition: none !important; animation: none !important; }
}

/* SEO helpers */
img[loading="lazy"] { content-visibility: auto; }

