/* PAGE-TITLE-BAND-1 (founder Craig 19:25 + 19:26 UTC 2026-10-25; Creative brand/specs/page-title-band-v1.md sha256 50339dc4).
   ONE file on all 7 hosts (hub + 5 niches link /assets/page-title-band-v1.<h>.css after sh-classes-v1; members links the byte-identical
   copy). Strings live in shared/content/page-title-band.json. Nebula night only.
   1. Header: p.sh__title is gone from every header, so the header is ONE row at every width (logo + Members log in left,
      Online Classes + Blog right; the old title column becomes an empty spacer). 64px row, 44px targets unchanged. */
.sh.sh--v2 .sh__inner{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"home cta . right"}
@media (max-width:1023.98px){
  .sh.sh--v2 .sh__inner{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"home cta . right";row-gap:0;padding-top:6px;padding-bottom:6px;min-height:var(--sh-h,64px)}
}
/* 2. Title band: first block in <main> on every page. No background (sits on space #06060A). */
.page-title{text-align:center;padding:48px 0 8px;background:none}
.page-title .page-title__h{margin:0;font-family:var(--font-heading,'Nunito'),'Nunito','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  font-weight:800;font-size:clamp(2.25rem,1.5rem + 3.2vw,3.5rem);line-height:1.1;letter-spacing:normal;color:#FFFFFF;text-wrap:balance;font-synthesis:none}
.page-title .page-title__sub{margin:10px 0 0;font-family:var(--font-body,'Source Sans 3'),'Source Sans 3','Segoe UI',system-ui,Arial,sans-serif;
  font-weight:600;font-size:1.0625rem;line-height:1.4;letter-spacing:.01em;color:#2FD3EE;max-width:none}
@media (max-width:479.98px){.page-title{padding:32px 0 4px}}
/* 3. First H2 under the band where the page had none (spec 3: clamp(1.5rem, 1.15rem + 1.5vw, 2.25rem)). --c = centred (hub home, blog lists). */
h2.page-title__h2{font-size:clamp(1.5rem,1.15rem + 1.5vw,2.25rem);line-height:1.2;text-wrap:balance}
h2.page-title__h2--c{text-align:center;margin:24px 0 24px}
/* 4. Gap + seam (Creative 20:07 UTC, preview round 2). Sub -> next content = 24px at 390, 40px at 1280 (linear between), on every host:
      the band keeps its 32/48px top and loses its bottom padding (main > section beats the site-wide section padding); the block after it
      takes the gap as padding-top (glass cards as margin, so their inner padding stays) and the first-child chain inside it drops its top margin.
      Seam: the old hero glow (::before) after the band fades in over 160px (mask-image) so band + next section share the space background. */
main > section.page-title{padding:48px 0 0 !important}
@media (max-width:479.98px){main > section.page-title{padding:32px 0 0 !important}}
main > section.page-title + :not(.m-glass){padding-top:clamp(24px,1.8vw + 17px,40px) !important;margin-top:0 !important}
main > section.page-title + .m-glass{margin-top:clamp(24px,1.8vw + 17px,40px) !important}
main > section.page-title + :not(.m-glass) > :first-child,
main > section.page-title + :not(.m-glass) > :first-child > :first-child,
main > section.page-title + :not(.m-glass) > :first-child > :first-child > :first-child,
main > section.page-title + :not(.m-glass) > :first-child > :first-child > :first-child > :first-child{margin-top:0 !important}
main > section.page-title + *::before{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 160px);mask-image:linear-gradient(to bottom,transparent 0,#000 160px)}
/* members .m-login mains are a min-height grid: keep the band row at its own height (the panel row takes the rest, as before the band) */
main.m-login:has(> section.page-title){grid-template-rows:auto 1fr}
main.m-login:has(> section.page-title) > section.page-title + .m-glass{align-self:start}
