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

/* Owner-approved reading rhythm, 2026-10-29. Preserve cinematic home/office heroes. */
html body main > :is(.pagehead,.page-hero):not(.office-hero){padding-block:clamp(28px,3.2vw,44px);min-height:0}
html body main > :is(.block,.band,.section,.ny-section):not(.hero):not(.cinema){padding-block:clamp(30px,4vw,54px)}
html body main > :is(.block.tight,.band-tight){padding-block:clamp(24px,3vw,40px)}
html body > footer{padding-block:clamp(26px,3vw,40px) 22px}
html body .sn-network{padding-block:24px}
html body main > .book-explained{padding-block:clamp(30px,4vw,54px)}
@media(max-width:640px){html body main > :is(.pagehead,.page-hero):not(.office-hero){padding-block:26px}html body main > :is(.block,.band,.section,.ny-section):not(.hero):not(.cinema){padding-block:30px}html body > footer{padding-top:28px;padding-bottom:20px}}

/* Interior templates may sit directly under body. Compact the inner wrapper too. */
html body :is(main,body)>:is(.pagehead,.page-hero,.page-head):not(.office-hero),html body>:is(.pagehead,.page-hero,.page-head):not(.office-hero){padding-block:clamp(28px,3.2vw,44px);min-height:0}
html body :is(.pagehead,.page-hero,.page-head):not(.office-hero)>.wrap{padding-block:0}
html body>:is(.section,.block,.band,.ny-section):not(.hero):not(.cinema){padding-block:clamp(30px,4vw,54px)}
html body>.site-footer>.wrap,html body>.site-footer>.container{padding-block:0}
@media(max-width:640px){html body :is(.pagehead,.page-hero,.page-head):not(.office-hero){padding-block:26px}}
