/* Shared navigation. Header links lead to landing sections; footer covers all pages. */
.site-header { display:flex; align-items:center; gap:var(--layout-gap); padding-block:var(--space-6); min-height:var(--space-24); }
.location { border-left:var(--size-1) solid var(--color-line-strong); padding-left:var(--layout-gap); font-size:var(--text-sm); line-height:1.25; }
.header-nav { display:flex; align-items:center; gap:var(--space-4); margin-left:auto; }
.header-nav a { display:inline-flex; align-items:center; min-height:var(--touch-target); font-size:var(--text-sm); text-decoration:none; white-space:nowrap; }
.header-nav a:hover { text-decoration:underline; }
.header-menu-toggle { justify-self:end; display:none; align-items:center; justify-content:center; gap:var(--space-3); min-width:var(--touch-target); min-height:var(--touch-target); border:var(--size-1) solid var(--color-ink); background:transparent; color:var(--color-ink); padding:var(--space-2) var(--space-3); cursor:pointer; font-size:var(--text-sm); }
.menu-symbol { position:relative; width:var(--space-5); height:var(--space-4); border-top:var(--size-2) solid currentColor; border-bottom:var(--size-2) solid currentColor; }
.menu-symbol::before { content:""; position:absolute; left:0; right:0; top:50%; border-top:var(--size-2) solid currentColor; transform:translateY(-50%); }
.header-menu-toggle[aria-expanded="true"] .menu-symbol { border-color:transparent; }
.header-menu-toggle[aria-expanded="true"] .menu-symbol::before,
.header-menu-toggle[aria-expanded="true"] .menu-symbol::after { content:""; position:absolute; left:0; right:0; top:50%; border-top:var(--size-2) solid currentColor; transform:rotate(45deg); }
.header-menu-toggle[aria-expanded="true"] .menu-symbol::after { transform:rotate(-45deg); }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:var(--space-8); }
.footer-top-links { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-3) var(--space-8); }
.footer-top-links a { display:inline-flex; align-items:center; min-height:var(--touch-target); font-size:var(--text-sm); text-decoration:none; }
.footer-top-links a:hover { text-decoration:underline; }
.footer-directory { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--space-8); padding-block:var(--space-12); margin-top:var(--space-8); border-top:var(--size-1) solid var(--color-on-dark-line); border-bottom:var(--size-1) solid var(--color-on-dark-line); }
.footer-group { min-width:0; }
.footer-group summary { list-style:none; cursor:default; margin-bottom:var(--space-4); }
.footer-group summary::-webkit-details-marker { display:none; }
.footer-group summary .category-toggle { display:none; }
.footer-directory h2 { font-size:var(--text-sm); font-weight:700; line-height:1.4; margin:0; }
.footer-directory ul { margin:0; padding:0; list-style:none; }
.footer-directory a { display:inline-flex; align-items:center; min-height:var(--touch-target); color:var(--color-on-dark-muted); font-size:var(--text-sm); line-height:1.45; text-decoration:none; padding-block:var(--space-2); }
.footer-directory a:hover { color:var(--color-on-dark); text-decoration:underline; }
.footer-directory a[aria-current="page"], .footer-top-links a[aria-current="page"] { color:var(--color-on-dark); text-decoration:underline; }
@media(max-width:1280px) {
  .site-header { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:var(--space-4); }
  .site-header .wordmark { grid-column:1; grid-row:1; }
  .site-header .location { grid-column:2; grid-row:1; }
  .header-contacts { grid-column:3; grid-row:1; }
  .header-menu-toggle:not([hidden]) { display:inline-flex; grid-column:4; grid-row:1; }
  .header-nav { grid-column:1/-1; grid-row:2; margin:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:var(--size-1) solid var(--color-line); padding-top:var(--space-4); gap:var(--space-4); }
  .site-header.has-menu .header-nav:not(.is-open) { display:none; }
  .footer-directory { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .site-header { grid-template-columns:minmax(0,1fr) auto; gap:var(--space-3); padding-block:var(--space-4); min-height:0; }
  .header-menu-toggle:not([hidden]) { grid-column:2; grid-row:1; }
  .site-header .location { grid-column:1; grid-row:2; border:0; padding:0; font-size:var(--text-xs); }
  .header-contacts { grid-column:2; grid-row:2; }
  .header-nav { grid-row:3; grid-template-columns:1fr; padding-top:var(--space-2); gap:0; }
  .header-nav a { padding-block:var(--space-3); min-height:var(--control-height); border-bottom:var(--size-1) solid var(--color-line); font-size:var(--text-base); }
  .footer-group summary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); min-height:var(--touch-target); cursor:pointer; margin:0; }
  .footer-group summary .category-toggle { display:block; flex-shrink:0; }
  .footer-group[open] summary .category-toggle::after { transform:rotate(0); }
  .footer-group ul { margin-top:var(--space-3); }
  .footer-top { align-items:start; flex-direction:column; gap:var(--space-4); }
  .footer-top-links { gap:var(--space-2) var(--space-6); }
  .footer-directory { grid-template-columns:1fr; gap:var(--space-3); padding-block:var(--space-6); margin-top:var(--space-6); }
}
@media(max-width:360px) {
  .site-header .location { display:none; }
  .header-contacts { grid-column:1/-1; justify-content:flex-end; }
}
