/*
  Global reset + base element defaults, built on tokens.css.
  Only loaded by base.html — pages not yet migrated to the design
  system (see the redesign plan) don't load this, so their existing
  body/heading styling is left alone until their turn to migrate.
*/

*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    background-color: var(--sand-50);
    color: var(--ink-900);
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    color: var(--forest-900);
    line-height: 1.2;
    margin: 0 0 var(--space-3);
}

a {
    color: inherit;
}

img {
    max-width: 100%;
    display: block;
}

/* Pages that include the navbar partial via base.html need this so the
   fixed navbar never overlaps page content. */
body.has-navbar {
    padding-top: var(--navbar-height);
}

:focus-visible {
    outline: 3px solid var(--lime-500);
    outline-offset: 2px;
}
