/**
 * USDA-inspired content foundation.
 * Applied after legacy styles so migrated HTML receives consistent typography.
 */
:root {
  --nass-ink: #1b1b1b;
  --nass-muted: #565c65;
  --nass-blue: #005ea8;
  --nass-blue-dark: #1a4480;
  --nass-navy: #162e51;
  --nass-green: #4a7729;
  --nass-gold: #ffbe2e;
  --nass-border: #dfe1e2;
  --nass-surface: #f7f9fa;
  --nass-font: "Source Sans Pro Web", "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html { scroll-behavior: smooth; }
body {
  color: var(--nass-ink);
  font-family: var(--nass-font);
  font-size: 1.0625rem;
  line-height: 1.58;
  letter-spacing: 0;
  text-rendering: optimizeLegibility;
}

main, .layout-content, .region-content, .usa-prose {
  color: var(--nass-ink);
  font-family: var(--nass-font);
}

/* Keep USWDS emergency alert copy readable on its dark background. */
.nass-paragraph--callout.usa-alert--emergency .usa-alert__text,
.nass-paragraph--callout.usa-alert--emergency .usa-alert__text a:not(.usa-button) {
  color: inherit;
}

main h1, main h2, main h3, main h4, main h5, main h6,
.layout-content h1, .layout-content h2, .layout-content h3, .layout-content h4, .layout-content h5, .layout-content h6,
.region-content h1, .region-content h2, .region-content h3, .region-content h4, .region-content h5, .region-content h6 {
  color: var(--nass-navy);
  font-family: var(--nass-font);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -.012em;
  margin: 2.1rem 0 .75rem;
  max-width: 48rem;
}
main h1, .layout-content h1, .region-content h1 { font-size: clamp(2.15rem, 4vw, 3.25rem); letter-spacing: -.025em; margin-top: 0; }
main h2, .layout-content h2, .region-content h2 { border-top: .25rem solid var(--nass-gold); font-size: clamp(1.7rem, 3vw, 2.35rem); padding-top: .65rem; }
main h3, .layout-content h3, .region-content h3 { font-size: clamp(1.35rem, 2vw, 1.7rem); }
main h4, .layout-content h4, .region-content h4 { font-size: 1.28rem; }
main h5, .layout-content h5, .region-content h5 { font-size: 1.1rem; text-transform: uppercase; letter-spacing: .05em; }
main h6, .layout-content h6, .region-content h6 { color: var(--nass-muted); font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; }

main p, .layout-content p, .region-content p, .usa-prose p {
  margin: 0 0 1.25rem;
  max-width: 75ch;
}
main p + h2, main p + h3, main ul + h2, main ol + h2,
.layout-content p + h2, .layout-content p + h3 { margin-top: 2.7rem; }

main a:not(.usa-button), .layout-content a:not(.usa-button), .region-content a:not(.usa-button), .usa-prose a:not(.usa-button) {
  color: var(--nass-blue);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: .08em;
  text-underline-offset: .14em;
  transition: color .16s ease, background-color .16s ease, text-decoration-color .16s ease;
}
main a:not(.usa-button):hover, main a:not(.usa-button):focus, .layout-content a:not(.usa-button):hover, .layout-content a:not(.usa-button):focus, .region-content a:not(.usa-button):hover, .region-content a:not(.usa-button):focus, .usa-prose a:not(.usa-button):hover, .usa-prose a:not(.usa-button):focus {
  color: var(--nass-blue-dark);
  text-decoration-thickness: .13em;
}
main a:not(.usa-button):focus-visible, .layout-content a:not(.usa-button):focus-visible, .region-content a:not(.usa-button):focus-visible { outline: .2rem solid #2491ff; outline-offset: .18rem; }

main ul, main ol, .layout-content ul, .layout-content ol, .region-content ul, .region-content ol, .usa-prose ul, .usa-prose ol {
  margin: 0 0 1.35rem;
  max-width: 72ch;
  padding-left: 1.6rem;
}
main ul, .layout-content ul, .region-content ul, .usa-prose ul { list-style: square; }
main ol, .layout-content ol, .region-content ol, .usa-prose ol { list-style: decimal; }
main li, .layout-content li, .region-content li, .usa-prose li { margin: .45rem 0; padding-left: .15rem; }
main li > ul, main li > ol, .layout-content li > ul, .layout-content li > ol { margin: .45rem 0 .15rem; }

main blockquote, .layout-content blockquote, .region-content blockquote, .usa-prose blockquote {
  border-left: .4rem solid var(--nass-green);
  color: #3d4551;
  font-size: 1.23rem;
  font-style: italic;
  line-height: 1.5;
  margin: 1.8rem 0;
  max-width: 65ch;
  padding: .85rem 1.25rem;
}
main blockquote p:last-child, .layout-content blockquote p:last-child, .region-content blockquote p:last-child { margin-bottom: 0; }
main cite, .layout-content cite, .region-content cite { color: var(--nass-muted); font-size: .93rem; font-style: normal; }
main q, .layout-content q, .region-content q { color: var(--nass-navy); font-style: italic; }
main strong, .layout-content strong, .region-content strong { font-weight: 700; }
main em, .layout-content em, .region-content em { font-style: italic; }
main dl, .layout-content dl, .region-content dl { border-left: .25rem solid var(--nass-border); margin: 1.5rem 0; padding-left: 1rem; }
main dt, .layout-content dt, .region-content dt { color: var(--nass-navy); font-weight: 700; margin-top: .75rem; }
main dd, .layout-content dd, .region-content dd { margin: .2rem 0 0; }
main hr, .layout-content hr, .region-content hr { border: 0; border-top: 1px solid var(--nass-border); margin: 2.2rem 0; }

main table, .layout-content table, .region-content table {
  border-collapse: collapse;
  font-size: .98rem;
  margin: 1.5rem 0 2rem;
  width: 100%;
}
main th, main td, .layout-content th, .layout-content td, .region-content th, .region-content td { border: 1px solid var(--nass-border); padding: .72rem .85rem; text-align: left; vertical-align: top; }
main th, .layout-content th, .region-content th { background: var(--nass-navy); color: #fff; font-weight: 700; }
main tbody tr:nth-child(even), .layout-content tbody tr:nth-child(even), .region-content tbody tr:nth-child(even) { background: var(--nass-surface); }

main code, main pre, .layout-content code, .layout-content pre, .region-content code, .region-content pre {
  background: #f0f0f0;
  border-radius: .15rem;
  color: #1b1b1b;
  font-family: "Roboto Mono", Consolas, monospace;
}
main code, .layout-content code, .region-content code { font-size: .9em; padding: .12rem .3rem; }
main pre, .layout-content pre, .region-content pre { overflow-x: auto; padding: 1rem; }
main pre code, .layout-content pre code, .region-content pre code { background: transparent; padding: 0; }

main img, .layout-content img, .region-content img { height: auto; max-width: 100%; }
main figure, .layout-content figure, .region-content figure { margin: 1.8rem 0; }
main figcaption, .layout-content figcaption, .region-content figcaption { color: var(--nass-muted); font-size: .93rem; margin-top: .55rem; }

main input, main select, main textarea, .layout-content input, .layout-content select, .layout-content textarea {
  border: 1px solid #565c65;
  border-radius: 0;
  font-family: var(--nass-font);
  min-height: 2.5rem;
  padding: .45rem .6rem;
}
main label, .layout-content label, .region-content label { color: var(--nass-ink); font-weight: 700; }

@media (max-width: 47.99rem) {
  body { font-size: 1rem; line-height: 1.52; }
  main h1, .layout-content h1, .region-content h1 { font-size: 2.15rem; }
  main h2, .layout-content h2, .region-content h2 { font-size: 1.65rem; }
  main ul, main ol, .layout-content ul, .layout-content ol, .region-content ul, .region-content ol { padding-left: 1.3rem; }
  main th, main td, .layout-content th, .layout-content td, .region-content th, .region-content td { padding: .55rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
