/* marketing-shell.css
 * ---------------------------------------------------------------------------
 * ONE stylesheet for the eight interior marketing pages: about, faq,
 * organizations, nonprofits, educators, nonpartisan, contact,
 * grassroots-advocacy.
 *
 * Before this file there was no shared shell at all. Each page inlined its own
 * <style> block, so the nav, the footer, the tokens and the hero existed in
 * eight near-identical copies that drifted independently. That is how
 * about.html ended up loading a different DM Sans file from its siblings and
 * how six pages ended up rendering faux bold (#372).
 *
 * HOW THIS FILE IS ORGANISED, and why it looks mechanical:
 *
 *   1. SHARED SHELL -- the rules seven of the eight pages already agreed on
 *      byte-for-byte. One copy, unscoped.
 *   2. PER-PAGE BLOCKS -- every page's remaining rules, each selector scoped to
 *      `body.page-<name>`. Scoped rules outrank the shared shell, so each page
 *      still wins on its own rules exactly as its inline block did, and
 *      cross-page bleed is structurally impossible.
 *   3. NORMALISATION -- the deliberate, reviewable changes at the end.
 *
 * The extraction in (1) and (2) is a PURE MOVE: it is verified render-identical
 * by a local Playwright diff over 32 screenshots (8 pages x desktop/mobile x
 * EN/ES). Any pixel difference there is a bug. Every intended visual change
 * lives in (3), by itself, so it can be reviewed without hunting.
 *
 * GENERATED, then committed. Regenerate with the script recorded in the PR if
 * the per-page blocks ever need rebuilding; hand-edit section (3) freely.
 * ---------------------------------------------------------------------------
 */


