:root {
  color-scheme: light;
  --paper: #ffffff;
  --ink: #172029;
  --muted: #57616a;
  --rule: #dadddf;
  --soft: #f2f5f7;
  --accent: #2854d8;
  --accent-hover: #173eb6;
  --accent-soft: #edf1fc;
  --error: #a52f25;
  --success: #245b48;
  --max-width: 1200px;
  font-family: 'DM Sans', Arial, sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 25px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body, input, select, textarea, button { font-family: 'DM Sans', Arial, sans-serif; }
button, input, select, textarea { font-size: 16px; }
button { color: inherit; cursor: pointer; }
a { color: inherit; text-underline-offset: 4px; text-decoration-thickness: 1px; }
a:hover { color: var(--accent); }
button:disabled { cursor: not-allowed; opacity: .6; }
a, button, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
[hidden] { display: none !important; }
img { max-width: 100%; display: block; }
svg { flex-shrink: 0; }
h1, h2, h3, h4, p { margin: 0; }
h1, h2, h3, h4 { font-weight: 550; text-wrap: balance; }
h1 { font-size: clamp(42px, 5.8vw, 72px); letter-spacing: -.06em; line-height: 1.06; }
h2 { font-size: clamp(28px, 3.1vw, 37px); line-height: 1.17; letter-spacing: -.045em; }
h3 { font-size: 23px; line-height: 1.25; letter-spacing: -.03em; }
h4 { font-size: 18px; line-height: 1.35; letter-spacing: -.02em; }
ul, ol { margin-top: 16px; padding-left: 23px; }
li + li { margin-top: 8px; }
hr { border: 0; border-top: 1px solid var(--rule); margin: 36px 0; }
::selection { background: #d3defb; color: var(--ink); }

.container { width: min(100%, var(--max-width)); margin-inline: auto; padding-inline: 48px; }
.skip-link { position: absolute; top: 8px; left: 12px; z-index: 100; background: var(--ink); color: white; padding: 12px 18px; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.skip-link:hover { color: white; }
.preview-banner { background: var(--soft); border-bottom: 1px solid var(--rule); color: var(--muted); font-size: 11px; line-height: 1.5; letter-spacing: .025em; padding-block: 10px; }
.preview-banner .container { display: flex; gap: 9px; align-items: center; justify-content: flex-start; flex-wrap: wrap; }
.preview-dot { width: 5px; height: 5px; background: var(--accent); border-radius: 50%; flex: 0 0 5px; }
.preview-banner p { margin: 0; }
.preview-banner a { font-size: 11px; flex-shrink: 0; }
.preview-banner strong { color: var(--accent); font-weight: 600; }
.site-header { background: var(--paper); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; min-height: 113px; position: relative; }
.header-inner::after { position: absolute; content: ''; bottom: 0; left: 48px; right: 48px; height: 1px; background: var(--rule); }
.brand { display: inline-block; text-decoration: none; line-height: 1.1; white-space: nowrap; }
.brand:hover { color: var(--ink); }
.brand strong { display: block; font-size: 24px; font-weight: 700; letter-spacing: -.055em; }
.brand small { display: block; font-size: 10px; letter-spacing: .15em; margin-top: 8px; font-weight: 500; }
.site-nav { display: flex; align-items: center; gap: 24px; }
.site-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; font-weight: 500; text-decoration: none; white-space: nowrap; position: relative; }
.site-nav a[aria-current='page']::after { content: ''; background: var(--accent); height: 2px; position: absolute; left: 0; right: 0; bottom: 4px; }
.site-nav a.nav-cta { background: var(--accent); color: white; padding: 10px 16px; }
.site-nav a.nav-cta:hover { background: var(--accent-hover); }
.site-nav a.nav-cta[aria-current='page']::after { display: none; }
.nav-toggle { display: none; align-items: center; justify-content: center; gap: 10px; min-height: 44px; min-width: 44px; border: 1px solid var(--rule); padding: 9px 12px; background: var(--paper); font-size: 13px; }
.nav-toggle svg { width: 18px; height: 18px; }
.menu-symbol { font-size: 19px; line-height: 1; min-width: 17px; text-align: center; }
#main-content { min-height: 60vh; padding-bottom: 70px; }
#main-content:focus { outline: none; }

.eyebrow { display: block; color: var(--muted); font-size: 11px; font-weight: 550; text-transform: uppercase; letter-spacing: .13em; line-height: 1.55; }
.eyebrow.accent { color: var(--accent); }
.intro { font-size: 17px; line-height: 1.75; color: var(--muted); max-width: 630px; }
.muted, .small-note, .demo-note { color: var(--muted); }
.small-note, .demo-note { font-size: 12px; line-height: 1.6; }
.demo-note { margin-top: 14px; }
.meta, .article-meta { color: var(--muted); font-size: 12px; line-height: 1.6; letter-spacing: .02em; }
.meta { display: block; }
.article-meta { display: flex; gap: 8px 20px; flex-wrap: wrap; margin-top: 20px; }
.page-intro { padding-block: 55px 40px; max-width: 850px; }
.page-intro .eyebrow { color: var(--accent); margin-bottom: 19px; }
.page-intro h1 { margin-bottom: 24px; }
.page-intro .intro { max-width: 710px; }
.breadcrumb { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-top: 26px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.breadcrumb a { text-decoration-color: var(--rule); }
.breadcrumb + .page-intro { padding-top: 30px; }
.breadcrumb [aria-current='page'] { overflow-wrap: anywhere; }
.section { padding-block: 42px; border-top: 1px solid var(--rule); }
.section:last-child { padding-bottom: 0; }
.content-layout + .section, .grid + .section { margin-top: 42px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 27px; }
.section-heading .eyebrow { margin-bottom: 11px; }
.section-heading > p { color: var(--muted); max-width: 470px; font-size: 14px; }
.section-heading > .text-link { flex-shrink: 0; }
.actions { display: flex; align-items: center; gap: 18px 27px; flex-wrap: wrap; margin-top: 27px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 26px; min-height: 46px; padding: 12px 21px; background: var(--paper); color: var(--ink); border: 1px solid var(--rule); text-decoration: none; font-size: 13px; font-weight: 550; line-height: 1.5; text-align: center; border-radius: 0; }
.button.primary { color: white; background: var(--accent); border-color: var(--accent); }
.button.primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: white; }
.button.secondary:hover { background: var(--soft); color: var(--ink); border-color: #aeb6bd; }
.button svg, .text-link svg { width: 16px; height: 16px; }
.text-link { display: inline-flex; align-items: center; justify-content: flex-start; gap: 17px; min-height: 36px; background: none; color: var(--ink); padding: 3px 0; border: 0; font-size: 13px; font-weight: 550; text-decoration: underline; text-decoration-color: #c2c8cc; text-underline-offset: 5px; text-align: left; line-height: 1.5; }
.text-link:hover { color: var(--accent); text-decoration-color: var(--accent); }
.grid { display: grid; gap: 25px; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid > * { min-width: 0; }
.tag { display: inline-flex; align-items: center; padding: 5px 9px; color: var(--muted); background: var(--soft); font-size: 11px; line-height: 1.4; font-weight: 500; }
.tag.blue, .tag.upcoming { background: var(--accent-soft); color: var(--accent); }
.tag-group { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }

.hero { display: grid; grid-template-columns: 1.35fr 1fr; align-items: center; gap: 55px; padding-block: 66px 61px; }
.hero .eyebrow { color: var(--accent); margin-bottom: 26px; }
.hero h1 { font-size: clamp(47px, 5.8vw, 72px); letter-spacing: -.065em; }
.hero .intro { max-width: 430px; margin-top: 26px; font-size: 16px; }
.hero .actions { margin-top: 31px; }
.hero-art { min-width: 0; }
.knowledge-art { display: grid; grid-template-columns: 1fr 1fr; aspect-ratio: 1; background: var(--accent-soft); position: relative; width: 100%; }
.tile { position: relative; overflow: hidden; display: grid; place-items: center; aspect-ratio: 1; }
.tile.blue { background: var(--accent); color: white; font-size: clamp(85px, 11vw, 128px); letter-spacing: -.11em; font-weight: 400; padding-right: .1em; }
.tile.outline { color: var(--accent); }
.orbit { width: 73%; aspect-ratio: 1; border: 1px solid var(--accent); border-radius: 50%; position: relative; }
.orbit::after { position: absolute; content: ''; inset: 20%; border: 1px solid var(--accent); border-radius: 50%; }
.tile.lines { background: var(--soft); }
.tile.lines span { position: absolute; display: block; width: 125%; height: 1px; background: var(--accent); transform: rotate(-42deg); }
.tile.lines span:nth-child(2) { top: 32%; }
.tile.lines span:nth-child(3) { top: 68%; }
.tile.solid { background: var(--ink); color: white; font-family: Georgia, serif; font-size: clamp(95px, 13vw, 145px); line-height: 1; padding-top: 20px; }
.art-caption { display: flex; justify-content: space-between; gap: 15px; margin-top: 12px; color: var(--muted); font-size: 10px; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }
.activity-feature { display: grid; grid-template-columns: 160px minmax(0, 1fr) auto; align-items: center; gap: 28px; padding: 30px; background: var(--accent-soft); }
.activity-feature h3 { max-width: 420px; margin-block: 10px; }
.activity-feature p { color: var(--muted); font-size: 13px; }
.activity-feature .meta { margin-bottom: 5px; font-size: 11px; }
.activity-stamp { border-left: 2px solid var(--accent); padding-left: 18px; }
.activity-stamp strong, .activity-stamp b { display: block; font-size: 26px; font-weight: 500; line-height: 1.15; letter-spacing: -.035em; margin-top: 7px; }
.activity-stamp small { display: block; font-size: 11px; color: var(--muted); margin-top: 9px; }
.featured-event { display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; gap: 28px; align-items: center; padding: 30px; background: var(--accent-soft); }
.event-stamp { border-left: 2px solid var(--accent); padding-left: 18px; }
.event-stamp strong, .event-stamp b { display: block; font-size: 26px; font-weight: 500; letter-spacing: -.035em; line-height: 1.15; margin-block: 8px; }
.event-stamp small { display: block; color: var(--muted); font-size: 11px; }
.event-stamp > span:last-child { display: block; color: var(--muted); font-size: 11px; line-height: 1.6; margin-top: 9px; }
.event-copy h3 { max-width: 420px; margin-block: 10px; }
.event-copy h3 a { text-decoration: none; }
.event-copy p { color: var(--muted); font-size: 14px; }
.event-copy .meta { font-size: 11px; }
.archive-row { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-block: 21px; border-bottom: 1px solid var(--rule); }
a.archive-row { text-decoration: none; }
.archive-row > div { flex: 1; }
.archive-row .eyebrow { margin-bottom: 6px; }
.archive-row h3 { font-size: 18px; }
.archive-row h3 a { text-decoration: none; }
.archive-row > .tag { flex-shrink: 0; }
.engage-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.engage-grid .eyebrow { margin-bottom: 14px; }
.engage-grid .intro { margin-top: 20px; font-size: 15px; }
.service { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 18px 0; border-bottom: 1px solid var(--rule); width: 100%; text-decoration: none; font-size: 16px; line-height: 1.5; }
.service:first-child { padding-top: 0; }
.service span:last-child { flex-shrink: 0; }
.service-link { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 18px 0; border-bottom: 1px solid var(--rule); min-height: 56px; font-size: 16px; line-height: 1.5; text-decoration: none; }
.service-link:first-child { padding-top: 0; }
.service-links > .text-link { margin-top: 20px; }
.news-item { border-top: 2px solid var(--accent); padding-top: 18px; }
.news-item h3 { font-size: 23px; margin-block: 14px; }
.news-item h3 a { text-decoration: none; }
.news-item p { color: var(--muted); font-size: 14px; margin: 13px 0 15px; }

.event-card, .article-card, .resource-card, .service-card { border: 1px solid var(--rule); padding: 28px; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.event-card h2, .event-card h3, .article-card h2, .article-card h3, .resource-card h2, .resource-card h3, .service-card h2, .service-card h3 { font-size: 25px; margin-top: 19px; margin-bottom: 15px; line-height: 1.25; letter-spacing: -.035em; }
.event-card h2 a, .event-card h3 a, .article-card h2 a, .article-card h3 a, .resource-card h2 a, .resource-card h3 a, .service-card h2 a, .service-card h3 a { text-decoration: none; }
.event-card p, .article-card p, .resource-card p, .service-card p { color: var(--muted); font-size: 14px; line-height: 1.75; margin-bottom: 19px; }
.event-card > .text-link:last-child, .article-card > .text-link:last-child, .resource-card > .text-link:last-child, .service-card > .text-link:last-child, .event-card > .button:last-child { margin-top: auto; }
.event-card .meta, .article-card .meta { font-size: 12px; }
.event-card .card-body { display: flex; flex-direction: column; align-items: flex-start; height: 100%; width: 100%; }
.event-card .card-body > .text-link:last-child { margin-top: auto; padding-top: 20px; }
.card-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 17px; }
.event-card-meta { display: flex; flex-direction: column; gap: 3px; color: var(--muted); font-size: 12px; line-height: 1.6; margin-bottom: 9px; }
.event-card footer, .article-card footer, .resource-card footer { margin-top: auto; padding-top: 20px; }
.card-number { color: var(--accent); font-size: 12px; font-weight: 500; letter-spacing: .08em; }
.filter-bar { display: grid; grid-template-columns: minmax(150px, .8fr) minmax(150px, .9fr) minmax(180px, 1.2fr) auto; gap: 17px; align-items: end; padding: 24px; margin-bottom: 25px; background: var(--soft); border: 1px solid var(--rule); }
.filter-bar:has(> .field:nth-child(2) + button) { grid-template-columns: minmax(180px, .8fr) minmax(220px, 1.4fr) auto; }
.filter-bar .field { font-size: 12px; gap: 7px; }
.filter-bar .button { min-height: 46px; }
.filter-bar input, .filter-bar select { padding-block: 10px; }
.filter-bar .filter-actions { display: flex; gap: 12px; align-items: center; }
.results-count { color: var(--muted); font-size: 13px; margin: 0 0 21px; }
.empty-state { padding: 48px 30px; background: var(--soft); text-align: center; border: 1px solid var(--rule); }
.empty-state h2 { font-size: 28px; margin-bottom: 14px; }
.empty-state p { color: var(--muted); max-width: 450px; margin-inline: auto; }
.empty-state .button, .empty-state .text-link { margin-top: 24px; }
.resource-row { display: grid; grid-template-columns: 135px minmax(0, 1fr) auto; gap: 30px; padding-block: 28px; border-top: 1px solid var(--rule); align-items: start; }
.resource-row h2 { font-size: 26px; margin-bottom: 11px; }
.resource-row p { color: var(--muted); font-size: 14px; max-width: 600px; }
.resource-row > .eyebrow { padding-top: 6px; }

.content-layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(240px, 1fr); gap: 72px; align-items: start; }
.content-layout > * { min-width: 0; }
.content-layout aside { border-top: 2px solid var(--accent); padding-top: 22px; }
.content-layout aside h2 { font-size: 25px; margin-bottom: 16px; }
.content-layout aside h3 { font-size: 21px; margin-bottom: 13px; }
.content-layout aside p { color: var(--muted); font-size: 14px; margin-bottom: 18px; }
.aside-panel > .eyebrow { margin-bottom: 13px; }
.aside-panel > .actions { flex-direction: column; align-items: stretch; gap: 13px; }
.detail-banner { background: var(--accent-soft); padding: 25px 28px; margin-bottom: 35px; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.detail-banner p { color: var(--muted); font-size: 14px; max-width: 650px; }
.detail-banner h2 { font-size: 24px; margin-bottom: 10px; }
.download-list { list-style: none; margin: 26px 0; padding: 0; }
.download-list li { padding-block: 15px; border-block-end: 1px solid var(--rule); }
.download-list li + li { margin-top: 0; }
.content-layout.form-layout { grid-template-columns: .8fr 1.25fr; gap: 80px; }
.content-layout:has(> form) { grid-template-columns: .8fr 1.25fr; }
.content-layout.form-layout > aside { border: 0; padding-top: 0; }
.content-layout .prose { max-width: 690px; }
.contact-intro h3 { margin-top: 28px; }
.aside-links { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.prose { max-width: 760px; font-size: 16px; line-height: 1.85; }
.prose p { color: var(--muted); margin-top: 18px; }
.prose h2 { margin-top: 39px; font-size: 31px; }
.prose h2:first-child { margin-top: 0; }
.prose > section + section { margin-top: 36px; }
.prose > .notice { margin-top: 29px; }
.prose h3 { margin-top: 27px; font-size: 23px; }
.prose ul, .prose ol { color: var(--muted); }
.prose a:not(.button) { color: var(--accent); }
.prose blockquote { font-size: 24px; font-weight: 450; letter-spacing: -.025em; line-height: 1.5; border-left: 2px solid var(--accent); padding-left: 25px; margin: 30px 0; }
.prose blockquote p { color: var(--ink); }
.prose .actions { margin-top: 30px; }
.fact-list { display: grid; grid-template-columns: 1fr; margin: 0; }
.fact-list > div { border-bottom: 1px solid var(--rule); padding-block: 13px; }
.fact-list dt { color: var(--muted); font-size: 11px; line-height: 1.5; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 5px; }
.fact-list dd { margin: 0; font-size: 14px; line-height: 1.65; }
.fact-list > dt { padding-top: 14px; margin-top: 13px; border-top: 1px solid var(--rule); }
.fact-list > dt:first-child { margin-top: 0; }
.fact-list + .button { margin-top: 25px; width: 100%; }
.steps { list-style: none; padding: 0; margin: 26px 0; counter-reset: steps; }
.steps > li { padding: 20px 0 20px 45px; position: relative; border-top: 1px solid var(--rule); counter-increment: steps; }
.steps > li::before { content: '0' counter(steps); position: absolute; top: 21px; left: 0; color: var(--accent); font-size: 12px; font-weight: 500; }
.steps > li h3 { margin-top: 0; }
.steps > li p { margin-top: 9px; }
.related { margin-top: 55px; }

.notice { background: var(--accent-soft); border-left: 2px solid var(--accent); padding: 18px 21px; font-size: 13px; line-height: 1.7; color: #344c86; margin-bottom: 27px; }
.notice p + p { margin-top: 8px; }
.notice a { color: var(--accent); }
.notice strong { color: var(--ink); font-weight: 600; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 23px; align-items: start; }
.form-grid > * { min-width: 0; }
.field { display: flex; flex-direction: column; gap: 9px; color: var(--ink); font-size: 13px; font-weight: 500; line-height: 1.5; }
.field label { font-size: 13px; font-weight: 500; }
.field small { color: var(--muted); font-size: 12px; font-weight: 400; }
input:not([type='checkbox']):not([type='radio']), select, textarea { background: var(--paper); color: var(--ink); width: 100%; min-width: 0; min-height: 47px; border: 1px solid #b9c0c7; border-radius: 0; padding: 11px 13px; font-size: 16px; font-weight: 400; line-height: 1.5; box-shadow: none; }
textarea { resize: vertical; min-height: 140px; }
input::placeholder, textarea::placeholder { color: #737d86; opacity: 1; }
input[readonly] { background: var(--soft) !important; color: var(--muted) !important; }
input[aria-invalid='true'], textarea[aria-invalid='true'], select[aria-invalid='true'] { border-color: var(--error); }
input[type='checkbox'], input[type='radio'] { width: 17px; height: 17px; accent-color: var(--accent); flex: 0 0 17px; margin: 3px 0 0; }
.check { display: flex; align-items: flex-start; gap: 11px; color: var(--muted); font-size: 13px; line-height: 1.65; font-weight: 400; }
.check input { margin-top: 3px; }
.check a { color: var(--ink); }
.span-two, .full, .form-grid .full-width { grid-column: 1 / -1; }
.form-grid > .button { justify-self: start; }
.form-actions { display: flex; align-items: center; gap: 15px 25px; flex-wrap: wrap; }
.form-actions > a:not(.button) { font-size: 12px; color: var(--muted); text-decoration-color: var(--rule); }
.form-grid fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.form-grid legend { font-size: 13px; font-weight: 500; margin-bottom: 12px; }
.form-grid .check + .check { margin-top: 12px; }
.form-error { color: var(--error); font-size: 12px; line-height: 1.6; font-weight: 400; }
.form-grid > .form-error { grid-column: 1 / -1; margin-top: -13px; }
.form-note { color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.7; margin-top: 12px; }
.form-error:empty { display: none; }
.error-summary { padding: 20px 23px; border: 1px solid var(--error); background: #fff6f3; color: var(--error); margin-bottom: 25px; font-size: 14px; }
.error-summary:empty { display: none; }
.error-summary h2 { font-size: 22px; margin-bottom: 10px; }
.error-summary ul { margin-block: 10px 0; padding-left: 20px; }
.status { color: var(--accent); font-size: 13px; line-height: 1.7; margin-top: 14px; }
.status:empty { display: none; }
.form-status { font-size: 13px; line-height: 1.7; color: var(--accent); }
.form-status:empty { display: none; }
.success-panel { padding: 30px; background: #f0f6f3; border: 1px solid #b5cfc1; color: var(--success); }
.success-panel h2 { color: var(--ink); font-size: 29px; margin-bottom: 15px; }
.success-panel h3 { color: var(--ink); font-size: 24px; margin: 10px 0 13px; }
.success-panel.compact { padding: 23px; }
.success-panel.compact .actions { margin-top: 18px; }
.success-panel p { font-size: 14px; line-height: 1.8; }
.success-panel p + p { margin-top: 14px; }
.success-panel .actions { margin-top: 24px; }
.success-panel .button { background: var(--paper); }
.success-panel .button.primary { background: var(--accent); }
.success-panel dl { font-size: 13px; margin-block: 22px; }
.success-panel dt { color: var(--muted); margin-top: 10px; }
.success-panel dd { margin: 2px 0 0; overflow-wrap: anywhere; color: var(--ink); }
.newsletter-form .check { margin-top: 12px; }
.signup-row { display: flex; align-items: stretch; gap: 9px; margin-top: 8px; }
.signup-row input { flex: 1; }
.signup-row .button { flex-shrink: 0; }

.site-footer { background: var(--paper); border-top: 1px solid var(--rule); }
.newsletter-band { background: var(--soft); border-bottom: 1px solid var(--rule); }
.footer-newsletter { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; padding-top: 36px; padding-bottom: 36px; }
.footer-newsletter .eyebrow { margin-bottom: 12px; }
.footer-newsletter h2 { font-size: 31px; margin-bottom: 12px; }
.footer-newsletter p { font-size: 14px; line-height: 1.75; color: var(--muted); max-width: 360px; }
.footer-newsletter .form-note { font-size: 11px; max-width: none; }
.footer-main { display: grid; grid-template-columns: 1.1fr .65fr .75fr 1fr; gap: 38px; padding-top: 40px; padding-bottom: 35px; }
.footer-main h2 { font-size: 26px; margin-bottom: 14px; }
.footer-main h3 { font-size: 16px; margin-bottom: 13px; letter-spacing: -.015em; }
.footer-main p { font-size: 13px; line-height: 1.75; color: var(--muted); max-width: 300px; }
.footer-main .brand { margin-bottom: 20px; }
.footer-main .brand strong { font-size: 23px; }
.footer-main .brand small { font-size: 9px; }
.footer-nav { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.footer-nav .eyebrow, .footer-about .eyebrow { margin-bottom: 10px; }
.footer-about > .text-link { margin-top: 12px; }
.footer-nav a { display: inline-flex; align-items: center; min-height: 31px; font-size: 13px; text-decoration: none; }
.footer-nav a:hover { text-decoration: underline; }
.site-footer .newsletter-form { font-size: 13px; }
.site-footer .newsletter-form > label:not(.check) { font-size: 12px; font-weight: 500; }
.site-footer .newsletter-form .check { font-size: 11px; }
.site-footer .small-note, .site-footer .demo-note { font-size: 11px; margin-top: 11px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: start; gap: 20px; padding-block: 21px 24px; border-top: 1px solid var(--rule); font-size: 11px; line-height: 1.7; color: var(--muted); }
.footer-bottom p { max-width: 560px; }
.footer-bottom nav, .footer-bottom .footer-links { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.footer-bottom a { text-decoration-color: var(--rule); }
.not-found { padding-block: 70px 110px; }
.not-found h1 { margin: 18px 0 25px; }
.not-found p { color: var(--muted); max-width: 500px; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (min-width: 1500px) {
  :root { --max-width: 1300px; }
  .hero { gap: 80px; }
  .hero h1 { font-size: 80px; }
}

@media (max-width: 1050px) {
  .container { padding-inline: 35px; }
  .header-inner { gap: 25px; }
  .header-inner::after { left: 35px; right: 35px; }
  .site-nav { gap: 18px; }
  .site-nav a { font-size: 12px; }
  .site-nav a.nav-cta { padding-inline: 12px; }
  .hero { gap: 35px; }
  .hero h1 { font-size: 60px; }
  .hero .intro { font-size: 15px; }
  .activity-feature { grid-template-columns: 135px minmax(0, 1fr); gap: 24px; }
  .activity-feature > .button, .activity-feature > .actions { grid-column: 2; justify-self: start; margin-top: 0; }
  .featured-event { grid-template-columns: 135px minmax(0, 1fr); gap: 24px; }
  .featured-event > .button, .featured-event > .actions { grid-column: 2; justify-self: start; margin-top: 0; }
  .engage-grid { gap: 50px; }
  .content-layout, .content-layout.form-layout { gap: 45px; }
  .footer-main { gap: 25px; grid-template-columns: 1.1fr .7fr .8fr; }
  .footer-about { grid-column: 1 / -1; border-top: 1px solid var(--rule); padding-top: 24px; }
  .footer-newsletter { gap: 45px; }
  .filter-bar { grid-template-columns: minmax(150px, 1fr) minmax(140px, .8fr) minmax(140px, .8fr); }
  .filter-bar:has(> .field:nth-child(2) + button) { grid-template-columns: minmax(180px, .8fr) minmax(220px, 1.4fr); }
  .filter-bar > .button, .filter-bar > .filter-actions { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 800px) {
  .container { padding-inline: 28px; }
  .header-inner { min-height: 100px; flex-wrap: wrap; gap: 0; padding-top: 21px; padding-bottom: 21px; }
  .header-inner::after { left: 28px; right: 28px; }
  .brand strong { font-size: 23px; }
  .brand small { font-size: 9px; }
  .nav-toggle { display: inline-flex; margin-left: auto; }
  .site-nav { display: none; flex: 0 0 100%; align-items: stretch; gap: 0; padding-top: 20px; }
  .site-nav[data-open='true'] { display: flex; flex-direction: column; }
  .site-nav a { font-size: 15px; min-height: 47px; border-top: 1px solid var(--rule); }
  .site-nav a[aria-current='page'] { color: var(--accent); }
  .site-nav a[aria-current='page']::after { width: 24px; left: auto; right: 0; top: 22px; }
  .site-nav a.nav-cta { margin-top: 14px; justify-content: center; }
  .hero { grid-template-columns: 1.25fr 1fr; padding-block: 45px; gap: 25px; }
  .hero h1 { font-size: 48px; }
  .hero .eyebrow { margin-bottom: 20px; }
  .hero .intro { font-size: 14px; margin-top: 20px; }
  .hero .actions { margin-top: 25px; gap: 13px 20px; }
  .tile.blue { font-size: 84px; }
  .tile.solid { font-size: 100px; }
  .art-caption { font-size: 9px; gap: 10px; }
  .section { padding-block: 34px; }
  .section-heading { margin-bottom: 24px; }
  .grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid.three > :last-child:nth-child(3) { grid-column: 1 / -1; }
  .engage-grid { gap: 35px; }
  .engage-grid h2 { font-size: 30px; }
  .service { font-size: 15px; }
  .event-card, .article-card, .resource-card, .service-card { padding: 23px; }
  .event-card h2, .event-card h3, .article-card h2, .article-card h3, .resource-card h2, .resource-card h3, .service-card h2, .service-card h3 { font-size: 23px; }
  .content-layout { grid-template-columns: minmax(0, 1.6fr) minmax(200px, 1fr); gap: 35px; }
  .content-layout.form-layout { grid-template-columns: 1fr; gap: 27px; }
  .content-layout:has(> form) { grid-template-columns: 1fr; }
  .content-layout.form-layout > aside { max-width: 600px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 32px 40px; }
  .footer-main > :first-child { grid-column: 1 / -1; }
  .footer-main > :last-child { grid-column: 1 / -1; max-width: 600px; }
  .footer-main .newsletter-form { max-width: 600px; }
  .resource-row { grid-template-columns: 110px minmax(0, 1fr); gap: 20px; }
  .resource-row > .text-link, .resource-row > .button { grid-column: 2; justify-self: start; }
  .page-intro { padding-top: 44px; }
}

@media (max-width: 600px) {
  body { font-size: 15px; }
  .container { padding-inline: 22px; }
  .preview-banner { font-size: 10px; padding-block: 9px; }
  .preview-banner .container { align-items: center; gap: 5px 8px; }
  .header-inner { min-height: 95px; padding-block: 20px; }
  .header-inner::after { left: 22px; right: 22px; }
  .brand strong { font-size: 21px; }
  .brand small { letter-spacing: .12em; font-size: 9px; }
  .nav-toggle { font-size: 12px; padding: 9px 11px; gap: 8px; }
  #main-content { padding-bottom: 45px; }
  h1 { font-size: 43px; }
  h2 { font-size: 29px; }
  h3 { font-size: 22px; }
  .intro { font-size: 15px; line-height: 1.75; }
  .eyebrow { font-size: 10px; }
  .hero { grid-template-columns: 1fr; gap: 32px; padding-block: 39px 35px; }
  .hero h1 { font-size: clamp(44px, 11vw, 62px); letter-spacing: -.065em; }
  .hero .intro { max-width: 440px; font-size: 15px; }
  .hero .eyebrow { margin-bottom: 21px; }
  .hero .actions { gap: 15px 24px; }
  .knowledge-art { grid-template-columns: repeat(4, minmax(0, 1fr)); aspect-ratio: 4 / 1; }
  .tile.blue { font-size: clamp(48px, 15vw, 79px); }
  .tile.solid { font-size: clamp(58px, 18vw, 90px); padding-top: 13px; }
  .art-caption { font-size: 8px; letter-spacing: .05em; margin-top: 9px; }
  .section { padding-block: 31px; }
  .section-heading { align-items: flex-start; gap: 17px; }
  .section-heading > .text-link { font-size: 12px; padding-top: 3px; }
  .section-heading h2 { font-size: 28px; }
  .section-heading .eyebrow { margin-bottom: 9px; }
  .button { min-height: 47px; padding: 12px 18px; gap: 22px; }
  .text-link { min-height: 44px; }
  .grid.two, .grid.three, .engage-grid { grid-template-columns: 1fr; gap: 23px; }
  .grid.three > :last-child:nth-child(3) { grid-column: auto; }
  .activity-feature { grid-template-columns: 1fr; padding: 24px; gap: 23px; }
  .activity-feature > .button, .activity-feature > .actions { grid-column: auto; }
  .featured-event { grid-template-columns: 1fr; padding: 24px; gap: 23px; }
  .featured-event > .button, .featured-event > .actions { grid-column: auto; }
  .event-copy h3 { font-size: 23px; }
  .event-stamp { padding-left: 15px; }
  .event-stamp strong, .event-stamp b { font-size: 24px; }
  .activity-feature h3 { font-size: 23px; }
  .activity-stamp { padding-left: 15px; }
  .activity-stamp strong, .activity-stamp b { font-size: 24px; }
  .activity-stamp small { margin-top: 5px; }
  .archive-row { gap: 17px; align-items: flex-start; padding-block: 19px; }
  .archive-row h3 { font-size: 17px; }
  .archive-row > .tag { max-width: 97px; text-align: center; justify-content: center; }
  .engage-grid { gap: 30px; }
  .engage-grid .intro { font-size: 15px; margin-top: 17px; }
  .service { min-height: 53px; padding-block: 14px; font-size: 15px; }
  .service-link { min-height: 53px; padding-block: 14px; font-size: 15px; }
  .news-item h3 { font-size: 24px; }
  .page-intro { padding-block: 34px 29px; }
  .page-intro h1 { margin-bottom: 21px; }
  .page-intro .eyebrow { margin-bottom: 16px; }
  .breadcrumb { padding-top: 22px; font-size: 11px; }
  .breadcrumb + .page-intro { padding-top: 25px; }
  .filter-bar, .filter-bar:has(> .field:nth-child(2) + button) { grid-template-columns: 1fr; padding: 20px; gap: 17px; }
  .filter-bar .field:first-child { grid-column: 1 / -1; }
  .filter-bar > .button, .filter-bar > .filter-actions { grid-column: 1 / -1; }
  .filter-bar .filter-actions { flex-wrap: wrap; }
  .filter-bar .field { font-size: 12px; }
  .filter-bar select { padding-inline: 9px; }
  .content-layout, .content-layout.form-layout { grid-template-columns: 1fr; gap: 36px; }
  .content-layout:has(> form) { grid-template-columns: 1fr; }
  .content-layout aside { margin-top: 0; }
  .content-layout.form-layout { gap: 27px; }
  .detail-banner { flex-direction: column; align-items: flex-start; padding: 23px; gap: 20px; }
  .prose { font-size: 15px; line-height: 1.9; }
  .prose h2 { font-size: 28px; margin-top: 32px; }
  .prose h3 { font-size: 22px; }
  .prose blockquote { font-size: 22px; padding-left: 19px; }
  .resource-row { grid-template-columns: 1fr; gap: 12px; padding-block: 24px; }
  .resource-row > .text-link, .resource-row > .button { grid-column: auto; }
  .resource-row h2 { font-size: 25px; }
  .notice { padding: 17px 18px; font-size: 12px; }
  .form-grid { grid-template-columns: 1fr; gap: 21px; }
  .span-two, .full, .form-grid .full-width { grid-column: auto; }
  .field { font-size: 13px; }
  .check { font-size: 12px; min-height: 34px; }
  .success-panel { padding: 24px; }
  .success-panel h2 { font-size: 26px; }
  .empty-state { padding: 35px 23px; }
  .footer-main { padding-top: 34px; padding-bottom: 29px; gap: 30px 24px; }
  .footer-newsletter { grid-template-columns: 1fr; padding-top: 30px; padding-bottom: 30px; gap: 25px; }
  .footer-newsletter h2 { font-size: 28px; }
  .footer-newsletter p { font-size: 13px; }
  .footer-main .brand strong { font-size: 20px; }
  .footer-main .brand small { font-size: 8px; letter-spacing: .1em; }
  .footer-main p { font-size: 12px; }
  .footer-nav a { min-height: 38px; font-size: 12px; }
  .footer-main h2 { font-size: 25px; }
  .footer-main h3 { font-size: 15px; }
  .footer-bottom { flex-direction: column; gap: 15px; font-size: 10px; }
  .footer-bottom a { display: inline-flex; align-items: center; min-height: 30px; }
}

@media (max-width: 380px) {
  .container { padding-inline: 18px; }
  .header-inner::after { left: 18px; right: 18px; }
  .brand strong { font-size: 20px; }
  .brand small { font-size: 8px; letter-spacing: .1em; }
  .nav-toggle { gap: 6px; padding-inline: 9px; }
  .hero h1 { font-size: 43px; }
  .hero .actions { gap: 14px; }
  .hero .actions .button { padding-inline: 15px; gap: 16px; }
  .section-heading { flex-direction: column; gap: 10px; }
  .section-heading > .text-link { min-height: 34px; }
  .event-card, .article-card, .resource-card, .service-card { padding: 21px; }
  .signup-row { flex-direction: column; }
  .signup-row .button { align-self: flex-start; }
  .footer-main { grid-template-columns: 1fr; }
  .footer-main > :last-child { grid-column: auto; }
  .footer-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .filter-bar { grid-template-columns: 1fr; }
  .filter-bar .field:first-child, .filter-bar > .button, .filter-bar > .filter-actions { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
  .preview-banner, .nav-toggle, .site-nav, .site-footer, .filter-bar, .actions, form, .skip-link { display: none !important; }
  .container { max-width: none; padding-inline: 0; }
  .header-inner { min-height: 80px; }
  .header-inner::after { left: 0; right: 0; }
  .page-intro { padding-block: 25px; }
  .page-intro h1 { font-size: 36px; }
  .content-layout { display: block; }
  a { text-decoration: none; }
  .section, .event-card, .article-card, .resource-card { break-inside: avoid; }
}

/* WordPress adapters: preserve the reference geometry without global block margins. */
.wp-site-blocks{padding:0}.wp-site-blocks>header,.wp-site-blocks>footer,.wp-site-blocks>main{margin-block-start:0}
.wp-block-group,.wp-block-post-content,.wp-block-template-part{margin-block-start:0}
.wp-block-post-content{padding:0}.wp-block-post-content>*{margin-block-start:0}
.wp-block-heading{font-family:inherit;font-weight:550}p.wp-block-paragraph{font-weight:400}
.brand-holder{margin:0}.preview-banner .container>p{font-size:11px;margin:0;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.site-nav.wp-block-navigation{font-size:13px;font-weight:500;gap:0}
.site-nav .wp-block-navigation__container{gap:24px;margin:0;padding:0}
.site-nav .wp-block-navigation-item+.wp-block-navigation-item{margin:0}
.site-nav .wp-block-navigation-item__content{font-weight:500;text-decoration:none}
.site-nav .wp-block-navigation-item__content[aria-current=page]{text-decoration:none}
@media(min-width:801px) and (max-width:1050px){.site-nav .wp-block-navigation__container{gap:18px}}
.wp-block-buttons{margin:0;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.wp-block-button{margin:0}.actions>.wp-block-buttons{display:contents}
.wp-block-button .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:46px;padding:12px 21px;border:1px solid var(--accent);border-radius:0;background:var(--accent);color:#fff;font-size:13px;font-weight:550;line-height:1.5;text-decoration:none}
.wp-block-button .wp-block-button__link:hover{background:var(--accent-hover);color:#fff}
.wp-block-button.is-style-wmsg-secondary .wp-block-button__link{background:var(--paper);color:var(--ink);border-color:var(--rule)}
.wmsg-link{margin:0}.wmsg-link>a{display:inline-flex;align-items:center;gap:17px;min-height:36px;font-size:13px;font-weight:550;text-decoration:underline;text-decoration-color:#c2c8cc;text-underline-offset:5px;color:inherit}
.wmsg-link.text-link{display:block;padding:0}.service-links>.wmsg-link.service-link{padding:0;display:block}
.service-links>.wmsg-link.service-link>a{display:flex;justify-content:space-between;text-decoration:none;font-size:16px;padding:17px 0;min-height:0}
.service-links>.wmsg-link.service-link:first-child>a{padding-top:0}
.aside-links .wmsg-link>a{min-height:36px}.prose>.wp-block-group+ .wp-block-group{margin-top:36px}
.content-layout aside p.wmsg-link{margin:0}.content-layout aside .wp-block-buttons{margin-top:18px}
.steps.wp-block-list{padding-left:0}.steps>li>h3{margin-top:0}.steps>li>p{margin-top:9px}
.article-meta>p{margin:0}.art-caption p{font:inherit;margin:0}
.footer-nav .wmsg-link>a{font-size:13px;font-weight:400;text-decoration:none;min-height:31px}
.footer-nav .wmsg-link>a:hover{text-decoration:underline}.footer-about .wmsg-link{margin-top:12px}
.footer-bottom p{margin:0}.footer-bottom>div{display:flex;gap:20px;flex-wrap:wrap}.footer-bottom .wmsg-link>a{font-size:11px;min-height:0;font-weight:400;text-decoration:none}
.footer-newsletter .wmsg-form{margin:0}.newsletter-form .field{font-size:12px}.wmsg-form .error-summary{grid-column:1/-1}
.wmsg-form-status:empty{display:none}.wmsg-form .success-panel{grid-column:1/-1}.wmsg-form .check{margin-top:0}
.wmsg-field-error{color:var(--error);font-size:12px;font-weight:400}.wmsg-form .honeypot{display:none}
.wmsg-cf7{min-width:0}.wpcf7 .wpcf7-form{margin:0}.wpcf7-form-control-wrap{width:100%;min-width:0}
.wpcf7 .wpcf7-list-item{margin:0}.wpcf7 .wpcf7-list-item label{display:flex;align-items:flex-start;gap:11px;color:var(--muted);font-size:13px;font-weight:400;line-height:1.65}
.wpcf7 .wpcf7-list-item input{margin-top:4px}.wpcf7-not-valid-tip{color:var(--error);font-size:12px;margin-top:7px}
.wpcf7 input[type=submit]{display:inline-flex;min-height:46px;padding:12px 21px;border:1px solid var(--accent);border-radius:0;background:var(--accent);color:#fff;font-size:13px;font-weight:550;line-height:1.5;width:auto;cursor:pointer}
.wpcf7 input[type=submit]:hover{background:var(--accent-hover)}.wpcf7 input[type=submit]:disabled{opacity:.6;cursor:not-allowed}
.wpcf7 .wpcf7-response-output{margin:20px 0 0;padding:15px 18px;font-size:13px}.wpcf7 form.invalid .wpcf7-response-output{border-color:var(--error)}
.wpcf7-spinner{display:none}.wpcf7 form.submitting .wpcf7-spinner{display:inline-block}
.wmsg-cf7-compact .cf7-name{display:none}.wmsg-cf7-compact .form-grid{grid-template-columns:minmax(0,1fr) auto;gap:10px}
.wmsg-cf7-compact .cf7-email{grid-column:1;grid-row:1}.wmsg-cf7-compact .form-actions{grid-column:2;grid-row:1;align-self:end;gap:0}
.wmsg-cf7-compact .form-actions>a{display:none}.wmsg-cf7-compact .cf7-newsletter-consent{grid-column:1/-1;grid-row:2}
.wmsg-cf7-compact .form-note{grid-column:1/-1;grid-row:3;margin-top:0}.wmsg-cf7-compact .wpcf7-list-item label{font-size:11px}
.wmsg-cf7-compact .cf7-email{font-size:12px}.wmsg-cf7 .success-panel:focus{outline:3px solid var(--accent);outline-offset:4px}
.wmsg-cf7 .success-panel .form-note{max-width:none}.wmsg-cf7 .success-panel button{cursor:pointer}
@media(max-width:800px){
 .site-nav.wp-block-navigation{width:100%;flex:0 0 100%;display:none;padding-top:20px}
 .site-nav.wp-block-navigation[data-open=true]{display:flex}
 .site-nav .wp-block-navigation__container{width:100%;flex-direction:column;align-items:stretch;gap:0}
 .site-nav .wp-block-navigation-item{width:100%}.site-nav .wp-block-navigation-item__content{display:flex;width:100%;font-size:15px}
}
@media(max-width:600px){.preview-banner .container>p{font-size:10px}.wp-block-button .wp-block-button__link{min-height:47px;padding:12px 18px}.wmsg-link>a{min-height:44px}}
@media(max-width:360px){.wmsg-cf7-compact .form-grid{grid-template-columns:1fr}.wmsg-cf7-compact .form-actions{grid-column:1;grid-row:2}.wmsg-cf7-compact .cf7-newsletter-consent{grid-row:3}.wmsg-cf7-compact .form-note{grid-row:4}}
.source-note{font-size:13px!important;color:var(--muted);margin-top:30px!important}.contact-intro a{overflow-wrap:anywhere}.empty-state .text-link{margin-left:20px}
.wmsg-newsletter .mc4wp-form{margin:0}.wmsg-newsletter .mc4wp-form-fields{display:block}.wmsg-newsletter-compact .mc4wp-name{display:none}.wmsg-newsletter .mc4wp-response,.newsletter-status{font-size:13px;line-height:1.7;margin-top:16px}.wmsg-newsletter .check-field{display:flex;gap:10px;align-items:flex-start;font-size:13px}.wmsg-newsletter .check-field input{margin-top:4px;flex:none}.wmsg-newsletter button:disabled{opacity:.55;cursor:not-allowed}.wmsg-newsletter .form-note{font-size:12px}

/* A compact, single-purpose form for outreach visitors. */
.outreach-page{max-width:680px;margin-inline:auto;padding-bottom:56px}
.outreach-page .page-intro{padding-block:36px 24px}
.outreach-page .page-intro h1{font-size:clamp(32px,5vw,48px);line-height:1.12;margin-bottom:16px}
.outreach-page .page-intro .eyebrow{margin-bottom:14px}
.outreach-page .page-intro .intro{font-size:17px;margin-bottom:0}
.outreach-form{gap:18px}
.outreach-form .wpcf7-checkbox{display:grid;gap:7px}
.outreach-form .wpcf7-list-item label{color:var(--ink);min-height:32px;align-items:center;cursor:pointer}
.outreach-form .wpcf7-list-item input{width:18px;height:18px;flex:none;margin:0;accent-color:var(--accent)}
.outreach-form .wpcf7-list-item-label{line-height:1.5}
.outreach-form textarea{min-height:86px;resize:vertical}
.outreach-form .outreach-updates .wpcf7-list-item label{align-items:flex-start}
.outreach-form .outreach-updates input{margin-top:2px}
.outreach-form .form-note{margin:0;max-width:none}
.outreach-form .form-actions{margin:0}
@media(max-width:600px){.outreach-page{padding-bottom:36px}.outreach-page .page-intro{padding-top:26px}.outreach-form .wpcf7-list-item label{min-height:36px}.outreach-form input[type=submit]{width:100%}}
