/* Shared page chrome and semantic typography. Loaded after page styles. */
body { font-family: var(--font-family); font-size: var(--font-16); font-weight: var(--weight-400); }
body :is(p, li, dd) { font-weight: var(--weight-400); }
main p { font-size: var(--font-16); }
main :is(h1, h2, h3, h4) { font-weight: var(--weight-600); line-height: 1.3; }
main h1 { font-size: clamp(2rem, 4vw, var(--font-40)); }
main h2 { font-size: clamp(1.5rem, 3vw, var(--font-32)); }
main h3 { font-size: var(--font-20); }
main h4 { font-size: var(--font-18); }
main :is(article, .hub-card, .feed-panel, .story-card) h2 { font-size: var(--font-20); }
main :is(.feed-handle, .feed-count, .hub-meta, .professional-feedback, .section-label, .eyebrow) { font-size: var(--font-12); font-weight: var(--weight-500); }
main :is(button, label, input, select, textarea) { font-size: var(--font-14); }
#siteHeader.site-header { position: sticky; top: 0; z-index: 1000; width: 100%; height: auto; background: #fff; color: #3d0075; border-bottom: 1px solid #eee5f8; box-shadow: 0 3px 15px #3d007508; padding: 0; }
#siteHeader .navbar { min-height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
#siteHeader .logo { display: block; width: 260px; flex-shrink: 0; }
#siteHeader .logo img { width: 100%; height: 62px; object-fit: contain; }
#siteHeader .logo .logo-normal { display: block; }
#siteHeader .logo .logo-sticky { display: none; }
#siteHeader .nav-links { display: flex; align-items: center; gap: 26px; position: static; transform: none; opacity: 1; visibility: visible; pointer-events: auto; background: transparent; padding: 0; width: auto; border: 0; box-shadow: none; }
#siteHeader .nav-links > a { font-size: var(--font-14); font-weight: var(--weight-500); color: #514a71; text-decoration: none; white-space: nowrap; }
#siteHeader .nav-links > a:hover, #siteHeader .nav-links > a[aria-current="page"] { color: #7b3fc0; }
#siteHeader .nav-links > .nav-button { background: #7b3fc0; color: white; padding: 10px 22px;}
#siteHeader .menu-button { display: none; background: transparent; border: 0; color: #3d0075; font-size: var(--font-28); cursor: pointer; }
.site-inner-hero { position: relative; background: linear-gradient(120deg, #240043, #5a199b); color: white; padding: 48px 0; overflow: hidden; }
.site-inner-hero-content { display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.site-inner-hero h1 { color: white; font-family: var(--font-family); font-size: clamp(2rem, 4vw, var(--font-40)); font-weight: var(--weight-600); line-height: 1.25; margin: 0 0 12px; }
.site-inner-hero p { font-size: var(--font-16); font-weight: var(--weight-400); color: #eee5f8; max-width: 680px; line-height: 1.8; margin: 0; }
.site-inner-hero nav { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: var(--font-14); color: #d1c4e9; flex-shrink: 0; max-width: 35%; }
.site-inner-hero nav a { color: white; }
footer.site-footer { background: #240043; color: #ded0ee; padding: 60px 0 0; margin: 0; }
.site-footer .footer-grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 32px; padding-bottom: 40px; }
.site-footer .footer-brand img { width: 170px; height: 65px; object-fit: contain; object-position: left; }
.site-footer .footer-brand p { color: #c5b4d7; font-size: var(--font-14); font-weight: var(--weight-400); max-width: 320px; line-height: 1.8; margin-top: 16px; }
.site-footer .footer-column h4 { color: white; font-size: var(--font-16); font-weight: var(--weight-600); margin-bottom: 16px; }
.site-footer .footer-column a { display: block; color: #c5b4d7; font-size: var(--font-14); font-weight: var(--weight-400); margin: 10px 0; }
.site-footer .footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; border-top: 1px solid #ffffff20; padding: 22px 0; font-size: var(--font-12); color: #c5b4d7; }
.association-feed-page, .resident-details-page { padding-top: 36px; }
.signin-page { min-height: auto; }
#siteHeader a:focus-visible, #siteHeader button:focus-visible, .site-footer a:focus-visible { outline: 3px solid #b69cdb; outline-offset: 4px; }
.dashboard-signout { display: block; margin: 20px; padding: 12px 20px; width: calc(100% - 40px); border: 1px solid #d1c4e9; border-radius: 10px; color: #7b3fc0; background: white; cursor: pointer; font: inherit; }
.dashboard-sample-note, .dashboard-module-message { padding: 16px; margin-bottom: 20px; border-radius: 12px; background: #f3edf9; color: #6d5683; font-size: var(--font-14); }
.dashboard-module-message button { margin-top: 14px; padding: 10px 16px; border: 0; border-radius: 8px; background: #7b3fc0; color: white; cursor: pointer; }
#mobileSidebarToggle { cursor: pointer; }
@media (max-width: 1000px) { #siteHeader .nav-links { gap: 16px; } }
@media (max-width: 800px) {
 #siteHeader .navbar { min-height: 76px; } #siteHeader .logo { width: 145px; }
 #siteHeader .menu-button { display: block; }
 #siteHeader .nav-links { position: absolute; top: 76px; left: 14px; right: 14px; display: flex; flex-direction: column; align-items: stretch; gap: 4px; padding: 14px; border-radius: 12px; background: white; box-shadow: 0 15px 35px #24004325; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); }
 #siteHeader .nav-links.active { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
 #siteHeader .nav-links > a { padding: 12px; } .site-inner-hero-content { align-items: flex-start; flex-direction: column; gap: 20px; }
 .site-inner-hero nav { max-width: 100%; } .site-inner-hero { padding: 34px 0; }
 .site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 500px) { .site-footer .footer-grid { grid-template-columns: minmax(0, 1fr); } .site-footer .footer-bottom { flex-direction: column; } }
