/* Shared header and footer for the homepage and the 11 generated pages. Tokens only.
   Requires /ds/tokens.css and /ds/components.css loaded first. */
.site-header { background: var(--white); color: var(--charcoal); border-bottom: 1px solid var(--rule); position: sticky; top: 0; z-index: 200; }
.site-header .bar { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); min-height: var(--header-h); max-width: var(--w-wide); margin-inline: auto; padding-inline: var(--gutter); }
.nav-logo { display: block; flex: none; line-height: 0; text-decoration: none; }
.logo-art { display: block; background: url(/ds/assets/logo-horizontal-orange.png) no-repeat left center / contain; }
.nav-logo-img { height: var(--logo-h); width: calc(var(--logo-h) * 2.3256); }
.nav-links { display: none; align-items: center; gap: var(--s-6); }
.nav-links a { color: var(--charcoal); text-decoration: none; font-size: var(--fs-small); font-weight: 600; }
.nav-links a:hover { color: var(--cobalt); text-decoration: underline; }
.site-header .nav-btn { min-height: 46px; padding: 10px 22px; font-size: var(--fs-small); }
@media (min-width: 1100px) { .site-header .nav-links { display: flex; } }
@media (max-width: 760px) {
  .site-header .bar { gap: var(--s-3); }
  .site-header .nav-btn { white-space: normal; max-width: 11.5em; padding: 8px 14px; line-height: 1.15; }
}
.site-footer { background: var(--charcoal); color: var(--white); --link: var(--gold); --focus: var(--gold); padding-block: var(--s-7); font-size: var(--fs-small); }
.site-footer .bar { display: flex; flex-wrap: wrap; gap: var(--s-5) var(--s-7); align-items: center; justify-content: space-between; max-width: var(--w-wide); margin-inline: auto; padding-inline: var(--gutter); }
.flogo { display: block; line-height: 0; text-decoration: none; }
.flogo-img { height: 40px; width: calc(40px * 2.3256); background-image: url(/ds/assets/logo-horizontal-white.png); }
.fcopy { color: var(--muted-charcoal); }
.flinks { display: flex; flex-wrap: wrap; gap: var(--s-5); align-items: center; }
.flinks a:not(.btn) { color: var(--white); }
.flinks a:not(.btn):hover { color: var(--gold); }
.flinks .btn { --btn-bg: var(--gold); --btn-fg: var(--charcoal); --btn-border: var(--gold); --btn-hover-bg: var(--white); --btn-hover-fg: var(--charcoal); min-height: 46px; padding: 10px 22px; font-size: var(--fs-small); }
@media (max-width: 760px) { .site-footer .bar { flex-direction: column; text-align: center; } .flinks { justify-content: center; } }
/* Footer resources group: a small link grid above the logo row */
.fres { max-width: var(--w-wide); margin: 0 auto var(--s-6); padding: 0 var(--gutter); }
.fres-t { font-family: var(--font-display); font-stretch: var(--display-stretch); font-weight: var(--display-weight); letter-spacing: var(--tracking-display); font-size: var(--fs-body); color: var(--white); }
.fres ul { margin-top: var(--s-4); padding-bottom: var(--s-6); border-bottom: 1px solid var(--rule-dark); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-3) var(--s-6); }
.fres a { color: var(--white); line-height: 1.4; }
.fres a:hover { color: var(--gold); }
@media (max-width: 900px) { .fres ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3) var(--s-5); } }
