/* The Poston Foundation — final accessibility, responsive, and humanizing polish
   2026-09-18. Loaded last so it safely resolves legacy dark-skin conflicts. */

:root{
  --fp-navy:#0b2a45;
  --fp-deep:#071c2e;
  --fp-gold:#b8872b;
  --fp-gold-soft:#c9a45a;
  --fp-cream:#f7f2e9;
  --fp-paper:#fffdf9;
  --fp-ink:#18222d;
  --fp-muted:#58636c;
  --fp-border:#ded5c7;
}

/* ---------- Global readability / legacy-color cleanup ---------- */
body.prestige-site:not(.poston-preserve-page) .prestige-section,
body.prestige-site:not(.poston-preserve-page) .overlap-section,
body.prestige-site:not(.poston-preserve-page) .contact-location-section{
  color:var(--fp-ink);
}
body.prestige-site:not(.poston-preserve-page) .prestige-section p,
body.prestige-site:not(.poston-preserve-page) .prestige-section li,
body.prestige-site:not(.poston-preserve-page) .prestige-section dd,
body.prestige-site:not(.poston-preserve-page) .prestige-section address,
body.prestige-site:not(.poston-preserve-page) .prestige-section figcaption{
  color:var(--fp-muted);
}
body.prestige-site:not(.poston-preserve-page) .prestige-section h2,
body.prestige-site:not(.poston-preserve-page) .prestige-section h3,
body.prestige-site:not(.poston-preserve-page) .prestige-section h4,
body.prestige-site:not(.poston-preserve-page) .prestige-section strong,
body.prestige-site:not(.poston-preserve-page) .prestige-section dt{
  color:var(--fp-navy);
}

/* Dark legacy modules that survived the light-system transition. */
body.prestige-site:not(.poston-preserve-page) .foundation-human-facts,
body.prestige-site:not(.poston-preserve-page) .volunteer-intro,
body.prestige-site:not(.poston-preserve-page) .volunteer-process li,
body.prestige-site:not(.poston-preserve-page) .volunteer-guidance,
body.prestige-site:not(.poston-preserve-page) .volunteer-form-panel,
body.prestige-site:not(.poston-preserve-page) .contact-info-panel,
body.prestige-site:not(.poston-preserve-page) .message-panel,
body.prestige-site:not(.poston-preserve-page) .financial-human-panel,
body.prestige-site:not(.poston-preserve-page) .history-context-emphasis,
body.prestige-site:not(.poston-preserve-page) .history-now-grid figure,
body.prestige-site:not(.poston-preserve-page) .archive-feature,
body.prestige-site:not(.poston-preserve-page) .archive-photo-card{
  background:var(--fp-paper)!important;
  border-color:var(--fp-border)!important;
  color:var(--fp-ink)!important;
  box-shadow:0 14px 38px rgba(7,28,46,.07)!important;
}
body.prestige-site:not(.poston-preserve-page) .foundation-human-facts strong,
body.prestige-site:not(.poston-preserve-page) .volunteer-intro h2,
body.prestige-site:not(.poston-preserve-page) .volunteer-process h3,
body.prestige-site:not(.poston-preserve-page) .volunteer-guidance h2,
body.prestige-site:not(.poston-preserve-page) .volunteer-form-panel h2,
body.prestige-site:not(.poston-preserve-page) .archive-feature h3,
body.prestige-site:not(.poston-preserve-page) .archive-photo-card h3{
  color:var(--fp-navy)!important;
}
body.prestige-site:not(.poston-preserve-page) .volunteer-intro-copy>p:last-of-type,
body.prestige-site:not(.poston-preserve-page) .volunteer-guidance,
body.prestige-site:not(.poston-preserve-page) .volunteer-form-intro,
body.prestige-site:not(.poston-preserve-page) .volunteer-process p,
body.prestige-site:not(.poston-preserve-page) .archive-feature p,
body.prestige-site:not(.poston-preserve-page) .archive-photo-card p,
body.prestige-site:not(.poston-preserve-page) .history-context-emphasis,
body.prestige-site:not(.poston-preserve-page) .history-now-grid li{
  color:var(--fp-muted)!important;
}
body.prestige-site:not(.poston-preserve-page) .foundation-human-facts span,
body.prestige-site:not(.poston-preserve-page) .volunteer-process li>span,
body.prestige-site:not(.poston-preserve-page) .volunteer-availability span{
  color:#7a5a20!important;
}
body.prestige-site:not(.poston-preserve-page) .volunteer-availability span{
  background:#f7f2e9;
  border-color:#d8c8aa;
}
body.prestige-site:not(.poston-preserve-page) .history-timeline article::before{
  box-shadow:0 0 0 5px var(--fp-paper)!important;
}
body.prestige-site:not(.poston-preserve-page) .history-timeline h3{color:var(--fp-navy)!important}
body.prestige-site:not(.poston-preserve-page) .history-timeline p{color:var(--fp-muted)!important}

