/* Shared brand details and spacing, loaded after each page stylesheet. */
:root { --tint: #f4f5f7; }

header {
  padding: 1.25rem 3rem;
  gap: 1.25rem;
  background: var(--bg);
  backdrop-filter: none;
}
.header-nav { margin-top: 0; }
.header-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  line-height: 1.35;
}
.btn-primary,
button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  line-height: 1.4;
  text-align: center;
}
.page-label,
.section-kicker,
.card-label { font-family: 'DM Sans', sans-serif; line-height: 1.6; }
.footer-copy { line-height: 1.8; }
.footer-links { gap: 0 1.25rem; }
.footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  letter-spacing: 0.03em;
}
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

.hero,
.service-hero,
.approach-hero { padding-block: 4.5rem 3.5rem; }
.content-section,
.closing-cta,
.cta-section { padding-block: 4rem; }
.about-intro,
.section-shell { margin-inline: 3rem; }
.about-intro { padding-block: 4.5rem 3rem; }
.about-intro + .content-section { padding-top: 1.5rem; }
.service-coverage + .closing-cta { padding-top: 1.5rem; }
.service-coverage p:last-child { margin-bottom: 0; }
.coverage-area { padding-top: 2.1rem; }

@media (max-width: 768px) {
  header { padding: 1rem 1.5rem; gap: 0.75rem; }
  .header-nav { margin: 0; }
  .header-nav a { padding-block: 0.5rem; }
  .hero,
  .service-hero,
  .approach-hero { padding-block: 2.75rem 3rem; }
  .content-section,
  .closing-cta,
  .cta-section { padding-block: 3rem; }
  .content-section[aria-labelledby] { padding-block: 3rem; }
  .about-intro,
  .section-shell { margin-inline: 1.5rem; }
  .about-intro { padding-block: 2.75rem 2rem; }
  .about-intro + .content-section { padding-top: 1.25rem; }
  .service-coverage + .closing-cta { padding-top: 1rem; }
  .coverage-area { padding-top: 2rem; }
  .footer-copy,
  .footer-links a { font-size: 0.8rem; font-weight: 400; }
  .footer-links a { padding-block: 0.5rem; }
}

@media (max-width: 520px) {
  .header-nav {
    display: grid;
    grid-template-columns: repeat(4, max-content);
    justify-content: space-between;
    column-gap: 0.5rem;
    align-items: center;
  }
  .header-nav a {
    min-width: 0;
    justify-content: center;
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-align: center;
  }
  .header-nav .program-evaluation-link span { width: min-content; line-height: 1.35; }
}


/* Layout and accessibility refinements. */

:root { --panel-padding: 2rem; --section-inner-width: 1084px; }
.header-nav a[aria-current="page"] { color: var(--accent); }
main [id] { scroll-margin-top: 7rem; }
@media (max-width: 768px) {
  :root { --panel-padding: 1.5rem; }
  main [id] { scroll-margin-top: 10rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
