/* === site.css === */
/* The Poston Foundation · October 2026
   Single source of presentation: foundation, campaigns, forms and utility pages.
   Breakpoints follow content, not devices. No scroll-dependent visibility. */

/* 1. Tokens, typography and accessible defaults */
:root {
  color-scheme: light;
  --navy: #071b31;
  --heritage: #071b31;
  --executive-blue: #17496a;
  --champagne: #dcc58d;
  --porcelain: #f7f8fa;
  --stone: #e8edf2;
  --gold: #c69a45;
  --gold-ink: #7a5a1e;
  --cream: #e8edf2;
  --paper: #ffffff;
  --ink: #202a33;
  --muted: #5b6772;
  --border: #d8dee4;
  --line: var(--border);
  --max: 1200px;
  --read: 70ch;
  --gutter: clamp(18px, 4vw, 64px);
  --space: clamp(44px, 6vw, 80px);
  --panel-space: clamp(22px, 3vw, 40px);
  --header-height: 90px;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
  --shadow: 0 8px 28px rgb(7 27 49 / 5%);
}
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--paper); scroll-padding-top: calc(var(--header-height) + 24px); }
body { margin: 0; color: var(--ink); background: var(--paper); font: 400 1.0625rem/1.7 var(--sans); }
main, section, article, aside, figure, nav, div, fieldset { min-width: 0; }
[hidden] { display: none !important; }
h1, h2, h3, h4 { color: var(--navy); font-family: var(--serif); font-weight: 400; text-wrap: pretty; }
h1 { margin: 0 0 24px; font-size: clamp(2.125rem, 4.5vw, 4.25rem); line-height: 1.09; letter-spacing: -.035em; }
h2 { margin: 0 0 20px; font-size: clamp(1.75rem, 3vw, 2.75rem); line-height: 1.2; letter-spacing: -.025em; }
h3 { margin: 0 0 12px; font-size: clamp(1.2rem, 1.8vw, 1.55rem); line-height: 1.3; }
h4 { font-size: 1.15rem; }
p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }
strong, b { font-weight: 650; }
ul, ol { padding-left: 1.3em; }
li + li { margin-top: .45em; }
figure, blockquote { margin: 0; }
img { display: block; max-width: 100%; height: auto; }
svg { max-width: 100%; }
iframe { display: block; max-width: 100%; border: 0; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: var(--navy); text-decoration-thickness: 1px; text-underline-offset: .22em; overflow-wrap: anywhere; }
a:hover { color: var(--gold-ink); }
button, a { -webkit-tap-highlight-color: rgb(198 154 69 / 20%); }
:focus-visible { outline: 3px solid #146c9e; outline-offset: 4px; }
.final-cta :focus-visible, .fri-final :focus-visible, .pp-final :focus-visible,
.pp-support-copy :focus-visible { outline-color: #f2d794; }
:target { scroll-margin-top: calc(var(--header-height) + 24px); }
address { font-style: normal; }
figcaption { padding: 14px 18px; color: var(--muted); font-size: .875rem; line-height: 1.55; }
.sr-only, .form-honeypot { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 200; top: 8px; left: 12px; transform: translateY(-160%); padding: 12px 18px; background: var(--navy); color: white; }
.skip-link:focus { transform: none; color: white; }
.section-kicker, .hero-overline, .fri-kicker, .pp-kicker, .kicker, .profile-eyebrow, .news-meta, .home-trust-eyebrow {
  margin: 0 0 16px; color: var(--gold-ink); font: 700 .75rem/1.5 var(--sans); letter-spacing: .12em; text-transform: uppercase;
}
.fine-print, .scope-note, .fri-source, .historical-note, .source-note { color: var(--muted); font-size: .9rem; line-height: 1.65; }
.gold-ornament { width: 48px; height: 2px; background: var(--gold); margin: 22px 0; }
.gold-ornament > * { display: none; }
.section-heading .gold-ornament, .final-cta .gold-ornament { margin-inline: auto; }
.line-icon { display: inline-flex; color: var(--gold-ink); width: 38px; height: 38px; margin-bottom: 18px; }
.line-icon svg, .home-trust-icon svg, .pp-purpose svg { width: 100%; height: 100%; stroke: currentColor; stroke-width: 1.5; fill: none; }

/* 2. Header and progressive navigation (full navigation is usable without JS) */
.site-header {
  display: flex; align-items: center; justify-content: space-between; gap: 22px;
  position: sticky; top: 0; z-index: 40; min-height: 90px;
  padding: 12px max(24px, calc((100% - 1320px) / 2));
  background: var(--paper); border-bottom: 1px solid var(--border);
}
.brand { flex: 0 0 200px; display: block; }
.brand img { width: 100%; height: auto; object-fit: contain; }
.primary-nav { display: flex; align-items: center; justify-content: flex-end; gap: 20px; }
.primary-nav a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 6px; font-size: .875rem; font-weight: 600; line-height: 1.4; text-decoration: none; white-space: nowrap; }
.primary-nav a[aria-current="page"] { color: var(--gold-ink); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.primary-nav .mobile-nav-donate, .nav-toggle { display: none; }
.header-cta { flex: 0 0 auto; display: inline-flex; justify-content: center; align-items: center; min-height: 46px; padding: 11px 22px; border: 1px solid var(--navy); border-radius: 4px; background: var(--navy); color: white; font-size: .875rem; font-weight: 700; line-height: 1.35; text-decoration: none; }
.header-cta:hover { color: white; background: #17496a; }
.nav-toggle { width: 44px; height: 44px; padding: 10px; border: 1px solid var(--border); border-radius: 4px; background: var(--paper); color: var(--navy); }
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after { display: block; height: 2px; width: 22px; background: currentColor; position: relative; }
.nav-toggle span::before, .nav-toggle span::after { content: ""; position: absolute; left: 0; }
.nav-toggle span::before { top: -7px; }
.nav-toggle span::after { top: 7px; }
.is-nav-open .nav-toggle span { background: transparent; }
.is-nav-open .nav-toggle span::before { top: 0; transform: rotate(45deg); }
.is-nav-open .nav-toggle span::after { top: 0; transform: rotate(-45deg); }

/* 3. Core page introductions, layouts and cards */
.prestige-hero { padding: clamp(44px, 6vw, 76px) var(--gutter); background: var(--cream); border-bottom: 1px solid var(--border); }
.prestige-hero-content { width: 100%; max-width: var(--max); margin-inline: auto; }
.prestige-hero h1 { max-width: 23ch; }
.hero-tagline { max-width: 70ch; margin-bottom: 18px; color: var(--gold-ink); font-weight: 600; line-height: 1.5; }
.hero-copy { max-width: 68ch; color: var(--muted); font-size: 1.125rem; line-height: 1.75; }
.prestige-section { padding: var(--space) var(--gutter); }
.prestige-section > * { max-width: var(--max); margin-inline: auto; }
.darker { background: var(--cream); }
.section-heading { max-width: 760px; margin: 0 auto 36px; text-align: center; }
.section-heading p:not(.section-kicker) { color: var(--muted); }
.wide-panel, .commitment-panel { padding: var(--panel-space); background: white; border: 1px solid var(--border); border-radius: 6px; }
.wide-panel > p, .foundation-copy > p, .commitment-panel > p { max-width: 75ch; }
.centered-panel { text-align: center; }
.centered-panel > p { margin-inline: auto; }
.foundation-overview, .split-panel, .initiative-feature, .contact-grid, .contact-location-layout,
.leadership-snapshot, .founder-profile, .mission-connection, .featured-news, .media-feature,
.media-record-layout, .history-intro-grid, .history-now-grid, .inquiry-form-wrap, .volunteer-form-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start;
}
.foundation-overview { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.initiative-feature + .initiative-feature { margin-top: 36px; }
.initiative-feature { align-items: center; border-bottom: 1px solid var(--border); padding-block: 24px; }
.initiative-visual { background: var(--cream); border-radius: 6px; overflow: hidden; }
.initiative-visual img { width: 100%; height: auto; object-fit: contain; }
.three-card-grid, .four-card-grid, .stats-grid, .governance-principles, .director-grid, .accountability-grid,
.human-moments-grid, .home-trust-grid, .simple-process-grid, .sponsor-levels, .volunteer-process {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px;
}
.four-card-grid, .home-trust-grid, .simple-process-grid, .accountability-grid, .volunteer-process { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stats-grid, .director-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.prestige-card, .stat-item, .governance-principles article, .director-profile, .accountability-grid article,
.home-trust-card, .human-moments-grid article, .simple-process-grid article, .sponsor-level,
.volunteer-process li, .history-context-emphasis {
  min-width: 0; padding: 26px; border: 1px solid var(--border); border-radius: 6px; background: var(--paper);
}
.prestige-card { display: flex; flex-direction: column; align-items: flex-start; }
.prestige-card p { color: var(--muted); }
.prestige-card .text-link { margin-top: auto; padding-top: 12px; }
.prestige-card .gold-ornament { margin-top: 5px; }
.stat-item { display: flex; flex-direction: column; gap: 8px; }
.stat-item .line-icon { margin-bottom: 0; }
.stat-item strong { color: var(--navy); font: 400 clamp(1.5rem, 2.3vw, 2rem)/1.2 var(--serif); }
.stat-label { font-size: .875rem; line-height: 1.5; color: var(--muted); }
.text-link, .pp-text-link { display: inline-block; font-size: .9375rem; font-weight: 650; }
.cta-row, .pp-actions, .actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 26px; }
.button, .pp-button, .action, .thank-you-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; max-width: 100%; padding: 12px 22px; border: 1px solid var(--navy); border-radius: 4px;
  background: var(--navy); color: white; font: 650 .9375rem/1.45 var(--sans); text-align: center; text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}
.button:hover, .pp-button:hover, .action:hover, .thank-you-button:hover { color: white; background: #17496a; }
.outline-button, .pp-button-outline, .action.secondary { background: transparent; color: var(--navy); border-color: #a5b0b7; }
.outline-button:hover, .pp-button-outline:hover, .action.secondary:hover { background: #e9eef1; color: var(--navy); }
.prestige-quote, .final-cta, .fri-final, .pp-final { padding: var(--space) var(--gutter); text-align: center; background: var(--navy); color: #edf2f6; }
.prestige-quote > *, .final-cta > *, .fri-final > *, .pp-final > * { max-width: 760px; margin-inline: auto; }
.prestige-quote blockquote { font: 400 clamp(1.5rem, 3vw, 2.3rem)/1.45 var(--serif); }
.prestige-quote h2, .final-cta h2, .fri-final h2, .pp-final h2 { color: var(--paper); }
.final-cta .section-kicker, .fri-final .fri-kicker, .pp-final .pp-kicker { color: #e4c683; }
.final-cta .cta-row, .fri-final .cta-row, .pp-final .pp-actions { justify-content: center; }
.final-cta .button, .fri-final .button, .pp-final .pp-button { background: var(--gold); color: var(--heritage); border-color: var(--gold); }
.final-cta .outline-button, .fri-final .outline-button, .pp-final .pp-button-outline { background: transparent; color: white; border-color: #adb9c5; }
.final-cta .button:hover, .fri-final .button:hover, .pp-final .pp-button:hover { background: var(--paper); color: var(--navy); }

/* 4. Homepage: a shorter route to the two initiatives */
.home-hero .prestige-hero-content { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.home-hero h1 { max-width: 15ch; font-size: clamp(2.5rem, 4.7vw, 4.5rem); }
.home-hero-brand-card { align-self: center; background: white; padding: clamp(16px, 2vw, 28px); border: 1px solid var(--border); border-radius: 8px; }
.home-hero-brand-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.home-hero-brand-card p { padding-top: 18px; text-align: center; font-size: .8125rem; color: var(--muted); line-height: 1.5; }
.mission-strip { display: flex; align-items: center; justify-content: center; gap: 30px; padding: 22px var(--gutter); border-bottom: 1px solid var(--border); background: white; }
.mission-center { text-align: center; }
.mission-center h2 { font: 600 1rem/1.5 var(--sans); margin: 0 0 5px; }
.mission-center p { font-size: .875rem; color: var(--muted); margin: 0; }
.mission-side { display: none; }
.mission-center .section-kicker { display: none; }
.fundraiser-spotlight-panel, .kit-story-panel, .history-home-grid, .rebuild-grid,
.financial-human-panel, .foundation-human-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.human-lede { font-size: 1.15rem; }
.fundraiser-spotlight-media, .media-video-wrap, .fri-video-shell { position: relative; aspect-ratio: 16 / 9; background: var(--navy); border-radius: 6px; overflow: hidden; }
.fundraiser-spotlight-media iframe, .media-video-wrap iframe, .fri-video-shell iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.home-program-showcase { background: var(--cream); }
.home-program-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.home-program-card { display: flex; flex-direction: column; border: 1px solid var(--border); background: var(--paper); border-radius: 6px; overflow: hidden; }
.home-program-card figure { background: #f3efe7; aspect-ratio: 16 / 9; display: flex; align-items: center; }
.home-program-card figure img { width: 100%; height: 100%; object-fit: contain; }
.home-program-card > div { display: flex; flex: 1; flex-direction: column; padding: 28px; }
.home-program-card .cta-row { margin-top: auto; padding-top: 12px; }
.home-program-card .section-kicker { font-size: .7rem; }
.kit-story-visual img, .rebuild-photo img, .history-home-photo img { width: 100%; height: auto; object-fit: contain; }
.kit-story-visual { background: white; }
.kit-category-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; margin-block: 24px; }
.kit-category-grid strong, .kit-category-grid span { display: block; }
.kit-category-grid strong { color: var(--navy); font-size: .9375rem; }
.kit-category-grid span { color: var(--muted); font-size: .875rem; line-height: 1.6; }
.history-home-photo, .history-intro-grid figure, .history-gallery-grid figure { background: white; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; }
.history-home-photo figcaption { background: var(--paper); }
.home-trust-shell { max-width: var(--max); }
.home-trust-heading { max-width: 760px; margin: 0 auto 32px; text-align: center; }
.home-trust-heading .gold-ornament { margin-inline: auto; }
.home-trust-mark { display: flex; align-items: center; justify-content: flex-start; width: 90px; height: 90px; margin-bottom: 22px; }
.home-trust-icon svg { width: 44px; height: 44px; color: var(--gold-ink); }
.home-trust-badge img { max-height: 90px; width: auto; object-fit: contain; }
.home-trust-eyebrow { font-size: .6875rem; }
.home-trust-card { padding: 24px; }
.home-trust-card p:not(.home-trust-eyebrow), .home-trust-detail { font-size: .875rem; line-height: 1.6; }
.home-trust-detail { display: block; color: var(--gold-ink); }
.home-trust-actions { justify-content: center; }
.home-trust-meta { text-align: center; color: var(--muted); font-size: .875rem; margin-top: 24px; }
.financial-human-section { background: var(--cream); }
.financial-human-stats { display: grid; gap: 22px; border-left: 2px solid var(--gold); padding-left: 32px; }
.financial-human-stats strong, .financial-human-stats span { display: block; }
.financial-human-stats strong { font: 400 clamp(2rem, 3.5vw, 3rem)/1.2 var(--serif); color: var(--navy); }
.financial-human-stats span { font-size: .9375rem; color: var(--muted); }

/* 5. History, leadership, news, documents and media */
.history-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.history-timeline article { border-top: 2px solid var(--gold); padding-top: 20px; }
.history-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.history-gallery-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: var(--cream); }
.history-context-emphasis { max-width: 80ch; }
.history-now-grid img { width: 100%; object-fit: contain; }
.governance-facts, .transparency-facts, .foundation-human-facts { margin: 0; background: var(--cream); border: 1px solid var(--border); border-radius: 6px; padding: 26px; }
.governance-facts > div, .transparency-facts > div { padding-block: 14px; border-bottom: 1px solid var(--border); }
.governance-facts > div:last-child, .transparency-facts > div:last-child { border: 0; }
dt { font-size: .875rem; color: var(--muted); }
dd { margin: 4px 0 0; color: var(--navy); font-weight: 600; }
.founder-profile { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); align-items: center; margin-block: 36px; }
.profile-mark { max-width: 390px; }
.founder-headshot { width: 100%; height: auto; border-radius: 6px; }
.profile-roles { color: var(--gold-ink); font-weight: 600; }
.director-mark { width: 76px; height: 76px; margin-bottom: 18px; }
.director-mark img { object-fit: contain; }
.accountability-number { display: block; color: var(--gold-ink); margin-bottom: 16px; font-size: .875rem; font-weight: 700; }
.mission-connection { align-items: center; }
.mission-connection-visual { padding: 28px; background: var(--cream); }
.mission-connection-visual img { width: 100%; object-fit: contain; }
.featured-news, .media-feature { align-items: center; }
.news-visual, .archive-thumb { position: relative; }
.news-visual img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.play-badge { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--navy); color: white; }
.news-link-row { display: flex; flex-wrap: wrap; gap: 16px; }
.media-byline { color: var(--gold-ink); font-weight: 650; }
.historical-note { border-left: 3px solid var(--gold); background: var(--cream); padding: 18px 22px; }
.media-record-layout { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
.media-record-copy { padding-top: 28px; }
.media-record-aside { padding: 26px; border: 1px solid var(--border); }
.media-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.gallery-item { display: block; width: 100%; padding: 0; text-align: left; border: 1px solid var(--border); border-radius: 6px; background: var(--paper); overflow: hidden; color: var(--ink); }
.gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: var(--cream); }
.gallery-item > span { display: block; padding: 14px 18px; }
.gallery-wide { grid-column: 1 / -1; }
.gallery-wide img { aspect-ratio: 16 / 9; max-height: 540px; }
dialog { max-width: calc(100% - 32px); max-height: calc(100dvh - 32px); padding: 0; color: var(--ink); background: var(--paper); border: 1px solid var(--border); border-radius: 6px; }
dialog::backdrop { background: rgb(7 27 49 / 85%); }
.media-lightbox { width: min(1120px, calc(100% - 32px)); padding: 62px 18px 18px; }
.media-lightbox img { max-height: 72dvh; width: 100%; object-fit: contain; }
.lightbox-close { position: absolute; top: 10px; right: 12px; width: 44px; height: 44px; border: 1px solid var(--border); background: white; font-size: 1.5rem; }
.sponsor-sheet-preview { display: block; max-width: 800px; margin: 0 auto 32px; }
.sponsor-sheet-preview img { width: 100%; object-fit: contain; }
.sponsor-levels { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sponsor-level strong { display: block; font: 400 1.75rem/1.25 var(--serif); color: var(--navy); }
.body-emphasis { padding: 24px; background: var(--navy); border-radius: 6px; color: #edf2f6; }
.body-emphasis h2, .body-emphasis h3, .body-emphasis h4, .body-emphasis strong { color: white; }
.body-emphasis a { color: #f2d794; }
.body-emphasis .section-kicker { color: #e2bd73; }
.document-status { display: inline-block; margin: 0 0 14px; color: var(--gold-ink); font-weight: 650; font-size: .8125rem; }
.transparency-mini { font-size: .875rem; }
.legal-page .prestige-hero-content, .legal-panel { max-width: 850px; }
.legal-panel { padding: 0; border: 0; background: transparent; }
.legal-copy { max-width: 75ch; }
.legal-copy h2 { margin-top: 36px; font-size: 1.6rem; }
.legal-copy h2:first-child { margin-top: 0; }
.legal-contact { overflow-wrap: anywhere; }

/* 6. Forms: retain native inputs, Netlify contracts and readable validation */
.contact-grid, .inquiry-form-wrap, .volunteer-form-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.contact-info-panel, .message-panel, .inquiry-form-context, .inquiry-form-panel, .volunteer-guidance, .volunteer-form-panel {
  padding: var(--panel-space); border: 1px solid var(--border); border-radius: 6px; background: white;
}
.message-panel.inquiry-form-panel { padding: var(--panel-space); }
.contact-line { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 16px; padding-block: 20px; border-bottom: 1px solid var(--border); }
.contact-line a, .contact-line address { overflow-wrap: anywhere; }
.contact-location-layout { border: 1px solid var(--border); border-radius: 6px; overflow: hidden; gap: 0; }
.contact-map-frame iframe { width: 100%; height: 100%; min-height: 420px; }
.contact-profiles-panel { padding: var(--panel-space); }
.public-profile-link { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--border); text-decoration: none; }
.public-profile-link strong, .public-profile-link small { display: block; }
.public-profile-link small { color: var(--muted); }
.inquiry-form, .volunteer-form { display: grid; gap: 22px; margin-top: 26px; }
.inquiry-form-grid, .volunteer-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.inquiry-field, .form-field { display: grid; align-content: start; gap: 8px; min-width: 0; }
.inquiry-field-wide, .form-field-wide { grid-column: 1 / -1; }
.inquiry-field > span, .form-field > span { color: var(--navy); font-size: .9375rem; line-height: 1.5; font-weight: 650; }
.inquiry-field em, .form-field em, .form-consent em { font-style: normal; color: var(--gold-ink); font-size: .8125rem; }
.inquiry-field input, .inquiry-field select, .inquiry-field textarea,
.form-field input, .form-field select, .form-field textarea {
  width: 100%; min-width: 0; max-width: 100%; min-height: 48px; padding: 12px;
  border: 1px solid #84939e; border-radius: 4px; background: white; color: var(--ink); font-size: 1rem; line-height: 1.5;
}
textarea { min-height: 144px; resize: vertical; }
input::placeholder, textarea::placeholder { color: #64717c; opacity: 1; }
.form-help, .form-privacy, .inquiry-form-privacy, .inquiry-form-status, .volunteer-form-status { color: var(--muted); font-size: .875rem; line-height: 1.6; }
.form-help { margin: 0; font-weight: 400; }
.volunteer-fieldset, .interest-options { min-width: 0; margin: 0; padding: 22px 0 0; border: 0; border-top: 1px solid var(--border); }
.volunteer-fieldset legend, .interest-options legend { max-width: 100%; padding: 0 8px 0 0; color: var(--navy); font-weight: 650; font-size: 1.0625rem; }
.interest-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; }
.interest-options legend span { font-size: .875rem; color: var(--muted); font-weight: 400; }
.interest-options label, .form-consent { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 12px; min-height: 44px; padding-block: 8px; font-size: .9375rem; line-height: 1.6; }
.interest-options input, .form-consent input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--navy); }
.form-consent { padding: 16px; border: 1px solid var(--border); border-radius: 4px; background: var(--cream); }
.volunteer-error-summary { border: 2px solid #a02626; border-radius: 4px; background: #fff6f5; padding: 20px; color: #702222; }
.volunteer-error-summary h3, .volunteer-error-summary a { color: #702222; }
.volunteer-error-summary ul { margin-bottom: 0; }
[aria-invalid="true"] { border: 2px solid #a02626; }
.volunteer-submit, .inquiry-submit { width: 100%; }
button:disabled { cursor: wait; opacity: .72; }
.volunteer-intro-with-visual { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 32px; align-items: center; }
.volunteer-program-visual { background: var(--cream); border: 1px solid var(--border); border-radius: 6px; overflow: hidden; }
.volunteer-program-visual img { width: 100%; height: auto; object-fit: contain; }
.volunteer-availability, .inquiry-trust-row, .fri-hero-points { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.volunteer-availability span, .inquiry-trust-row span, .fri-pill { padding: 6px 12px; border: 1px solid var(--border); border-radius: 4px; color: var(--muted); font-size: .8125rem; background: var(--paper); }
.volunteer-process { padding: 0; list-style: none; }
.volunteer-process li { margin: 0; }
.volunteer-process li > span { display: block; margin-bottom: 14px; color: var(--gold-ink); font-weight: 700; }

/* 7. Donation hub and provider-owned Elements */
.giving-hub { padding: var(--space) var(--gutter); background: var(--cream); }
.giving-intro { max-width: 760px; text-align: center; margin: 0 auto 40px; }
.giving-intro h1 { font-size: clamp(2.125rem, 4vw, 3.5rem); }
.giving-intro > p:last-child { color: var(--muted); }
.giving-options, .giving-trust, .giving-other { max-width: 1100px; margin-inline: auto; }
.giving-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.giving-card { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 6px; background: var(--paper); }
.giving-card-image { aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; background: #edece5; border-radius: 6px 6px 0 0; overflow: hidden; }
.giving-card-image img { width: 100%; height: 100%; object-fit: contain; }
.giving-card-image-kit { padding: 18px; background: white; }
.giving-card-copy { flex: 1; display: flex; flex-direction: column; padding: 28px; }
.giving-card h2 { font-size: 2rem; }
.giving-card .section-kicker { font-size: .6875rem; }
.giving-card-copy > p { color: var(--muted); }
.giving-action { width: 100%; min-width: 0; margin-top: auto; }
.giving-details { display: inline-block; margin-top: 20px; font-size: .9375rem; }
.giving-checkout-note { margin: 22px 0; color: var(--muted); font-size: .875rem; text-align: center; }
.giving-trust { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 24px; padding-block: 24px; margin-block: 28px; border-block: 1px solid var(--border); font-size: .9375rem; }
.giving-trust p { margin: 0; }
.giving-trust span { display: block; color: var(--muted); }
.giving-trust > div { display: flex; flex-wrap: wrap; gap: 12px 22px; }
.giving-other { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .35fr); gap: 40px; align-items: center; }
.giving-other h2 { font-size: 1.65rem; }
.giving-other-links { display: grid; gap: 14px; font-size: .9375rem; }
.donation-alternative { margin: 14px 0 0; font-size: .875rem; line-height: 1.55; }
.donation-alternative .button { width: 100%; }
.fri-fundraiseup-slot, .pp-fundraiseup-slot, .giving-action { max-width: 100%; }
/* The provider controls its contents and height. No clipping, negative margins,
   transforms, descendant width overrides or fixed donation iframe heights. */

/* 8. Carolina Cares campaign */
.campaign-subnav, .pp-subnav { background: var(--cream); border-bottom: 1px solid var(--border); }
.campaign-subnav-inner, .pp-subnav-inner { max-width: var(--max); margin-inline: auto; padding: 12px 0; display: flex; align-items: center; gap: 24px; }
.campaign-subnav, .pp-subnav { padding-inline: var(--gutter); }
.campaign-subnav-label { font: 600 1rem/1.4 var(--serif); white-space: nowrap; color: var(--navy); }
.campaign-subnav-links { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-left: auto; }
.campaign-subnav a, .pp-subnav a { display: inline-flex; align-items: center; min-height: 40px; font-size: .8125rem; font-weight: 650; text-decoration: none; }
.pp-subnav-inner { justify-content: center; flex-wrap: wrap; }
.campaign-subnav-cta { color: var(--gold-ink); }
.fri-shell, .pp-container { width: calc(100% - var(--gutter) * 2); max-width: var(--max); margin-inline: auto; }
.fri-hero { padding-block: var(--space); background: var(--cream); border-bottom: 1px solid var(--border); }
.fri-hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: 48px; }
.fri-hero h1 { font-size: clamp(2.25rem, 4.3vw, 4rem); max-width: 17ch; }
.fri-lede { font-size: 1.0625rem; color: var(--muted); }
.fri-product { background: white; border: 1px solid var(--border); border-radius: 8px; padding: 20px; }
.fri-product img { width: 100%; height: auto; object-fit: contain; }
.fri-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .63fr); gap: 48px; padding-block: var(--space); align-items: start; }
.fri-section { padding-bottom: 42px; margin-bottom: 42px; border-bottom: 1px solid var(--border); }
.fri-section:last-child { margin-bottom: 0; border: 0; }
.fri-section h2 { font-size: clamp(1.75rem, 2.8vw, 2.4rem); }
.fri-stat-grid, .fri-grid-3, .fri-ways, .fri-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-block: 28px; }
.fri-stat, .fri-card, .fri-way, .fri-step { padding: 22px; border: 1px solid var(--border); border-radius: 6px; background: var(--cream); }
.fri-stat strong { display: block; color: var(--navy); font: 400 2rem/1.2 var(--serif); margin-bottom: 12px; }
.fri-stat span { font-size: .9375rem; line-height: 1.6; }
.fri-quote { border-left: 3px solid var(--gold); padding: 20px 24px; background: var(--cream); }
.fri-grid-3 { grid-template-columns: 1fr; }
.fri-step { background: var(--paper); }
.fri-budget { display: grid; gap: 24px; }
.fri-budget-table { width: 100%; border-collapse: collapse; }
.fri-budget-table th, .fri-budget-table td { padding: 14px 10px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
.fri-budget-table th { color: var(--navy); font-weight: 650; }
.fri-budget-table th:last-child, .fri-budget-table td:last-child { text-align: right; }
.fri-budget-callout { padding: 24px; background: var(--cream); border-left: 3px solid var(--gold); }
.fri-budget-callout strong { color: var(--navy); }
.fri-faq details, .pp-faq details { padding: 18px 0; border-bottom: 1px solid var(--border); }
summary { cursor: pointer; padding: 6px 0; color: var(--navy); font-size: 1.0625rem; font-weight: 650; line-height: 1.55; }
details p { margin-top: 16px; color: var(--muted); }
.fri-give-card { padding: 28px; border: 1px solid var(--border); border-top: 4px solid var(--gold); border-radius: 6px; background: white; box-shadow: var(--shadow); }
.fri-give-card h2 { font-size: 1.8rem; }
.fri-give-intro { color: var(--muted); }
.fri-give-trust { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 20px 0; color: var(--muted); font-size: .8125rem; }
.fri-fundraiseup-note { padding-top: 20px; color: var(--muted); font-size: .875rem; }
.fri-give-card.is-smart-sticky { position: sticky; top: calc(var(--header-height) + 20px); }

/* 9. Poston Preserve: heritage identity, shared proportions */
.poston-preserve-page { --navy: #071b31; --gold: #c69a45; --paper: #fffdf9; background: var(--cream); }
.pp-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; max-width: var(--max); margin-inline: auto; padding: var(--space) 0; align-items: center; }
.pp-hero-art { grid-column: 2; grid-row: 1; background: var(--cream); border: 1px solid #cfb983; }
.pp-hero-art img { width: 100%; height: auto; object-fit: contain; }
.pp-hero-copy { grid-column: 1; grid-row: 1; width: 100%; }
.pp-hero-copy h1 { font-size: clamp(2.25rem, 4.3vw, 4rem); }
.pp-lede { color: var(--muted); font-size: 1.1rem; }
.pp-purpose { padding-block: 36px; background: var(--heritage); color: #edf2f6; }
.pp-purpose-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.pp-purpose-item { text-align: center; }
.pp-purpose-item svg { width: 32px; height: 32px; color: #e2bd73; margin-bottom: 12px; }
.pp-purpose-item h2 { color: white; font-size: 1.2rem; margin-bottom: 8px; }
.pp-purpose-item p { font-size: .875rem; }
.pp-motto { text-align: center; margin: 28px 0 0; color: #e2bd73; font-size: .9375rem; }
.pp-section { padding-block: var(--space); }
.pp-paper { background: var(--paper); border-block: 1px solid var(--border); }
.pp-why-grid-v2, .pp-phase-intro, .pp-support-grid, .pp-history-grid, .pp-stewardship-grid, .pp-faq-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 48px; align-items: start; }
.pp-why-grid-v2 { align-items: center; }
.pp-context-links { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.pp-context-links a, .pp-work-card > .pp-text-link { padding-block: 8px; line-height: 1.6; }
.pp-wordmark { padding: 24px; border: 1px solid var(--border); background: white; }
.pp-wordmark img { width: 100%; object-fit: contain; }
.pp-heading { max-width: 760px; margin: 0 auto 32px; text-align: center; }
.pp-map-gallery { max-width: 1000px; margin-inline: auto; }
.pp-map-figure { border: 1px solid var(--border); border-radius: 6px; background: var(--cream); overflow: hidden; }
.pp-map-open { display: block; position: relative; text-decoration: none; }
.pp-map-open img { width: 100%; max-height: 620px; object-fit: contain; }
.pp-map-open:focus-visible { outline-offset: -4px; }
.pp-map-record-action { display: block; padding: 12px 18px; min-height: 48px; border-top: 1px solid var(--border); color: var(--navy); background: var(--paper); text-align: center; font-size: .9375rem; font-weight: 650; line-height: 1.6; text-decoration: underline; text-underline-offset: .22em; }
.pp-map-open:hover .pp-map-record-action { color: var(--gold-ink); }
.pp-map-figure figcaption strong, .pp-map-figure figcaption span, .pp-map-figure figcaption small { display: block; margin-bottom: 5px; }
.pp-map-enlarge { min-height: 44px; padding: 8px 12px; margin: 4px 0 -8px -12px; }
.pp-map-controls { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-block: 16px; }
.pp-map-controls p { margin: 0; text-align: center; font-size: .875rem; }
.pp-map-controls button { padding: 10px 16px; min-height: 44px; border: 1px solid var(--border); border-radius: 4px; color: var(--navy); background: white; }
.pp-map-thumbnails { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.pp-map-thumbnails button { padding: 8px; min-width: 0; background: var(--paper); border: 1px solid var(--border); border-radius: 4px; color: var(--ink); text-align: left; }
.pp-map-thumbnails button[aria-pressed="true"] { border: 2px solid var(--gold-ink); padding: 7px; }
.pp-map-thumbnails img { width: 100%; aspect-ratio: 3 / 2; object-fit: contain; }
.pp-map-thumbnails span { display: block; padding-top: 8px; font-size: .8125rem; line-height: 1.45; }
.pp-gallery-help { margin-top: 16px; font-size: .875rem; color: var(--muted); }
.pp-phase-intro { grid-template-columns: minmax(0, 1fr) 220px; align-items: center; }
.pp-seal { max-width: 220px; }
.pp-ribbon { display: inline-flex; gap: 16px; font-size: .8125rem; color: var(--gold-ink); border-bottom: 2px solid var(--gold); margin-bottom: 18px; padding-bottom: 8px; }
.pp-phase-case, .pp-funding-framework { max-width: 80ch; margin-block: 26px; }
.pp-funding-framework { padding: 24px; background: var(--paper); border-left: 3px solid var(--gold); }
.pp-priorities { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 30px; }
.pp-work-card { padding: 26px; background: var(--paper); border: 1px solid var(--border); border-radius: 6px; }
.pp-card-number { display: block; color: var(--gold-ink); margin-bottom: 14px; font-size: .875rem; font-weight: 700; }
.pp-support { background: var(--heritage); color: #e4ebf1; }
.pp-support h2, .pp-support h3 { color: white; }
.pp-support .pp-kicker { color: #e2bd73; }
.pp-support .pp-lede, .pp-final .pp-lede, .fri-final .fri-lede { color: #edf2f6; }
.pp-support-copy a { color: #f2d794; }
.pp-support-identity { display: flex; align-items: center; gap: 18px; margin-block: 26px; }
.pp-support-identity img { width: 96px; height: auto; }
.pp-support-note, .pp-trust-note { font-size: .9375rem; color: #e4ebf1; }
.pp-trust-note strong, .pp-trust-note > span { display: block; margin-bottom: 10px; }
.pp-trust-note > div { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.pp-support-list { padding-left: 1.2em; }
.pp-support-grid { grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr); }
.pp-donation-card { padding: 28px; color: var(--ink); background: white; border-radius: 6px; }
.pp-widget-label { color: var(--navy); font-weight: 700; font-size: 1.125rem; }
.pp-widget-intro, .pp-widget-footnote, .pp-widget-fallback { color: var(--muted); font-size: .875rem; }
.pp-widget-fallback { margin-top: 22px; }
.pp-donation-card.is-smart-sticky { position: sticky; top: calc(var(--header-height) + 20px); }
.pp-history-grid { align-items: center; }
.pp-history-grid img { width: 100%; max-height: 650px; object-fit: contain; }
/* Supporting archives: equal visual weight, separate place and records identities. */
.pp-research { margin-top: clamp(36px, 5vw, 64px); padding-top: 32px; border-top: 1px solid var(--border); }
.pp-research-heading { margin-bottom: 24px; }
.pp-research-heading h2 { margin-bottom: 8px; }
.pp-research-note { color: var(--muted); font-size: .875rem; }
.pp-research-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.pp-research-card { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 6px; background: var(--paper); }
.pp-research-image { position: relative; aspect-ratio: 16 / 10; border-bottom: 1px solid var(--border); border-radius: 6px 6px 0 0; background: var(--cream); }
.pp-research-image img { position: absolute; inset: 16px; width: calc(100% - 32px); height: calc(100% - 32px); object-fit: contain; }
.pp-research-copy { display: flex; flex: 1; flex-direction: column; padding: clamp(20px, 3vw, 30px); }
.pp-research-category { margin-bottom: 12px; color: var(--gold-ink); font: 700 .75rem/1.6 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.pp-research-copy h3 { font-size: clamp(1.4rem, 2.2vw, 1.8rem); }
.pp-research-site { color: var(--navy); font-size: .9375rem; font-weight: 650; }
.pp-research-destinations { margin-top: auto; padding-top: 8px; }
.pp-research-primary { width: 100%; text-align: center; }
.pp-research-links { display: flex; flex-wrap: wrap; gap: 0 20px; padding: 0; margin: 14px 0 0; list-style: none; }
.pp-research-links li { margin: 0; }
.pp-research-links a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; font-size: .875rem; line-height: 1.6; }
.pp-research-footer { margin-top: 36px; padding-top: 24px; border-top: 1px solid #516071; }
.pp-research-footer h3 { margin-bottom: 8px; color: #edf2f6; font: 650 .875rem/1.6 var(--sans); }
.pp-research-footer p { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0 12px; }
.pp-research-footer a { display: inline-block; padding-block: 10px; color: #f2d794; font-size: .875rem; line-height: 1.6; }
.pp-research-footer a:hover { color: white; }
.pp-guardrails { padding: 28px; border: 1px solid var(--border); background: var(--cream); border-radius: 6px; }
.pp-art-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.pp-art-grid figure { border: 1px solid var(--border); background: var(--paper); border-radius: 6px; overflow: hidden; }
.pp-art-grid a { display: block; }
.pp-art-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.pp-faq-layout { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
.pp-lightbox { width: min(1240px, calc(100% - 32px)); }
.pp-lightbox-toolbar, .pp-lightbox-bottom { padding: 16px 22px; }
.pp-lightbox-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--border); }
.pp-lightbox-toolbar h2 { font-size: 1.3rem; margin: 0; }
.pp-lightbox-close { min-height: 44px; padding: 8px 14px; background: var(--navy); color: white; border: 0; border-radius: 4px; }
.pp-lightbox-scroll { max-height: 68dvh; overflow: auto; }
.pp-lightbox-scroll img { width: 100%; object-fit: contain; }
.pp-lightbox-bottom { font-size: .875rem; }
.pp-lightbox-open { overflow: hidden; }

/* 10. Shared footer and confirmation pages */
.site-footer { padding: 52px var(--gutter) 24px; background: #eef0eb; border-top: 1px solid var(--border); }
.footer-shell { max-width: var(--max); margin-inline: auto; }
.footer-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1fr); gap: 40px; }
.footer-mark { max-width: 240px; margin-bottom: 20px; }
.footer-mark img { width: 100%; object-fit: contain; }
.footer-status, .footer-ein, .footer-address { font-size: .875rem; line-height: 1.7; color: var(--muted); }
.footer-ein { margin-top: -12px; }
.footer-address a { display: inline-block; padding-block: 4px; }
.footer-group h2 { font: 700 .875rem/1.5 var(--sans); margin: 0 0 14px; }
.footer-group > a { display: block; padding-block: 7px; font-size: .875rem; line-height: 1.6; text-decoration: none; }
.footer-group > a:hover { text-decoration: underline; }
.footer-trust-badges { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.footer-trust-badge { width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; }
.footer-trust-badge img { max-height: 80px; width: auto; object-fit: contain; }
.footer-social-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 26px; margin-top: 36px; border-top: 1px solid var(--border); }
.footer-social-label { font-size: .875rem; font-weight: 650; }
.footer-social-icons { display: flex; flex-wrap: wrap; gap: 10px; }
.footer-social-icons a { display: grid; place-items: center; width: 44px; height: 44px; background: var(--navy); border-radius: 50%; }
.footer-social-icons img { width: 19px; height: 19px; object-fit: contain; }
.footer-disclaimer { margin: 24px 0 0; color: var(--muted); font-size: .8125rem; }
.confirmation-page { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: clamp(18px, 4vw, 52px); background: var(--cream); }
.thank-card, .thank-you-card, .confirmation-page .card { width: min(100%, 800px); padding: clamp(26px, 5vw, 60px); background: var(--paper); border: 1px solid var(--border); border-radius: 8px; text-align: center; }
.confirmation-page h1 { font-size: clamp(2.125rem, 4.5vw, 3.4rem); }
.confirmation-page .mark, .thank-you-logo, .confirmation-page .logo { width: min(300px, 85%); margin: 0 auto 30px; height: auto; }
.confirmation-page .lead, .thank-you-message { color: var(--muted); font-size: 1.0625rem; }
.confirmation-page .note, .receipt-note, .conversion-note { color: var(--muted); font-size: .875rem; }
.confirmation-page .actions { justify-content: center; }
.thank-you-kicker { color: var(--gold-ink); font: 700 .75rem/1.5 var(--sans); text-transform: uppercase; letter-spacing: .1em; }
.success-mark { width: 52px; height: 52px; margin: 0 auto 18px; color: var(--navy); }
.success-mark svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2; }
.thank-you-card h1 > span { display: block; }
.receipt-note { margin-block: 22px; }
.ornament, .thank-you-ornament { width: 48px; height: 2px; margin: 22px auto; background: var(--gold); }
.ornament > *, .thank-you-ornament > * { display: none; }

/* 11. Content-driven responsive behavior */
@media (max-width: 1279px) {
  .site-header { gap: 16px; }
  .brand { flex-basis: 175px; }
  .primary-nav { gap: 14px; }
  .pp-hero { margin-inline: var(--gutter); }
  .fri-layout { gap: 28px; }
}
@media (max-width: 1199px) {
  .site-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; padding: 12px var(--gutter); min-height: 82px; }
  .site-header:not([data-nav-ready]) { position: relative; }
  .brand { width: 180px; max-width: 100%; grid-column: 1; grid-row: 1; }
  .header-cta { grid-column: 2; grid-row: 1; }
  .nav-toggle { grid-column: 3; grid-row: 1; }
  .primary-nav { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; gap: 4px 20px; }
  .primary-nav a { white-space: normal; padding: 10px 12px; border-radius: 3px; }
  .primary-nav a:hover { background: var(--cream); }
  .primary-nav .mobile-nav-donate { display: flex; }
  .site-header[data-nav-ready] .nav-toggle { display: block; }
  .site-header[data-nav-ready] .primary-nav { display: none; position: absolute; top: 100%; left: var(--gutter); right: var(--gutter); padding: 18px; background: var(--paper); border: 1px solid var(--border); border-radius: 0 0 6px 6px; box-shadow: var(--shadow); max-height: calc(100dvh - var(--header-height) - 16px); overflow-y: auto; overscroll-behavior: contain; }
  .site-header[data-nav-ready].is-nav-open .primary-nav { display: grid; }
  .four-card-grid, .home-trust-grid, .accountability-grid, .simple-process-grid, .volunteer-process, .pp-priorities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 32px; }
  .footer-trust { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
  .footer-trust h2, .footer-trust-badges { margin: 0; }
  .fri-layout { grid-template-columns: minmax(0, 1fr) minmax(320px, .7fr); }
  .fri-give-card { padding: 20px; }
}
@media (max-width: 979px) {
  .three-card-grid, .governance-principles, .sponsor-levels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-grid, .inquiry-form-wrap, .volunteer-form-layout, .media-record-layout { grid-template-columns: 1fr; }
  .fri-layout { display: flex; flex-direction: column; }
  .fri-give-card { order: -1; width: 100%; max-width: 640px; align-self: center; margin-bottom: 28px; padding: 28px; }
  .fri-give-card.is-smart-sticky, .pp-donation-card.is-smart-sticky { position: static; }
  .fri-main { width: 100%; }
  .fri-hero-grid, .pp-hero { gap: 28px; }
  .campaign-subnav-inner { align-items: flex-start; }
  .campaign-subnav-links { gap: 0 18px; }
  .pp-support-grid { grid-template-columns: 1fr; }
  .pp-donation-card { max-width: 680px; width: 100%; margin-inline: auto; }
  .pp-purpose-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-art-grid { grid-template-columns: 1fr 1fr; }
  .pp-faq-layout, .pp-stewardship-grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 767px) {
  :root { --space: 44px; --header-height: 78px; }
  body { font-size: 1rem; }
  .home-hero .prestige-hero-content, .fri-hero-grid, .foundation-overview, .split-panel,
  .fundraiser-spotlight-panel, .kit-story-panel, .history-home-grid, .rebuild-grid,
  .financial-human-panel, .foundation-human-grid, .home-program-grid, .initiative-feature,
  .history-intro-grid, .history-now-grid, .leadership-snapshot, .founder-profile,
  .mission-connection, .featured-news, .media-feature, .contact-location-layout,
  .volunteer-intro-with-visual, .giving-grid, .giving-other, .pp-why-grid-v2, .pp-history-grid { grid-template-columns: 1fr; }
  .hero-copy { font-size: 1.0625rem; }
  .home-hero h1 { max-width: 18ch; }
  .home-hero-brand-card { max-width: 480px; width: 100%; margin-inline: auto; }
  .home-hero-brand-card img { max-height: 300px; }
  .home-hero-brand-card p { padding-top: 8px; }
  .section-heading { text-align: left; margin-bottom: 28px; }
  .section-heading .gold-ornament { margin-inline: 0; }
  .mission-strip { padding-block: 20px; }
  .financial-human-stats { padding-left: 22px; }
  .history-timeline, .history-gallery-grid { grid-template-columns: 1fr; }
  .history-gallery-grid figure { max-width: 560px; margin-inline: auto; }
  .profile-mark { max-width: 360px; }
  .contact-map-frame iframe { min-height: 320px; }
  .giving-card-image { aspect-ratio: 16 / 9; }
  .giving-card-copy { padding: 24px; }
  .campaign-subnav-inner { display: block; padding-block: 12px; }
  .campaign-subnav-label { display: block; margin-bottom: 8px; }
  .campaign-subnav-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 12px; }
  .campaign-subnav a { line-height: 1.4; min-height: 44px; }
  .fri-product { max-width: 500px; margin-inline: auto; }
  .fri-hero h1 { max-width: 20ch; }
  .pp-hero { grid-template-columns: 1fr; margin-inline: var(--gutter); gap: 28px; }
  .pp-hero-copy, .pp-hero-art { grid-column: 1; grid-row: auto; }
  .pp-hero-copy { order: -1; }
  .pp-subnav-inner { gap: 2px 20px; justify-content: flex-start; }
  .pp-phase-intro { grid-template-columns: minmax(0, 1fr) 130px; gap: 20px; }
  .pp-desktop-break { display: none; }
  .pp-art-grid { grid-template-columns: 1fr; }
  .pp-art-grid img { aspect-ratio: auto; max-height: 600px; }
  .pp-research-grid { grid-template-columns: 1fr; }
  .pp-research-card { width: 100%; max-width: 640px; margin-inline: auto; }
  .pp-research-footer p { display: block; }
  .pp-research-footer a { display: block; }
  .pp-research-separator { display: none; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  .footer-identity, .footer-trust { grid-column: 1 / -1; }
  .footer-identity { max-width: 480px; }
  .footer-group > a { min-height: 44px; padding-block: 10px; }
  .footer-social-bar { align-items: flex-start; }
}
@media (max-width: 599px) {
  .three-card-grid, .four-card-grid, .governance-principles, .director-grid, .accountability-grid,
  .home-trust-grid, .simple-process-grid, .sponsor-levels, .volunteer-process,
  .volunteer-form-grid, .inquiry-form-grid, .interest-options, .fri-ways, .fri-steps, .pp-priorities,
  .media-gallery { grid-template-columns: 1fr; }
  .gallery-wide { grid-column: auto; }
  .form-field-wide, .inquiry-field-wide { grid-column: auto; }
  .prestige-card, .sponsor-level, .home-trust-card { padding: 24px; }
  .home-program-card > div { padding: 24px; }
  .home-trust-card { display: block; }
  .home-trust-mark { height: 64px; width: 64px; margin-bottom: 16px; }
  .home-trust-badge img { max-height: 64px; }
  .fri-give-card, .pp-donation-card { padding: 20px 16px; }
  .fri-layout { width: calc(100% - 24px); }
  .fri-main { padding-inline: 6px; }
  .fri-stat-grid { gap: 12px; }
  .fri-stat { padding: 18px 14px; }
  .fri-stat strong { font-size: 1.8rem; }
  .fri-stat span { font-size: .875rem; }
  .pp-phase-intro { grid-template-columns: 1fr; }
  .pp-seal { width: 130px; }
  .pp-support .pp-container { width: calc(100% - 24px); }
  .pp-support-copy { padding-inline: 6px; }
  .pp-map-controls button { padding: 10px 12px; }
  .pp-map-controls button span { display: none; }
  .pp-map-thumbnails { gap: 8px; }
  .pp-map-thumbnails b { display: block; font-size: .75rem; }
  .pp-lightbox-toolbar { gap: 12px; padding: 12px; }
  .pp-lightbox-toolbar h2 { font-size: 1.1rem; }
  .pp-lightbox-bottom { padding: 14px; }
}
@media (max-width: 399px) {
  .site-header { padding: 10px 12px; gap: 8px; min-height: 72px; }
  .brand { width: 142px; }
  .header-cta { padding: 10px 13px; font-size: .8125rem; min-height: 44px; }
  .primary-nav { grid-template-columns: 1fr; }
  .cta-row, .pp-actions, .actions { align-items: stretch; }
  .cta-row > a, .pp-actions > a, .actions > a { width: 100%; }
  .kit-category-grid, .stats-grid, .fri-stat-grid { grid-template-columns: 1fr; }
  .campaign-subnav-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-purpose-grid { gap: 26px 16px; }
  .pp-purpose-item h2 { font-size: 1.0625rem; }
  .pp-map-thumbnails img { display: none; }
  .pp-map-thumbnails button { min-height: 64px; }
  .giving-card-copy { padding: 20px 16px; }
  .giving-card h2 { font-size: 1.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media print {
  .site-header, .site-footer, .campaign-subnav, .pp-subnav, .nav-toggle, .pp-map-controls, .pp-map-thumbnails { display: none; }
  body { font-size: 11pt; background: white; }
  .prestige-hero, .prestige-section, .pp-section { padding: 20px 0; }
  h1 { font-size: 28pt; }
  h2 { font-size: 20pt; }
  .fri-layout { display: block; }
  .fri-give-card, .pp-donation-card { position: static; }
  a { overflow-wrap: anywhere; }
}

/* 14. Sitewide Foundation stationery background · October 8, 2026
   The supplied Poston Foundation composition is the visual canvas across the site.
   Light content surfaces remain translucent enough to carry the brand texture while
   preserving contrast, accessibility, and the stronger campaign-specific dark bands. */
:root {
  --foundation-canvas-paper: rgb(255 253 249 / 58%);
  --foundation-canvas-cream: rgb(247 242 233 / 62%);
  --foundation-canvas-card: rgb(255 255 255 / 94%);
  --foundation-canvas-header: rgb(255 253 249 / 94%);
  --foundation-canvas-footer: rgb(238 240 235 / 92%);
}
html { background: #f5f1e9; }
body {
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  min-height: 100dvh;
  background-color: #f5f1e9;
  background-image: url("/assets/brand/the-poston-foundation-page-background.jpg");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  background-attachment: fixed;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-color: #f5f1e9;
  background-image: url("/assets/brand/the-poston-foundation-page-background.jpg");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}

/* Persistent chrome keeps the canvas visible without sacrificing navigation contrast. */
.site-header {
  background: var(--foundation-canvas-header);
  -webkit-backdrop-filter: blur(12px) saturate(108%);
  backdrop-filter: blur(12px) saturate(108%);
  box-shadow: 0 1px 0 rgb(11 42 69 / 5%);
}
.site-footer {
  background: var(--foundation-canvas-footer);
  -webkit-backdrop-filter: blur(8px) saturate(105%);
  backdrop-filter: blur(8px) saturate(105%);
}

/* Foundation pages: the supplied artwork reads as the page background rather than a hero-only asset. */
.prestige-hero,
.prestige-section,
.mission-strip,
.giving-hub,
.campaign-subnav,
.pp-subnav,
.fri-hero,
.confirmation-page {
  background-color: var(--foundation-canvas-paper);
}
.prestige-hero,
.prestige-section.darker,
.home-program-showcase,
.financial-human-section,
.giving-hub,
.campaign-subnav,
.pp-subnav,
.fri-hero,
.history-timeline-section,
.history-context-section {
  background-color: var(--foundation-canvas-cream);
}
.poston-preserve-page { background: transparent; }
.pp-section { background-color: rgb(255 253 249 / 76%); }
.pp-paper { background: rgb(255 253 249 / 88%); }

/* Cards and forms use a higher-opacity paper layer so body copy stays effortless to read. */
.wide-panel,
.commitment-panel,
.home-hero-brand-card,
.home-program-card,
.giving-card,
.fri-product,
.fri-give-card,
.fri-stat,
.fri-card,
.fri-way,
.fri-step,
.fri-quote,
.fri-budget-callout,
.pp-wordmark,
.pp-map-figure,
.pp-funding-framework,
.pp-work-card,
.pp-donation-card,
.pp-research-card,
.pp-guardrails,
.pp-art-grid figure,
.content-card,
.content-faq details,
details.document-preview,
.content-section details,
.inquiry-form,
.volunteer-form,
.thank-card,
.thank-you-card,
.confirmation-page .card,
.gallery-item,
dialog {
  background-color: var(--foundation-canvas-card);
}
.governance-facts,
.transparency-facts,
.foundation-human-facts,
.historical-note,
.content-note,
.form-consent,
.volunteer-program-visual,
.initiative-visual,
.pp-research-image {
  background-color: rgb(247 242 233 / 90%);
}

/* Retain deliberate dark conversion and heritage bands at full strength. */
.prestige-quote,
.final-cta,
.fri-final,
.pp-final,
.pp-purpose,
.pp-support,
.body-emphasis {
  background-color: var(--navy);
}
.poston-preserve-page .pp-purpose,
.poston-preserve-page .pp-support { background-color: var(--heritage); }

/* Mobile: keep the same supplied artwork, biased slightly right so the monogram survives the portrait crop. */
@media (max-width: 760px) {
  body::before {
    background-image: url("/assets/brand/the-poston-foundation-page-background-1000.jpg");
    background-position: 61% top;
    background-size: cover;
  }
  :root {
    --foundation-canvas-paper: rgb(255 253 249 / 76%);
    --foundation-canvas-cream: rgb(247 242 233 / 78%);
  }
  .site-header { background: rgb(255 253 249 / 97%); }
}

/* Printing should remain clean and ink-efficient. */
@media print {
  body::before { display: none !important; }
  body { background-image: none !important; }
  body, .prestige-hero, .prestige-section, .mission-strip, .giving-hub,
  .campaign-subnav, .pp-subnav, .fri-hero, .pp-section, .pp-paper,
  .site-header, .site-footer, .confirmation-page { background: white !important; }
}

/* 2026-10-08 improved Foundation logo asset set */
.footer-mark{max-width:250px}
.footer-mark img{height:auto}
@media (max-width:700px){.footer-mark{max-width:225px}}
\n\n/* 2026-10-09: donation forms promoted immediately below campaign heroes. */
.fri-donation-priority {
  padding: clamp(24px, 4vw, 48px) 0;
  background: linear-gradient(180deg, rgba(247,242,233,.94), rgba(255,255,255,.92));
  border-bottom: 1px solid var(--border);
}
.fri-donation-priority-inner {
  display: flex;
  justify-content: center;
}
.fri-donation-priority .fri-give-card {
  width: min(100%, 760px);
  margin: 0;
}
.fri-donation-priority .fri-give-card.is-smart-sticky {
  position: static;
}
.fri-layout--single {
  display: block;
}
.fri-layout--single .fri-main {
  width: 100%;
  max-width: none;
}
.pp-support--priority {
  margin-top: 0;
}
.pp-support--priority .pp-support-grid {
  grid-template-columns: minmax(360px, .95fr) minmax(0, 1.05fr);
}
.pp-support--priority .pp-donation-card {
  order: -1;
  align-self: start;
}
.pp-support--priority .pp-donation-campaign-art {
  margin-top: 24px;
  margin-bottom: 0;
}
.pp-support--priority .pp-donation-campaign-art img {
  max-height: 440px;
}
@media (max-width: 900px) {
  .pp-support--priority .pp-support-grid {
    grid-template-columns: 1fr;
  }
  .pp-support--priority .pp-donation-card {
    order: -1;
  }
}
@media (max-width: 700px) {
  .fri-donation-priority {
    padding: 18px 0 24px;
  }
  .fri-donation-priority .fri-give-card {
    width: 100%;
  }
  .pp-support--priority .pp-donation-campaign-art img {
    max-height: none;
  }
}


/* === content-expansion.css === */
/* Source-backed program detail, preserving the Foundation's established design. */
.content-inner { max-width: var(--max); margin-inline: auto; }
.content-inner > p, .content-section > p { max-width: 80ch; }
.content-inner > p { margin-inline: auto; }
.content-lead { font-size: 1.15rem; line-height: 1.8; color: var(--muted); }
.content-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(20px,3vw,36px); align-items: start; margin-block: 28px; }
.content-card { min-width: 0; height: 100%; padding: clamp(22px,2.5vw,34px); background: var(--paper); border: 1px solid var(--border); border-radius: 6px; }
.content-card h3 { font-size: 1.5rem; line-height: 1.3; }
.content-card > :last-child { margin-bottom: 0; }
.content-card p { color: var(--muted); }
.content-grid > .content-card:only-child { grid-column: 1 / -1; }
.content-grid > .content-card:nth-child(3):last-child { grid-column: 1 / -1; }
.content-note { margin-block: 24px; padding: 20px 24px; border-left: 3px solid var(--gold); background: #f0ede5; color: #354550; font-size: .9375rem; line-height: 1.7; }
.content-jump { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-block: 26px; padding-block: 12px; }
.content-jump a { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 15px; border: 1px solid var(--border); border-radius: 4px; background: var(--paper); color: var(--navy); font-size: .875rem; font-weight: 650; line-height: 1.4; text-decoration: none; }
.content-jump a:hover { border-color: var(--gold-ink); background: var(--cream); }
.content-jump.pp-container { padding-inline: var(--gutter); max-width: calc(var(--max) + 2 * var(--gutter)); }
.content-jump.fri-shell { padding-inline: var(--gutter); }
.table-scroll { width: 100%; overflow-x: auto; margin-block: 28px; border: 1px solid var(--border); border-radius: 6px; background: var(--paper); }
.content-table, .table-scroll table { width: 100%; border-collapse: collapse; font-size: .9375rem; line-height: 1.6; }
.content-table caption, .table-scroll caption { padding: 20px; text-align: left; color: var(--navy); font-weight: 700; background: var(--cream); }
.content-table th, .content-table td, .table-scroll th, .table-scroll td { padding: 16px 20px; vertical-align: top; text-align: left; border-bottom: 1px solid var(--border); }
.content-table thead, .table-scroll thead { background: var(--navy); color: white; }
.content-table thead th, .table-scroll thead th { color: white; }
.content-table tbody th, .table-scroll tbody th { color: var(--navy); font-weight: 650; }
.content-table tr:last-child > *, .table-scroll tr:last-child > * { border-bottom: 0; }
.content-table tbody tr:nth-child(even), .table-scroll tbody tr:nth-child(even) { background: #f6f3ed; }
.content-table-hint { font-size: .875rem; color: var(--muted); }
.content-faq details, details.document-preview, .content-section details { padding: 20px 24px; margin-block: 14px; border: 1px solid var(--border); background: var(--paper); border-radius: 6px; }
.content-faq summary, .document-preview summary, .content-section summary { cursor: pointer; color: var(--navy); font-weight: 650; line-height: 1.5; min-height: 28px; }
.content-faq details[open] summary, .document-preview[open] summary, .content-section details[open] summary { margin-bottom: 18px; }
.document-preview iframe { width: 100%; height: min(760px,80vh); min-height: 420px; background: #e9e9e9; border: 1px solid var(--border); }
.content-figure, .content-card figure { margin: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 6px; background: white; }
.content-figure img, .content-card figure img { display: block; width: 100%; height: auto; object-fit: contain; }
.content-grid .content-figure { align-self: start; }
.document-covers { margin-top: 36px; align-items: stretch; }
.document-covers > a { display: block; max-width: 440px; margin-inline: auto; text-decoration: none; }
.document-covers img { aspect-ratio: 8.5 / 11; object-fit: contain; }
.giving-hub .content-section { max-width: 1100px; margin: 54px auto 0; padding: 42px 0 0; border-top: 1px solid var(--border); }
.giving-hub .content-section.darker { background: transparent; }
.giving-hub .content-section .section-heading { max-width: 800px; }
.giving-hub .content-jump { max-width: 1100px; justify-content: center; margin-inline: auto; }
.content-resources { margin-block: 28px; }
.content-resources .content-card { margin-bottom: 18px; }
.thank-you-main .content-section { text-align: left; }
@media (max-width: 700px) {
  .content-grid { grid-template-columns: 1fr; gap: 22px; }
  .content-grid > .content-card:nth-child(3):last-child { grid-column: auto; }
  .content-jump { gap: 8px; }
  .content-jump a { padding: 9px 12px; }
  .table-scroll table { min-width: 580px; }
  .content-table th, .content-table td, .table-scroll th, .table-scroll td { padding: 13px 16px; }
  .content-note { padding: 16px 18px; }
  .content-faq details, details.document-preview, .content-section details { padding: 18px; }
  .document-preview iframe { min-height: 380px; height: 65vh; }
  .giving-hub .content-section { margin-top: 38px; padding-top: 34px; }
}
@media print {
  .content-jump, .document-preview iframe { display: none; }
  .content-grid { display: block; }
  .content-card, tr, figure { break-inside: avoid; }
  .table-scroll { overflow: visible; }
  .table-scroll table { min-width: 0; }
}


/* === fundraising-visual-upgrade.css === */
/* 2026-10 fundraising visual upgrade: approved Carolina Cares + Poston Preserve campaign assets. */
.campaign-lockup{display:block;width:min(100%,760px);height:auto;margin:0 0 20px;object-fit:contain}
.campaign-lockup--compact{width:min(100%,560px)}
.campaign-figure{margin:0;border:1px solid var(--border);border-radius:8px;background:var(--paper);overflow:hidden}
.campaign-figure>a{display:block;color:inherit;text-decoration:none}
.campaign-figure img{display:block;width:100%;height:auto}
.campaign-figure figcaption{padding:11px 14px;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem;line-height:1.5;background:rgba(255,255,255,.94)}
.campaign-figure--image-only figcaption{border-top:0}
.campaign-figure--shadow{box-shadow:0 20px 44px rgba(7,27,49,.11)}
.fri-product.fri-product--campaign{padding:0;overflow:hidden;background:#f5f1e8}
.fri-product.fri-product--campaign img{aspect-ratio:16/9;object-fit:cover}
.fri-hero .campaign-lockup{max-width:520px;margin-bottom:18px}
.fri-donor-emblem{display:block;width:108px;height:auto;margin:-4px auto 14px}
.fri-visual-callout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:28px;align-items:center;margin:28px 0;padding:24px;border:1px solid var(--border);border-radius:8px;background:var(--cream)}
.fri-visual-callout .campaign-figure{background:#fff}
.fri-visual-callout h3{margin-top:0}.fri-visual-callout p:last-child{margin-bottom:0}
.sponsor-page .prestige-hero{padding-block:clamp(38px,5vw,66px)}
.sponsor-hero-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(28px,4vw,54px);align-items:center;width:100%;max-width:var(--max);margin-inline:auto}
.sponsor-hero-copy{min-width:0}.sponsor-hero-copy .campaign-lockup{max-width:520px;margin-bottom:18px}
.sponsor-hero-visual img{aspect-ratio:16/9;object-fit:cover}
.sponsor-brand-row{display:flex;align-items:center;gap:18px;padding:20px;border:1px solid var(--border);border-radius:8px;background:var(--paper);margin-top:28px}
.sponsor-brand-row img{width:86px;height:auto;flex:0 0 auto}.sponsor-brand-row p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.6}
.giving-card-image.giving-card-image--campaign{padding:0;background:#f5f1e8;position:relative}
.giving-card-image.giving-card-image--campaign img{object-fit:cover}
.giving-card-image.giving-card-image--campaign.giving-card-image--contain img{object-fit:contain;padding:10px}
.giving-card-visual-note{position:absolute;left:10px;bottom:10px;margin:0;padding:5px 8px;border-radius:4px;background:rgba(255,255,255,.92);color:#42515c;font-size:.68rem;line-height:1.35;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.pp-hero.pp-hero--campaign .pp-hero-art{background:#f7f2e9;border-color:#cfb983;border-radius:8px;overflow:hidden;box-shadow:0 22px 48px rgba(7,27,49,.10)}
.pp-hero.pp-hero--campaign .pp-hero-art img{aspect-ratio:2/1;object-fit:cover}
.pp-hero .pp-hero-lockup{max-width:500px;margin-bottom:18px}
.pp-phase-campaign{margin:30px 0 8px}.pp-phase-campaign img{aspect-ratio:16/9;object-fit:cover}
.pp-wordmark.pp-wordmark--new{padding:22px;background:#fff;border:1px solid var(--border);border-radius:8px}
.pp-wordmark.pp-wordmark--new img{width:100%;height:auto;object-fit:contain}
.pp-giving-visual{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px;align-items:start;margin:30px 0 34px}
.pp-giving-visual-copy{padding:22px 0}.pp-giving-visual-copy h3{font-size:1.65rem}.pp-giving-visual-copy p{color:var(--muted)}
.pp-donation-campaign-art{margin:0 0 22px}.pp-donation-campaign-art a{display:block}
.pp-donation-campaign-art img{width:100%;height:auto;max-height:560px;object-fit:contain;background:#f7f2e9}
.pp-stewardship-mark{display:flex;justify-content:center;align-items:center;padding:20px;margin-top:24px;border:1px solid var(--border);border-radius:8px;background:#fff}
.pp-stewardship-mark img{display:block;width:min(100%,300px);height:auto}.pp-support .campaign-figure figcaption{color:#42515c}
@media (max-width:900px){.sponsor-hero-grid,.fri-visual-callout,.pp-giving-visual{grid-template-columns:1fr}.sponsor-hero-copy .campaign-lockup,.fri-hero .campaign-lockup,.pp-hero .pp-hero-lockup{max-width:100%}.fri-visual-callout{padding:18px}}
@media (max-width:700px){.campaign-figure figcaption{font-size:.74rem;padding:9px 11px}.sponsor-page .prestige-hero{padding:24px var(--gutter)}.sponsor-hero-grid{gap:22px}.sponsor-brand-row{align-items:flex-start;padding:16px}.sponsor-brand-row img{width:70px}.pp-phase-campaign{margin-top:22px}.pp-donation-campaign-art img{max-height:none}}


/* === donate-hub.css === */
/* Donate conversion hub — 2026-10-14 */
.donate-page .giving-hub.donation-hub-v2{
  padding:0 0 clamp(56px,7vw,96px);
  background:transparent;
}
.donation-hero{
  padding:clamp(34px,5vw,64px) var(--gutter) 18px;
  text-align:center;
  background:rgb(255 253 249 / 84%);
  border-bottom:1px solid rgb(222 213 199 / 72%);
}
.donation-hero-inner{max-width:850px;margin:0 auto}
.donation-hero .section-kicker{margin-bottom:10px}
.donation-hero h1{margin:0;font-size:clamp(2.25rem,5vw,4.25rem);line-height:1.02;letter-spacing:-.035em;color:var(--navy)}
.donation-hero-lead{max-width:720px;margin:18px auto 0;font-size:clamp(1.02rem,1.6vw,1.2rem);line-height:1.72;color:var(--muted)}
.donation-hero-trust{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;margin:22px auto 0;padding:0;list-style:none;color:#4c5962;font-size:.82rem}
.donation-hero-trust li{display:flex;align-items:center;gap:7px}
.donation-hero-trust li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);flex:0 0 auto}

.donation-checkout-section{padding:26px var(--gutter) 0}
.donation-checkout-shell{max-width:1120px;margin:0 auto;padding:clamp(20px,3vw,34px);border:1px solid rgb(198 154 69 / 44%);border-radius:14px;background:rgb(255 253 249 / 94%);box-shadow:0 24px 60px rgb(7 27 49 / 11%)}
.donation-checkout-heading{text-align:center;max-width:760px;margin:0 auto 22px}
.donation-checkout-heading h2{font-size:clamp(1.5rem,2.8vw,2.25rem);margin:0 0 8px;color:var(--navy)}
.donation-checkout-heading p{margin:0;color:var(--muted)}

.donation-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 auto 22px;max-width:920px}
.donation-tab{position:relative;display:grid;grid-template-columns:92px 1fr;gap:16px;align-items:center;width:100%;min-height:118px;padding:12px;text-align:left;border:1px solid var(--border);border-radius:10px;background:rgb(255 255 255 / 88%);color:var(--body);cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;font:inherit}
.donation-tab:hover{transform:translateY(-1px);border-color:rgb(198 154 69 / 72%);box-shadow:0 10px 24px rgb(7 27 49 / 8%)}
.donation-tab[aria-selected="true"]{border-color:var(--gold);background:#fff;box-shadow:0 0 0 2px rgb(198 154 69 / 14%),0 12px 28px rgb(7 27 49 / 10%)}
.donation-tab-image{width:92px;height:92px;border-radius:8px;overflow:hidden;background:#f7f2e9;border:1px solid rgb(222 213 199 / 75%)}
.donation-tab-image img{display:block;width:100%;height:100%;object-fit:cover}
.donation-tab--preserve .donation-tab-image img{object-fit:contain;padding:4px}
.donation-tab-copy{min-width:0;padding-right:0}
.donation-tab-eyebrow{display:block;margin-bottom:4px;color:var(--gold-dark,#a87d34);font-size:.67rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.donation-tab-title{display:block;color:var(--navy);font-family:var(--serif);font-size:1.35rem;font-weight:700;line-height:1.08}
.donation-tab-desc{display:block;margin-top:7px;color:var(--muted);font-size:.83rem;line-height:1.45}

.donation-panel-wrap{max-width:820px;margin:0 auto}
.donation-panel{padding:clamp(20px,3vw,30px);border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 10px 30px rgb(7 27 49 / 7%)}
.donation-panel[hidden]{display:none!important}
.donation-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--border)}
.donation-panel-header h3{margin:2px 0 7px;font-size:clamp(1.4rem,2.5vw,1.9rem);color:var(--navy)}
.donation-panel-header p{margin:0;max-width:570px;color:var(--muted);font-size:.92rem;line-height:1.6}
.donation-program-link{flex:0 0 auto;font-size:.8rem;white-space:nowrap}
.donation-form-trust{display:flex;flex-wrap:wrap;gap:7px 14px;margin:0 0 16px;padding:0;list-style:none;color:#52616a;font-size:.76rem}
.donation-form-trust li{display:flex;align-items:center;gap:6px}
.donation-form-trust li::before{content:"✓";font-weight:800;color:var(--gold-dark,#a87d34)}
.donation-embed-slot{width:100%;min-height:80px}
.donation-fallback{margin:16px 0 0;color:var(--muted);font-size:.78rem;line-height:1.55;text-align:center}
.donation-fallback a{font-weight:700}
.donation-campaign-note{margin:18px 0 0;padding:12px 14px;border-left:3px solid var(--gold);background:#f7f2e9;color:#59656d;font-size:.78rem;line-height:1.55}
.donation-noscript{max-width:820px;margin:14px auto 0;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:8px;font-size:.85rem}

.donation-trust-strip{max-width:1120px;margin:24px auto 0;padding:0 var(--gutter)}
.donation-trust-strip-inner{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;align-items:center;padding:20px 24px;border-block:1px solid rgb(222 213 199 / 92%);background:rgb(255 253 249 / 72%)}
.donation-trust-copy{display:flex;flex-wrap:wrap;gap:9px 24px;align-items:center;color:#46545e;font-size:.86rem}
.donation-trust-copy strong{color:var(--navy)}
.donation-trust-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 18px;font-size:.83rem}

.donation-support-section,.donation-stewardship-section,.donation-faq-section{padding:clamp(46px,6vw,72px) var(--gutter) 0}
.donation-section-shell{max-width:1100px;margin:0 auto}
.donation-section-heading{max-width:760px;margin:0 0 26px}
.donation-section-heading h2{margin:4px 0 10px;font-size:clamp(1.75rem,3.5vw,2.65rem);color:var(--navy)}
.donation-section-heading p{margin:0;color:var(--muted);line-height:1.7}
.donation-way-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.donation-way-card{display:flex;flex-direction:column;padding:22px;border:1px solid var(--border);border-radius:10px;background:rgb(255 253 249 / 90%)}
.donation-way-card h3{margin:0 0 9px;color:var(--navy);font-size:1.05rem}
.donation-way-card p{margin:0 0 18px;color:var(--muted);font-size:.88rem;line-height:1.62}
.donation-way-card a{margin-top:auto;font-size:.85rem;font-weight:700}

.donation-stewardship-card{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(270px,.7fr);gap:34px;align-items:center;padding:clamp(24px,4vw,38px);border:1px solid var(--border);border-radius:12px;background:rgb(255 253 249 / 92%)}
.donation-stewardship-card h2{margin:4px 0 12px;color:var(--navy);font-size:clamp(1.7rem,3vw,2.45rem)}
.donation-stewardship-card p{color:var(--muted);line-height:1.72}
.donation-stewardship-links{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:18px;font-size:.87rem;font-weight:700}
.donation-credentials{display:grid;gap:12px}
.donation-credential{padding:15px 16px;border:1px solid var(--border);border-radius:8px;background:#fff}
.donation-credential span{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.donation-credential strong{display:block;margin-top:4px;color:var(--navy);font-size:.96rem}
.donation-trust-badges{display:flex;align-items:center;gap:18px;margin-top:4px}
.donation-trust-badges img{display:block;width:auto;max-width:92px;max-height:72px;object-fit:contain}

.donation-faq{display:grid;gap:10px}
.donation-faq details{border:1px solid var(--border);border-radius:9px;background:rgb(255 253 249 / 92%);overflow:hidden}
.donation-faq summary{cursor:pointer;padding:17px 20px;color:var(--navy);font-weight:700}
.donation-faq details p{margin:0;padding:0 20px 18px;color:var(--muted);line-height:1.68;font-size:.91rem}
.donation-final-note{max-width:800px;margin:26px auto 0;text-align:center;color:var(--muted);font-size:.85rem}
.donation-final-note a{font-weight:700}

@media (max-width:900px){
  .donation-way-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .donation-stewardship-card,.donation-trust-strip-inner{grid-template-columns:1fr}
  .donation-trust-links{justify-content:flex-start}
}
@media (max-width:700px){
  .donation-hero{padding-top:28px}
  .donation-tabs{grid-template-columns:1fr}
  .donation-tab{grid-template-columns:76px 1fr;min-height:100px}
  .donation-tab-image{width:76px;height:76px}
  .donation-tab-copy{padding-right:0}
  .donation-tab-title{font-size:1.18rem}
  .donation-panel-header{display:block}
  .donation-program-link{display:inline-block;margin-top:12px;white-space:normal}
  .donation-way-grid{grid-template-columns:1fr}
  .donation-checkout-shell{padding:16px;border-radius:10px}
  .donation-panel{padding:18px 15px}
  .donation-trust-strip{padding:0}
  .donation-trust-strip-inner{padding:18px var(--gutter)}
}
@media (prefers-reduced-motion:reduce){.donation-tab{transition:none}.donation-tab:hover{transform:none}}


/* === site-overhaul.css === */
/* The Poston Foundation · Institutional conversion and credibility upgrade · 2026-10-14 */

/* Global navigation: fewer choices, clearer conversion hierarchy. */
.primary-nav { gap: clamp(10px, 1.35vw, 19px); }
.primary-nav a { font-size: .86rem; }
.header-cta { box-shadow: 0 6px 18px rgb(7 27 49 / 10%); }
.header-cta:hover { transform: translateY(-1px); }

/* Homepage institutional hero */
.institutional-hero .prestige-hero-content {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: clamp(34px, 5vw, 76px);
  align-items: center;
}
.institutional-hero h1 { max-width: 14ch; }
.institutional-hero .hero-copy { max-width: 66ch; }
.institutional-identity-card {
  display: grid;
  grid-template-columns: minmax(120px, 180px) 1fr;
  gap: clamp(18px, 2.5vw, 32px);
  align-items: center;
  padding: clamp(22px, 3vw, 36px);
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgb(255 255 255 / 94%);
  box-shadow: 0 22px 50px rgb(7 27 49 / 9%);
}
.institutional-identity-card img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.institutional-identity-card dl { margin: 0; }
.institutional-identity-card div { padding: 10px 0; border-bottom: 1px solid var(--border); }
.institutional-identity-card div:last-child { border-bottom: 0; }
.institutional-identity-card dt { color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.institutional-identity-card dd { margin: 3px 0 0; color: var(--navy); font-weight: 650; line-height: 1.35; }

/* Homepage: initiative routing */
.home-program-card { box-shadow: 0 18px 40px rgb(7 27 49 / 6%); }
.home-program-card figure { aspect-ratio: 16/9; }
.home-program-card figure img { object-fit: cover; }
.home-program-card.preserve-card figure img { object-fit: cover; }
.program-status-line {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  margin: 2px 0 16px;
  padding: 6px 9px;
  border: 1px solid #d9c9a8;
  border-radius: 999px;
  background: #fffaf0;
  color: #6e5520;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.35;
}
.program-status-line::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }

/* Compact trust band */
.institutional-trust-band { padding-top: clamp(36px, 5vw, 58px); padding-bottom: clamp(36px, 5vw, 58px); }
.institutional-trust-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  max-width: var(--max);
  margin-inline: auto;
}
.institutional-trust-item {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: rgb(255 255 255 / 94%);
  text-align: center;
}
.institutional-trust-item strong { display: block; color: var(--navy); font-family: var(--serif); font-size: 1.04rem; font-weight: 400; line-height: 1.3; }
.institutional-trust-item span, .institutional-trust-item a { display: block; margin-top: 6px; color: var(--muted); font-size: .76rem; line-height: 1.45; }
.institutional-trust-item img { width: auto; height: 52px; margin: 0 auto 10px; object-fit: contain; }

/* Homepage participation and operating principles */
.participation-grid, .principle-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  max-width: var(--max);
  margin-inline: auto;
}
.participation-card, .principle-card {
  display: flex;
  flex-direction: column;
  padding: 26px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: rgb(255 255 255 / 94%);
}
.participation-card p, .principle-card p { color: var(--muted); }
.participation-card .text-link { margin-top: auto; padding-top: 10px; }
.principle-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.principle-card { min-height: 100%; }

/* Authentic history feature */
.authentic-history-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(28px, 4vw, 58px);
  align-items: center;
  max-width: var(--max);
  margin-inline: auto;
}
.authentic-history-grid figure { overflow: hidden; border: 1px solid var(--border); border-radius: 8px; background: white; }
.authentic-history-grid figure img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.authentic-history-copy p:not(.section-kicker) { color: var(--muted); }

/* Sponsor conversion upgrades */
.sponsor-hero-copy .cta-row { margin-top: 22px; }
.sponsor-level { position: relative; display: flex; flex-direction: column; }
.sponsor-level p { color: var(--muted); }
.sponsor-level .sponsor-level-action { margin-top: auto; padding-top: 14px; }
.sponsor-level .button { width: 100%; min-height: 44px; padding: 10px 14px; font-size: .86rem; }
.sponsor-priority-form { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); background: rgb(247 242 233 / 72%); }
.sponsor-priority-form .inquiry-form-wrap { align-items: start; }
.sponsor-priority-form .inquiry-form-panel { box-shadow: 0 18px 44px rgb(7 27 49 / 7%); }
.sponsor-value-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
  max-width: var(--max);
  margin-inline: auto;
}
.sponsor-value-strip article { padding: 24px; border: 1px solid var(--border); border-radius: 7px; background: rgb(255 255 255 / 94%); }
.sponsor-value-strip p { color: var(--muted); }

/* Impact page: distinguish evidence, plan and reporting. */
.impact-status-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 20px;
  max-width: var(--max);
  margin-inline: auto;
}
.impact-status-card {
  padding: 26px;
  border: 1px solid var(--border);
  border-top: 4px solid var(--gold);
  border-radius: 7px;
  background: rgb(255 255 255 / 95%);
}
.impact-status-card strong { display: block; margin-bottom: 8px; color: var(--navy); font: 400 1.35rem/1.25 var(--serif); }
.impact-status-card p { color: var(--muted); }
.impact-definition-note { max-width: 860px; margin: 26px auto 0; padding: 18px 22px; border-left: 4px solid var(--gold); background: rgb(255 253 249 / 90%); color: var(--muted); }

/* Transparency: due-diligence first. */
.due-diligence-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 14px;
  max-width: var(--max);
  margin-inline: auto;
}
.due-diligence-fact { padding: 20px; border: 1px solid var(--border); border-radius: 7px; background: rgb(255 255 255 / 95%); }
.due-diligence-fact span { display: block; margin-bottom: 6px; color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.due-diligence-fact strong { display: block; color: var(--navy); font: 400 1.05rem/1.35 var(--serif); overflow-wrap: anywhere; }
.due-diligence-actions { justify-content: center; }

/* About: visible leadership and governance credibility. */
.about-leadership-preview {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  gap: clamp(26px, 4vw, 54px);
  align-items: center;
  max-width: var(--max);
  margin-inline: auto;
}
.about-leadership-preview figure { max-width: 420px; overflow: hidden; border-radius: 8px; border: 1px solid var(--border); background: white; }
.about-leadership-preview figure img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.about-leadership-preview p:not(.section-kicker) { color: var(--muted); }
.about-board-line { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 22px 0; padding: 16px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); color: var(--navy); font-size: .9rem; font-weight: 650; }

/* Leadership page: public verification row. */
.governance-verification {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 16px;
  max-width: var(--max);
  margin-inline: auto;
}
.governance-verification a, .governance-verification div { padding: 18px; border: 1px solid var(--border); border-radius: 7px; background: rgb(255 255 255 / 94%); text-decoration: none; }
.governance-verification span { display: block; color: var(--muted); font-size: .73rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.governance-verification strong { display: block; margin-top: 5px; color: var(--navy); font: 400 1.05rem/1.35 var(--serif); }

/* Cross-site decision cards used on credibility pages. */
.credibility-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
  max-width: var(--max);
  margin-inline: auto;
}
.credibility-action { padding: 24px; border: 1px solid var(--border); border-radius: 7px; background: rgb(255 255 255 / 94%); }
.credibility-action p { color: var(--muted); }
.credibility-action a { font-weight: 650; }

@media (max-width: 1050px) {
  .institutional-trust-grid, .due-diligence-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .participation-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .institutional-hero .prestige-hero-content,
  .authentic-history-grid,
  .about-leadership-preview { grid-template-columns: 1fr; }
  .institutional-identity-card { max-width: 620px; }
  .impact-status-grid, .sponsor-value-strip, .principle-grid, .credibility-actions { grid-template-columns: 1fr; }
  .governance-verification { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .institutional-identity-card { grid-template-columns: 100px 1fr; padding: 18px; }
  .institutional-trust-grid, .due-diligence-grid, .participation-grid, .governance-verification { grid-template-columns: 1fr; }
  .institutional-trust-item { text-align: left; }
  .institutional-trust-item img { margin-left: 0; }
}


/* === site-polish.css === */
/* The Poston Foundation · sitewide polish · 2026-10-14
   Mobile-first hardening and simplified presentation. */

/* Media should never create viewport overflow. */
img, video, iframe, svg, canvas { max-width: 100%; }
img, video { height: auto; }
iframe { width: 100%; }
main, main * { min-width: 0; }

/* Keep long identifiers usable without breaking page geometry. */
a[href^="mailto:"], a[href^="tel:"], address, .footer-email,
.contact-line a, .donation-credential strong, .due-diligence-fact strong {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Image descriptions are carried by alt text / accessible names, not visible captions. */
figcaption { display: none !important; }
.campaign-figure { border-radius: 8px; }
.campaign-figure img { border-radius: inherit; }

/* Forms and embedded giving components stay inside their cards. */
input, select, textarea, button { max-width: 100%; }
form, fieldset, .donation-embed-slot, .pp-fundraiseup-slot, .fri-fundraiseup-slot { width: 100%; max-width: 100%; }

/* The selected campaign is indicated by the tab's gold border/background state—no overlay badge. */
.donation-tab[aria-selected="true"]::after { content: none !important; display: none !important; }
.donation-tab-copy { padding-right: 0 !important; }

/* Flexible action rows. */
.cta-row, .actions, .pp-actions, .donation-trust-links,
.donation-stewardship-links, .pp-context-links, .footer-social-bar,
.inquiry-trust-row, .volunteer-availability {
  flex-wrap: wrap;
}

/* Horizontal data remains scrollable inside its own container, never at page level. */
.table-scroll {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

/* Cleaner map control row after caption removal. */
.pp-map-controls { flex-wrap: wrap; }
.pp-map-enlarge-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 9px 14px;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--paper);
  color: var(--navy);
  font-size: .82rem;
  font-weight: 650;
  text-decoration: none;
}
.pp-map-enlarge-control:hover { border-color: var(--gold-ink); background: var(--cream); }

/* Contact page: concise, balanced presentation. */
.contact-direct-grid {
  display: grid;
  grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);
  gap: clamp(26px,4vw,56px);
  align-items: start;
  max-width: var(--max);
  margin-inline: auto;
}
.contact-direct-panel,
.contact-form-panel {
  padding: clamp(22px,3vw,36px);
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgb(255 255 255 / 94%);
}
.contact-direct-panel h2,
.contact-form-panel h2 { margin-bottom: 24px; }
.contact-direct-panel .contact-line + .contact-line { margin-top: 18px; }
.contact-public-links { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 26px; }
.contact-public-links a { font-size: .88rem; font-weight: 650; }

@media (max-width: 820px) {
  .contact-direct-grid { grid-template-columns: 1fr; }
  .contact-map-frame iframe { min-height: 300px; }
}

@media (max-width: 700px) {
  :root { --gutter: 16px; }
  .prestige-hero, .prestige-section { padding-inline: var(--gutter); }
  .wide-panel, .content-card, .prestige-card, .sponsor-level,
  .donation-checkout-shell, .donation-panel, .fri-give-card,
  .pp-donation-card, .contact-direct-panel, .contact-form-panel {
    max-width: 100%;
  }
  .donation-tab {
    grid-template-columns: 68px minmax(0,1fr) !important;
    gap: 12px !important;
    padding: 12px !important;
  }
  .donation-tab-image { width: 68px !important; height: 68px !important; }
  .donation-tab-copy { padding-right: 0 !important; }
  .donation-tab-eyebrow { font-size: .62rem; line-height: 1.35; letter-spacing: .08em; }
  .donation-tab-title { font-size: 1.12rem !important; }
  .donation-tab-desc { font-size: .8rem; }

  .campaign-subnav-links, .pp-subnav-inner { overflow-x: auto; scrollbar-width: none; }
  .campaign-subnav-links::-webkit-scrollbar, .pp-subnav-inner::-webkit-scrollbar { display: none; }

  .pp-map-controls { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 8px; align-items: center; }
  .pp-map-controls #pp-map-status { grid-column: 1 / -1; grid-row: 1; text-align: center; margin: 0; }
  .pp-map-controls #pp-map-prev { grid-column: 1; grid-row: 2; }
  .pp-map-controls .pp-map-enlarge-control { grid-column: 2; grid-row: 2; }
  .pp-map-controls #pp-map-next { grid-column: 3; grid-row: 2; }

  .public-profile-links { grid-template-columns: 1fr !important; }
  .public-profile-link { min-height: 48px; }

  .footer-grid { gap: 22px; }
  .footer-group a { overflow-wrap: anywhere; }
}

@media (max-width: 480px) {
  :root { --gutter: 14px; --space: 38px; }
  body { font-size: .975rem; }
  h1 { font-size: clamp(2rem,10vw,2.75rem); }
  h2 { font-size: clamp(1.55rem,8vw,2.15rem); }
  .hero-copy, .content-lead, .fri-lede, .pp-lede { font-size: 1rem; line-height: 1.65; }

  .site-header { grid-template-columns: minmax(0,1fr) auto auto !important; padding-inline: 10px !important; }
  .brand { width: min(138px, 100%) !important; }
  .header-cta { padding-inline: 11px !important; }

  .content-card, .prestige-card, .sponsor-level,
  .contact-direct-panel, .contact-form-panel { padding: 20px 16px; }
  .button, .pp-button, .header-cta { white-space: normal; text-align: center; }
  .cta-row > a, .actions > a, .pp-actions > a { width: 100%; }

  .donation-checkout-section { padding-inline: 12px !important; }
  .donation-checkout-shell { padding: 14px !important; }
  .donation-panel { padding: 16px 13px !important; }
  .donation-tab { grid-template-columns: 60px minmax(0,1fr) !important; }
  .donation-tab-image { width: 60px !important; height: 60px !important; }
  .donation-tab-copy { padding-right: 0 !important; }
  .donation-tab-title { font-size: 1.05rem !important; }
  .donation-tab-desc { margin-top: 5px; font-size: .76rem; line-height: 1.38; }

  .fri-layout, .pp-support .pp-container { width: calc(100% - 16px) !important; }
  .fri-main, .pp-support-copy { padding-inline: 0 !important; }
  .pp-map-controls button, .pp-map-enlarge-control { padding: 9px 10px; }

  .table-scroll { margin-inline: 0; }
  .document-preview iframe { min-height: 300px !important; }
}



/* =========================================================
   Institutional Motion System — 2026-10-14
   Purpose: subtle, professional motion that reinforces a
   premium institutional feel without hiding essential content.
   ========================================================= */
:root {
  --motion-duration-xs: 220ms;
  --motion-duration-sm: 420ms;
  --motion-duration-md: 680ms;
  --motion-duration-lg: 920ms;
  --motion-ease-standard: cubic-bezier(.22, 1, .36, 1);
  --motion-ease-soft: cubic-bezier(.18, .89, .32, 1.08);
  --motion-shadow-hover: 0 20px 40px rgba(7, 27, 49, .10);
}

html.motion-enabled { scroll-behavior: smooth; }
html.reduce-motion { scroll-behavior: auto; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

.motion-reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0) scale(.985);
  transition:
    opacity var(--motion-duration-md) var(--motion-ease-standard),
    transform calc(var(--motion-duration-md) + 80ms) var(--motion-ease-standard);
  transition-delay: var(--motion-delay, 0ms);
  will-change: opacity, transform;
}
.motion-reveal[data-motion="hero"] {
  transform: translate3d(0, 22px, 0) scale(.99);
}
.motion-reveal[data-motion="media"] {
  transform: translate3d(0, 34px, 0) scale(.975);
}
.motion-reveal.is-visible {
  opacity: 1;
  transform: none;
}

html.motion-enabled .gold-ornament.motion-reveal {
  opacity: 0;
  transform: scaleX(.24);
  transform-origin: left center;
}
html.motion-enabled .section-heading .gold-ornament.motion-reveal,
html.motion-enabled .final-cta .gold-ornament.motion-reveal,
html.motion-enabled .content-heading .gold-ornament.motion-reveal,
html.motion-enabled .media-feature-copy .gold-ornament.motion-reveal,
html.motion-enabled .hero-content .gold-ornament.motion-reveal,
html.motion-enabled .prestige-hero-content .gold-ornament.motion-reveal {
  transform-origin: center center;
}
html.motion-enabled .gold-ornament.motion-reveal.is-visible {
  opacity: 1;
  transform: scaleX(1);
}

/* Smooth image treatment inside major visual wrappers. */
html.motion-enabled .content-card img,
html.motion-enabled .prestige-card img,
html.motion-enabled .fri-product img,
html.motion-enabled .pp-hero-art img,
html.motion-enabled .campaign-figure img,
html.motion-enabled .institutional-identity-card img,
html.motion-enabled .gallery-item img,
html.motion-enabled .media-feature img,
html.motion-enabled .media-record-main img,
html.motion-enabled .pp-art-grid img,
html.motion-enabled .authentic-history-grid img,
html.motion-enabled .fri-budget-callout img {
  transition: transform var(--motion-duration-lg) var(--motion-ease-standard), filter var(--motion-duration-sm) ease;
  will-change: transform;
}

/* Refined hover states. */
@media (hover: hover) and (pointer: fine) {
  html.motion-enabled .button,
  html.motion-enabled .pp-button,
  html.motion-enabled .header-cta,
  html.motion-enabled .pp-map-enlarge-control,
  html.motion-enabled .nav-links a,
  html.motion-enabled .text-link,
  html.motion-enabled .footer-social-icons a,
  html.motion-enabled .content-card,
  html.motion-enabled .prestige-card,
  html.motion-enabled .home-program-card,
  html.motion-enabled .principle-card,
  html.motion-enabled .participation-card,
  html.motion-enabled .institutional-trust-item,
  html.motion-enabled .sponsor-level,
  html.motion-enabled .donation-way-card,
  html.motion-enabled .gallery-item,
  html.motion-enabled .pp-work-card,
  html.motion-enabled .pp-roadmap-item,
  html.motion-enabled .pp-purpose-item,
  html.motion-enabled .due-diligence-fact,
  html.motion-enabled .fri-card,
  html.motion-enabled .fri-stat,
  html.motion-enabled .fri-step,
  html.motion-enabled .fri-way,
  html.motion-enabled .wide-panel,
  html.motion-enabled .thank-card,
  html.motion-enabled .contact-direct-panel,
  html.motion-enabled .contact-form-panel,
  html.motion-enabled .document-preview {
    transition:
      transform var(--motion-duration-sm) var(--motion-ease-standard),
      box-shadow var(--motion-duration-sm) var(--motion-ease-standard),
      border-color var(--motion-duration-xs) ease,
      background-color var(--motion-duration-xs) ease,
      color var(--motion-duration-xs) ease;
  }

  html.motion-enabled .button:hover,
  html.motion-enabled .pp-button:hover,
  html.motion-enabled .header-cta:hover,
  html.motion-enabled .pp-map-enlarge-control:hover {
    transform: translateY(-2px);
  }

  html.motion-enabled .text-link:hover,
  html.motion-enabled .nav-links a:hover,
  html.motion-enabled .footer-social-icons a:hover {
    transform: translateY(-1px);
  }

  html.motion-enabled .content-card:hover,
  html.motion-enabled .prestige-card:hover,
  html.motion-enabled .home-program-card:hover,
  html.motion-enabled .principle-card:hover,
  html.motion-enabled .participation-card:hover,
  html.motion-enabled .institutional-trust-item:hover,
  html.motion-enabled .sponsor-level:hover,
  html.motion-enabled .donation-way-card:hover,
  html.motion-enabled .gallery-item:hover,
  html.motion-enabled .pp-work-card:hover,
  html.motion-enabled .pp-roadmap-item:hover,
  html.motion-enabled .pp-purpose-item:hover,
  html.motion-enabled .due-diligence-fact:hover,
  html.motion-enabled .fri-card:hover,
  html.motion-enabled .fri-stat:hover,
  html.motion-enabled .fri-step:hover,
  html.motion-enabled .fri-way:hover,
  html.motion-enabled .wide-panel:hover,
  html.motion-enabled .thank-card:hover,
  html.motion-enabled .contact-direct-panel:hover,
  html.motion-enabled .contact-form-panel:hover,
  html.motion-enabled .document-preview:hover {
    transform: translateY(-5px);
    box-shadow: var(--motion-shadow-hover);
  }

  html.motion-enabled .content-card:hover img,
  html.motion-enabled .prestige-card:hover img,
  html.motion-enabled .gallery-item:hover img,
  html.motion-enabled .fri-product:hover img,
  html.motion-enabled .pp-hero-art:hover img,
  html.motion-enabled .campaign-figure:hover img,
  html.motion-enabled .fri-budget-callout:hover img {
    transform: scale(1.02);
  }
}

/* Hero staging. */
html.motion-enabled .prestige-hero,
html.motion-enabled .fri-hero,
html.motion-enabled .pp-hero {
  overflow: clip;
}
html.motion-enabled .institutional-identity-card,
html.motion-enabled .fri-product,
html.motion-enabled .pp-hero-art,
html.motion-enabled .campaign-figure,
html.motion-enabled .media-video-wrap,
html.motion-enabled .media-record-main,
html.motion-enabled .media-record-aside,
html.motion-enabled .wide-panel {
  transform-origin: center center;
}

/* Respect accessibility and keep all content instantly readable when motion is reduced. */
@media (prefers-reduced-motion: reduce) {
  .motion-reveal,
  .motion-reveal.is-visible,
  html.motion-enabled .gold-ornament.motion-reveal,
  html.motion-enabled .gold-ornament.motion-reveal.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
  }

  html.motion-enabled .content-card img,
  html.motion-enabled .prestige-card img,
  html.motion-enabled .fri-product img,
  html.motion-enabled .pp-hero-art img,
  html.motion-enabled .campaign-figure img,
  html.motion-enabled .institutional-identity-card img,
  html.motion-enabled .gallery-item img,
  html.motion-enabled .button,
  html.motion-enabled .pp-button,
  html.motion-enabled .header-cta,
  html.motion-enabled .text-link,
  html.motion-enabled .nav-links a,
  html.motion-enabled .footer-social-icons a,
  html.motion-enabled .content-card,
  html.motion-enabled .prestige-card,
  html.motion-enabled .home-program-card,
  html.motion-enabled .principle-card,
  html.motion-enabled .participation-card,
  html.motion-enabled .institutional-trust-item,
  html.motion-enabled .sponsor-level,
  html.motion-enabled .donation-way-card,
  html.motion-enabled .gallery-item,
  html.motion-enabled .pp-work-card,
  html.motion-enabled .pp-roadmap-item,
  html.motion-enabled .pp-purpose-item,
  html.motion-enabled .due-diligence-fact,
  html.motion-enabled .fri-card,
  html.motion-enabled .fri-stat,
  html.motion-enabled .fri-step,
  html.motion-enabled .fri-way,
  html.motion-enabled .wide-panel,
  html.motion-enabled .thank-card,
  html.motion-enabled .contact-direct-panel,
  html.motion-enabled .contact-form-panel,
  html.motion-enabled .document-preview {
    transition: none !important;
  }
}


/* === executive-heritage.css === */
/* The Poston Foundation · Executive Heritage visual system · 2026-10-14
   Corporate/institutional refinement built around the approved Foundation identity.
   Core distribution: porcelain/white majority, navy/blue secondary, gold as a restrained accent. */

:root {
  --navy: #071b31;
  --heritage: #071b31;
  --executive-blue: #17496a;
  --gold: #c69a45;
  --champagne: #dcc58d;
  --gold-ink: #7a5a1e;
  --porcelain: #f7f8fa;
  --stone: #e8edf2;
  --cream: #e8edf2;
  --paper: #ffffff;
  --white: #ffffff;
  --ink: #202a33;
  --muted: #5b6772;
  --border: #d8dee4;
  --line: var(--border);
  --shadow: 0 10px 30px rgb(7 27 49 / 6%);
  --shadow-raised: 0 18px 42px rgb(7 27 49 / 8%);
  --foundation-canvas-paper: rgb(247 248 250 / 92%);
  --foundation-canvas-cream: rgb(232 237 242 / 88%);
  --foundation-canvas-card: rgb(255 255 255 / 97%);
  --foundation-canvas-header: rgb(255 255 255 / 98%);
  --foundation-canvas-footer: #071b31;
}

html { background: var(--porcelain); }
body {
  color: var(--ink);
  background-color: var(--porcelain);
  background-image:
    linear-gradient(rgb(247 248 250 / 79%), rgb(247 248 250 / 79%)),
    url('/assets/brand/the-poston-foundation-page-background.jpg');
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  background-attachment: fixed;
}
body::before { display: none !important; }

/* Typography: navy headings, graphite body, blue links, gold as ornament rather than body text. */
h1, h2, h3, h4 { color: var(--navy); }
a { color: var(--executive-blue); }
a:hover { color: var(--navy); }
:focus-visible { outline-color: var(--executive-blue); }
.section-kicker, .hero-overline, .fri-kicker, .pp-kicker, .kicker,
.profile-eyebrow, .news-meta, .home-trust-eyebrow {
  color: var(--executive-blue);
}
.hero-tagline, .profile-roles, .media-byline, .accountability-number,
.campaign-subnav-cta, .volunteer-process li > span { color: var(--executive-blue); }
.gold-ornament { background: var(--gold); }

/* Header: white, quiet and corporate. */
.site-header {
  background: var(--foundation-canvas-header);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 2px 18px rgb(7 27 49 / 5%);
  -webkit-backdrop-filter: blur(14px) saturate(108%);
  backdrop-filter: blur(14px) saturate(108%);
}
.primary-nav a { color: var(--navy); }
.primary-nav a:hover { color: var(--executive-blue); }
.primary-nav a[aria-current='page'] { color: var(--executive-blue); }
.header-cta {
  background: var(--navy);
  border-color: var(--navy);
  color: white;
  box-shadow: 0 8px 22px rgb(7 27 49 / 13%);
}
.header-cta:hover { background: var(--executive-blue); border-color: var(--executive-blue); color: white; }
.nav-toggle { background: white; border-color: var(--border); color: var(--navy); }

/* Page architecture: cool white/stone rhythm replaces pervasive parchment. */
.prestige-hero, .prestige-section, .mission-strip, .giving-hub,
.campaign-subnav, .pp-subnav, .fri-hero, .confirmation-page {
  background-color: rgb(247 248 250 / 92%);
}
.prestige-section.darker, .home-program-showcase, .financial-human-section,
.history-timeline-section, .history-context-section,
.campaign-subnav, .pp-subnav {
  background-color: rgb(232 237 242 / 90%);
}
.prestige-hero { border-bottom-color: var(--border); }
.prestige-section + .prestige-section { border-color: var(--border); }

/* Corporate card language. */
.wide-panel, .commitment-panel, .prestige-card, .stat-item,
.governance-principles article, .director-profile, .accountability-grid article,
.home-trust-card, .human-moments-grid article, .simple-process-grid article,
.sponsor-level, .volunteer-process li, .history-context-emphasis,
.home-hero-brand-card, .home-program-card, .giving-card,
.fri-product, .fri-give-card, .fri-stat, .fri-card, .fri-way, .fri-step,
.fri-quote, .fri-budget-callout, .pp-wordmark, .pp-map-figure,
.pp-funding-framework, .pp-work-card, .pp-donation-card, .pp-research-card,
.pp-guardrails, .pp-art-grid figure, .content-card, .content-faq details,
details.document-preview, .content-section details, .inquiry-form, .volunteer-form,
.thank-card, .thank-you-card, .confirmation-page .card, .gallery-item,
.institutional-identity-card, .institutional-trust-item,
.participation-card, .principle-card, .donation-panel, .donation-way-card,
.donation-stewardship-card, .donation-credential, .donation-faq details, dialog {
  background: rgb(255 255 255 / 97%);
  border-color: var(--border);
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.prestige-card, .stat-item, .governance-principles article, .director-profile,
.accountability-grid article, .home-trust-card, .human-moments-grid article,
.simple-process-grid article, .sponsor-level, .volunteer-process li,
.history-context-emphasis { background: rgb(255 255 255 / 96%); }

/* Light secondary surfaces. */
.governance-facts, .transparency-facts, .foundation-human-facts,
.content-note, .form-consent, .volunteer-program-visual, .initiative-visual,
.fri-visual-callout, .donation-campaign-note {
  background: rgb(247 248 250 / 96%);
  border-color: var(--border);
}
.content-note, .historical-note { color: var(--ink); }
.content-table tbody tr:nth-child(even), .table-scroll tbody tr:nth-child(even) { background: var(--porcelain); }
.content-table caption, .table-scroll caption { background: var(--stone); }
.document-preview iframe { background: var(--stone); }
.home-program-card figure, .giving-card-image, .donation-tab-image { background: var(--stone); }

/* Buttons: one clear primary, one quiet secondary, one selective gold action. */
.button, .pp-button, .action, .thank-you-button {
  background: var(--navy);
  border-color: var(--navy);
  color: white;
  border-radius: 5px;
  box-shadow: 0 6px 16px rgb(7 27 49 / 9%);
}
.button:hover, .pp-button:hover, .action:hover, .thank-you-button:hover {
  background: var(--executive-blue);
  border-color: var(--executive-blue);
  color: white;
}
.outline-button, .pp-button-outline, .action.secondary {
  background: white;
  color: var(--navy);
  border-color: #aeb8c2;
  box-shadow: none;
}
.outline-button:hover, .pp-button-outline:hover, .action.secondary:hover {
  background: var(--porcelain);
  color: var(--navy);
  border-color: var(--executive-blue);
}
.gold-button, .button.gold, .action.gold {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}
.gold-button:hover, .button.gold:hover, .action.gold:hover {
  background: var(--champagne);
  border-color: var(--champagne);
  color: var(--navy);
}

/* Dark institutional bands. */
.prestige-quote, .final-cta, .fri-final, .pp-final, .pp-purpose,
.pp-support, .body-emphasis {
  background: var(--navy);
  color: #f2f5f7;
}
.prestige-quote h2, .prestige-quote h3, .final-cta h2, .final-cta h3,
.fri-final h2, .fri-final h3, .pp-final h2, .pp-final h3,
.pp-purpose h2, .pp-purpose h3, .pp-support h2, .pp-support h3,
.body-emphasis h2, .body-emphasis h3 { color: white; }
.final-cta .section-kicker, .fri-final .fri-kicker, .pp-final .pp-kicker,
.body-emphasis .section-kicker, .pp-support .pp-kicker,
.pp-purpose-item svg, .pp-motto { color: var(--champagne); }
.body-emphasis a, .pp-support-copy a, .pp-research-footer a { color: #f0d79f; }
.final-cta .outline-button, .fri-final .outline-button, .pp-final .pp-button-outline {
  color: white;
  border-color: rgb(255 255 255 / 55%);
  background: transparent;
}
.final-cta .outline-button:hover, .fri-final .outline-button:hover, .pp-final .pp-button-outline:hover {
  background: white;
  color: var(--navy);
  border-color: white;
}

/* Homepage status/trust components. */
.program-status-line {
  border-color: var(--border);
  background: white;
  color: var(--executive-blue);
}
.program-status-line::before { background: var(--gold); }
.institutional-trust-item strong { color: var(--navy); }

/* Donate hub: clean white checkout environment with sparse gold emphasis. */
.donate-page .giving-hub.donation-hub-v2 { background: transparent; }
.donation-hero {
  background: rgb(247 248 250 / 95%);
  border-bottom-color: var(--border);
}
.donation-checkout-shell {
  border-color: rgb(198 154 69 / 52%);
  background: rgb(255 255 255 / 97%);
  box-shadow: 0 24px 60px rgb(7 27 49 / 10%);
}
.donation-tab {
  background: white;
  border-color: var(--border);
  color: var(--ink);
}
.donation-tab:hover { border-color: var(--champagne); }
.donation-tab[aria-selected='true'] {
  border-color: var(--gold);
  background: white;
  box-shadow: 0 0 0 2px rgb(198 154 69 / 13%), 0 12px 28px rgb(7 27 49 / 9%);
}
.donation-tab-eyebrow { color: var(--executive-blue); }
.donation-form-trust, .donation-hero-trust, .donation-trust-copy { color: var(--muted); }
.donation-form-trust li::before { color: var(--gold-ink); }
.donation-trust-strip-inner {
  border-color: var(--border);
  background: rgb(247 248 250 / 92%);
}
.donation-way-card, .donation-stewardship-card, .donation-faq details { background: white; }

/* Carolina Cares: contemporary white/blue institutional expression. */
.fri-hero, .fri-donation-priority { background: rgb(247 248 250 / 93%); }
.fri-donation-priority {
  background-image: linear-gradient(180deg, rgb(247 248 250 / 97%), rgb(255 255 255 / 95%));
  border-bottom-color: var(--border);
}
.fri-stat, .fri-card, .fri-way, .fri-step, .fri-quote { background: white; }
.fri-product.fri-product--campaign, .giving-card-image.giving-card-image--campaign { background: var(--stone); }
.fri-pill, .volunteer-availability span, .inquiry-trust-row span { background: white; }

/* Poston Preserve keeps a controlled heritage note without making the whole site parchment-toned. */
.poston-preserve-page { background: transparent; }
.poston-preserve-page .pp-section { background: rgb(247 248 250 / 91%); }
.poston-preserve-page .pp-paper { background: rgb(255 255 255 / 95%); }
.poston-preserve-page .pp-hero-art,
.poston-preserve-page .pp-wordmark,
.poston-preserve-page .pp-research-image,
.poston-preserve-page .pp-donation-campaign-art img {
  background: #f7f2e9;
}
.poston-preserve-page .pp-hero-art { border-color: var(--champagne); }
.poston-preserve-page .pp-purpose,
.poston-preserve-page .pp-support { background: var(--heritage); }

/* Forms and data surfaces. */
input, select, textarea { border-color: #9aa7b3; background: white; color: var(--ink); }
input::placeholder, textarea::placeholder { color: #66737e; }
.form-consent { background: var(--porcelain); }
.table-scroll { background: white; }

/* Footer: definitive institutional bookend. */
.site-footer {
  background: var(--navy) !important;
  border-top: 3px solid var(--gold);
  color: #f2f5f7;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.footer-mark {
  max-width: 265px;
  padding: 12px 14px;
  border-radius: 6px;
  background: white;
  box-shadow: 0 8px 22px rgb(0 0 0 / 14%);
}
.footer-status, .footer-ein, .footer-address, .footer-disclaimer { color: #c7d0d8; }
.footer-group h2, .footer-social-label { color: white; }
.site-footer a { color: #e6edf2; }
.site-footer a:hover { color: var(--champagne); }
.footer-social-bar { border-top-color: rgb(255 255 255 / 18%); }
.footer-social-icons a {
  background: rgb(255 255 255 / 6%);
  border: 1px solid rgb(220 197 141 / 45%);
}
.footer-social-icons a:hover { background: rgb(255 255 255 / 12%); }
.footer-trust-badge { background: white; border-radius: 6px; padding: 5px; }

/* Responsive restraint: preserve the brand canvas, but let content remain crisp on small screens. */
@media (max-width: 760px) {
  body {
    background-image:
      linear-gradient(rgb(247 248 250 / 86%), rgb(247 248 250 / 86%)),
      url('/assets/brand/the-poston-foundation-page-background-1000.jpg');
    background-position: 61% top;
  }
  :root {
    --foundation-canvas-paper: rgb(247 248 250 / 96%);
    --foundation-canvas-cream: rgb(232 237 242 / 94%);
  }
  .site-header { background: rgb(255 255 255 / 98%); }
  .footer-mark { max-width: 235px; }
}

@media print {
  body { background: white !important; }
  .site-footer { background: white !important; color: black !important; border-top: 1px solid #ccc; }
  .site-footer a, .footer-status, .footer-ein, .footer-address, .footer-disclaimer { color: black !important; }
  .footer-mark { box-shadow: none; border: 1px solid #ccc; }
}

/* Gold is reserved for donation/high-emphasis actions rather than every primary button. */
.gold-button {
  background: var(--navy);
  border-color: var(--navy);
  color: white;
}
.gold-button:hover {
  background: var(--executive-blue);
  border-color: var(--executive-blue);
  color: white;
}
a.gold-button[data-track-event='donate_cta_click'],
.final-cta .gold-button,
.fri-final .gold-button,
.pp-final .gold-button {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}
a.gold-button[data-track-event='donate_cta_click']:hover,
.final-cta .gold-button:hover,
.fri-final .gold-button:hover,
.pp-final .gold-button:hover {
  background: var(--champagne);
  border-color: var(--champagne);
  color: var(--navy);
}


/* === premium-motion.css === */
/* =========================================================
   Premium Motion Layer — Second Pass — 2026-10-14
   Page-specific motion for The Poston Foundation.
   Native CSS/JS only: no external animation library required.
   ========================================================= */

:root {
  --premium-motion-ease: cubic-bezier(.22, 1, .36, 1);
  --premium-motion-navy: #071B31;
  --premium-motion-gold: #C69A45;
  --premium-motion-gold-soft: #DCC58D;
}

/* Discreet page-progress indicator. */
.site-scroll-progress {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 10050;
  width: 100%;
  height: 3px;
  pointer-events: none;
  background: transparent;
  transform-origin: left center;
}
.site-scroll-progress > span {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--premium-motion-gold), var(--premium-motion-gold-soft));
  transform: scaleX(var(--page-progress, 0));
  transform-origin: left center;
  box-shadow: 0 1px 7px rgba(198,154,69,.28);
  will-change: transform;
}

/* ---------------------------------------------------------
   Homepage: premium staged hero + program card depth
   --------------------------------------------------------- */
.home-page.motion-premium-ready .home-hero {
  position: relative;
  isolation: isolate;
}
.home-page.motion-premium-ready .home-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: clamp(260px, 34vw, 560px);
  aspect-ratio: 1;
  right: clamp(-180px, -8vw, -40px);
  top: clamp(18px, 8vw, 110px);
  border-radius: 50%;
  background: radial-gradient(circle at center,
    rgba(198,154,69,.10) 0,
    rgba(23,73,106,.055) 42%,
    rgba(7,27,49,0) 72%);
  opacity: 0;
  transform: scale(.82);
  animation: premiumHeroAura 1100ms var(--premium-motion-ease) 320ms forwards;
  pointer-events: none;
}
@keyframes premiumHeroAura {
  to { opacity: 1; transform: scale(1); }
}
.home-page.motion-premium-ready .home-hero h1.motion-reveal {
  transform: translate3d(0, 34px, 0) scale(.985);
}
.home-page.motion-premium-ready .home-hero .institutional-identity-card.motion-reveal {
  transform: translate3d(34px, 20px, 0) scale(.965);
}
.home-page.motion-premium-ready .home-hero .institutional-identity-card.motion-reveal.is-visible,
.home-page.motion-premium-ready .home-hero h1.motion-reveal.is-visible {
  transform: none;
}

.home-program-card {
  position: relative;
}
.home-program-card::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--premium-motion-gold), var(--premium-motion-gold-soft));
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 780ms var(--premium-motion-ease);
}
.home-program-card.motion-reveal.is-visible::after { transform: scaleX(1); }
.home-program-card figure { overflow: hidden; }
.home-program-card figure img {
  --premium-parallax-y: 0px;
  --premium-image-scale: 1.035;
  transform: translate3d(0, var(--premium-parallax-y), 0) scale(var(--premium-image-scale));
  transition: transform 160ms linear;
  will-change: transform;
}
@media (hover:hover) and (pointer:fine) {
  .home-program-card:hover figure img { --premium-image-scale: 1.055; }
}

/* ---------------------------------------------------------
   Carolina Cares: scroll-story operating process
   --------------------------------------------------------- */
.motion-process-story {
  margin-block: 30px 42px;
}
.motion-process-aside {
  display: none;
}
.motion-process-aside-inner {
  border: 1px solid rgba(7,27,49,.11);
  border-radius: 10px;
  background: linear-gradient(165deg, #fff 0%, #F7F8FA 100%);
  box-shadow: 0 18px 44px rgba(7,27,49,.075);
  padding: 24px;
}
.motion-process-emblem {
  display: block;
  width: 78px;
  height: 78px;
  object-fit: contain;
  margin-bottom: 20px;
}
.motion-process-kicker {
  margin: 0 0 8px;
  color: var(--premium-motion-gold);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.motion-process-number {
  display: block;
  color: var(--premium-motion-navy);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(2rem, 3vw, 3.15rem);
  line-height: 1;
  margin-bottom: 10px;
}
.motion-process-title {
  display: block;
  min-height: 3em;
  color: var(--premium-motion-navy);
  font-size: 1.12rem;
  line-height: 1.35;
}
.motion-process-rail {
  height: 4px;
  margin-top: 22px;
  overflow: hidden;
  border-radius: 999px;
  background: #E8EDF2;
}
.motion-process-rail > span {
  display: block;
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, var(--premium-motion-gold), var(--premium-motion-gold-soft));
  transform: scaleX(var(--process-progress, .1667));
  transform-origin: left center;
  transition: transform 520ms var(--premium-motion-ease);
}

.fri-steps[data-scroll-process="carolina-cares"] .fri-step {
  position: relative;
  overflow: hidden;
}
.fri-steps[data-scroll-process="carolina-cares"] .fri-step::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--premium-motion-gold);
  transform: scaleY(0);
  transform-origin: top center;
  transition: transform 460ms var(--premium-motion-ease);
}
.fri-steps[data-scroll-process="carolina-cares"] .fri-step.is-process-active {
  border-color: rgba(198,154,69,.62);
  box-shadow: 0 18px 38px rgba(7,27,49,.085);
}
.fri-steps[data-scroll-process="carolina-cares"] .fri-step.is-process-active::before {
  transform: scaleY(1);
}

/* Image reveals used only on major story imagery. */
.motion-image-reveal {
  overflow: hidden;
  clip-path: inset(0 0 12% 0 round 8px);
  transition: clip-path 900ms var(--premium-motion-ease),
              opacity 700ms var(--premium-motion-ease),
              transform 780ms var(--premium-motion-ease);
}
.motion-image-reveal.is-visible {
  clip-path: inset(0 0 0 0 round 8px);
}
.motion-image-reveal img {
  --premium-parallax-y: 0px;
  transform: translate3d(0, var(--premium-parallax-y), 0) scale(1.04);
  transition: transform 160ms linear;
  will-change: transform;
}

/* ---------------------------------------------------------
   Poston Preserve: true sticky scrollytelling section
   --------------------------------------------------------- */
.motion-poston-story .motion-story-copy {
  min-width: 0;
}
.motion-story-intro {
  margin-bottom: 18px;
}
.motion-story-beat {
  position: relative;
  padding: 18px 18px 18px 22px;
  margin: 0 0 12px;
  border-left: 2px solid #D8DEE4;
  border-radius: 0 8px 8px 0;
  transition: border-color 420ms var(--premium-motion-ease),
              background-color 420ms var(--premium-motion-ease),
              transform 420ms var(--premium-motion-ease),
              opacity 420ms ease;
}
.motion-story-beat > :first-child { margin-top: 0; }
.motion-story-beat > :last-child { margin-bottom: 0; }
.motion-story-beat.is-story-active {
  border-left-color: var(--premium-motion-gold);
  background: rgba(255,255,255,.72);
  transform: translateX(4px);
}
.motion-story-visual {
  position: relative;
}
.motion-story-status {
  margin-top: 14px;
  padding: 16px 18px 15px;
  border-top: 1px solid #D8DEE4;
  color: var(--premium-motion-navy);
}
.motion-story-status-line {
  display: flex;
  align-items: baseline;
  gap: 11px;
}
.motion-story-status-index {
  color: var(--premium-motion-gold);
  font-weight: 800;
  letter-spacing: .08em;
}
.motion-story-status-title {
  font-size: .92rem;
  font-weight: 750;
}
.motion-story-rail {
  height: 3px;
  margin-top: 12px;
  border-radius: 999px;
  overflow: hidden;
  background: #E8EDF2;
}
.motion-story-rail > span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--premium-motion-gold);
  transform: scaleX(var(--story-progress, .25));
  transform-origin: left center;
  transition: transform 520ms var(--premium-motion-ease);
}

/* Poston map changes receive a short cross-fade. */
.pp-map-figure img {
  transition: opacity 180ms ease, transform 260ms var(--premium-motion-ease), filter 260ms ease;
}
.pp-map-gallery.is-map-changing .pp-map-figure img {
  opacity: .28;
  transform: scale(.988);
  filter: saturate(.86);
}
.pp-map-gallery.is-map-arriving .pp-map-figure img {
  animation: postonMapArrive 360ms var(--premium-motion-ease) both;
}
@keyframes postonMapArrive {
  from { opacity: .35; transform: scale(.99); }
  to { opacity: 1; transform: scale(1); }
}

/* Subtle hero media parallax; image remains visually stable on small screens. */
.fri-product > img,
.fri-product > picture > img,
.pp-hero-art > img,
.pp-hero-art > picture > img,
.institutional-identity-card > img,
.institutional-identity-card > picture > img {
  --premium-parallax-y: 0px;
}
@media (min-width: 981px) {
  .motion-process-story {
    display: grid;
    grid-template-columns: minmax(220px, .68fr) minmax(0, 1.72fr);
    gap: clamp(28px, 4vw, 54px);
    align-items: start;
  }
  .motion-process-aside {
    display: block;
    position: sticky;
    top: calc(var(--header-height, 88px) + 30px);
  }
  .motion-process-story .fri-steps {
    grid-template-columns: 1fr !important;
    margin: 0;
  }
  .motion-process-story .fri-step {
    min-height: 190px;
    padding: 30px 30px 30px 34px;
  }
  .motion-process-story .fri-step:not(.is-process-active) {
    opacity: .78;
  }

  .motion-poston-story {
    align-items: start !important;
  }
  .motion-poston-story .motion-story-visual {
    position: sticky;
    top: calc(var(--pp-header-height, 80px) + var(--pp-subnav-height, 52px) + 28px);
  }
  .motion-story-beat:not(.is-story-active) { opacity: .76; }
}

@media (min-width: 1200px) {
  .home-page.motion-premium-ready .home-hero .institutional-identity-card {
    box-shadow: 0 28px 70px rgba(7,27,49,.11);
  }
}

@media (max-width: 980px) {
  .motion-story-beat { padding-inline: 18px; }
  .motion-story-status { display: none; }
  .motion-poston-story .motion-story-visual { position: static; }
  .motion-image-reveal img,
  .home-program-card figure img { transform: none !important; }
}

@media (max-width: 700px) {
  .site-scroll-progress { height: 2px; }
  .motion-story-beat { margin-bottom: 8px; padding: 14px 0; border-left: 0; border-bottom: 1px solid #D8DEE4; border-radius: 0; }
  .motion-story-beat.is-story-active { transform: none; background: transparent; border-bottom-color: var(--premium-motion-gold-soft); }
}

@media (prefers-reduced-motion: reduce) {
  .site-scroll-progress { display: none !important; }
  .home-page.motion-premium-ready .home-hero::after { animation: none !important; opacity: .65; transform: none; }
  .home-program-card::after { transition: none !important; transform: scaleX(1); }
  .home-program-card figure img,
  .motion-image-reveal,
  .motion-image-reveal img,
  .motion-process-rail > span,
  .motion-story-rail > span,
  .motion-story-beat,
  .fri-step::before,
  .pp-map-figure img {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    clip-path: none !important;
  }
}

/* Apply homepage hero depth variable to the identity mark without affecting layout. */
.institutional-identity-card > img,
.institutional-identity-card > picture > img {
  transform: translate3d(0, var(--premium-parallax-y, 0px), 0);
  transition: transform 160ms linear;
  will-change: transform;
}
@media (max-width: 980px), (prefers-reduced-motion: reduce) {
  .institutional-identity-card > img,
.institutional-identity-card > picture > img { transform: none !important; }
}

/* News system motion integration */
@media (hover:hover) and (pointer:fine){.news-card,.news-topic{will-change:transform}}


/* === news-system.css === */
/* The Poston Foundation — News / Updates system — 2026-10-14 */
.news-hero .prestige-hero-content{max-width:980px}
.news-hero .hero-copy{max-width:760px}
.news-feed-note{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin-top:20px;color:var(--muted);font-size:.9rem}
.news-feed-note a{font-weight:700}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;max-width:var(--max);margin-inline:auto}
.news-grid.news-grid-featured{grid-template-columns:repeat(2,minmax(0,1fr))}
.news-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:#fff;box-shadow:0 10px 28px rgba(7,27,49,.055)}
.news-card-media{display:block;overflow:hidden;background:var(--stone,#E8EDF2);aspect-ratio:16/9}
.news-card-media img{display:block;width:100%;height:100%;object-fit:cover}
.news-card-body{display:flex;flex:1;flex-direction:column;padding:22px}
.news-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:0 0 12px;color:var(--muted);font-size:.78rem;font-weight:650;letter-spacing:.02em}
.news-category{display:inline-flex;align-items:center;min-height:27px;padding:4px 9px;border:1px solid rgba(198,154,69,.55);border-radius:999px;background:rgba(198,154,69,.08);color:var(--navy);font-size:.7rem;font-weight:800;letter-spacing:.065em;text-transform:uppercase}
.news-card h3{margin:0 0 10px;font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.2}
.news-card h3 a{color:var(--navy);text-decoration:none}
.news-card p{margin:0 0 18px;color:var(--muted);line-height:1.65}
.news-card .text-link{margin-top:auto}
.news-topics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;max-width:var(--max);margin-inline:auto}
.news-topic{display:flex;min-height:70px;align-items:center;justify-content:center;padding:14px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--navy);font-size:.78rem;font-weight:800;text-align:center;text-decoration:none;text-transform:uppercase;letter-spacing:.055em}
.news-public-record{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:30px;align-items:center;max-width:var(--max);margin-inline:auto;padding:28px;border:1px solid var(--border);border-radius:10px;background:#fff}
.news-public-record img{width:100%;height:auto;border-radius:7px}
.news-public-record h2{margin-top:0}

/* Article pages */
.news-article-hero{padding-bottom:36px}
.news-article-hero .prestige-hero-content{max-width:1000px}
.news-article-hero h1{max-width:900px}
.article-deck{max-width:800px;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.7;color:var(--muted)}
.article-meta{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin-top:20px;color:var(--muted);font-size:.86rem}
.article-meta strong{color:var(--navy)}
.article-shell{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:clamp(30px,5vw,64px);max-width:1180px;margin:0 auto;padding:clamp(40px,6vw,80px) var(--gutter)}
.article-main{min-width:0}
.article-hero-media{margin:0 0 36px;overflow:hidden;border-radius:10px;background:#fff;box-shadow:0 18px 44px rgba(7,27,49,.09)}
.article-hero-media img{display:block;width:100%;height:auto}
.article-prose{max-width:780px}
.article-prose>p,.article-prose>ul,.article-prose>ol{font-size:1.03rem;line-height:1.82;color:var(--body,#202A33)}
.article-prose>p:first-of-type{font-size:1.12rem;line-height:1.8}
.article-prose h2{margin:42px 0 14px;font-size:clamp(1.55rem,3vw,2.15rem)}
.article-prose h3{margin:28px 0 10px;font-size:1.22rem}
.article-prose ul,.article-prose ol{padding-left:1.25rem}
.article-prose li+li{margin-top:8px}
.article-prose .article-callout{margin:30px 0;padding:22px 24px;border-left:4px solid var(--gold);background:var(--porcelain,#F7F8FA);border-radius:0 8px 8px 0}
.article-prose .article-callout p{margin:0;color:var(--navy);font-weight:650}
.article-sidebar{position:sticky;top:calc(var(--header-height,88px) + 24px);align-self:start}
.article-sidebar-card{padding:22px;border:1px solid var(--border);border-radius:9px;background:#fff}
.article-sidebar-card+.article-sidebar-card{margin-top:16px}
.article-sidebar-card h2,.article-sidebar-card h3{margin:0 0 12px;font-size:1rem}
.article-sidebar-card p{margin:0 0 12px;color:var(--muted);font-size:.88rem;line-height:1.6}
.article-sidebar-card a{font-size:.88rem;font-weight:700}
.article-share-links{display:flex;flex-wrap:wrap;gap:8px}
.article-share-links a{display:inline-flex;align-items:center;min-height:38px;padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--navy);text-decoration:none}
.article-related{padding:clamp(42px,6vw,72px) var(--gutter);background:var(--porcelain,#F7F8FA)}
.article-related .section-heading{max-width:var(--max);margin-inline:auto}
.article-related .news-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.breadcrumbs{max-width:1180px;margin:0 auto;padding:16px var(--gutter) 0;color:var(--muted);font-size:.8rem}
.breadcrumbs a{color:var(--executive-blue,#17496A)}
.breadcrumbs span[aria-current="page"]{color:var(--muted)}

/* Embedded update modules */
.latest-updates-section .news-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.program-updates{padding:clamp(38px,5vw,64px) var(--gutter);background:var(--porcelain,#F7F8FA)}
.program-updates-inner{max-width:var(--max);margin-inline:auto}
.program-updates .news-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.pp-section.program-updates,.fri-section.program-updates{max-width:none;margin:0}

@media (hover:hover) and (pointer:fine){
  .news-card,.news-topic{transition:transform .38s cubic-bezier(.22,1,.36,1),box-shadow .38s cubic-bezier(.22,1,.36,1),border-color .25s ease}
  .news-card-media img{transition:transform .8s cubic-bezier(.22,1,.36,1)}
  .news-card:hover{transform:translateY(-5px);box-shadow:0 20px 42px rgba(7,27,49,.1);border-color:rgba(198,154,69,.55)}
  .news-card:hover .news-card-media img{transform:scale(1.025)}
  .news-topic:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 12px 26px rgba(7,27,49,.07)}
}
@media(max-width:980px){
  .news-grid,.latest-updates-section .news-grid,.program-updates .news-grid,.article-related .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .news-topics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .article-shell{grid-template-columns:1fr}
  .article-sidebar{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .article-sidebar-card+.article-sidebar-card{margin-top:0}
}
@media(max-width:700px){
  .news-grid,.news-grid.news-grid-featured,.latest-updates-section .news-grid,.program-updates .news-grid,.article-related .news-grid{grid-template-columns:1fr}
  .news-topics{grid-template-columns:1fr 1fr}
  .news-public-record{grid-template-columns:1fr;padding:18px}
  .article-shell{padding-top:28px}
  .article-sidebar{grid-template-columns:1fr}
  .news-card-body{padding:18px}
  .article-hero-media{margin-bottom:26px}
}
@media(max-width:420px){.news-topics{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.news-card,.news-card-media img,.news-topic{transition:none!important}}



/* Production hardening + resource-center additions — 2026-10-14 */
:root{--focus-ring:#17496A}
:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
img{max-width:100%;height:auto}
picture{display:contents}
.media-kit-grid,.press-fact-grid,.resource-route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.media-kit-card,.press-fact-card,.resource-route-card{padding:24px;border:1px solid var(--border);border-radius:8px;background:var(--paper);box-shadow:0 8px 28px rgba(7,27,49,.05)}
.media-kit-card h3,.press-fact-card h3,.resource-route-card h3{margin-top:0}
.media-kit-card p,.press-fact-card p,.resource-route-card p{color:var(--muted)}
.press-fact-card strong{display:block;color:var(--navy);font-family:var(--serif);font-size:1.15rem;font-weight:600;margin-bottom:5px}
.media-kit-download{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:clamp(22px,4vw,36px);border:1px solid rgba(198,154,69,.55);border-radius:10px;background:linear-gradient(135deg,#fff,#f7f8fa);box-shadow:0 14px 38px rgba(7,27,49,.07)}
.media-kit-download > div{min-width:0}
.supporter-recognition[hidden]{display:none!important}
.supporter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch}
.supporter-card{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:150px;padding:20px;border:1px solid var(--border);border-radius:8px;background:#fff;text-align:center}
.supporter-card img{max-width:170px;max-height:72px;object-fit:contain;margin-bottom:12px}
.supporter-card strong{color:var(--navy)}
.supporter-card span{color:var(--muted);font-size:.82rem;margin-top:4px}
.entity-fact-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin:0;padding:0;list-style:none}
.entity-fact-list li{padding:14px 0;border-bottom:1px solid var(--border)}
@media(max-width:900px){.media-kit-grid,.press-fact-grid,.resource-route-grid{grid-template-columns:1fr 1fr}.supporter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.media-kit-grid,.press-fact-grid,.resource-route-grid,.supporter-grid,.entity-fact-list{grid-template-columns:1fr}.media-kit-download{align-items:flex-start;flex-direction:column}}
/* Picture wrappers inserted for modern image delivery must inherit common media sizing. */
.fri-product>picture,.pp-hero-art>picture,.institutional-identity-card>picture{display:block;width:100%;height:100%}
.fri-product>picture>img,.pp-hero-art>picture>img,.institutional-identity-card>picture>img{width:100%;height:100%;object-fit:cover}
.institutional-identity-card>picture>img{object-fit:contain}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto!important}}