/* Volunteer form controls: high contrast on the light panel. */
.volunteer-page .form-field>span,
.volunteer-page .interest-options legend{color:#33414c!important}
.volunteer-page .form-field input,
.volunteer-page .form-field select,
.volunteer-page .form-field textarea{
  background:#fff!important;
  border-color:#cfc3b0!important;
  color:#18222d!important;
}
.volunteer-page .form-field input::placeholder,
.volunteer-page .form-field textarea::placeholder{color:#7c858c!important;opacity:1}
.volunteer-page .form-consent,
.volunteer-page .form-privacy{color:#58636c!important}
.volunteer-page .form-consent a,
.volunteer-page .form-privacy a,
.volunteer-page .volunteer-contact-fallback a{color:#76571d!important}

/* ---------- Image presentation ---------- */
/* Never crop composed graphics containing text, logos, or map labels. */
.home-page .home-program-card figure,
.initiatives-page .initiative-visual,
.media-page .gallery-item,
.donate-page .donate-program-visual,
.sponsor-page .sponsor-sheet-preview{
  background:#f7f2e9;
}
.home-page .home-program-card figure img,
.initiatives-page .initiative-visual img,
.media-page .gallery-item img,
.donate-page .donate-program-visual img,
.sponsor-page .sponsor-sheet-preview img{
  object-fit:contain!important;
  object-position:center!important;
}
/* Photographs should fill their frames naturally. */
.history-page .history-gallery-grid img,
.volunteer-page .volunteer-program-visual img,
.home-page .rebuild-photo img,
.home-page .archive-thumb img{
  object-fit:cover!important;
}
.volunteer-page .volunteer-program-visual{
  background:#eef0e8!important;
  border-color:var(--fp-border)!important;
}
.volunteer-page .volunteer-program-visual figcaption{
  background:#fffdf9;
  color:#58636c!important;
  padding:12px 16px;
  border-top:1px solid var(--fp-border);
}

/* Homepage archive now intentionally features one verified record. */
.home-page .home-archive-grid{grid-template-columns:1fr!important;max-width:980px!important}
.home-page .archive-feature{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr)!important;padding:20px!important}
.home-page .archive-title-link{color:inherit;text-decoration:none}
.home-page .archive-title-link:hover h3{text-decoration:underline;text-underline-offset:.12em}
.home-page .archive-secondary-link{display:inline-flex;margin-top:.75rem}
.home-page .current-program-visual img{object-fit:contain!important;background:#f7f2e9}

/* Media gallery: preserve the full design of campaign materials. */
.media-page .media-gallery{grid-auto-rows:auto!important;align-items:stretch}
.media-page .gallery-item{min-height:0!important;padding:10px!important;display:flex!important;flex-direction:column!important}
.media-page .gallery-item img{width:100%!important;height:auto!important;max-height:520px!important;flex:1 1 auto!important}
.media-page .gallery-item span{padding:12px 8px 6px;color:var(--fp-navy)!important;text-align:center}
.media-page .gallery-wide img{max-height:580px!important}

/* ---------- Homepage hierarchy / professionalism ---------- */
.home-page .home-hero-brand-card{background:#fffdf9!important;border-color:#d9cbb2!important}
.home-page .home-hero-brand-card img{object-fit:contain}
.home-page .home-trust-section,
.home-page .home-archive-section,
.home-page .rebuild-section{color:var(--fp-ink)!important}
.home-page .home-trust-card,
.home-page .foundation-human-facts>div{background:#fff!important;border-color:#ded5c7!important}
.home-page .foundation-human-facts{display:grid!important;background:#fffdf9!important}
.home-page .home-trust-card strong,
.home-page .home-trust-card h3{color:var(--fp-navy)!important}
.home-page .home-trust-card p{color:var(--fp-muted)!important}

/* ---------- Contact ---------- */
.contact-page .contact-line>div>span,
.contact-page .contact-trust span{color:#7a5a20!important}
.contact-page .contact-line a,
.contact-page .contact-line address{color:#33414c!important}
.contact-page .contact-map-frame{overflow:hidden;border:1px solid var(--fp-border);background:#fff}
.contact-page .contact-map-frame iframe{display:block;width:100%;max-width:100%;border:0}

/* ---------- Poston Preserve ---------- */
.poston-preserve-page .preserve-map-stage,
.poston-preserve-page .map-gallery-stage,
.poston-preserve-page .preserve-gallery-stage{background:#f7f2e9}
.poston-preserve-page .preserve-map-stage img,
.poston-preserve-page .map-gallery-stage img,
.poston-preserve-page .preserve-gallery-stage img{
  max-width:100%;height:auto;object-fit:contain!important;object-position:center!important;
}
.poston-preserve-page .preserve-hero-art img{object-fit:contain!important;object-position:center!important}

/* ---------- Global responsive tightening ---------- */
@media(max-width:1180px){
  body:not(.poston-preserve-page) .site-header,
  .fri-page .site-header{grid-template-columns:minmax(190px,1fr) auto!important;gap:14px!important}
  body:not(.poston-preserve-page) .site-header>.header-cta,
  .fri-page .site-header>.header-cta{display:none!important}
  .site-header .nav-toggle{display:grid!important;place-items:center!important}
  .primary-nav .mobile-nav-donate{display:flex!important}
  .volunteer-page .volunteer-form-layout{grid-template-columns:1fr!important}
  .volunteer-page .volunteer-guidance{position:static!important;top:auto!important}
  .home-page .archive-feature{grid-template-columns:1fr!important}
  .home-page .archive-feature>div{text-align:center}
  .home-page .archive-feature .text-link{justify-content:center}
}

@media(max-width:900px){
  .prestige-section{padding-left:22px!important;padding-right:22px!important}
  body.prestige-site:not(.poston-preserve-page) .prestige-hero{min-height:auto!important;padding-top:70px!important;padding-bottom:70px!important}
  .home-page .home-hero .prestige-hero-content{gap:30px!important}
  .home-page .home-hero h1{font-size:clamp(2.7rem,10vw,4.5rem)!important}
  .volunteer-page .volunteer-process{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .contact-page .contact-grid{gap:22px!important}
}

@media(max-width:720px){
  .prestige-section{padding-left:16px!important;padding-right:16px!important}
  .site-header{padding-left:14px!important;padding-right:14px!important}
  body:not(.poston-preserve-page) .site-header .brand,
  .fri-page .site-header .brand{width:min(225px,68vw)!important}
  .primary-nav{padding-left:16px!important;padding-right:16px!important}
  .home-page .home-hero h1{font-size:clamp(2.45rem,13vw,3.85rem)!important;letter-spacing:.01em!important}
  .home-page .home-hero .hero-word-foundation{letter-spacing:.11em!important}
  .home-page .home-program-card figure{aspect-ratio:auto!important;min-height:0!important}
  .home-page .home-program-card figure img{height:auto!important;max-height:none!important}
  .volunteer-page .volunteer-process{grid-template-columns:1fr!important}
  .volunteer-page .volunteer-intro-copy,
  .volunteer-page .volunteer-guidance,
  .volunteer-page .volunteer-form-panel{padding:28px 20px!important}
  .media-page .media-gallery{grid-template-columns:1fr!important}
  .media-page .gallery-wide{grid-column:auto!important}
  .media-page .gallery-item img{max-height:none!important}
  .contact-page .contact-map-frame iframe{height:360px!important}
  .poston-preserve-page .preserve-subnav,
  .poston-preserve-page .campaign-subnav-links{overflow-x:auto;white-space:nowrap;scrollbar-width:thin}
}

@media(max-width:520px){
  .prestige-section{padding-left:14px!important;padding-right:14px!important}
  .section-heading h2{font-size:clamp(1.9rem,9vw,2.65rem)!important}
  .section-heading>p:last-child{font-size:.98rem!important}
  .button,.header-cta{max-width:100%;white-space:normal;text-align:center;line-height:1.3}
  .cta-row{width:100%;gap:10px!important}
  .cta-row .button{width:100%!important}
  .home-page .home-hero{padding-left:14px!important;padding-right:14px!important}
  .home-page .home-hero h1{font-size:clamp(2.2rem,14vw,3.25rem)!important}
  .home-page .home-hero .hero-tagline{font-size:.74rem!important;letter-spacing:.1em!important}
  .home-page .home-hero .hero-copy{font-size:1rem!important}
  .home-page .home-hero-brand-card{width:100%!important;padding:12px!important}
  .home-page .archive-feature{padding:12px!important}
  .volunteer-page .volunteer-form-grid{grid-template-columns:1fr!important}
  .volunteer-page .form-field-wide{grid-column:auto!important}
  .foundation-human-facts{grid-template-columns:1fr!important}
  .contact-page .contact-map-frame iframe{height:320px!important}
  .poston-preserve-page .map-thumbnails,
  .poston-preserve-page .preserve-map-thumbs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  .poston-preserve-page .map-thumbnails img,
  .poston-preserve-page .preserve-map-thumbs img{width:100%!important;height:auto!important}
}

@media(max-width:380px){
  .site-header{min-height:74px!important}
  body:not(.poston-preserve-page) .site-header .brand,
  .fri-page .site-header .brand{width:min(190px,64vw)!important}
  .nav-toggle{width:42px!important;height:42px!important}
  .home-page .home-hero h1{font-size:2.05rem!important}
  .prestige-card,.contact-info-panel,.message-panel,.legal-panel{padding:22px 16px!important}
}

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