/* Foundation and semantic tokens. Values follow the Stitch editorial direction. */
:root {
  --gt-primary: var(--wp--preset--color--primary, #1d4ed8);
  --gt-primary-soft: var(--wp--preset--color--primary-soft, #eff6ff);
  --gt-text: var(--wp--preset--color--text, #181b25);
  --gt-muted: var(--wp--preset--color--muted, #64748b);
  --gt-background: var(--wp--preset--color--background, #faf9ff);
  --gt-card: var(--wp--preset--color--card, #fff);
  --gt-surface: var(--wp--preset--color--surface, #f8fafc);
  --gt-border: var(--wp--preset--color--border, #e2e8f0);
  --gt-border-strong: var(--wp--preset--color--border-strong, #cbd5e1);
  --gt-success: var(--wp--preset--color--success, #047857);
  --gt-success-soft: var(--wp--preset--color--success-soft, #ecfdf5);
  --gt-space-xs: var(--wp--preset--spacing--xs, .25rem);
  --gt-space-sm: var(--wp--preset--spacing--sm, .5rem);
  --gt-space-md: var(--wp--preset--spacing--md, .875rem);
  --gt-space-lg: var(--wp--preset--spacing--lg, 1.25rem);
  --gt-space-xl: var(--wp--preset--spacing--xl, 2rem);
  --gt-space-2xl: var(--wp--preset--spacing--2xl, 3rem);
  --gt-radius-sm: var(--wp--custom--radius--sm, 4px);
  --gt-radius-md: var(--wp--custom--radius--md, 8px);
  --gt-radius-lg: var(--wp--custom--radius--lg, 12px);
  --gt-radius-xl: var(--wp--custom--radius--xl, 16px);
  --gt-radius-pill: var(--wp--custom--radius--pill, 9999px);
  --gt-content-width: 760px;
  --gt-wide-width: 1280px;
  /* TODO: prepend local Plus Jakarta Sans after licensed font files are added. */
  --gt-font: var(--wp--preset--font-family--sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--gt-background); color: var(--gt-text); font-family: var(--gt-font); line-height: 1.6; }
img, svg, video { max-width: 100%; }
img { display: block; height: auto; }
figure { margin: 0; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
a { color: var(--gt-primary); text-decoration-thickness: 1px; text-underline-offset: .17em; }
a:hover { text-decoration-thickness: 2px; }
::selection { background: #bfdbfe; color: #0f172a; }
:focus-visible { outline: 3px solid var(--gt-primary); outline-offset: 3px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus, .skip-link:focus { clip: auto; width: auto; height: auto; overflow: visible; white-space: normal; position: fixed; z-index: 1000; left: 1rem; top: 1rem; padding: .75rem 1rem; background: #fff; color: var(--gt-text); border: 2px solid var(--gt-primary); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms; animation-duration: .01ms; } }
