/* Shusterman network footer.
   Self-contained and theme-neutral: it inherits the host site's font and
   adapts to a light or dark surface. A site can match it exactly by setting
   any of the --sn-* variables once, anywhere in its own stylesheet. */
.sn-network{
  --sn-bg:        transparent;
  --sn-fg:        currentColor;
  --sn-muted:     color-mix(in srgb, currentColor 62%, transparent);
  --sn-rule:      color-mix(in srgb, currentColor 15%, transparent);
  --sn-accent:    currentColor;
  --sn-radius:    10px;
  font-family: inherit;
  background: var(--sn-bg);
  color: var(--sn-fg);
  border-top: 1px solid var(--sn-rule);
  padding: 2.5rem 1.25rem 2rem;
}
.sn-network__inner{ max-width: 1100px; margin: 0 auto; }
.sn-network__label{
  font-size: .72rem; letter-spacing: .09em; text-transform: uppercase;
  font-weight: 600; color: var(--sn-muted); margin: 0 0 .3rem;
}
.sn-network__sublabel{
  font-size: .84rem; color: var(--sn-muted); margin: 0 0 1.4rem; line-height:1.5;
}
.sn-network__grid{
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: .35rem 1.75rem;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}
.sn-network__item{ padding: .5rem 0; border-bottom: 1px solid var(--sn-rule); }
.sn-network__link{
  color: var(--sn-accent); text-decoration: none; font-weight: 600;
  font-size: .95rem; display: inline-block;
}
.sn-network__link:hover, .sn-network__link:focus-visible{ text-decoration: underline; }
.sn-network__purpose{
  display: block; font-size: .8rem; color: var(--sn-muted);
  margin-top: .1rem; line-height: 1.45;
}
@media (max-width: 480px){
  .sn-network{ padding: 2rem 1rem 1.5rem; }
  .sn-network__grid{ grid-template-columns: 1fr; }
}
/* Guard against host-site rules aimed at bare <nav> (e.g. mobile menus). */
nav.sn-network{ display:block !important; position:static !important; inset:auto !important;
  width:auto !important; height:auto !important; box-shadow:none !important; transform:none !important;
  opacity:1 !important; visibility:visible !important; background:var(--sn-bg) !important; margin:0 !important; }
nav.sn-network ul, nav.sn-network li{ display:revert; }
nav.sn-network .sn-network__grid{ display:grid !important; }
nav.sn-network a{ background:none; padding:0; }
/* Contextual specialist callout (topic-links.py). */
.sn-related{ max-width: 760px; margin: 2.5rem auto; padding: 1.1rem 1.3rem;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent); border-left-width: 4px;
  border-radius: 10px; font-size: .98rem; line-height: 1.55; box-sizing: border-box; }
.sn-related__h{ margin: 0 0 .35rem; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase;
  font-weight: 600; opacity: .7; }
.sn-related__p{ margin: 0; }
.sn-related a{ font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.sn-related__by{ opacity: .7; white-space: nowrap; }
@media (max-width: 800px){ .sn-related{ margin: 2rem 1rem; } }
/* Offices line (from _config/nap.json). */
.sn-network__offices-label{ margin-top: 1.6rem; }
.sn-network__offices{ list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem;
  font-size: .82rem; color: var(--sn-muted); line-height: 1.5; }
nav.sn-network .sn-network__offices{ display: grid !important; }
.sn-network__office strong{ color: var(--sn-fg); font-weight: 600; }
.sn-network__office a{ color: var(--sn-accent); white-space: nowrap; }

/* Narrow-screen audit: contain comparison tables within the article column. */
.article-body{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){.article-body table.cmp{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}

/* Keep the existing mobile menu toggle visibly actionable. */
@media(max-width:900px){header .nav{position:relative}header .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;align-items:stretch;gap:0;flex-direction:column;max-height:calc(100vh - 150px);overflow-y:auto;background:#f4f6f8;border-top:1px solid #d7dde2;box-shadow:0 10px 20px rgba(15,35,56,.12);padding:8px 20px}header .nav-links.open a{padding:12px 4px;white-space:normal;overflow-wrap:anywhere;color:#142333}}
