/* 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; } }