/* ===== page: about ===== */
:root { --bg: #f4f6f9; --s1: #ffffff; --s2: #eef0f5; --s3: #e6e8ee; --b1: #e2e5ed; --b2: #d0d4df; --b3: #b8bccb; --tx: #0c0f1a; --mu: #3d4461; --di: #7b82a0; --ac: #1b4fff; --ac2: #1347c2; --pu: #6c47ff; --gr: #0a7c52; --am: #b86b00; --re: #d63f3f; --civic: #0f2057; --pulse: #d63f3f; --sf: 'Instrument Serif', Georgia, serif; --ss: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, sans-serif; --r1: 8px; --r2: 14px; --r3: 20px; --r4: 28px; --t1: all 0.15s ease; --t2: all 0.25s ease; }
html.page-about, body.page-about, body.page-about * { box-sizing: border-box; }
html.page-about, body.page-about { margin: 0; padding: 0; font-family: var(--ss); color: var(--tx); background: var(--bg); line-height: 1.55; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body.page-about a { color: var(--ac); text-decoration: none; }
body.page-about a:hover { text-decoration: underline; }
body.page-about nav { position: sticky; top: 0; z-index: 200; background: rgba(244,246,249,.95); backdrop-filter: blur(16px); border-bottom: 1px solid #e2e5ed; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; height: 60px; }
body.page-about #menu-btn { background: none; border: none; cursor: pointer; padding: 8px; margin-left: auto; display: flex; flex-direction: column; gap: 5px; justify-content: center; }
body.page-about #nav-menu { display: none; position: fixed; top: 60px; right: 0; left: 0; background: #fff; border-bottom: 1.5px solid #e2e5ed; z-index: 999; padding: 16px 24px; box-shadow: 0 4px 16px rgba(0,0,0,.08); }
body.page-about #nav-menu a { display: block; padding: 12px 0; font-family: 'DM Sans', sans-serif; text-decoration: none; border-bottom: 1px solid #f0f2f7; }
body.page-about #nav-menu a:last-child { border-bottom: none; }
body.page-about .nav-link-primary { font-size: 15px; font-weight: 600; color: #0f2057; }
body.page-about .nav-link-secondary { font-size: 14px; color: #7b82a0; }
body.page-about .logo { display: inline-flex; align-items: center; gap: 2px; font-family: 'Instrument Serif', Georgia, serif; font-size: 36px; font-weight: 400; color: #0f2057; text-decoration: none; letter-spacing: -.5px; line-height: 1; }
body.page-about .logo-mark { width: 30px; height: 30px; flex-shrink: 0; }
body.page-about .logo-text { display: inline-block; }
body.page-about .logo .dot { color: #1b4fff; }
body.page-about .topbar { max-width: 760px; margin: 0 auto; padding: 18px 20px 12px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
body.page-about .back { font-size: 13px; font-weight: 500; color: var(--mu); padding: 6px 10px; border-radius: var(--r1); transition: var(--t1); }
body.page-about .back:hover { color: var(--ac); background: var(--s2); text-decoration: none; }
body.page-about .brand { font-family: var(--sf); font-size: 18px; color: var(--civic); }
body.page-about main { max-width: 720px; margin: 0 auto; padding: 32px 20px 80px; }
body.page-about .page-hero { background: #0f2057; padding: 64px 32px 56px; text-align: center; position: relative; overflow: hidden; margin-bottom: 56px; }
body.page-about .page-hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(ellipse at 30% 50%, rgba(27,79,255,.22) 0%, transparent 60%), radial-gradient(ellipse at 70% 20%, rgba(27,79,255,.14) 0%, transparent 50%); pointer-events: none; }
body.page-about .page-hero-inner { max-width: 720px; margin: 0 auto; position: relative; z-index: 1; }
body.page-about .page-hero .eyebrow { font-size: 11px; font-weight: 600; color: rgba(255,255,255,.6); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 16px; display: flex; align-items: center; justify-content: center; gap: 10px; }
body.page-about .page-hero .eyebrow::before, body.page-about .page-hero .eyebrow::after { content: ''; display: block; height: 1px; width: 28px; background: rgba(255,255,255,.2); }
body.page-about .page-hero h1 { font-family: var(--sf); font-size: 50px; font-weight: 400; color: #fff; margin: 0 0 18px; line-height: 1.08; }
body.page-about .page-hero .subtitle { font-size: 17px; color: rgba(255,255,255,.78); line-height: 1.55; max-width: 620px; margin: 0 auto 20px; }
body.page-about .page-hero .supporting { font-size: 14px; color: rgba(255,255,255,.62); line-height: 1.65; max-width: 560px; margin: 0 auto; font-style: italic; }
@media (max-width: 720px) {
  body.page-about .page-hero { padding: 48px 20px 44px; margin-bottom: 40px; }
  body.page-about .page-hero h1 { font-size: 36px; }
  body.page-about .page-hero .subtitle { font-size: 15px; }
  body.page-about .page-hero .supporting { font-size: 13px; }
}
body.page-about .hero-kicker { font-size: 11px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: var(--ac); margin-bottom: 18px; }
body.page-about .hero-tagline { font-family: var(--sf); font-size: 64px; font-weight: 400; line-height: 1.02; letter-spacing: -1px; color: var(--civic); margin: 0 0 18px; }
@media (max-width: 720px) {
  body.page-about .hero-tagline { font-size: 44px; letter-spacing: -0.5px; }
}
body.page-about .hero-desc { font-size: 17px; line-height: 1.6; color: var(--mu); margin: 0; max-width: 600px; }
@media (max-width: 720px) {
  body.page-about .hero-desc { font-size: 15px; }
}
body.page-about section { margin: 0 0 64px; }
body.page-about .section-num { display: flex; align-items: center; gap: 12px; font-size: 11px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--ac); margin: 0 0 14px; }
body.page-about .section-num-digit { display: inline-block; font-family: var(--sf); font-style: italic; font-size: 18px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ac); line-height: 1; }
body.page-about .section-num-dot { display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--ac); }
body.page-about h2 { font-family: var(--sf); font-size: 32px; font-weight: 400; line-height: 1.15; letter-spacing: -0.3px; color: var(--tx); margin: 0 0 20px; }
@media (max-width: 720px) {
  body.page-about h2 { font-size: 26px; }
}
body.page-about p { font-size: 16px; line-height: 1.7; color: var(--tx); margin: 0 0 18px; }
@media (max-width: 720px) {
  body.page-about p { font-size: 15px; }
}
body.page-about .lead-para { font-size: 19px; line-height: 1.55; color: var(--tx); margin: 0 0 20px; font-weight: 400; }
@media (max-width: 720px) {
  body.page-about .lead-para { font-size: 17px; }
}
body.page-about .layer-label { font-weight: 600; color: var(--civic); }
body.page-about .stack { margin: 24px 0; padding-left: 20px; border-left: 2px solid var(--b1); }
body.page-about .stack-line { font-family: var(--sf); font-style: italic; font-size: 22px; line-height: 1.35; color: var(--civic); margin: 0 0 4px; }
body.page-about .stack-line:last-child { margin-bottom: 0; }
@media (max-width: 720px) {
  body.page-about .stack-line { font-size: 19px; }
}
body.page-about .stack-tight .stack-line { font-size: 18px; color: var(--tx); }
@media (max-width: 720px) {
  body.page-about .stack-tight .stack-line { font-size: 16px; }
}
body.page-about .pullquote { margin: 28px 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--ac); position: relative; }
body.page-about .pullquote::before { content: "\201C"; position: absolute; left: 24px; top: -16px; font-family: var(--sf); font-size: 56px; line-height: 1; color: var(--ac); opacity: 0.35; }
body.page-about .pullquote-body { font-family: var(--sf); font-style: italic; font-size: 24px; line-height: 1.4; color: var(--civic); margin: 18px 0 0; padding-left: 4px; }
@media (max-width: 720px) {
  body.page-about .pullquote-body { font-size: 20px; }
}
body.page-about .trust-strip { display: flex; align-items: flex-start; gap: 18px; background: #fff; border: 1.5px solid var(--b1); border-left: 4px solid var(--ac); border-radius: 12px; padding: 22px 24px; margin: 8px 0 64px; box-shadow: 0 2px 8px rgba(0,0,0,.04); }
body.page-about .trust-strip-icon { font-size: 24px; flex-shrink: 0; line-height: 1.2; margin-top: 2px; }
body.page-about .trust-strip-body { flex: 1; min-width: 0; }
body.page-about .trust-strip-headline { font-family: var(--sf); font-size: 19px; font-weight: 400; color: var(--civic); line-height: 1.3; margin-bottom: 6px; }
body.page-about .trust-strip-desc { font-size: 14px; color: var(--mu); line-height: 1.55; }
body.page-about .trust-strip-cta { flex-shrink: 0; align-self: center; font-size: 13px; font-weight: 600; color: var(--ac); padding: 9px 16px; border: 1.5px solid var(--ac); border-radius: 8px; white-space: nowrap; transition: all .15s; }
body.page-about .trust-strip-cta:hover { background: var(--ac); color: #fff; text-decoration: none; }
@media (max-width: 720px) {
  body.page-about .trust-strip { flex-direction: column; gap: 12px; padding: 18px 20px; }
  body.page-about .trust-strip-headline { font-size: 17px; }
  body.page-about .trust-strip-cta { align-self: flex-start; }
}
body.page-about .cap-grid { display: grid; grid-template-columns: 1fr; gap: 10px 24px; margin: 18px 0 22px; }
@media (min-width: 600px) {
  body.page-about .cap-grid { grid-template-columns: 1fr 1fr; }
}
body.page-about .cap-item { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.55; color: var(--tx); }
body.page-about .cap-item::before { content: ""; flex-shrink: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--ac); margin-top: 8px; }
body.page-about .source-list { display: grid; grid-template-columns: 1fr; gap: 8px; margin: 18px 0 22px; padding: 18px 22px; background: var(--s2); border-radius: var(--r2); border-left: 3px solid var(--ac); }
body.page-about .source-item { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--tx); }
body.page-about .source-item::before { content: ""; width: 14px; height: 1px; background: var(--ac); flex-shrink: 0; }
body.page-about .observation { font-size: 16px; line-height: 1.6; color: var(--mu); margin: 0 0 12px; }
body.page-about .roadmap { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 12px 0 24px; }
@media (min-width: 600px) {
  body.page-about .roadmap { grid-template-columns: 1fr 1fr; gap: 20px; }
}
body.page-about .roadmap-card { background: var(--s1); border: 1px solid var(--b1); border-top: 3px solid var(--ac); border-radius: var(--r2); padding: 20px 22px 18px; }
body.page-about .roadmap-card.coming { border-top-color: var(--pu); }
body.page-about .roadmap-label { font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ac); margin-bottom: 12px; }
body.page-about .roadmap-card.coming .roadmap-label { color: var(--pu); }
body.page-about .roadmap-list { margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.6; color: var(--tx); }
body.page-about .roadmap-list li { padding: 4px 0; border-bottom: 1px dashed var(--b1); }
body.page-about .roadmap-list li:last-child { border-bottom: 0; }
body.page-about .audience-split { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 18px 0 28px; }
@media (min-width: 720px) {
  body.page-about .audience-split { grid-template-columns: 1fr 1fr; gap: 22px; }
}
body.page-about .audience-card { background: var(--s1); border: 1px solid var(--b1); border-top: 3px solid var(--ac); border-radius: var(--r2); padding: 26px 26px 22px; display: flex; flex-direction: column; }
body.page-about .audience-card.audience-orgs { border-top-color: var(--pu); }
body.page-about .audience-label { font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ac); margin-bottom: 10px; }
body.page-about .audience-card.audience-orgs .audience-label { color: var(--pu); }
body.page-about .audience-h3 { font-family: var(--sf); font-size: 22px; font-weight: 400; color: var(--tx); line-height: 1.25; margin: 0 0 12px; }
body.page-about .audience-desc { font-size: 14px; color: var(--mu); line-height: 1.65; margin-bottom: 14px; }
body.page-about .audience-list { list-style: none; padding: 0; margin: 0 0 18px; font-size: 13.5px; color: var(--tx); }
body.page-about .audience-list li { padding: 5px 0; border-bottom: 1px dashed var(--b1); }
body.page-about .audience-list li:last-child { border-bottom: 0; }
body.page-about .audience-cta { align-self: flex-start; margin-top: auto; font-family: var(--ss); font-size: 14px; font-weight: 600; color: var(--ac); text-decoration: none; padding: 6px 0; }
body.page-about .audience-card.audience-orgs .audience-cta { color: var(--pu); }
body.page-about .audience-cta:hover { text-decoration: underline; text-underline-offset: 3px; }
body.page-about .trust-line { font-family: var(--sf); font-style: italic; font-size: 19px; line-height: 1.5; color: var(--civic); margin: 22px 0; text-align: center; padding: 0 20px; }
@media (max-width: 720px) {
  body.page-about .trust-line { font-size: 17px; }
}
body.page-about .signoff { margin: 80px 0 0; padding: 36px 28px 32px; background: linear-gradient(135deg, rgba(27,79,255,.045), rgba(155,109,247,.045)); border: 1px solid rgba(27,79,255,.18); border-radius: var(--r2); text-align: center; }
body.page-about .signoff-brand { font-family: var(--sf); font-size: 34px; line-height: 1; color: var(--civic); margin-bottom: 6px; letter-spacing: -0.5px; }
body.page-about .signoff-tag { font-family: var(--sf); font-style: italic; font-size: 17px; color: var(--mu); margin-bottom: 22px; }
body.page-about .signoff-cta { display: inline-block; background: var(--ac); color: #fff; padding: 11px 26px; border-radius: var(--r1); font-size: 14px; font-weight: 500; text-decoration: none; transition: var(--t1); }
body.page-about .signoff-cta:hover { background: var(--ac2); text-decoration: none; }
body.page-about footer { max-width: 720px; margin: 0 auto; padding: 28px 20px 40px; border-top: 1px solid var(--b1); text-align: center; font-size: 13px; color: var(--mu); line-height: 2; }
body.page-about footer a { color: var(--mu); font-weight: 500; text-decoration: none; margin: 0 10px; }
body.page-about footer a:hover { color: var(--ac); }
body.page-about footer span.divider { color: var(--b2); }
body.page-about footer span.copyright { margin: 0 10px; }
@media (max-width: 600px) {
  body.page-about footer a, body.page-about footer span.copyright { display: block; margin: 6px 0; }
  body.page-about footer span.divider { display: none; }
}
body.page-about .hero, body.page-about .page-hero { --focus-ring:#ffffff;min-height:400px;display:flex;flex-direction:column;justify-content:center }
body.page-about a:focus-visible, body.page-about button:focus-visible, body.page-about summary:focus-visible { outline:2px solid var(--focus-ring,#0f2057);outline-offset:2px }
body.page-about .lang-toggle button:focus-visible { outline-offset:1px }
@media (prefers-reduced-motion:reduce) {
  html.page-about { scroll-behavior:auto }
  html.page-about, body.page-about, body.page-about *, body.page-about *::before, body.page-about *::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important }
}
body.page-about .lang-toggle button { font:600 12px system-ui;padding:3px 8px;border:1px solid #d6dae3;background:#fff;border-radius:6px;cursor:pointer;color:#0c0f1a }
body.page-about .lang-toggle button.is-active { background:#1b4fff;color:#fff;border-color:#1b4fff }

/* ===== page: faq ===== */
html.page-faq, body.page-faq, body.page-faq *, body.page-faq *::before, body.page-faq *::after { box-sizing:border-box;margin:0;padding:0 }
html.page-faq { scroll-behavior:smooth }
body.page-faq { background:#f4f6f9;color:#0c0f1a;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased }
body.page-faq nav { position:sticky;top:0;z-index:200;background:rgba(244,246,249,.95);backdrop-filter:blur(16px);border-bottom:1px solid #e2e5ed;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:60px }
body.page-faq #menu-btn { background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;display:flex;flex-direction:column;gap:5px;justify-content:center }
body.page-faq #nav-menu { display:none;position:fixed;top:60px;right:0;left:0;background:#fff;border-bottom:1.5px solid #e2e5ed;z-index:999;padding:16px 24px;box-shadow:0 4px 16px rgba(0,0,0,.08) }
body.page-faq #nav-menu a { display:block;padding:12px 0;font-family:'DM Sans',sans-serif;text-decoration:none;border-bottom:1px solid #f0f2f7 }
body.page-faq #nav-menu a:last-child { border-bottom:none }
body.page-faq .nav-link-primary { font-size:15px;font-weight:600;color:#0f2057 }
body.page-faq .nav-link-secondary { font-size:14px;color:#7b82a0 }
body.page-faq .logo { display:inline-flex;align-items:center;gap:2px;font-family:'Instrument Serif',Georgia,serif;font-size:36px;font-weight:400;color:#0f2057;text-decoration:none;letter-spacing:-.5px;line-height:1 }
body.page-faq .logo-mark { width:30px;height:30px;flex-shrink:0 }
body.page-faq .logo-text { display:inline-block }
body.page-faq .logo .dot { color:#1b4fff }
body.page-faq .page-hero { background:#0f2057;padding:64px 32px 56px;min-height:400px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;text-align:center }
body.page-faq .page-hero::before { content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 50%,rgba(27,79,255,.22) 0%,transparent 60%),radial-gradient(ellipse at 70% 20%,rgba(27,79,255,.14) 0%,transparent 50%);pointer-events:none }
body.page-faq .page-hero-inner { max-width:720px;margin:0 auto;position:relative;z-index:1 }
body.page-faq .page-hero .eyebrow { font-size:11px;font-weight:600;color:rgba(255,255,255,.6);letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:10px }
body.page-faq .page-hero .eyebrow::before, body.page-faq .page-hero .eyebrow::after { content:'';display:block;height:1px;width:28px;background:rgba(255,255,255,.2) }
body.page-faq .page-hero h1 { font-family:'Instrument Serif',Georgia,serif;font-size:48px;font-weight:400;color:#fff;margin-bottom:16px;line-height:1.1;letter-spacing:-.5px }
body.page-faq .page-hero .subtitle { font-size:16px;color:rgba(255,255,255,.78);line-height:1.6;max-width:620px;margin:0 auto }
@media(min-width:601px) and (max-width:720px) {
  body.page-faq .page-hero { padding:54px 28px 48px }
  body.page-faq .page-hero h1 { font-size:40px }
}
body.page-faq .container { max-width:760px;margin:0 auto;padding:40px 32px 100px }
body.page-faq .back-link { display:inline-flex;align-items:center;gap:6px;color:#7b82a0;font-size:13px;font-weight:500;text-decoration:none;margin-bottom:32px;transition:color .15s }
body.page-faq .back-link:hover { color:#0c0f1a }
body.page-faq .toc { background:#fff;border:1.5px solid #e2e5ed;border-radius:14px;padding:24px 28px;margin-bottom:40px;box-shadow:0 2px 8px rgba(0,0,0,.04) }
body.page-faq .toc-label { font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#7b82a0;margin-bottom:12px }
body.page-faq .toc-list { display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px;list-style:none }
body.page-faq .toc-list a { display:block;padding:6px 0;font-size:14px;color:#1b4fff;text-decoration:none;border-bottom:1px solid transparent;transition:all .15s }
body.page-faq .toc-list a:hover { border-bottom-color:#1b4fff;color:#0f2057 }
body.page-faq .section-anchor { display:block;position:relative;top:-72px;visibility:hidden;height:0 }
body.page-faq h2 { font-family:'Instrument Serif',Georgia,serif;font-size:30px;color:#0f2057;margin:48px 0 8px;line-height:1.18;letter-spacing:-.2px }
body.page-faq .section-intro { font-size:14px;color:#7b82a0;margin-bottom:24px;line-height:1.55 }
body.page-faq .qa { background:#fff;border:1.5px solid #e2e5ed;border-radius:12px;padding:22px 26px;margin-bottom:14px;transition:border-color .15s }
body.page-faq .qa:hover { border-color:#c8d2e6 }
body.page-faq .qa .question { font-family:'DM Sans',sans-serif;font-size:16px;font-weight:600;color:#0f2057;margin-bottom:10px;line-height:1.45 }
body.page-faq .qa .answer { font-size:14.5px;color:#3d4461;line-height:1.7;margin-bottom:0 }
body.page-faq .qa .answer p { margin-bottom:10px }
body.page-faq .qa .answer p:last-child { margin-bottom:0 }
body.page-faq .qa .answer a { color:#1b4fff;text-decoration:underline;text-decoration-color:#bfdbfe }
body.page-faq .qa .answer a:hover { text-decoration-color:#1b4fff }
body.page-faq .qa .answer strong { color:#0f2057;font-weight:600 }
body.page-faq .cta-box { background:#0a1535;border-radius:16px;padding:30px;margin-top:56px;text-align:center;position:relative;overflow:hidden }
body.page-faq .cta-box::before { content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 70% 50%,rgba(27,79,255,.18) 0%,transparent 60%);pointer-events:none }
body.page-faq .cta-box h2 { color:#fff;margin-top:0;margin-bottom:10px;font-size:24px;position:relative;z-index:1 }
body.page-faq .cta-box p { color:rgba(255,255,255,.72);font-size:14px;margin-bottom:20px;line-height:1.6;max-width:480px;margin-left:auto;margin-right:auto;position:relative;z-index:1 }
body.page-faq .cta-btn { background:#1b4fff;color:#fff;border:none;border-radius:10px;padding:12px 24px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .15s;position:relative;z-index:1 }
body.page-faq .cta-btn:hover { background:#fff;color:#0f2057 }
body.page-faq footer { max-width:720px;margin:0 auto;text-align:center;padding:28px 20px 40px;font-size:13px;color:#3d4461;border-top:1px solid #e2e5ed;line-height:2 }
body.page-faq footer a { color:#3d4461;font-weight:500;text-decoration:none;margin:0 10px }
body.page-faq footer a:hover { color:#1b4fff }
body.page-faq footer span.divider { color:#d0d4df }
body.page-faq footer span.copyright { margin:0 10px }
@media(max-width:600px) {
  body.page-faq nav { padding:0 20px }
  body.page-faq .page-hero { padding:44px 20px 40px }
  body.page-faq .page-hero h1 { font-size:32px }
  body.page-faq .page-hero .subtitle { font-size:14px }
  body.page-faq .container { padding:32px 20px 80px }
  body.page-faq h2 { font-size:22px;margin:36px 0 8px }
  body.page-faq .toc-list { grid-template-columns:1fr;gap:0 }
  body.page-faq .qa { padding:18px 20px }
  body.page-faq .qa .question { font-size:15px }
  body.page-faq .qa .answer { font-size:14px }
  body.page-faq .cta-box { padding:24px 20px }
  body.page-faq .cta-box h2 { font-size:22px }
  body.page-faq footer { padding:20px }
  body.page-faq footer a, body.page-faq footer span.copyright { display:block;margin:6px 0 }
  body.page-faq footer span.divider { display:none }
}
body.page-faq .hero, body.page-faq .page-hero { --focus-ring:#ffffff }
body.page-faq a:focus-visible, body.page-faq button:focus-visible, body.page-faq summary:focus-visible { outline:2px solid var(--focus-ring,#0f2057);outline-offset:2px }
body.page-faq .lang-toggle button:focus-visible { outline-offset:1px }
@media (prefers-reduced-motion:reduce) {
  html.page-faq { scroll-behavior:auto }
  html.page-faq, body.page-faq, body.page-faq *, body.page-faq *::before, body.page-faq *::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important }
}
body.page-faq .lang-toggle button { font:600 12px system-ui;padding:3px 8px;border:1px solid #d6dae3;background:#fff;border-radius:6px;cursor:pointer;color:#0c0f1a }
body.page-faq .lang-toggle button.is-active { background:#1b4fff;color:#fff;border-color:#1b4fff }

/* ===== page: organizations ===== */
html.page-organizations, body.page-organizations, body.page-organizations *, body.page-organizations *::before, body.page-organizations *::after { box-sizing:border-box;margin:0;padding:0 }
body.page-organizations { background:#f4f6f9;overflow-x:hidden;color:#0c0f1a;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased }
body.page-organizations nav { position:sticky;top:0;z-index:200;background:rgba(244,246,249,.95);backdrop-filter:blur(16px);border-bottom:1px solid #e2e5ed;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:60px }
body.page-organizations #menu-btn { background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;display:flex;flex-direction:column;gap:5px;justify-content:center }
body.page-organizations #nav-menu { display:none;position:fixed;top:60px;right:0;left:0;background:#fff;border-bottom:1.5px solid #e2e5ed;z-index:999;padding:16px 24px;box-shadow:0 4px 16px rgba(0,0,0,.08) }
body.page-organizations #nav-menu a { display:block;padding:12px 0;font-family:'DM Sans',sans-serif;text-decoration:none;border-bottom:1px solid #f0f2f7 }
body.page-organizations #nav-menu a:last-child { border-bottom:none }
body.page-organizations .nav-link-primary { font-size:15px;font-weight:600;color:#0f2057 }
body.page-organizations .nav-link-secondary { font-size:14px;color:#7b82a0 }
body.page-organizations .logo { display:inline-flex;align-items:center;gap:2px;font-family:'Instrument Serif',Georgia,serif;font-size:36px;font-weight:400;color:#0f2057;text-decoration:none;letter-spacing:-.5px;line-height:1 }
body.page-organizations .logo-mark { width:30px;height:30px;flex-shrink:0 }
body.page-organizations .logo-text { display:inline-block }
body.page-organizations .logo .dot { color:#1b4fff }
body.page-organizations .hero { background:#0f2057;margin:0;padding:64px 32px 56px;min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden }
body.page-organizations .hero::before { content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 50%,rgba(27,79,255,.22) 0%,transparent 60%),radial-gradient(ellipse at 70% 20%,rgba(27,79,255,.14) 0%,transparent 50%);pointer-events:none }
body.page-organizations .eyebrow { font-size:11px;font-weight:600;color:rgba(255,255,255,.6);letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:10px;position:relative;z-index:1 }
body.page-organizations .eyebrow::before, body.page-organizations .eyebrow::after { content:'';display:block;height:1px;width:28px;background:rgba(255,255,255,.2) }
body.page-organizations h1 { font-family:'Instrument Serif',Georgia,serif;font-size:42px;font-weight:400;color:#0f2057;line-height:1.12;margin-bottom:16px }
body.page-organizations .hero h1 { color:#fff;font-size:48px;line-height:1.1;letter-spacing:-.5px;max-width:800px;margin-left:auto;margin-right:auto;position:relative;z-index:1 }
body.page-organizations .hero h1 em { color:#7ba3ff }
body.page-organizations h1 em { font-style:italic;color:#1b4fff }
body.page-organizations .hero p { font-size:16px;color:rgba(255,255,255,.78);line-height:1.6;max-width:620px;margin:0 auto;position:relative;z-index:1 }
body.page-organizations .hero-bridge { background:#f4f6f9;padding:28px 32px 12px;text-align:center }
body.page-organizations .hero-bridge-inner { max-width:720px;margin:0 auto }
body.page-organizations .bridge-nonpartisan { display:block;background:#fff;border:1.5px solid #e2e5ed;border-radius:10px;padding:11px 20px;max-width:560px;margin:0 auto 22px;font-size:13px;color:#3d4461;text-align:center;line-height:1.5;text-decoration:none;transition:all .2s }
body.page-organizations .bridge-nonpartisan:hover { border-color:#1b4fff;background:#f7faff }
body.page-organizations .bridge-nonpartisan strong { color:#0f2057 }
body.page-organizations .bridge-nonpartisan .learn-more { color:#1b4fff;font-weight:600;white-space:nowrap }
body.page-organizations .bridge-cta-group { display:flex;gap:12px;justify-content:center;flex-wrap:wrap }
body.page-organizations .bridge-cta-group .btn-primary { background:#1b4fff;color:#fff;border:none;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s }
body.page-organizations .bridge-cta-group .btn-primary:hover { background:#1347c2 }
body.page-organizations .bridge-cta-group .btn-secondary { background:#fff;color:#0f2057;border:1.5px solid #cfd5e0;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s }
body.page-organizations .bridge-cta-group .btn-secondary:hover { border-color:#1b4fff;color:#1b4fff }
body.page-organizations .cta-group { display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1 }
body.page-organizations .btn-primary { background:#0f2057;color:#fff;border:none;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block }
body.page-organizations .btn-primary:hover { background:#1b4fff }
body.page-organizations .hero .btn-primary { background:#1b4fff;color:#fff;border:2px solid rgba(255,255,255,.3) }
body.page-organizations .hero .btn-primary:hover { background:#fff;color:#0f2057 }
body.page-organizations .btn-secondary { background:rgba(255,255,255,.1);color:#fff;border:1.5px solid rgba(255,255,255,.25);border-radius:12px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block }
body.page-organizations .nonpartisan-callout { display:block;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:11px 20px;max-width:500px;margin:20px auto 40px;font-size:13px;color:rgba(255,255,255,.65);text-align:center;line-height:1.5;text-decoration:none;transition:all .2s;position:relative;z-index:1 }
body.page-organizations .nonpartisan-callout:hover { background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.85) }
body.page-organizations .nonpartisan-callout strong { color:#fff }
body.page-organizations .nonpartisan-callout .learn-more { color:#7ba3ff;font-weight:500;white-space:nowrap }
body.page-organizations .differentiator { max-width:920px;margin:0 auto;padding:64px 32px 24px;text-align:center }
body.page-organizations .differentiator-label { font-size:11px;font-weight:600;color:#1b4fff;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:18px }
body.page-organizations .differentiator-quote { font-family:'Instrument Serif',Georgia,serif;font-size:34px;color:#0f2057;line-height:1.25;max-width:820px;margin:0 auto }
body.page-organizations .differentiator-quote em { font-style:italic;color:#1b4fff }
body.page-organizations .section { max-width:1100px;margin:0 auto;padding:64px 32px }
body.page-organizations .section-label { font-size:11px;font-weight:600;color:#1b4fff;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px }
body.page-organizations .section-intro { text-align:center;max-width:680px;margin:0 auto 48px }
body.page-organizations h2 { font-family:'Instrument Serif',Georgia,serif;font-size:38px;color:#0f2057;margin-bottom:16px;line-height:1.15 }
body.page-organizations .cards { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px }
body.page-organizations .card { background:#fff;border:1.5px solid #e2e5ed;border-radius:20px;padding:28px;box-shadow:0 2px 12px rgba(0,0,0,.05) }
body.page-organizations .card-icon { font-size:32px;margin-bottom:14px;display:inline-flex;align-items:center;justify-content:flex-start;width:44px;height:44px;background:rgba(27,79,255,.08);border-radius:10px;padding:8px }
body.page-organizations .card h3 { font-family:'Instrument Serif',Georgia,serif;font-size:20px;color:#0f2057;margin-bottom:8px }
body.page-organizations .card p { font-size:14px;color:#3d4461;line-height:1.6 }
body.page-organizations .use-cases { background:#0a1535;color:#fff;padding:56px 32px }
body.page-organizations .use-cases-inner { max-width:1100px;margin:0 auto }
body.page-organizations .use-cases h2 { color:#fff;font-family:'Instrument Serif',Georgia,serif;font-size:38px;margin-bottom:12px;text-align:center }
body.page-organizations .use-cases .sub { color:rgba(255,255,255,.65);font-size:16px;margin-bottom:36px;text-align:center }
body.page-organizations .use-case-grid { display:grid;grid-template-columns:1fr 1fr;gap:24px }
body.page-organizations .use-case { background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:28px }
body.page-organizations .use-case h3 { font-family:'Instrument Serif',Georgia,serif;font-size:22px;color:#fff;margin-bottom:12px }
body.page-organizations .use-case p { font-size:14px;color:rgba(255,255,255,.7);line-height:1.6 }
body.page-organizations .use-case ul { margin:12px 0 0 18px;color:rgba(255,255,255,.7);font-size:14px }
body.page-organizations .use-case ul li { margin-bottom:6px }
body.page-organizations .pricing { max-width:1100px;margin:0 auto;padding:48px 32px }
body.page-organizations .pricing h2 { font-family:'Instrument Serif',Georgia,serif;font-size:34px;color:#0f2057;margin-bottom:10px;text-align:center }
body.page-organizations .pricing-sub { text-align:center;color:#7b82a0;font-size:15px;margin-bottom:40px }
body.page-organizations .price-cards { display:grid;grid-template-columns:repeat(3,1fr);gap:16px }
body.page-organizations .price-card { background:#fff;border:1.5px solid #e2e5ed;border-radius:20px;padding:28px }
body.page-organizations .price-card.featured { border-color:#1b4fff;box-shadow:0 4px 24px rgba(27,79,255,.12) }
body.page-organizations .price-tier { font-size:12px;font-weight:600;color:#7b82a0;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px }
body.page-organizations .price-amount { font-family:'Instrument Serif',Georgia,serif;font-size:36px;color:#0f2057;margin-bottom:4px }
body.page-organizations .price-note { font-size:12px;color:#7b82a0;margin-bottom:16px }
body.page-organizations .price-desc { font-size:13px;color:#3d4461;margin-bottom:20px;line-height:1.5 }
body.page-organizations .price-features { list-style:none;font-size:13px;color:#3d4461 }
body.page-organizations .price-features li { padding:5px 0;border-bottom:1px solid #f0eeea;display:flex;gap:8px }
body.page-organizations .price-features li:last-child { border-bottom:none }
body.page-organizations .price-features li::before { content:"✓";color:#1b4fff;font-weight:700;flex-shrink:0 }
body.page-organizations .contact-section { background:#fff;border-top:1.5px solid #e2e5ed;padding:48px 32px;text-align:center }
body.page-organizations .contact-inner { max-width:700px;margin:0 auto }
body.page-organizations .contact-inner h2 { font-family:'Instrument Serif',Georgia,serif;font-size:38px;color:#0f2057;margin-bottom:12px }
body.page-organizations .contact-inner p { color:#3d4461;font-size:16px;margin-bottom:32px }
body.page-organizations .contact-form { text-align:left }
body.page-organizations .form-row { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px }
body.page-organizations input, body.page-organizations textarea, body.page-organizations select { width:100%;background:#f4f6f9;border:1.5px solid #e2e5ed;border-radius:9px;padding:12px 14px;font-family:'DM Sans',sans-serif;font-size:14px;color:#0c0f1a;outline:none }
body.page-organizations input:focus, body.page-organizations textarea:focus, body.page-organizations select:focus { border-color:#1b4fff }
body.page-organizations textarea { height:100px;resize:vertical;margin-bottom:12px }
body.page-organizations .submit-btn { width:100%;background:#0f2057;color:#fff;border:none;border-radius:12px;padding:14px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer }
body.page-organizations .submit-btn:hover { background:#1b4fff }
body.page-organizations .success-msg { display:none;text-align:center;padding:20px;color:#16a34a;font-weight:500 }
body.page-organizations .intel-card { cursor:pointer;border-radius:12px;padding:16px 18px;transition:all .2s ease;position:relative;text-align:left }
body.page-organizations .intel-card-constituent { background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12) }
body.page-organizations .intel-card-constituent:hover { background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.2) }
body.page-organizations .intel-card-activist { background:rgba(27,79,255,.2);border:1px solid rgba(27,79,255,.4) }
body.page-organizations .intel-card-activist:hover { background:rgba(27,79,255,.28);border-color:rgba(27,79,255,.55) }
body.page-organizations .intel-card-header { display:flex;align-items:flex-start;justify-content:space-between;gap:10px }
body.page-organizations .intel-card-header-text { flex:1 }
body.page-organizations .intel-card-label { font-size:11px;letter-spacing:.5px;margin-bottom:5px;font-weight:600 }
body.page-organizations .intel-card-constituent .intel-card-label { color:rgba(255,255,255,.5) }
body.page-organizations .intel-card-activist .intel-card-label { color:#7ba3ff }
body.page-organizations .intel-card-summary { font-size:14px;color:#fff;line-height:1.4;font-weight:500 }
body.page-organizations .intel-card-chevron { color:rgba(255,255,255,.5);font-size:14px;transition:transform .2s ease;flex-shrink:0;margin-top:2px }
body.page-organizations .intel-card.expanded .intel-card-chevron { transform:rotate(180deg) }
body.page-organizations .intel-card-detail { max-height:0;overflow:hidden;transition:max-height .35s ease,opacity .25s ease,margin-top .25s ease;opacity:0;margin-top:0 }
body.page-organizations .intel-card.expanded .intel-card-detail { max-height:1000px;opacity:1;margin-top:16px }
body.page-organizations .intel-card-detail-section { margin-bottom:12px }
body.page-organizations .intel-card-detail-section:last-child { margin-bottom:0 }
body.page-organizations .intel-card-detail-label { font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:4px }
body.page-organizations .intel-card-activist .intel-card-detail-label { color:rgba(123,163,255,.85) }
body.page-organizations .intel-card-detail-text { font-size:13px;color:rgba(255,255,255,.85);line-height:1.6 }
body.page-organizations .intel-card-detail-text strong { color:#fff;font-weight:600 }
body.page-organizations footer { max-width:720px;margin:0 auto;text-align:center;padding:28px 20px 40px;font-size:13px;color:#3d4461;border-top:1px solid #e2e5ed;line-height:2 }
body.page-organizations footer a { color:#3d4461;font-weight:500;text-decoration:none;margin:0 10px }
body.page-organizations footer a:hover { color:#1b4fff }
body.page-organizations footer span.divider { color:#d0d4df }
body.page-organizations footer span.copyright { margin:0 10px }
@media(max-width:640px) {
  body.page-organizations h1 { font-size:36px }
  body.page-organizations .differentiator { padding:48px 24px 16px }
  body.page-organizations .differentiator-quote { font-size:24px }
  body.page-organizations .use-case-grid { grid-template-columns:1fr }
  body.page-organizations .price-cards { grid-template-columns:1fr }
  body.page-organizations .cards { grid-template-columns:1fr 1fr }
  body.page-organizations .form-row { grid-template-columns:1fr }
}
@media(max-width:600px) {
  body.page-organizations .hero { padding:44px 20px 40px }
  body.page-organizations .cards { grid-template-columns:1fr }
  body.page-organizations .use-case-grid { grid-template-columns:1fr }
  body.page-organizations .cta-group { flex-direction:column;align-items:center;gap:20px }
  body.page-organizations h1 { font-size:32px }
  body.page-organizations .hero h1 { font-size:32px }
  body.page-organizations h2 { font-size:28px }
  body.page-organizations footer { padding:20px }
  body.page-organizations footer a, body.page-organizations footer span.copyright { display:block;margin:6px 0 }
  body.page-organizations footer span.divider { display:none }
  body.page-organizations div[style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns:1fr !important;gap:18px !important }
}
@media (max-width:640px) {
  body.page-organizations .intel-compare-grid { grid-template-columns:1fr !important; }
  body.page-organizations .intel-vs { padding:4px 0 !important; }
}
body.page-organizations .hero, body.page-organizations .page-hero { --focus-ring:#ffffff }
body.page-organizations a:focus-visible, body.page-organizations button:focus-visible, body.page-organizations summary:focus-visible { outline:2px solid var(--focus-ring,#0f2057);outline-offset:2px }
body.page-organizations .lang-toggle button:focus-visible { outline-offset:1px }
@media (prefers-reduced-motion:reduce) {
  html.page-organizations { scroll-behavior:auto }
  html.page-organizations, body.page-organizations, body.page-organizations *, body.page-organizations *::before, body.page-organizations *::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important }
}
body.page-organizations .lang-toggle button { font:600 12px system-ui;padding:3px 8px;border:1px solid #d6dae3;background:#fff;border-radius:6px;cursor:pointer;color:#0c0f1a }
body.page-organizations .lang-toggle button.is-active { background:#1b4fff;color:#fff;border-color:#1b4fff }

/* ===== page: nonprofits ===== */
html.page-nonprofits, body.page-nonprofits, body.page-nonprofits *, body.page-nonprofits *::before, body.page-nonprofits *::after { box-sizing:border-box;margin:0;padding:0 }
body.page-nonprofits { background:#f4f6f9;overflow-x:hidden;color:#0c0f1a;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased }
body.page-nonprofits nav { position:sticky;top:0;z-index:200;background:rgba(244,246,249,.95);backdrop-filter:blur(16px);border-bottom:1px solid #e2e5ed;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:60px }
body.page-nonprofits #menu-btn { background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;display:flex;flex-direction:column;gap:5px;justify-content:center }
body.page-nonprofits #nav-menu { display:none;position:fixed;top:60px;right:0;left:0;background:#fff;border-bottom:1.5px solid #e2e5ed;z-index:999;padding:16px 24px;box-shadow:0 4px 16px rgba(0,0,0,.08) }
body.page-nonprofits #nav-menu a { display:block;padding:12px 0;font-family:'DM Sans',sans-serif;text-decoration:none;border-bottom:1px solid #f0f2f7 }
body.page-nonprofits #nav-menu a:last-child { border-bottom:none }
body.page-nonprofits .nav-link-primary { font-size:15px;font-weight:600;color:#0f2057 }
body.page-nonprofits .nav-link-secondary { font-size:14px;color:#7b82a0 }
body.page-nonprofits .logo { display:inline-flex;align-items:center;gap:2px;font-family:'Instrument Serif',Georgia,serif;font-size:36px;font-weight:400;color:#0f2057;text-decoration:none;letter-spacing:-.5px;line-height:1 }
body.page-nonprofits .logo-mark { width:30px;height:30px;flex-shrink:0 }
body.page-nonprofits .logo-text { display:inline-block }
body.page-nonprofits .logo .dot { color:#1b4fff }
body.page-nonprofits .hero { background:#0f2057;margin:0;padding:64px 32px 56px;min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden }
body.page-nonprofits .hero::before { content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 50%,rgba(27,79,255,.22) 0%,transparent 60%),radial-gradient(ellipse at 70% 20%,rgba(27,79,255,.14) 0%,transparent 50%);pointer-events:none }
body.page-nonprofits .eyebrow { font-size:11px;font-weight:600;color:rgba(255,255,255,.6);letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:10px;position:relative;z-index:1 }
body.page-nonprofits .eyebrow::before, body.page-nonprofits .eyebrow::after { content:'';display:block;height:1px;width:28px;background:rgba(255,255,255,.2) }
body.page-nonprofits h1 { font-family:'Instrument Serif',Georgia,serif;font-size:42px;font-weight:400;color:#0f2057;line-height:1.12;margin-bottom:16px }
body.page-nonprofits .hero h1 { color:#fff;font-size:48px;line-height:1.1;letter-spacing:-.5px;max-width:800px;margin-left:auto;margin-right:auto;position:relative;z-index:1 }
body.page-nonprofits .hero h1 em { color:#7ba3ff }
body.page-nonprofits h1 em { font-style:italic;color:#1b4fff }
body.page-nonprofits .hero p { font-size:16px;color:rgba(255,255,255,.78);line-height:1.6;max-width:620px;margin:0 auto;position:relative;z-index:1 }
body.page-nonprofits .hero-bridge { background:#f4f6f9;padding:28px 32px 12px;text-align:center }
body.page-nonprofits .hero-bridge-inner { max-width:720px;margin:0 auto }
body.page-nonprofits .bridge-nonpartisan { display:block;background:#fff;border:1.5px solid #e2e5ed;border-radius:10px;padding:11px 20px;max-width:560px;margin:0 auto 22px;font-size:13px;color:#3d4461;text-align:center;line-height:1.5;text-decoration:none;transition:all .2s }
body.page-nonprofits .bridge-nonpartisan:hover { border-color:#1b4fff;background:#f7faff }
body.page-nonprofits .bridge-nonpartisan strong { color:#0f2057 }
body.page-nonprofits .bridge-nonpartisan .learn-more { color:#1b4fff;font-weight:600;white-space:nowrap }
body.page-nonprofits .bridge-cta-group { display:flex;gap:12px;justify-content:center;flex-wrap:wrap }
body.page-nonprofits .bridge-cta-group .btn-primary { background:#1b4fff;color:#fff;border:none;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s }
body.page-nonprofits .bridge-cta-group .btn-primary:hover { background:#1347c2 }
body.page-nonprofits .bridge-cta-group .btn-secondary { background:#fff;color:#0f2057;border:1.5px solid #cfd5e0;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s }
body.page-nonprofits .bridge-cta-group .btn-secondary:hover { border-color:#1b4fff;color:#1b4fff }
body.page-nonprofits .cta-group { display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1 }
body.page-nonprofits .btn-primary { background:#0f2057;color:#fff;border:none;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block }
body.page-nonprofits .btn-primary:hover { background:#1b4fff }
body.page-nonprofits .hero .btn-primary { background:#1b4fff;color:#fff;border:2px solid rgba(255,255,255,.3) }
body.page-nonprofits .hero .btn-primary:hover { background:#fff;color:#0f2057 }
body.page-nonprofits .btn-secondary { background:rgba(255,255,255,.1);color:#fff;border:1.5px solid rgba(255,255,255,.25);border-radius:12px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block }
body.page-nonprofits .nonpartisan-callout { display:block;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:11px 20px;max-width:500px;margin:20px auto 40px;font-size:13px;color:rgba(255,255,255,.65);text-align:center;line-height:1.5;text-decoration:none;transition:all .2s;position:relative;z-index:1 }
body.page-nonprofits .nonpartisan-callout:hover { background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.85) }
body.page-nonprofits .nonpartisan-callout strong { color:#fff }
body.page-nonprofits .nonpartisan-callout .learn-more { color:#7ba3ff;font-weight:500;white-space:nowrap }
body.page-nonprofits .differentiator { max-width:920px;margin:0 auto;padding:64px 32px 24px;text-align:center }
body.page-nonprofits .differentiator-label { font-size:11px;font-weight:600;color:#1b4fff;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:18px }
body.page-nonprofits .differentiator-quote { font-family:'Instrument Serif',Georgia,serif;font-size:34px;color:#0f2057;line-height:1.25;max-width:820px;margin:0 auto }
body.page-nonprofits .differentiator-quote em { font-style:italic;color:#1b4fff }
body.page-nonprofits .section { max-width:1100px;margin:0 auto;padding:64px 32px }
body.page-nonprofits .section-label { font-size:11px;font-weight:600;color:#1b4fff;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px }
body.page-nonprofits .section-intro { text-align:center;max-width:680px;margin:0 auto 48px }
body.page-nonprofits h2 { font-family:'Instrument Serif',Georgia,serif;font-size:38px;color:#0f2057;margin-bottom:16px;line-height:1.15 }
body.page-nonprofits .cards { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px }
body.page-nonprofits .cards-two { grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px;margin-left:auto;margin-right:auto }
body.page-nonprofits .card { background:#fff;border:1.5px solid #e2e5ed;border-radius:20px;padding:28px;box-shadow:0 2px 12px rgba(0,0,0,.05) }
body.page-nonprofits .card-icon { font-size:32px;margin-bottom:14px;display:inline-flex;align-items:center;justify-content:flex-start;width:44px;height:44px;background:rgba(27,79,255,.08);border-radius:10px;padding:8px }
body.page-nonprofits .card h3 { font-family:'Instrument Serif',Georgia,serif;font-size:20px;color:#0f2057;margin-bottom:8px }
body.page-nonprofits .card p { font-size:14px;color:#3d4461;line-height:1.6 }
body.page-nonprofits .use-cases { background:#0a1535;color:#fff;padding:56px 32px }
body.page-nonprofits .use-cases-inner { max-width:1100px;margin:0 auto }
body.page-nonprofits .use-cases h2 { color:#fff;font-family:'Instrument Serif',Georgia,serif;font-size:38px;margin-bottom:12px;text-align:center }
body.page-nonprofits .use-cases .sub { color:rgba(255,255,255,.65);font-size:16px;margin-bottom:36px;text-align:center }
body.page-nonprofits .use-case-grid { display:grid;grid-template-columns:1fr 1fr;gap:24px }
body.page-nonprofits .use-case { background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:28px }
body.page-nonprofits .use-case h3 { font-family:'Instrument Serif',Georgia,serif;font-size:22px;color:#fff;margin-bottom:12px }
body.page-nonprofits .use-case p { font-size:14px;color:rgba(255,255,255,.7);line-height:1.6 }
body.page-nonprofits .use-case ul { margin:12px 0 0 18px;color:rgba(255,255,255,.7);font-size:14px }
body.page-nonprofits .use-case ul li { margin-bottom:6px }
body.page-nonprofits .pricing { max-width:1100px;margin:0 auto;padding:48px 32px }
body.page-nonprofits .pricing h2 { font-family:'Instrument Serif',Georgia,serif;font-size:34px;color:#0f2057;margin-bottom:10px;text-align:center }
body.page-nonprofits .pricing-sub { text-align:center;color:#7b82a0;font-size:15px;margin-bottom:40px }
body.page-nonprofits .price-cards { display:grid;grid-template-columns:repeat(3,1fr);gap:16px }
body.page-nonprofits .price-card { background:#fff;border:1.5px solid #e2e5ed;border-radius:20px;padding:28px }
body.page-nonprofits .price-card.featured { border-color:#1b4fff;box-shadow:0 4px 24px rgba(27,79,255,.12) }
body.page-nonprofits .price-tier { font-size:12px;font-weight:600;color:#7b82a0;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px }
body.page-nonprofits .price-amount { font-family:'Instrument Serif',Georgia,serif;font-size:36px;color:#0f2057;margin-bottom:4px }
body.page-nonprofits .price-note { font-size:12px;color:#7b82a0;margin-bottom:16px }
body.page-nonprofits .price-desc { font-size:13px;color:#3d4461;margin-bottom:20px;line-height:1.5 }
body.page-nonprofits .price-features { list-style:none;font-size:13px;color:#3d4461 }
body.page-nonprofits .price-features li { padding:5px 0;border-bottom:1px solid #f0eeea;display:flex;gap:8px }
body.page-nonprofits .price-features li:last-child { border-bottom:none }
body.page-nonprofits .price-features li::before { content:"✓";color:#1b4fff;font-weight:700;flex-shrink:0 }
body.page-nonprofits .contact-section { background:#fff;border-top:1.5px solid #e2e5ed;padding:48px 32px;text-align:center }
body.page-nonprofits .contact-inner { max-width:700px;margin:0 auto }
body.page-nonprofits .contact-inner h2 { font-family:'Instrument Serif',Georgia,serif;font-size:38px;color:#0f2057;margin-bottom:12px }
body.page-nonprofits .contact-inner p { color:#3d4461;font-size:16px;margin-bottom:32px }
body.page-nonprofits .contact-form { text-align:left }
body.page-nonprofits .form-row { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px }
body.page-nonprofits input, body.page-nonprofits textarea, body.page-nonprofits select { width:100%;background:#f4f6f9;border:1.5px solid #e2e5ed;border-radius:9px;padding:12px 14px;font-family:'DM Sans',sans-serif;font-size:14px;color:#0c0f1a;outline:none }
body.page-nonprofits input:focus, body.page-nonprofits textarea:focus, body.page-nonprofits select:focus { border-color:#1b4fff }
body.page-nonprofits textarea { height:100px;resize:vertical;margin-bottom:12px }
body.page-nonprofits .submit-btn { width:100%;background:#0f2057;color:#fff;border:none;border-radius:12px;padding:14px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer }
body.page-nonprofits .submit-btn:hover { background:#1b4fff }
body.page-nonprofits .success-msg { display:none;text-align:center;padding:20px;color:#16a34a;font-weight:500 }
body.page-nonprofits .sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0 }
body.page-nonprofits .hp-field { position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden }
body.page-nonprofits .field-label { display:block;font-size:13px;font-weight:600;color:#0f2057;margin-bottom:5px }
body.page-nonprofits .intel-card { cursor:pointer;border-radius:12px;padding:16px 18px;transition:all .2s ease;position:relative;text-align:left }
body.page-nonprofits .intel-card-constituent { background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12) }
body.page-nonprofits .intel-card-constituent:hover { background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.2) }
body.page-nonprofits .intel-card-activist { background:rgba(27,79,255,.2);border:1px solid rgba(27,79,255,.4) }
body.page-nonprofits .intel-card-activist:hover { background:rgba(27,79,255,.28);border-color:rgba(27,79,255,.55) }
body.page-nonprofits .intel-card-header { display:flex;align-items:flex-start;justify-content:space-between;gap:10px }
body.page-nonprofits .intel-card-header-text { flex:1 }
body.page-nonprofits .intel-card-label { font-size:11px;letter-spacing:.5px;margin-bottom:5px;font-weight:600 }
body.page-nonprofits .intel-card-constituent .intel-card-label { color:rgba(255,255,255,.5) }
body.page-nonprofits .intel-card-activist .intel-card-label { color:#7ba3ff }
body.page-nonprofits .intel-card-summary { font-size:14px;color:#fff;line-height:1.4;font-weight:500 }
body.page-nonprofits .intel-card-chevron { color:rgba(255,255,255,.5);font-size:14px;transition:transform .2s ease;flex-shrink:0;margin-top:2px }
body.page-nonprofits .intel-card.expanded .intel-card-chevron { transform:rotate(180deg) }
body.page-nonprofits .intel-card-detail { max-height:0;overflow:hidden;transition:max-height .35s ease,opacity .25s ease,margin-top .25s ease;opacity:0;margin-top:0 }
body.page-nonprofits .intel-card.expanded .intel-card-detail { max-height:1000px;opacity:1;margin-top:16px }
body.page-nonprofits .intel-card-detail-section { margin-bottom:12px }
body.page-nonprofits .intel-card-detail-section:last-child { margin-bottom:0 }
body.page-nonprofits .intel-card-detail-label { font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:4px }
body.page-nonprofits .intel-card-activist .intel-card-detail-label { color:rgba(123,163,255,.85) }
body.page-nonprofits .intel-card-detail-text { font-size:13px;color:rgba(255,255,255,.85);line-height:1.6 }
body.page-nonprofits .intel-card-detail-text strong { color:#fff;font-weight:600 }
body.page-nonprofits footer { max-width:720px;margin:0 auto;text-align:center;padding:28px 20px 40px;font-size:13px;color:#3d4461;border-top:1px solid #e2e5ed;line-height:2 }
body.page-nonprofits footer a { color:#3d4461;font-weight:500;text-decoration:none;margin:0 10px }
body.page-nonprofits footer a:hover { color:#1b4fff }
body.page-nonprofits footer span.divider { color:#d0d4df }
body.page-nonprofits footer span.copyright { margin:0 10px }
@media(max-width:640px) {
  body.page-nonprofits h1 { font-size:36px }
  body.page-nonprofits .differentiator { padding:48px 24px 16px }
  body.page-nonprofits .differentiator-quote { font-size:24px }
  body.page-nonprofits .use-case-grid { grid-template-columns:1fr }
  body.page-nonprofits .price-cards { grid-template-columns:1fr }
  body.page-nonprofits .cards { grid-template-columns:1fr 1fr }
  body.page-nonprofits .form-row { grid-template-columns:1fr }
}
@media(max-width:600px) {
  body.page-nonprofits .hero { padding:44px 20px 40px }
  body.page-nonprofits .cards { grid-template-columns:1fr }
  body.page-nonprofits .use-case-grid { grid-template-columns:1fr }
  body.page-nonprofits .cta-group { flex-direction:column;align-items:center;gap:20px }
  body.page-nonprofits h1 { font-size:32px }
  body.page-nonprofits .hero h1 { font-size:32px }
  body.page-nonprofits h2 { font-size:28px }
  body.page-nonprofits footer { padding:20px }
  body.page-nonprofits footer a, body.page-nonprofits footer span.copyright { display:block;margin:6px 0 }
  body.page-nonprofits footer span.divider { display:none }
  body.page-nonprofits div[style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns:1fr !important;gap:18px !important }
}
@media (max-width:640px) {
  body.page-nonprofits .intel-compare-grid { grid-template-columns:1fr !important; }
  body.page-nonprofits .intel-vs { padding:4px 0 !important; }
}
body.page-nonprofits .hero, body.page-nonprofits .page-hero { --focus-ring:#ffffff }
body.page-nonprofits a:focus-visible, body.page-nonprofits button:focus-visible, body.page-nonprofits summary:focus-visible { outline:2px solid var(--focus-ring,#0f2057);outline-offset:2px }
body.page-nonprofits .lang-toggle button:focus-visible { outline-offset:1px }
@media (prefers-reduced-motion:reduce) {
  html.page-nonprofits { scroll-behavior:auto }
  html.page-nonprofits, body.page-nonprofits, body.page-nonprofits *, body.page-nonprofits *::before, body.page-nonprofits *::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important }
}
body.page-nonprofits .lang-toggle button { font:600 12px system-ui;padding:3px 8px;border:1px solid #d6dae3;background:#fff;border-radius:6px;cursor:pointer;color:#0c0f1a }
body.page-nonprofits .lang-toggle button.is-active { background:#1b4fff;color:#fff;border-color:#1b4fff }

/* ===== page: educators ===== */
html.page-educators, body.page-educators, body.page-educators *, body.page-educators *::before, body.page-educators *::after { box-sizing:border-box;margin:0;padding:0 }
body.page-educators { background:#f4f6f9;overflow-x:hidden;color:#0c0f1a;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased }
body.page-educators nav { position:sticky;top:0;z-index:200;background:rgba(244,246,249,.95);backdrop-filter:blur(16px);border-bottom:1px solid #e2e5ed;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:60px }
body.page-educators #menu-btn { background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;display:flex;flex-direction:column;gap:5px;justify-content:center }
body.page-educators #nav-menu { display:none;position:fixed;top:60px;right:0;left:0;background:#fff;border-bottom:1.5px solid #e2e5ed;z-index:999;padding:16px 24px;box-shadow:0 4px 16px rgba(0,0,0,.08) }
body.page-educators #nav-menu a { display:block;padding:12px 0;font-family:'DM Sans',sans-serif;text-decoration:none;border-bottom:1px solid #f0f2f7 }
body.page-educators #nav-menu a:last-child { border-bottom:none }
body.page-educators .nav-link-primary { font-size:15px;font-weight:600;color:#0f2057 }
body.page-educators .nav-link-secondary { font-size:14px;color:#7b82a0 }
body.page-educators .logo { display:inline-flex;align-items:center;gap:2px;font-family:'Instrument Serif',Georgia,serif;font-size:36px;font-weight:400;color:#0f2057;text-decoration:none;letter-spacing:-.5px;line-height:1 }
body.page-educators .logo-mark { width:30px;height:30px;flex-shrink:0 }
body.page-educators .logo-text { display:inline-block }
body.page-educators .logo .dot { color:#1b4fff }
body.page-educators .hero { background:#0f2057;margin:0;padding:64px 32px 56px;min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden }
body.page-educators .hero::before { content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 50%,rgba(27,79,255,.22) 0%,transparent 60%),radial-gradient(ellipse at 70% 20%,rgba(27,79,255,.14) 0%,transparent 50%);pointer-events:none }
body.page-educators .eyebrow { font-size:11px;font-weight:600;color:rgba(255,255,255,.6);letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:10px;position:relative;z-index:1 }
body.page-educators .eyebrow::before, body.page-educators .eyebrow::after { content:'';display:block;height:1px;width:28px;background:rgba(255,255,255,.2) }
body.page-educators h1 { font-family:'Instrument Serif',Georgia,serif;font-size:42px;font-weight:400;color:#0f2057;line-height:1.12;margin-bottom:16px }
body.page-educators .hero h1 { color:#fff;font-size:48px;line-height:1.1;letter-spacing:-.5px;max-width:800px;margin-left:auto;margin-right:auto;position:relative;z-index:1 }
body.page-educators .hero h1 em { color:#7ba3ff }
body.page-educators h1 em { font-style:italic;color:#1b4fff }
body.page-educators .hero p { font-size:16px;color:rgba(255,255,255,.78);line-height:1.6;max-width:620px;margin:0 auto;position:relative;z-index:1 }
body.page-educators .hero-bridge { background:#f4f6f9;padding:28px 32px 12px;text-align:center }
body.page-educators .hero-bridge-inner { max-width:720px;margin:0 auto }
body.page-educators .bridge-nonpartisan { display:block;background:#fff;border:1.5px solid #e2e5ed;border-radius:10px;padding:11px 20px;max-width:560px;margin:0 auto 22px;font-size:13px;color:#3d4461;text-align:center;line-height:1.5;text-decoration:none;transition:all .2s }
body.page-educators .bridge-nonpartisan:hover { border-color:#1b4fff;background:#f7faff }
body.page-educators .bridge-nonpartisan strong { color:#0f2057 }
body.page-educators .bridge-nonpartisan .learn-more { color:#1b4fff;font-weight:600;white-space:nowrap }
body.page-educators .bridge-cta-group { display:flex;gap:12px;justify-content:center;flex-wrap:wrap }
body.page-educators .bridge-cta-group .btn-primary { background:#1b4fff;color:#fff;border:none;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s }
body.page-educators .bridge-cta-group .btn-primary:hover { background:#1347c2 }
body.page-educators .bridge-cta-group .btn-secondary { background:#fff;color:#0f2057;border:1.5px solid #cfd5e0;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s }
body.page-educators .bridge-cta-group .btn-secondary:hover { border-color:#1b4fff;color:#1b4fff }
body.page-educators .cta-group { display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1 }
body.page-educators .btn-primary { background:#0f2057;color:#fff;border:none;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block }
body.page-educators .btn-primary:hover { background:#1b4fff }
body.page-educators .hero .btn-primary { background:#1b4fff;color:#fff;border:2px solid rgba(255,255,255,.3) }
body.page-educators .hero .btn-primary:hover { background:#fff;color:#0f2057 }
body.page-educators .btn-secondary { background:rgba(255,255,255,.1);color:#fff;border:1.5px solid rgba(255,255,255,.25);border-radius:12px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block }
body.page-educators .nonpartisan-callout { display:block;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:11px 20px;max-width:500px;margin:20px auto 40px;font-size:13px;color:rgba(255,255,255,.65);text-align:center;line-height:1.5;text-decoration:none;transition:all .2s;position:relative;z-index:1 }
body.page-educators .nonpartisan-callout:hover { background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.85) }
body.page-educators .nonpartisan-callout strong { color:#fff }
body.page-educators .nonpartisan-callout .learn-more { color:#7ba3ff;font-weight:500;white-space:nowrap }
body.page-educators .differentiator { max-width:920px;margin:0 auto;padding:64px 32px 24px;text-align:center }
body.page-educators .differentiator-label { font-size:11px;font-weight:600;color:#1b4fff;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:18px }
body.page-educators .differentiator-quote { font-family:'Instrument Serif',Georgia,serif;font-size:34px;color:#0f2057;line-height:1.25;max-width:820px;margin:0 auto }
body.page-educators .differentiator-quote em { font-style:italic;color:#1b4fff }
body.page-educators .section { max-width:1100px;margin:0 auto;padding:64px 32px }
body.page-educators .section-label { font-size:11px;font-weight:600;color:#1b4fff;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px }
body.page-educators .section-intro { text-align:center;max-width:680px;margin:0 auto 48px }
body.page-educators h2 { font-family:'Instrument Serif',Georgia,serif;font-size:38px;color:#0f2057;margin-bottom:16px;line-height:1.15 }
body.page-educators .cards { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px }
body.page-educators .card { background:#fff;border:1.5px solid #e2e5ed;border-radius:20px;padding:28px;box-shadow:0 2px 12px rgba(0,0,0,.05) }
body.page-educators .card-icon { font-size:32px;margin-bottom:14px;display:inline-flex;align-items:center;justify-content:flex-start;width:44px;height:44px;background:rgba(27,79,255,.08);border-radius:10px;padding:8px }
body.page-educators .card h3 { font-family:'Instrument Serif',Georgia,serif;font-size:20px;color:#0f2057;margin-bottom:8px }
body.page-educators .card p { font-size:14px;color:#3d4461;line-height:1.6 }
body.page-educators .use-cases { background:#0a1535;color:#fff;padding:56px 32px }
body.page-educators .use-cases-inner { max-width:1100px;margin:0 auto }
body.page-educators .use-cases h2 { color:#fff;font-family:'Instrument Serif',Georgia,serif;font-size:38px;margin-bottom:12px;text-align:center }
body.page-educators .use-cases .sub { color:rgba(255,255,255,.65);font-size:16px;margin-bottom:36px;text-align:center }
body.page-educators .use-case-grid { display:grid;grid-template-columns:1fr 1fr;gap:24px }
body.page-educators .use-case { background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:28px }
body.page-educators .use-case h3 { font-family:'Instrument Serif',Georgia,serif;font-size:22px;color:#fff;margin-bottom:12px }
body.page-educators .use-case p { font-size:14px;color:rgba(255,255,255,.7);line-height:1.6 }
body.page-educators .use-case ul { margin:12px 0 0 18px;color:rgba(255,255,255,.7);font-size:14px }
body.page-educators .use-case ul li { margin-bottom:6px }
body.page-educators .pricing { max-width:1100px;margin:0 auto;padding:48px 32px }
body.page-educators .pricing h2 { font-family:'Instrument Serif',Georgia,serif;font-size:34px;color:#0f2057;margin-bottom:10px;text-align:center }
body.page-educators .pricing-sub { text-align:center;color:#7b82a0;font-size:15px;margin-bottom:40px }
body.page-educators .price-cards { display:grid;grid-template-columns:repeat(3,1fr);gap:16px }
body.page-educators .price-card { background:#fff;border:1.5px solid #e2e5ed;border-radius:20px;padding:28px }
body.page-educators .price-card.featured { border-color:#1b4fff;box-shadow:0 4px 24px rgba(27,79,255,.12) }
body.page-educators .price-tier { font-size:12px;font-weight:600;color:#7b82a0;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px }
body.page-educators .price-amount { font-family:'Instrument Serif',Georgia,serif;font-size:36px;color:#0f2057;margin-bottom:4px }
body.page-educators .price-note { font-size:12px;color:#7b82a0;margin-bottom:16px }
body.page-educators .price-desc { font-size:13px;color:#3d4461;margin-bottom:20px;line-height:1.5 }
body.page-educators .price-features { list-style:none;font-size:13px;color:#3d4461 }
body.page-educators .price-features li { padding:5px 0;border-bottom:1px solid #f0eeea;display:flex;gap:8px }
body.page-educators .price-features li:last-child { border-bottom:none }
body.page-educators .price-features li::before { content:"✓";color:#1b4fff;font-weight:700;flex-shrink:0 }
body.page-educators .contact-section { background:#fff;border-top:1.5px solid #e2e5ed;padding:48px 32px;text-align:center }
body.page-educators .contact-inner { max-width:700px;margin:0 auto }
body.page-educators .contact-inner h2 { font-family:'Instrument Serif',Georgia,serif;font-size:38px;color:#0f2057;margin-bottom:12px }
body.page-educators .contact-inner p { color:#3d4461;font-size:16px;margin-bottom:32px }
body.page-educators .contact-form { text-align:left }
body.page-educators .form-row { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px }
body.page-educators input, body.page-educators textarea, body.page-educators select { width:100%;background:#f4f6f9;border:1.5px solid #e2e5ed;border-radius:9px;padding:12px 14px;font-family:'DM Sans',sans-serif;font-size:14px;color:#0c0f1a;outline:none }
body.page-educators input:focus, body.page-educators textarea:focus, body.page-educators select:focus { border-color:#1b4fff }
body.page-educators textarea { height:100px;resize:vertical;margin-bottom:12px }
body.page-educators .submit-btn { width:100%;background:#0f2057;color:#fff;border:none;border-radius:12px;padding:14px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer }
body.page-educators .submit-btn:hover { background:#1b4fff }
body.page-educators .success-msg { display:none;text-align:center;padding:20px;color:#16a34a;font-weight:500 }
body.page-educators .sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0 }
body.page-educators .hp-field { position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden }
body.page-educators .field-label { display:block;font-size:13px;font-weight:600;color:#0f2057;margin-bottom:5px }
body.page-educators .intel-card { cursor:pointer;border-radius:12px;padding:16px 18px;transition:all .2s ease;position:relative;text-align:left }
body.page-educators .intel-card-constituent { background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12) }
body.page-educators .intel-card-constituent:hover { background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.2) }
body.page-educators .intel-card-activist { background:rgba(27,79,255,.2);border:1px solid rgba(27,79,255,.4) }
body.page-educators .intel-card-activist:hover { background:rgba(27,79,255,.28);border-color:rgba(27,79,255,.55) }
body.page-educators .intel-card-header { display:flex;align-items:flex-start;justify-content:space-between;gap:10px }
body.page-educators .intel-card-header-text { flex:1 }
body.page-educators .intel-card-label { font-size:11px;letter-spacing:.5px;margin-bottom:5px;font-weight:600 }
body.page-educators .intel-card-constituent .intel-card-label { color:rgba(255,255,255,.5) }
body.page-educators .intel-card-activist .intel-card-label { color:#7ba3ff }
body.page-educators .intel-card-summary { font-size:14px;color:#fff;line-height:1.4;font-weight:500 }
body.page-educators .intel-card-chevron { color:rgba(255,255,255,.5);font-size:14px;transition:transform .2s ease;flex-shrink:0;margin-top:2px }
body.page-educators .intel-card.expanded .intel-card-chevron { transform:rotate(180deg) }
body.page-educators .intel-card-detail { max-height:0;overflow:hidden;transition:max-height .35s ease,opacity .25s ease,margin-top .25s ease;opacity:0;margin-top:0 }
body.page-educators .intel-card.expanded .intel-card-detail { max-height:1000px;opacity:1;margin-top:16px }
body.page-educators .intel-card-detail-section { margin-bottom:12px }
body.page-educators .intel-card-detail-section:last-child { margin-bottom:0 }
body.page-educators .intel-card-detail-label { font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:4px }
body.page-educators .intel-card-activist .intel-card-detail-label { color:rgba(123,163,255,.85) }
body.page-educators .intel-card-detail-text { font-size:13px;color:rgba(255,255,255,.85);line-height:1.6 }
body.page-educators .intel-card-detail-text strong { color:#fff;font-weight:600 }
body.page-educators footer { max-width:720px;margin:0 auto;text-align:center;padding:28px 20px 40px;font-size:13px;color:#3d4461;border-top:1px solid #e2e5ed;line-height:2 }
body.page-educators footer a { color:#3d4461;font-weight:500;text-decoration:none;margin:0 10px }
body.page-educators footer a:hover { color:#1b4fff }
body.page-educators footer span.divider { color:#d0d4df }
body.page-educators footer span.copyright { margin:0 10px }
@media(max-width:640px) {
  body.page-educators h1 { font-size:36px }
  body.page-educators .differentiator { padding:48px 24px 16px }
  body.page-educators .differentiator-quote { font-size:24px }
  body.page-educators .use-case-grid { grid-template-columns:1fr }
  body.page-educators .price-cards { grid-template-columns:1fr }
  body.page-educators .cards { grid-template-columns:1fr 1fr }
  body.page-educators .form-row { grid-template-columns:1fr }
}
@media(max-width:600px) {
  body.page-educators .hero { padding:44px 20px 40px }
  body.page-educators .cards { grid-template-columns:1fr }
  body.page-educators .use-case-grid { grid-template-columns:1fr }
  body.page-educators .cta-group { flex-direction:column;align-items:center;gap:20px }
  body.page-educators h1 { font-size:32px }
  body.page-educators .hero h1 { font-size:32px }
  body.page-educators h2 { font-size:28px }
  body.page-educators footer { padding:20px }
  body.page-educators footer a, body.page-educators footer span.copyright { display:block;margin:6px 0 }
  body.page-educators footer span.divider { display:none }
  body.page-educators div[style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns:1fr !important;gap:18px !important }
}
@media (max-width:640px) {
  body.page-educators .intel-compare-grid { grid-template-columns:1fr !important; }
  body.page-educators .intel-vs { padding:4px 0 !important; }
}
body.page-educators .hero, body.page-educators .page-hero { --focus-ring:#ffffff }
body.page-educators a:focus-visible, body.page-educators button:focus-visible, body.page-educators summary:focus-visible { outline:2px solid var(--focus-ring,#0f2057);outline-offset:2px }
body.page-educators .lang-toggle button:focus-visible { outline-offset:1px }
@media (prefers-reduced-motion:reduce) {
  html.page-educators { scroll-behavior:auto }
  html.page-educators, body.page-educators, body.page-educators *, body.page-educators *::before, body.page-educators *::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important }
}
body.page-educators .lang-toggle button { font:600 12px system-ui;padding:3px 8px;border:1px solid #d6dae3;background:#fff;border-radius:6px;cursor:pointer;color:#0c0f1a }
body.page-educators .lang-toggle button.is-active { background:#1b4fff;color:#fff;border-color:#1b4fff }

/* ===== page: nonpartisan ===== */
html.page-nonpartisan, body.page-nonpartisan, body.page-nonpartisan *, body.page-nonpartisan *::before, body.page-nonpartisan *::after { box-sizing:border-box;margin:0;padding:0 }
body.page-nonpartisan { background:#f4f6f9;color:#0c0f1a;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased }
body.page-nonpartisan nav { position:sticky;top:0;z-index:200;background:rgba(244,246,249,.95);backdrop-filter:blur(16px);border-bottom:1px solid #e2e5ed;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:60px }
body.page-nonpartisan #menu-btn { background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;display:flex;flex-direction:column;gap:5px;justify-content:center }
body.page-nonpartisan #nav-menu { display:none;position:fixed;top:60px;right:0;left:0;background:#fff;border-bottom:1.5px solid #e2e5ed;z-index:999;padding:16px 24px;box-shadow:0 4px 16px rgba(0,0,0,.08) }
body.page-nonpartisan #nav-menu a { display:block;padding:12px 0;font-family:'DM Sans',sans-serif;text-decoration:none;border-bottom:1px solid #f0f2f7 }
body.page-nonpartisan #nav-menu a:last-child { border-bottom:none }
body.page-nonpartisan .nav-link-primary { font-size:15px;font-weight:600;color:#0f2057 }
body.page-nonpartisan .nav-link-secondary { font-size:14px;color:#7b82a0 }
body.page-nonpartisan .logo { display:inline-flex;align-items:center;gap:2px;font-family:'Instrument Serif',Georgia,serif;font-size:36px;font-weight:400;color:#0f2057;text-decoration:none;letter-spacing:-.5px;line-height:1 }
body.page-nonpartisan .logo-mark { width:30px;height:30px;flex-shrink:0 }
body.page-nonpartisan .logo-text { display:inline-block }
body.page-nonpartisan .logo .dot { color:#1b4fff }
body.page-nonpartisan .page-hero { background:#0f2057;padding:64px 32px 56px;min-height:400px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;text-align:center }
body.page-nonpartisan .page-hero::before { content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 50%,rgba(27,79,255,.2) 0%,transparent 60%);pointer-events:none }
body.page-nonpartisan .page-hero-inner { max-width:720px;margin:0 auto;position:relative;z-index:1 }
body.page-nonpartisan .page-hero .eyebrow { font-size:11px;font-weight:600;color:rgba(255,255,255,.6);letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:10px }
body.page-nonpartisan .page-hero .eyebrow::before, body.page-nonpartisan .page-hero .eyebrow::after { content:'';display:block;height:1px;width:28px;background:rgba(255,255,255,.2) }
body.page-nonpartisan .page-hero h1 { font-family:'Instrument Serif',Georgia,serif;font-size:50px;color:#fff;margin-bottom:18px;line-height:1.08 }
body.page-nonpartisan .page-hero .subtitle { font-size:17px;color:rgba(255,255,255,.78);line-height:1.55;max-width:620px;margin:0 auto 20px }
body.page-nonpartisan .page-hero .supporting { font-size:14px;color:rgba(255,255,255,.62);line-height:1.65;max-width:560px;margin:0 auto;font-style:italic }
body.page-nonpartisan .container { max-width:720px;margin:0 auto;padding:40px 32px 100px }
body.page-nonpartisan .back-link { display:inline-flex;align-items:center;gap:6px;color:#7b82a0;font-size:13px;font-weight:500;text-decoration:none;margin-bottom:32px;transition:color .15s }
body.page-nonpartisan .back-link:hover { color:#0c0f1a }
body.page-nonpartisan h2 { font-family:'Instrument Serif',Georgia,serif;font-size:26px;color:#0f2057;margin:40px 0 12px }
body.page-nonpartisan p { color:#3d4461;margin-bottom:16px;line-height:1.7 }
body.page-nonpartisan .highlight { background:#fff;border:1.5px solid #e2e5ed;border-radius:16px;padding:24px 28px;margin:32px 0;box-shadow:0 2px 8px rgba(0,0,0,.05) }
body.page-nonpartisan .highlight p { margin-bottom:0;font-size:16px;color:#0c0f1a;line-height:1.6 }
body.page-nonpartisan .principle { display:flex;gap:16px;margin-bottom:20px;padding:16px 20px;background:#fff;border:1.5px solid #e2e5ed;border-radius:12px }
body.page-nonpartisan .principle-icon { font-size:24px;flex-shrink:0;margin-top:2px }
body.page-nonpartisan .principle-text h3 { font-size:15px;font-weight:600;color:#0f2057;margin-bottom:4px }
body.page-nonpartisan .principle-text p { font-size:14px;color:#3d4461;margin-bottom:0;line-height:1.5 }
body.page-nonpartisan .report-box { background:#0a1535;border-radius:16px;padding:28px;margin-top:48px;text-align:center }
body.page-nonpartisan .report-box h2 { color:#fff;margin-top:0;margin-bottom:10px }
body.page-nonpartisan .report-box h2 a { color:#1b4fff;text-decoration:none;transition:color .15s }
body.page-nonpartisan .report-box h2 a:hover { color:#7ba3ff }
body.page-nonpartisan .report-box p { color:rgba(255,255,255,.7);font-size:14px;margin-bottom:20px }
body.page-nonpartisan .report-btn { background:#1b4fff;color:#fff;border:none;border-radius:10px;padding:12px 24px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .15s }
body.page-nonpartisan .report-btn:hover { background:#fff;color:#0f2057 }
body.page-nonpartisan footer { max-width:720px;margin:0 auto;text-align:center;padding:28px 20px 40px;font-size:13px;color:#3d4461;border-top:1px solid #e2e5ed;line-height:2 }
body.page-nonpartisan footer a { color:#3d4461;font-weight:500;text-decoration:none;margin:0 10px }
body.page-nonpartisan footer a:hover { color:#1b4fff }
body.page-nonpartisan footer span.divider { color:#d0d4df }
body.page-nonpartisan footer span.copyright { margin:0 10px }
@media(max-width:600px) {
  body.page-nonpartisan nav { padding:0 20px }
  body.page-nonpartisan .page-hero { padding:48px 20px 44px }
  body.page-nonpartisan .page-hero h1 { font-size:36px }
  body.page-nonpartisan .page-hero .subtitle { font-size:15px }
  body.page-nonpartisan .page-hero .supporting { font-size:13px }
  body.page-nonpartisan .container { padding:32px 20px 80px }
  body.page-nonpartisan footer { padding:20px }
  body.page-nonpartisan footer a, body.page-nonpartisan footer span.copyright { display:block;margin:6px 0 }
  body.page-nonpartisan footer span.divider { display:none }
}
body.page-nonpartisan .hero, body.page-nonpartisan .page-hero { --focus-ring:#ffffff }
body.page-nonpartisan a:focus-visible, body.page-nonpartisan button:focus-visible, body.page-nonpartisan summary:focus-visible { outline:2px solid var(--focus-ring,#0f2057);outline-offset:2px }
body.page-nonpartisan .lang-toggle button:focus-visible { outline-offset:1px }
@media (prefers-reduced-motion:reduce) {
  html.page-nonpartisan { scroll-behavior:auto }
  html.page-nonpartisan, body.page-nonpartisan, body.page-nonpartisan *, body.page-nonpartisan *::before, body.page-nonpartisan *::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important }
}
body.page-nonpartisan .lang-toggle button { font:600 12px system-ui;padding:3px 8px;border:1px solid #d6dae3;background:#fff;border-radius:6px;cursor:pointer;color:#0c0f1a }
body.page-nonpartisan .lang-toggle button.is-active { background:#1b4fff;color:#fff;border-color:#1b4fff }

/* ===== page: contact ===== */
html.page-contact, body.page-contact, body.page-contact *, body.page-contact *::before, body.page-contact *::after { box-sizing:border-box;margin:0;padding:0 }
body.page-contact { background:#f4f6f9;color:#0c0f1a;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased }
body.page-contact nav { position:sticky;top:0;z-index:200;background:rgba(244,246,249,.95);backdrop-filter:blur(16px);border-bottom:1px solid #e2e5ed;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:60px }
body.page-contact #menu-btn { background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;display:flex;flex-direction:column;gap:5px;justify-content:center }
body.page-contact #nav-menu { display:none;position:fixed;top:60px;right:0;left:0;background:#fff;border-bottom:1.5px solid #e2e5ed;z-index:999;padding:16px 24px;box-shadow:0 4px 16px rgba(0,0,0,.08) }
body.page-contact #nav-menu a { display:block;padding:12px 0;font-family:'DM Sans',sans-serif;text-decoration:none;border-bottom:1px solid #f0f2f7 }
body.page-contact #nav-menu a:last-child { border-bottom:none }
body.page-contact .nav-link-primary { font-size:15px;font-weight:600;color:#0f2057 }
body.page-contact .nav-link-secondary { font-size:14px;color:#7b82a0 }
body.page-contact .logo { display:inline-flex;align-items:center;gap:2px;font-family:'Instrument Serif',Georgia,serif;font-size:36px;font-weight:400;color:#0f2057;text-decoration:none;letter-spacing:-.5px;line-height:1 }
body.page-contact .logo-mark { width:30px;height:30px;flex-shrink:0 }
body.page-contact .logo-text { display:inline-block }
body.page-contact .logo .dot { color:#1b4fff }
body.page-contact .page-hero { background:#0f2057;padding:64px 32px 56px;min-height:400px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;text-align:center }
body.page-contact .page-hero::before { content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 50%,rgba(27,79,255,.22) 0%,transparent 60%),radial-gradient(ellipse at 70% 20%,rgba(27,79,255,.14) 0%,transparent 50%);pointer-events:none }
body.page-contact .page-hero-inner { max-width:720px;margin:0 auto;position:relative;z-index:1 }
body.page-contact .page-hero .eyebrow { font-size:11px;font-weight:600;color:rgba(255,255,255,.6);letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:10px }
body.page-contact .page-hero .eyebrow::before, body.page-contact .page-hero .eyebrow::after { content:'';display:block;height:1px;width:28px;background:rgba(255,255,255,.2) }
body.page-contact .page-hero h1 { font-family:'Instrument Serif',Georgia,serif;font-size:48px;font-weight:400;color:#fff;margin-bottom:16px;line-height:1.1;letter-spacing:-.5px }
body.page-contact .page-hero .subtitle { font-size:16px;color:rgba(255,255,255,.78);line-height:1.6;max-width:620px;margin:0 auto }
body.page-contact .hero-bridge { background:#f4f6f9;padding:32px 32px 8px;text-align:center }
body.page-contact .hero-bridge-inner { max-width:720px;margin:0 auto }
body.page-contact .bridge-supporting { font-size:14px;color:#5e6377;line-height:1.65;max-width:560px;margin:0 auto 22px;font-style:italic }
body.page-contact .bridge-cta-group { display:flex;gap:12px;justify-content:center;flex-wrap:wrap }
body.page-contact .bridge-cta-group .btn-primary { background:#1b4fff;color:#fff;border:2px solid #1b4fff;border-radius:10px;padding:13px 24px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:all .2s }
body.page-contact .bridge-cta-group .btn-primary:hover { background:#1347c2;border-color:#1347c2 }
body.page-contact .bridge-cta-group .btn-secondary { background:#fff;color:#0f2057;border:1.5px solid #cfd5e0;border-radius:10px;padding:13px 24px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:all .2s }
body.page-contact .bridge-cta-group .btn-secondary:hover { border-color:#1b4fff;color:#1b4fff }
body.page-contact .container { max-width:720px;margin:0 auto;padding:40px 32px 100px }
body.page-contact .back-link { display:inline-flex;align-items:center;gap:6px;color:#7b82a0;font-size:13px;font-weight:500;text-decoration:none;margin-bottom:32px;transition:color .15s }
body.page-contact .back-link:hover { color:#0c0f1a }
body.page-contact .intro { font-size:16px;color:#3d4461;line-height:1.7;margin-bottom:36px }
body.page-contact .section-label { font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#1b4fff;margin-bottom:20px;margin-top:8px }
body.page-contact .contact-card { background:#fff;border:1.5px solid #e2e5ed;border-radius:20px;padding:28px 32px;margin-bottom:20px;box-shadow:0 2px 8px rgba(15,32,87,.05);transition:all .2s }
body.page-contact .contact-card:hover { border-color:#1b4fff;box-shadow:0 4px 16px rgba(15,32,87,.08) }
body.page-contact .contact-icon { font-size:28px;margin-bottom:14px;display:block }
body.page-contact .contact-title { font-family:'Instrument Serif',Georgia,serif;font-size:24px;color:#0f2057;margin-bottom:8px;line-height:1.2 }
body.page-contact .contact-desc { font-size:14px;color:#3d4461;line-height:1.65;margin-bottom:14px }
body.page-contact .response-badge { display:inline-flex;align-items:center;gap:6px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:6px 12px;font-size:12px;color:#1e40af;font-weight:500;margin-bottom:18px }
body.page-contact .response-badge.fast { background:#eef9f1;border-color:#bbf7d0;color:#15803d }
body.page-contact .response-badge-icon { font-size:13px }
body.page-contact .contact-email { display:inline-flex;align-items:center;gap:8px;background:#0f2057;color:#fff;border-radius:10px;padding:12px 22px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s }
body.page-contact .contact-email:hover { background:#1b4fff }
body.page-contact .contact-email-icon { font-size:16px }
body.page-contact .note { font-size:13px;color:#7b82a0;line-height:1.65;margin-top:40px;padding-top:24px;border-top:1px solid #e2e5ed }
body.page-contact .note a { color:#1b4fff;text-decoration:none }
body.page-contact .note a:hover { text-decoration:underline }
body.page-contact footer { max-width:720px;margin:0 auto;text-align:center;padding:28px 20px 40px;font-size:13px;color:#3d4461;border-top:1px solid #e2e5ed;line-height:2 }
body.page-contact footer a { color:#3d4461;font-weight:500;text-decoration:none;margin:0 10px }
body.page-contact footer a:hover { color:#1b4fff }
body.page-contact footer span.divider { color:#d0d4df }
body.page-contact footer span.copyright { margin:0 10px }
@media(max-width:600px) {
  body.page-contact nav { padding:0 20px }
  body.page-contact .page-hero { padding:48px 20px 44px }
  body.page-contact .page-hero h1 { font-size:36px }
  body.page-contact .page-hero .subtitle { font-size:15px }
  body.page-contact .page-hero .supporting { font-size:13px }
  body.page-contact .page-hero .cta-group { flex-direction:column;align-items:stretch;padding:0 12px;gap:20px }
  body.page-contact .page-hero .btn-primary, body.page-contact .page-hero .btn-secondary { justify-content:center }
  body.page-contact .container { padding:32px 20px 80px }
  body.page-contact .contact-card { padding:24px 22px;border-radius:18px }
  body.page-contact .contact-title { font-size:22px }
  body.page-contact footer { padding:20px }
  body.page-contact footer a, body.page-contact footer span.copyright { display:block;margin:6px 0 }
  body.page-contact footer span.divider { display:none }
}
body.page-contact .hero, body.page-contact .page-hero { --focus-ring:#ffffff }
body.page-contact a:focus-visible, body.page-contact button:focus-visible, body.page-contact summary:focus-visible { outline:2px solid var(--focus-ring,#0f2057);outline-offset:2px }
body.page-contact input:focus-visible, body.page-contact textarea:focus-visible, body.page-contact select:focus-visible { outline:2px solid var(--focus-ring,#0f2057);outline-offset:2px }
body.page-contact .lang-toggle button:focus-visible { outline-offset:1px }
@media (prefers-reduced-motion:reduce) {
  html.page-contact { scroll-behavior:auto }
  html.page-contact, body.page-contact, body.page-contact *, body.page-contact *::before, body.page-contact *::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important }
}
body.page-contact .lang-toggle button { font:600 12px system-ui;padding:3px 8px;border:1px solid #d6dae3;background:#fff;border-radius:6px;cursor:pointer;color:#0c0f1a }
body.page-contact .lang-toggle button.is-active { background:#1b4fff;color:#fff;border-color:#1b4fff }

/* ===== page: grassroots-advocacy ===== */
html.page-grassroots-advocacy, body.page-grassroots-advocacy, body.page-grassroots-advocacy *, body.page-grassroots-advocacy *::before, body.page-grassroots-advocacy *::after { box-sizing:border-box;margin:0;padding:0 }
body.page-grassroots-advocacy { background:#f4f6f9;overflow-x:hidden;color:#0c0f1a;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased }
body.page-grassroots-advocacy nav { position:sticky;top:0;z-index:200;background:rgba(244,246,249,.95);backdrop-filter:blur(16px);border-bottom:1px solid #e2e5ed;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:60px }
body.page-grassroots-advocacy #menu-btn { background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;display:flex;flex-direction:column;gap:5px;justify-content:center }
body.page-grassroots-advocacy #nav-menu { display:none;position:fixed;top:60px;right:0;left:0;background:#fff;border-bottom:1.5px solid #e2e5ed;z-index:999;padding:16px 24px;box-shadow:0 4px 16px rgba(0,0,0,.08) }
body.page-grassroots-advocacy #nav-menu a { display:block;padding:12px 0;font-family:'DM Sans',sans-serif;text-decoration:none;border-bottom:1px solid #f0f2f7 }
body.page-grassroots-advocacy #nav-menu a:last-child { border-bottom:none }
body.page-grassroots-advocacy .nav-link-primary { font-size:15px;font-weight:600;color:#0f2057 }
body.page-grassroots-advocacy .nav-link-secondary { font-size:14px;color:#7b82a0 }
body.page-grassroots-advocacy .logo { display:inline-flex;align-items:center;gap:2px;font-family:'Instrument Serif',Georgia,serif;font-size:36px;font-weight:400;color:#0f2057;text-decoration:none;letter-spacing:-.5px;line-height:1 }
body.page-grassroots-advocacy .logo-mark { width:30px;height:30px;flex-shrink:0 }
body.page-grassroots-advocacy .logo-text { display:inline-block }
body.page-grassroots-advocacy .logo .dot { color:#1b4fff }
body.page-grassroots-advocacy .hero { background:#0f2057;margin:0;padding:64px 32px 56px;min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden }
body.page-grassroots-advocacy .hero::before { content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 50%,rgba(27,79,255,.22) 0%,transparent 60%),radial-gradient(ellipse at 70% 20%,rgba(27,79,255,.14) 0%,transparent 50%);pointer-events:none }
body.page-grassroots-advocacy .eyebrow { font-size:11px;font-weight:600;color:rgba(255,255,255,.6);letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:10px;position:relative;z-index:1 }
body.page-grassroots-advocacy .eyebrow::before, body.page-grassroots-advocacy .eyebrow::after { content:'';display:block;height:1px;width:28px;background:rgba(255,255,255,.2) }
body.page-grassroots-advocacy h1 { font-family:'Instrument Serif',Georgia,serif;font-size:42px;font-weight:400;color:#0f2057;line-height:1.12;margin-bottom:16px }
body.page-grassroots-advocacy .hero h1 { color:#fff;font-size:48px;line-height:1.1;letter-spacing:-.5px;max-width:800px;margin-left:auto;margin-right:auto;position:relative;z-index:1 }
body.page-grassroots-advocacy .hero h1 em { color:#7ba3ff }
body.page-grassroots-advocacy h1 em { font-style:italic;color:#1b4fff }
body.page-grassroots-advocacy .hero p { font-size:16px;color:rgba(255,255,255,.78);line-height:1.6;max-width:620px;margin:0 auto 44px;position:relative;z-index:1 }
body.page-grassroots-advocacy .bridge-cta-group { display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1 }
body.page-grassroots-advocacy .bridge-cta-group .btn-primary { background:#1b4fff;color:#fff;border:none;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s }
body.page-grassroots-advocacy .bridge-cta-group .btn-primary:hover { background:#1347c2 }
body.page-grassroots-advocacy .bridge-cta-group .btn-secondary { background:#fff;color:#0f2057;border:1.5px solid #cfd5e0;border-radius:10px;padding:14px 28px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s }
body.page-grassroots-advocacy .bridge-cta-group .btn-secondary:hover { border-color:#1b4fff;color:#1b4fff }
body.page-grassroots-advocacy .differentiator { max-width:920px;margin:0 auto;padding:64px 32px 24px;text-align:center }
body.page-grassroots-advocacy .differentiator-label { font-size:11px;font-weight:600;color:#1b4fff;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:18px }
body.page-grassroots-advocacy .differentiator-quote { font-family:'Instrument Serif',Georgia,serif;font-size:34px;color:#0f2057;line-height:1.25;max-width:820px;margin:0 auto }
body.page-grassroots-advocacy .differentiator-quote em { font-style:italic;color:#1b4fff }
body.page-grassroots-advocacy .section { max-width:1100px;margin:0 auto;padding:64px 32px }
body.page-grassroots-advocacy .section-intro { text-align:center;max-width:680px;margin:0 auto 36px }
body.page-grassroots-advocacy h2 { font-family:'Instrument Serif',Georgia,serif;font-size:38px;color:#0f2057;margin-bottom:16px;line-height:1.15 }
body.page-grassroots-advocacy footer { max-width:720px;margin:0 auto;text-align:center;padding:28px 20px 40px;font-size:13px;color:#3d4461;border-top:1px solid #e2e5ed;line-height:2 }
body.page-grassroots-advocacy footer a { color:#3d4461;font-weight:500;text-decoration:none;margin:0 10px }
body.page-grassroots-advocacy footer a:hover { color:#1b4fff }
body.page-grassroots-advocacy footer span.divider { color:#d0d4df }
body.page-grassroots-advocacy footer span.copyright { margin:0 10px }
@media(max-width:640px) {
  body.page-grassroots-advocacy h1 { font-size:36px }
  body.page-grassroots-advocacy .differentiator { padding:48px 24px 16px }
  body.page-grassroots-advocacy .differentiator-quote { font-size:24px }
}
@media(max-width:600px) {
  body.page-grassroots-advocacy .hero { padding:44px 20px 40px }
  body.page-grassroots-advocacy h1 { font-size:32px }
  body.page-grassroots-advocacy .hero h1 { font-size:32px }
  body.page-grassroots-advocacy h2 { font-size:28px }
  body.page-grassroots-advocacy footer { padding:20px }
  body.page-grassroots-advocacy footer a, body.page-grassroots-advocacy footer span.copyright { display:block;margin:6px 0 }
  body.page-grassroots-advocacy footer span.divider { display:none }
}
body.page-grassroots-advocacy .hero, body.page-grassroots-advocacy .page-hero { --focus-ring:#ffffff }
body.page-grassroots-advocacy a:focus-visible, body.page-grassroots-advocacy button:focus-visible, body.page-grassroots-advocacy summary:focus-visible { outline:2px solid var(--focus-ring,#0f2057);outline-offset:2px }
body.page-grassroots-advocacy .lang-toggle button:focus-visible { outline-offset:1px }
@media (prefers-reduced-motion:reduce) {
  html.page-grassroots-advocacy { scroll-behavior:auto }
  html.page-grassroots-advocacy, body.page-grassroots-advocacy, body.page-grassroots-advocacy *, body.page-grassroots-advocacy *::before, body.page-grassroots-advocacy *::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important }
}
body.page-grassroots-advocacy .lang-toggle button { font:600 12px system-ui;padding:3px 8px;border:1px solid #d6dae3;background:#fff;border-radius:6px;cursor:pointer;color:#0c0f1a }
body.page-grassroots-advocacy .lang-toggle button.is-active { background:#1b4fff;color:#fff;border-color:#1b4fff }
body.page-grassroots-advocacy .section-label { font-size:11px;font-weight:600;color:#1b4fff;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px }
body.page-grassroots-advocacy .cards { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px }
body.page-grassroots-advocacy .card { background:#fff;border:1.5px solid #e2e5ed;border-radius:20px;padding:28px;box-shadow:0 2px 12px rgba(0,0,0,.05) }
body.page-grassroots-advocacy .card-icon { font-size:32px;margin-bottom:14px;display:inline-flex;align-items:center;justify-content:flex-start;width:44px;height:44px;background:rgba(27,79,255,.08);border-radius:10px;padding:8px }
@media(max-width:900px) {
  body.page-grassroots-advocacy .cards { grid-template-columns:1fr 1fr }
}
@media(max-width:600px) {
  body.page-grassroots-advocacy .cards { grid-template-columns:1fr }
}

/* ===========================================================================
 * 3. NORMALISATION -- the DELIBERATE visual changes.
 *
 * Everything above this line is a pure move, proven pixel-identical to the
 * eight inline blocks by a 32-shot local diff. Everything below is an intended
 * change, kept here in one block so it can be reviewed without hunting through
 * 100KB of extracted rules.
 *
 * WHAT THE INVENTORY ACTUALLY FOUND, once counted rather than eyeballed:
 * 720px is ALREADY the dominant reading width on every one of the eight pages
 * (about 14 uses, contact 4, faq 3, nonpartisan 3, and 2 each on organizations,
 * nonprofits and educators). The "720 / 1100 / 600 spread" is not one spread,
 * it is three different things:
 *
 *   720px   the reading column. The real convention.
 *   1100px  the CARD-GRID wrappers on organizations, nonprofits and educators.
 *           A different section type, deliberately wider. NOT drift, so NOT
 *           touched here.
 *   600px   grassroots-advocacy's own narrow column, and 760px on faq.
 *           These two ARE drift: same job, different number.
 *
 * So the only thing normalised is the one class that means the same thing on
 * three pages and carries three different values.
 * =========================================================================== */

/* .container is the reading column on faq, nonpartisan and contact. It was
 * 760px on faq and 720px on the other two. One name, one width. */
body.page-faq .container { max-width: 720px; }

/* ALIGNMENT: DECIDED (2026-07-28, the consistency pass). The wrapper
 * convention is CENTERED, read off the homepage's own rhythm: index.html's
 * landing screen is a single centered column (its hero, section labels,
 * paths subtitle, and footer all center; running prose inside cards stays
 * left-aligned for readability). Applied to the interior pages that means:
 * every page's content sits in a centered max-width column (720px reading,
 * 1100px card grids), heroes and landing-page section headers center, and
 * prose left-aligns inside the centered column. The section-type split the
 * earlier inventory found (landing pages center headers, reading pages
 * left-align prose) IS that convention, so no rule changes: every page
 * already complies, and this comment closes the question that was flagged
 * for Miguel's call. A future page that pins its wrapper left or centers
 * its running prose is drift against this decision. */

/* BATCH 24 (2026-07-28), THE VISUAL PASS -- cause-level fixes, in the shell
 * because every rule below targets a SHELL class. Two families, both derived
 * from the homepage via scripts/style-consistency-check.js (R1 and R4):
 *
 * (a) MOBILE RHYTHM. The homepage compresses its vertical rhythm at phone
 *     width (hero 48->44, flow-section 30->22, proof margin 36->28); the
 *     interior pages never did. Their .section (64px), .use-cases (56px),
 *     .pricing (48px) and .contact-section (48px) paddings are unchanged at
 *     390px, so every section boundary opens a 104-140px band of empty page
 *     background -- measured on a real 390px render of organizations.html,
 *     nine bands of 90px or more, against the homepage's own maximum
 *     combined boundary of 102px. These overrides bring every boundary
 *     under that homepage-derived bar. Desktop is untouched.
 *
 * (b) RUNNING PROSE DOES NOT CENTER. The homepage centers display text and
 *     labels but left-aligns anything that wraps (its 13-16px prose). The
 *     decided rule: a paragraph that wraps past two lines at 390px must be
 *     left-aligned; heroes, single-line leads, and section labels may
 *     center. The shell classes below carry multi-line prose on their
 *     pages, so they left-align at every width. Section labels and h2
 *     headings inside .section-intro WRAPPERS keep their centering: the
 *     rules target only the paragraphs.
 */
@media (max-width:600px) {
  body.page-organizations .section, body.page-nonprofits .section,
  body.page-educators .section, body.page-grassroots-advocacy .section { padding: 40px 20px; }
  body.page-organizations .use-cases, body.page-nonprofits .use-cases,
  body.page-educators .use-cases { padding: 40px 20px; }
  body.page-organizations .pricing, body.page-nonprofits .pricing,
  body.page-educators .pricing { padding: 36px 20px; }
  body.page-organizations .contact-section, body.page-nonprofits .contact-section,
  body.page-educators .contact-section { padding: 36px 20px; }
  /* about's reading column: hero pb 44 + hero mb + main pt 32 must stay
   * under 102; and main pb 80 + footer pt 28 was 108. */
  body.page-about main { padding-bottom: 56px; }
}
@media (max-width:720px) {
  /* about's own mobile breakpoint is 720; the hero margin joins it there */
  body.page-about .page-hero { margin-bottom: 24px; }
}
body.page-organizations p.section-intro, body.page-grassroots-advocacy p.section-intro,
body.page-organizations .section-intro p, body.page-nonprofits .section-intro p,
body.page-educators .section-intro p { text-align: left; }
body.page-organizations .bridge-nonpartisan, body.page-nonprofits .bridge-nonpartisan,
body.page-educators .bridge-nonpartisan { text-align: left; }
body.page-organizations .pricing-sub { text-align: left; max-width: 680px; margin-left: auto; margin-right: auto; }
body.page-organizations .contact-inner p, body.page-nonprofits .contact-inner p,
body.page-educators .contact-inner p { text-align: left; }
body.page-nonprofits .success-msg, body.page-educators .success-msg { text-align: left; }
body.page-nonpartisan .report-box p { text-align: left; }
body.page-faq .cta-box p { text-align: left; }
body.page-contact .bridge-supporting { text-align: left; }

/* BATCH 27 (the Spanish visibility slice): the language toggle became a
 * CROSS-LINK between the English page and its /es/ twin, so the toggle
 * controls are now anchors. They inherit the exact button treatment; the
 * per-page button rules above stay for any page still carrying buttons. */
body.page-about .lang-toggle a, body.page-faq .lang-toggle a, body.page-organizations .lang-toggle a, body.page-nonprofits .lang-toggle a, body.page-educators .lang-toggle a, body.page-nonpartisan .lang-toggle a, body.page-contact .lang-toggle a, body.page-grassroots-advocacy .lang-toggle a { font: 600 12px system-ui; padding: 3px 8px; border: 1px solid #d6dae3; background: #fff; border-radius: 6px; color: #0c0f1a; text-decoration: none; display: inline-block; }
body.page-about .lang-toggle a.is-active, body.page-faq .lang-toggle a.is-active, body.page-organizations .lang-toggle a.is-active, body.page-nonprofits .lang-toggle a.is-active, body.page-educators .lang-toggle a.is-active, body.page-nonpartisan .lang-toggle a.is-active, body.page-contact .lang-toggle a.is-active, body.page-grassroots-advocacy .lang-toggle a.is-active { background: #1b4fff; color: #fff; border-color: #1b4fff; }

/* BATCH 28 (typography calibration, measured at 390px before adjusting).
 * The researched mobile scale: body/reading prose 17px, section-opening
 * leads 20px, secondary 14 to 15, H2 26 to 28, H1 32 to 36, line-height
 * 1.55 on adjusted prose, no input under 16px. Only the deviating elements
 * move, and every ADJUSTED declaration is in rem (16px root) so user font
 * settings scale it; the extracted per-page blocks above stay byte-stable
 * because their provenance is a pixel-identical move. Measured deviations
 * fixed here:
 *   about p 15px -> 1.0625rem; .lead-para 17px -> 1.25rem
 *   nonpartisan p 15px -> 1.0625rem, and the .highlight callout paragraph
 *     16px -> 1.0625rem so the EMPHASIZED box never renders smaller than
 *     the prose around it
 *   faq .qa .answer 14px -> 1.0625rem; faq h2 22px -> 1.625rem; faq hero
 *     .subtitle 14px -> 0.9375rem (every other page's hero subtitle is
 *     15px at phone width -- this was the one-off)
 *   org-family .section-intro paragraphs 15px -> 1.0625rem
 *   contact .contact-desc 14px -> 1.0625rem (the four card descriptions
 *     ARE this page's running prose; there is no separate intro paragraph)
 *   org-family form controls 14px -> 1rem (also ends iOS zoom-on-focus)
 * Measured and deliberately untouched: H1s 32 to 36 everywhere; hero
 * .subtitle at 15px (a consistent secondary lead, not body prose); the
 * org-family pages' classless body paragraphs at 16px (that is the
 * family-wide base shared by every component on those denser product
 * pages and sits on the 16px accessibility floor -- the calibration
 * lifts one-off 14 to 15px reading prose, and a consistent family base
 * is not a one-off); faq .section-intro at 14px gray (a labeled kicker,
 * secondary by design); contact .contact-title at 22px (a card component
 * heading, not a section H2 -- the page's one true heading is the 36px
 * H1). Zoom is never blocked: no viewport carries maximum-scale or
 * user-scalable restrictions (verified across all eight pages plus
 * index).
 */
@media (max-width: 720px) {
  body.page-about p { font-size: 1.0625rem; line-height: 1.55; }
  body.page-about .lead-para { font-size: 1.25rem; line-height: 1.55; }
}
@media (max-width: 600px) {
  body.page-nonpartisan p { font-size: 1.0625rem; line-height: 1.55; }
  body.page-nonpartisan .highlight p { font-size: 1.0625rem; line-height: 1.55; }
  body.page-faq .qa .answer { font-size: 1.0625rem; line-height: 1.55; }
  body.page-faq h2 { font-size: 1.625rem; }
  body.page-faq .page-hero .subtitle { font-size: 0.9375rem; }
  body.page-organizations p.section-intro, body.page-organizations .section-intro p,
  body.page-nonprofits .section-intro p, body.page-educators .section-intro p,
  body.page-grassroots-advocacy p.section-intro { font-size: 1.0625rem; line-height: 1.55; }
  body.page-contact .contact-desc { font-size: 1.0625rem; line-height: 1.55; }
  body.page-organizations input, body.page-organizations textarea, body.page-organizations select,
  body.page-nonprofits input, body.page-nonprofits textarea, body.page-nonprofits select,
  body.page-educators input, body.page-educators textarea, body.page-educators select { font-size: 1rem; }
}
