:root {
  --bg: #f7f4ef;
  --bg-elevated: #ffffff;
  --surface: #f0ebe3;
  --text: #5b574f; /* body copy from About screenshot */
  --muted: #5b574f;
  --gold: #8F6A2A; /* Pantone 7559 C — readable text / labels */
  --gold-logo: #dfbc8b; /* Pantone 3596 C — logo accents / large highlights */
  --gold-bright: #e8cda0;
  --border: rgba(26, 26, 26, 0.12);
  --ink: #0f0f0f;
  --max: 1120px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--gold); text-decoration: none; }
a:hover { color: var(--ink); }
h1, h2, h3, h4 {
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif; /* match logo FOUNDATION */
  font-weight: 500;
  line-height: 1.25;
  margin: 0 0 0.55em;
  color: var(--ink);
  letter-spacing: 0.08em;
}
h1 { font-size: clamp(1.85rem, 4vw, 2.75rem); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
h2 { font-size: clamp(1.35rem, 2.6vw, 1.85rem); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
h3 { font-size: 1.15rem; font-weight: 500; letter-spacing: 0.08em; }
p { margin: 0 0 1em; color: var(--muted); }
p.lead { color: #5b574f; font-size: 1.12rem; }
.wrap { width: min(100% - 2.5rem, var(--max)); margin-inline: auto; }

.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(247, 244, 239, 0.94);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}
.header-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem; padding: 0.55rem 0; position: relative;
}
.logo img,
.site-header .wp-block-site-logo img,
.site-header .custom-logo {
  height: 52px;
  width: auto;
  max-width: 180px;
  background: transparent;
  object-fit: contain;
}
.site-header .wp-block-site-logo a {
  display: inline-flex;
  align-items: center;
  line-height: 0;
}
.nav { display: flex; gap: 1.35rem; align-items: center; }
.nav > a, .nav summary {
  color: var(--muted);
  font-size: 0.88rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding-bottom: 0.15rem;
  border-bottom: 1px solid transparent;
  list-style: none;
  cursor: pointer;
}
.nav > a:hover, .nav summary:hover { color: var(--ink); }
.nav > a.active, .nav details[open] summary,
.nav details.active summary {
  color: var(--gold);
  border-bottom-color: var(--gold);
}
.nav details { position: relative; }
.nav details summary::-webkit-details-marker { display: none; }
.nav .submenu {
  position: absolute; top: calc(100% + 0.85rem); left: 0;
  min-width: 13rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
  padding: 0.55rem 0;
  display: grid;
}
.nav .submenu a {
  display: block;
  padding: 0.55rem 1rem;
  color: var(--muted);
  font-size: 0.84rem;
  letter-spacing: 0.04em;
  text-transform: none;
  border: 0;
}
.nav .submenu a:hover, .nav .submenu a.active { color: var(--gold); background: var(--surface); }
.nav-toggle {
  display: none; background: none; border: 1px solid var(--border);
  color: var(--gold); padding: 0.4rem 0.7rem; font-size: 0.8rem;
  letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer;
}

.hero {
  padding: 4.8rem 0 4rem;
  background:
    radial-gradient(ellipse at 15% 0%, rgba(184,146,90,0.12), transparent 50%),
    var(--bg);
  border-bottom: 1px solid var(--border);
}
.hero-kicker {
  color: var(--gold); letter-spacing: 0.18em; text-transform: uppercase;
  font-size: 0.76rem; margin-bottom: 1rem;
}
.hero .mission { max-width: 42rem; margin-bottom: 1.8rem; font-size: 1.1rem; }
.actions { display: flex; flex-wrap: wrap; gap: 0.85rem; }
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0.8rem 1.3rem; border: 1px solid var(--ink);
  color: #fff; background: var(--ink);
  font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase;
}
.btn:hover { background: var(--gold); border-color: var(--gold); color: #fff; }
.btn-ghost { background: transparent; color: var(--ink); }
.btn-ghost:hover { background: var(--surface); color: var(--ink); border-color: var(--ink); }

.section { padding: 4rem 0; }
.section + .section { border-top: 1px solid var(--border); }
.section-label {
  color: var(--gold); letter-spacing: 0.16em; text-transform: uppercase;
  font-size: 0.74rem; margin-bottom: 0.7rem;
}
.section-head { max-width: 36rem; margin-bottom: 2.2rem; text-align: left; }
.section-head .wp-block-heading,
.section-head p,
.section-head .has-text-align-center { text-align: left !important; }

.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.pillar {
  background: var(--bg-elevated); border: 1px solid var(--border);
  padding: 1.45rem 1.35rem;
}
.pillar p { margin: 0; font-size: 0.98rem; }

.project-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.35rem;
}
.project-card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.project-card:hover {
  border-color: var(--gold);
  box-shadow: 0 8px 24px rgba(0,0,0,0.05);
}
.project-card a.thumb {
  display: block; aspect-ratio: 16/9; overflow: hidden; background: var(--surface);
}
.project-card img {
  width: 100%; height: 100%; object-fit: cover; transition: transform 0.35s;
}
.project-card:hover img { transform: scale(1.03); }
.project-card .meta { padding: 0.55rem 1.05rem 1rem; }
.project-card h3 {
  margin: 0 0 0.35rem; font-size: 1.2rem;
}
.project-card h3 a { color: var(--ink); }
.project-card h3 a:hover { color: var(--gold); }
.project-card .period {
  margin: 0; color: var(--gold);
  font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase;
}

.partners {
  border: 1px solid var(--border); background: var(--bg-elevated);
  padding: 2rem 1.6rem; text-align: center;
}
.partners p { margin: 0; color: var(--text); font-size: 1.08rem; }
.cta-band {
  background: var(--bg-elevated); border: 1px solid var(--border);
  padding: 2.2rem 1.8rem; display: flex; flex-wrap: wrap;
  align-items: center; justify-content: space-between; gap: 1.3rem;
}
.cta-band h2 { margin: 0 0 0.3rem; }
.cta-band p { margin: 0; }

.page-hero { padding: 3.2rem 0 2.2rem; border-bottom: 1px solid var(--border); }
.page-hero p { max-width: 40rem; margin: 0; }
.prose { max-width: 42rem; }
.prose h2 { margin-top: 2rem; }
/* Board & leadership — 3 equal columns; extra cards wrap (see overrides below) */
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem 2.25rem; margin-top: 1.6rem; }
.team-card {
  background: #fff;
  border: none;
  padding: 0;
  box-shadow: none;
}
.team-card .team-role,
.team-card .role {
  color: #8F6A2A;
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none;
  margin: 0 0 0.85rem;
}
.team-card p { margin: 0 0 0.75rem; font-size: 0.95rem; }
.team-card p:last-child { margin-bottom: 0; }

.resource-list { display: grid; gap: 0.9rem; }
.resource-item {
  display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
  background: var(--bg-elevated); border: 1px solid var(--border);
  padding: 1.2rem 1.3rem;
}
.resource-item h3 { margin: 0; font-size: 1.2rem; }
.resource-item .tag {
  color: var(--gold); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase;
  white-space: nowrap;
}
.resource-item p { margin: 0.35rem 0 0; font-size: 0.95rem; }

/* Annual 990 Form — editable yearly PDF list (newest first) */
.form990-list { display: grid; gap: 0.9rem; }
.form990-item,
.wp-block-group.form990-item,
article.form990-item {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  padding: 1.2rem 1.3rem;
  box-sizing: border-box;
}
.form990-item h3 {
  margin: 0;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.form990-item h3 a { color: var(--ink); text-decoration: none; }
.form990-item h3 a:hover { color: var(--gold); }
.form990-item > p,
.form990-item p:not(.form990-download) {
  margin: 0.35rem 0 0;
  font-size: 0.95rem;
  color: var(--text);
}
.form990-item .form990-download {
  margin: 0.75rem 0 0;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.form990-item .form990-download a {
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.form990-item .form990-download a:hover {
  border-bottom-color: var(--gold);
}
.form990-item .wp-block-file,
.form990-item .wp-block-buttons {
  margin: 0.75rem 0 0;
}
.form990-item .wp-block-file a {
  color: var(--gold);
}

.detail-hero { padding: 2.6rem 0 0; }
.detail-hero .period {
  color: var(--gold); font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase;
  margin-bottom: 0.7rem;
}
.detail-cover {
  margin: 1.6rem 0 0; border: 1px solid var(--border); overflow: hidden;
  aspect-ratio: 21/9; background: var(--surface);
}
.detail-cover img { width: 100%; height: 100%; object-fit: cover; }
.back-link {
  display: inline-block; margin-bottom: 1rem;
  font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted);
}
.back-link:hover { color: var(--gold); }

.contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 1.6rem; }
.contact-card, .form {
  background: var(--bg-elevated); border: 1px solid var(--border); padding: 1.5rem;
}
.contact-card dt {
  color: var(--gold); font-size: 0.74rem; letter-spacing: 0.12em;
  text-transform: uppercase; margin-top: 1rem;
}
.contact-card dt:first-child { margin-top: 0; }
.contact-card dd { margin: 0.25rem 0 0; color: var(--text); }
.form { display: grid; gap: 0.85rem; }
.form label {
  display: grid; gap: 0.3rem; font-size: 0.82rem; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--muted);
}
.form input, .form textarea {
  width: 100%; background: var(--bg); border: 1px solid var(--border);
  color: var(--text); padding: 0.7rem 0.8rem; font: inherit;
  text-transform: none; letter-spacing: normal;
}
.form input:focus, .form textarea:focus { outline: none; border-color: var(--gold); }
.form-note { font-size: 0.9rem; color: var(--muted); margin: 0; }

/* News listing: horizontal card — image left fills frame, meta right */
.news-list { display: grid; gap: 1.25rem; }
.news-card,
.wp-block-group.news-card,
article.news-card {
  display: grid !important;
  grid-template-columns: 240px 1fr;
  gap: 0;
  align-items: stretch;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.news-card:hover {
  border-color: var(--gold);
  box-shadow: 0 8px 24px rgba(0,0,0,0.05);
}
.news-card a.thumb {
  display: block;
  position: relative;
  height: 100%;
  min-height: 100%;
  overflow: hidden;
  background: var(--surface);
}
.news-card a.thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 0.35s;
}
.news-card:hover a.thumb img { transform: scale(1.03); }
.news-card .body,
.news-card .wp-block-group.body {
  padding: 1.15rem 1.3rem 1.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.news-card .date {
  color: var(--gold);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 0.4rem;
}
.news-card h3 {
  margin: 0 0 0.45rem;
  font-size: 1.35rem;
}
.news-card h3 a { color: var(--ink); }
.news-card h3 a:hover { color: var(--gold); }
.news-card .excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.5;
}

/* News article */
.article-cover {
  margin: 1.4rem 0 0;
  border: 1px solid var(--border);
  overflow: hidden;
  aspect-ratio: 21/9;
  background: var(--surface);
}
.article-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }

/* Financial data */
.chart-panel {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  padding: 1.4rem 1.4rem 1.4rem;
  margin-bottom: 2.5rem;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.chart-wrap {
  position: relative;
  height: 400px;
  max-height: 400px;
  overflow: hidden;
  isolation: isolate;
}
.chart-wrap canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
}
/* Prefer optional static Image block when an image is present */
.finance-chart-static:not(:has(img)) { display: none; }
.finance-chart-static {
  margin: 0 0 2rem;
  max-width: 100%;
}
.finance-chart-static img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
}
body:has(.finance-chart-static img) .chart-wrap,
body:has(.finance-chart-static img) .chart-wrap canvas,
.section:has(.finance-chart-static img) .chart-wrap,
.section:has(.finance-chart-static img) .chart-wrap canvas {
  display: none !important;
}
.section:has(.finance-chart-static img) .chart-panel {
  display: none;
}
.data-table-wrap {
  position: relative;
  z-index: 2;
  margin-top: 0.5rem;
  clear: both;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  padding: 0;
  overflow-x: auto;
}
.data-table-wrap .data-table {
  border: 0;
  margin: 0;
}
.finance-table-label {
  margin: 0 0 0.85rem;
}
.admin-note {
  background: var(--surface);
  border: 1px dashed var(--gold);
  padding: 1rem 1.15rem;
  margin: 0 0 1.6rem;
  font-size: 0.95rem;
  color: var(--text);
}
.data-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
}
.data-table th, .data-table td {
  padding: 0.85rem 1rem;
  text-align: right;
  border-bottom: 1px solid var(--border);
}
.data-table th:first-child, .data-table td:first-child { text-align: left; }
.data-table th {
  font-size: 0.74rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  background: var(--surface);
}
.data-table td { color: var(--text); font-variant-numeric: tabular-nums; }
.data-table tfoot td { font-weight: 600; border-bottom: 0; }

/* Footer navigation grid + contact meta */
.site-footer {
  border-top: 1px solid var(--border);
  padding: 2.6rem 0 2.2rem;
  margin-top: 1.5rem;
  background: var(--bg);
}
.footer-nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6rem 1.2rem;
  margin-bottom: 2rem;
}
.footer-col h4 {
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 0.75rem;
  font-weight: 600;
}
.footer-col a {
  display: block;
  color: var(--muted);
  font-size: 0.9rem;
  padding: 0.18rem 0;
  line-height: 1.4;
}
.footer-col a:hover { color: var(--gold); }
.footer-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 2rem;
  justify-content: space-between;
  color: var(--muted);
  font-size: 0.9rem;
  border-top: 1px solid var(--border);
  padding-top: 1.25rem;
}
.footer-meta a { color: var(--muted); }
.footer-meta a:hover { color: var(--gold); }

/* Homepage banner — Cover block (editable image) + legacy .hero-media fallback */
.hero-banner,
.wp-block-cover.hero-banner {
  position: relative;
  min-height: min(72vh, 620px);
  padding: 0;
  display: flex;
  align-items: flex-end;
  border-bottom: 1px solid var(--border);
  overflow: hidden;
  background: #1a1a1a;
}
.hero-banner .hero-media {
  position: absolute;
  inset: 0;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  /* Prefer Cover block image; keep class for any legacy markup */
}
.hero-banner .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,18,14,0.35) 0%, rgba(20,18,14,0.55) 45%, rgba(20,18,14,0.72) 100%);
  pointer-events: none;
}
.wp-block-cover.hero-banner .wp-block-cover__inner-container,
.hero-banner .hero-content {
  position: relative;
  z-index: 1;
  /* Match .wrap side inset so banner copy is not flush to the viewport edge */
  padding: 5.5rem max(1.5rem, calc((100% - 1120px) / 2 + 1.5rem)) 3.6rem;
  color: #f7f4ef;
  width: 100%;
  box-sizing: border-box;
}
.hero-banner .hero-kicker { color: var(--gold-logo); }
.hero-banner h1,
.hero-banner .wp-block-heading,
.hero-banner h1.has-text-color { color: #fff !important; }
.hero-banner .mission { color: rgba(247,244,239,0.88); max-width: 40rem; }
/* Keep mission left edge flush with title/buttons (constrained layout would otherwise center max-width blocks) */
.hero-banner .wp-block-cover__inner-container > .hero-kicker,
.hero-banner .wp-block-cover__inner-container > .wp-block-heading,
.hero-banner .wp-block-cover__inner-container > h1,
.hero-banner .wp-block-cover__inner-container > .mission,
.hero-banner .wp-block-cover__inner-container > .wp-block-buttons,
.hero-banner .mission {
  margin-left: 0 !important;
  margin-inline-start: 0 !important;
  margin-right: auto !important;
  margin-inline-end: auto !important;
  justify-self: start !important;
  align-self: start !important;
  text-align: left !important;
  padding-left: 0 !important;
}
.hero-banner .wp-block-buttons.actions { display: flex; flex-wrap: wrap; gap: 0.85rem; }
/* Hero CTAs: both match About us — transparent fill, white outline + white text */
.hero-banner .wp-block-button .wp-block-button__link,
.hero-banner .btn .wp-block-button__link,
.hero-banner .wp-block-button.btn .wp-block-button__link,
.hero-banner .btn-ghost .wp-block-button__link,
.hero-banner .wp-block-button.btn-ghost .wp-block-button__link,
.hero-banner a.btn,
.hero-banner a.btn-ghost {
  background: transparent !important;
  background-color: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.7) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  text-decoration: none !important;
  padding: 0.8rem 1.3rem;
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.hero-banner .wp-block-button .wp-block-button__link:hover,
.hero-banner .btn .wp-block-button__link:hover,
.hero-banner .wp-block-button.btn .wp-block-button__link:hover,
.hero-banner .btn-ghost .wp-block-button__link:hover,
.hero-banner .wp-block-button.btn-ghost .wp-block-button__link:hover,
.hero-banner a.btn:hover,
.hero-banner a.btn-ghost:hover {
  background: rgba(255,255,255,0.12) !important;
  background-color: rgba(255,255,255,0.12) !important;
  color: #fff !important;
  border-color: #fff !important;
}

@media (max-width: 900px) {
  .pillars, .team-grid, .contact-grid { grid-template-columns: 1fr; }
  .project-grid { grid-template-columns: 1fr 1fr; }
  .news-card,
  .wp-block-group.news-card,
  article.news-card { grid-template-columns: 1fr; }
  .news-card > .wp-block-image.thumb,
  .news-card > figure.thumb,
  .news-card a.thumb {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 8;
  }
  .news-card > .wp-block-image.thumb img,
  .news-card > figure.thumb img,
  .news-card a.thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }
  .footer-nav { grid-template-columns: 1fr 1fr; }
  .nav-toggle { display: inline-flex; }
  .nav {
    display: none; position: absolute; right: 0; top: 100%;
    flex-direction: column; align-items: stretch;
    background: var(--bg-elevated); border: 1px solid var(--border);
    padding: 0.9rem 1rem; gap: 0.75rem; min-width: 14rem;
  }
  .nav.open { display: flex; }
  .nav .submenu { position: static; box-shadow: none; border: 0; padding: 0.3rem 0 0.3rem 0.6rem; }
}
@media (max-width: 560px) {
  .project-grid, .footer-nav { grid-template-columns: 1fr; }
  .chart-wrap { height: 260px; }
}

/* Pillar cards with images (columns + Image blocks) */
.pillars.wp-block-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.pillars.wp-block-columns > .wp-block-column { margin: 0; }
.pillar,
.wp-block-column.pillar {
  background: var(--bg-elevated); border: 1px solid var(--border);
  padding: 0; overflow: hidden; display: flex; flex-direction: column;
}
.pillar .pillar-img,
.pillar figure.pillar-img,
.pillar .wp-block-image.pillar-img { display: block; aspect-ratio: 4/3; overflow: hidden; background: var(--surface); margin: 0; }
.pillar .pillar-img img,
.pillar figure.pillar-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pillar .pillar-body {
  padding: 0.85rem 1.25rem 1.25rem;
  display: grid;
  grid-template-rows: minmax(2.7em, auto) auto;
  row-gap: 0.55rem;
  align-content: start;
  flex: 1;
}
.pillar .pillar-body > * { margin: 0; }
.pillar .pillar-body h3,
.pillar .pillar-body .wp-block-heading {
  margin: 0;
  line-height: 1.3;
  min-height: calc(1.3em * 2); /* reserve 2 lines so blurbs align across cards */
}
.pillar .pillar-body p { margin: 0; }

/* Partner logo wall — larger readable tiles */
.partners { text-align: left; padding: 2rem 1.6rem; }
.partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 1.4rem;
  justify-items: center;
}
.partners-grid.wp-block-group {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 1.4rem;
  justify-items: center;
}
.partner-logo,
figure.partner-logo,
.wp-block-image.partner-logo {
  width: 220px;
  height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--border);
  padding: 14px 16px;
  box-sizing: border-box;
  margin: 0;
}
/* All partner tiles white — ignore legacy .dark class on page content */
.partner-logo.dark,
figure.partner-logo.dark,
.wp-block-image.partner-logo.dark {
  background: #fff !important;
  border-color: var(--border) !important;
}
.partner-logo img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
@media (max-width: 900px) {
  .partners-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .partners-grid { grid-template-columns: 1fr; }
}


/* Homepage / direction titles — readable gold (Pantone 7559 C) */
.pillar-body h3,
.pillar h3 {
  color: var(--gold);
  text-transform: uppercase;
}


/* Board photos — full card width, landscape ~4:3 (omit .team-photo to hide) */
.team-card,
.wp-block-column.team-card {
  padding: 0;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  background: #fff;
  border: none;
  box-shadow: none;
}
.team-card .team-photo,
.team-card .wp-block-image.team-photo,
.wp-block-column.team-card .team-photo,
.wp-block-column.team-card .wp-block-image.team-photo {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--surface);
  border: none;
  margin: 0 0 1.1rem;
  align-self: stretch;
  box-sizing: border-box;
}
.team-card .team-photo img,
.team-card .wp-block-image.team-photo img,
.wp-block-column.team-card .team-photo img,
.team-photo.wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}
.team-card .team-name,
.team-card h3.team-name,
.wp-block-column.team-card .team-name {
  margin: 0 0 0.35rem;
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
  line-height: 1.25;
  color: var(--ink);
  letter-spacing: 0;
  text-align: left;
}
.team-card .team-body { padding: 0; }
.team-hint {
  margin: 0.35rem 0 0;
  font-size: 0.92rem;
  color: var(--muted);
  max-width: 42rem;
}



/* Mobile-first refinements */
.wrap { width: min(100% - 1.5rem, var(--max)); }
@media (max-width: 900px) {
  .wrap { width: min(100% - 1.75rem, var(--max)); }
  .header-inner { padding: 0.55rem 0; gap: 0.75rem; }
  .logo img, .site-header .wp-block-site-logo img, .site-header .custom-logo { height: 44px; max-width: 150px; }
  .hero-banner { min-height: min(62vh, 520px); }
  .hero-banner .hero-content { padding: 4rem 0 2.6rem; }
  .hero-banner h1 { font-size: clamp(2rem, 8vw, 2.8rem); }
  .section { padding: 3rem 0; }
  .page-hero { padding: 2.4rem 0 1.6rem; }
  .actions { gap: 0.65rem; }
  .btn { width: auto; min-height: 44px; }
  .data-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .data-table { min-width: 480px; }
  .detail-cover, .article-cover { aspect-ratio: 16/9; }
  .partners { padding: 1.5rem 1.1rem; }
  .partner-logo { width: 200px; height: 100px; }
  .chart-panel { padding: 1rem; }
  .nav > a, .nav summary { padding: 0.45rem 0; min-height: 40px; display: inline-flex; align-items: center; }
}
@media (max-width: 560px) {
  .wrap { width: min(100% - 1.25rem, var(--max)); }
  .project-grid { grid-template-columns: 1fr; }
  .pillars, .pillars.wp-block-columns { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
  .partner-logo { width: 100%; max-width: 220px; height: 100px; }
  .footer-nav { grid-template-columns: 1fr; gap: 1.25rem; }
  .footer-meta { flex-direction: column; gap: 0.45rem; }
  .cta-band { padding: 1.5rem 1.1rem; }
  .hero-banner .mission { font-size: 1rem; }
  h1 { font-size: clamp(1.9rem, 9vw, 2.4rem); }
  .site-header { position: sticky; }
}


/* Unified body copy color (About "What we do" paragraph) */
body, p:not(.section-label), p.lead, li, dd, .prose, .prose p, .prose li,
.team-card p:not(.section-label):not(.team-role), .pillar-body p, .news-card .excerpt, .admin-note,
.partners p, .page-hero > .wrap > p:not(.section-label), .section-head p:not(.section-label),
.contact-card dd, .form-note, .team-hint, .data-table td, .cta-band p {
  color: #5b574f;
}
/* Keep headings dark; font matches logo FOUNDATION */
h1, h2, h3, h4 { color: var(--ink); font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif; }

/* Project page: direction explainers + direction tag on cards */
.direction-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.35rem;
}
.direction-card {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 0;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  overflow: hidden;
}
.direction-img {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--surface);
}
.direction-img img { width: 100%; height: 100%; object-fit: cover; }
.direction-body { padding: 1.35rem 1.4rem 1.45rem; }
.direction-body h3 { color: var(--gold); margin-bottom: 0.55rem; text-transform: uppercase; }
.direction-body p { margin: 0 0 0.75rem; }
.project-direction {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #8F6A2A !important;
}
.project-direction a,
.project-direction a:visited { color: #8F6A2A !important; }
.project-direction a:hover { color: var(--ink) !important; }
@media (max-width: 900px) {
  .direction-card { grid-template-columns: 1fr; }
  .direction-img { aspect-ratio: 16/9; }
}


.pillar-body h3 a { color: inherit; }
.pillar-body h3 a:hover { color: var(--ink); }
.pillar a.pillar-img { display: block; aspect-ratio: 4/3; overflow: hidden; background: var(--surface); }
.pillar a.pillar-img img { width: 100%; height: 100%; object-fit: cover; }


/* Editable Image blocks inside direction / project / news / team cards */
.direction-img.wp-block-image,
.direction-card .wp-block-image.direction-img { margin: 0; }
.direction-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.project-card .wp-block-image.thumb,
.project-card figure.thumb { margin: 0; }
.project-card .wp-block-image.thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-card .wp-block-image.thumb,
.news-card figure.thumb { margin: 0; }
.news-card a.thumb .wp-block-image,
.detail-cover.wp-block-image,
.article-cover.wp-block-image,
.team-photo.wp-block-image { margin: 0; }
.detail-cover img,
.article-cover img { width: 100%; height: auto; display: block; object-fit: cover; }
.team-photo.wp-block-image img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }

/* Section groups from patterns: keep horizontal rhythm */
.wp-block-group.section > .wp-block-group.wrap,
.wp-block-group.page-hero > .wp-block-group.wrap { width: min(100% - 2rem, var(--max)); margin-left: auto; margin-right: auto; }
.wp-block-cover.hero-banner.alignfull { width: 100%; max-width: none; }

/* Block-editor markup: thumbs/figures replace bare <a class="thumb"> */
.project-card .wp-block-image.thumb,
.project-card figure.thumb {
  display: block;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--surface);
  margin: 0;
}
.project-card .wp-block-image.thumb a,
.project-card figure.thumb a { display: block; height: 100%; }
/* Image block thumb: stretch to full card height, cover with no bottom gap */
.news-card > .wp-block-image.thumb,
.news-card > figure.thumb {
  display: block;
  position: relative;
  align-self: stretch;
  height: 100%;
  min-height: 160px;
  overflow: hidden;
  background: var(--surface);
  margin: 0;
}
.news-card > .wp-block-image.thumb a,
.news-card > figure.thumb a {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.news-card > .wp-block-image.thumb img,
.news-card > figure.thumb img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 0.35s;
}
.news-card:hover > .wp-block-image.thumb img,
.news-card:hover > figure.thumb img { transform: scale(1.03); }

/* Team grid as Columns block → 3 equal columns; wraps when >3 cards */
.team-grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem 2.25rem;
  margin-top: 1.6rem;
  align-items: start;
  flex-wrap: wrap;
}
.team-grid.wp-block-columns > .wp-block-column {
  margin: 0 !important;
  flex-basis: auto !important;
  width: auto !important;
  max-width: none !important;
}
.wp-block-column.team-card {
  background: #fff;
  border: none;
  padding: 0;
  overflow: visible;
  display: flex;
  flex-direction: column;
  text-align: left;
}
@media (max-width: 900px) {
  .team-grid,
  .team-grid.wp-block-columns { grid-template-columns: 1fr !important; gap: 2rem; }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .team-grid,
  .team-grid.wp-block-columns { grid-template-columns: repeat(2, 1fr); }
}

/* Contact columns */
.contact-grid.wp-block-columns { gap: 2rem; }
.contact-card h3 { font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); margin: 0 0 0.4rem; }
.contact-card h3 + p { margin-top: 0; margin-bottom: 1.2rem; }

/* Footer / header Site Editor notes — keep nav HTML readable */
.site-header .wp-block-group.header-inner { width: min(100% - 2rem, var(--max)); margin-inline: auto; }

/* === layout-fix-project-v113 === */
/* Project page: left-align titles/copy like mockup */
.page-hero,
.page-hero .wp-block-heading,
.page-hero p,
.page-hero .has-text-align-center {
  text-align: left !important;
}
.page-hero {
  text-align: left;
}

/* Project list: equal-height cards, top/bottom edges align in each row */
.project-grid,
.project-grid.wp-block-group {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.35rem;
  align-items: stretch;
}
.project-card,
article.project-card,
.wp-block-group.project-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  overflow: hidden;
  box-sizing: border-box;
}
.project-card .meta,
.project-card .wp-block-group.meta {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: 1rem 1.05rem 1.15rem;
  box-sizing: border-box;
}
.project-card .meta .period,
.project-card .meta p.period {
  margin-top: auto;
}

@media (max-width: 900px) {
  .project-grid,
  .project-grid.wp-block-group { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .project-grid,
  .project-grid.wp-block-group { grid-template-columns: 1fr; }
}

/* === layout-fix-sitewide-left-v114 === */
/* Sitewide: titles and text blocks left-align like approved mockup */
.entry-content,
.wp-block-post-content,
.page-hero,
.section-head,
.partners,
.wp-block-group.page-hero,
.wp-block-group.section-head {
  text-align: left;
}
.entry-content .has-text-align-center,
.wp-block-post-content .has-text-align-center,
.page-hero .has-text-align-center,
.section-head .has-text-align-center,
.entry-content .wp-block-heading.has-text-align-center,
.wp-block-post-content .wp-block-heading.has-text-align-center,
.page-hero .wp-block-heading,
.section-head .wp-block-heading,
.page-hero p,
.section-head p {
  text-align: left !important;
}
/* Keep footer/nav intentional centering unchanged; force content areas only */
.wp-block-post-content > .wp-block-group.alignfull > .wp-block-heading,
.wp-block-post-content > .wp-block-heading {
  text-align: left !important;
}


/* === layout-fix-sitewide-left-v115 === */
/* Sitewide left-align for titles/text boxes; keep partners tile grid + footer as designed */
.page-hero,
.section-head,
.entry-content,
.wp-block-post-content,
.wp-block-group.page-hero,
.wp-block-group.section-head {
  text-align: left !important;
}
.page-hero .wp-block-heading,
.page-hero p,
.page-hero .has-text-align-center,
.section-head .wp-block-heading,
.section-head p,
.section-head .has-text-align-center,
.entry-content .has-text-align-center,
.wp-block-post-content .has-text-align-center,
.entry-content .wp-block-heading.has-text-align-center,
.wp-block-post-content .wp-block-heading.has-text-align-center,
.wp-block-post-content > .wp-block-group .wp-block-heading,
.wp-block-post-content > .wp-block-heading,
.wp-block-post-content > .wp-block-group > p,
.entry-content > .wp-block-group .wp-block-heading,
.entry-content > .wp-block-heading {
  text-align: left !important;
}
/* Do not force-center overrides on partner logo tiles or footer columns */
.partners-grid,
.partner-logo,
.site-footer,
.footer-nav,
.footer-col {
  text-align: inherit;
}


/* === board-leadership-v117 === */
.team-card .team-name,
.team-card h3.team-name,
.wp-block-column.team-card h3.team-name,
h3.wp-block-heading.team-name {
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
  line-height: 1.25;
  color: var(--ink);
  margin: 0 0 0.35rem;
  text-align: left;
}
.team-card .team-role,
.wp-block-column.team-card .team-role {
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  color: #8F6A2A;
  margin: 0 0 0.85rem;
  text-transform: none;
  letter-spacing: 0.02em;
  text-align: left;
}
.team-card .team-photo,
.team-card .wp-block-image.team-photo {
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 4 / 3;
  margin: 0 0 1.1rem !important;
}
.team-card .team-photo img,
.team-card .wp-block-image.team-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}
/* News thumbs: fill frame, no bottom gap */
.news-card > .wp-block-image.thumb img,
.news-card > figure.thumb img,
.news-card a.thumb img {
  height: 100%;
  object-fit: cover;
}

/* === v1.1.6 board-news-990 === */
/* Board: left-aligned cards; serif names; bold sans roles; ~4:3 photos */
.team-grid.wp-block-columns,
.wp-block-columns.team-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem 2.25rem;
  align-items: start;
  text-align: left;
}
.team-grid.wp-block-columns > .wp-block-column.team-card,
.wp-block-column.team-card {
  text-align: left;
  align-items: stretch;
}
.team-card .team-name,
.team-card h3.team-name {
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
  line-height: 1.25;
  text-align: left;
  color: var(--ink);
  margin: 0 0 0.35rem;
}
.team-card .team-role,
.team-card p.team-role {
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  letter-spacing: 0.02em;
  text-transform: none;
  text-align: left;
  color: #8F6A2A;
  margin: 0 0 0.85rem;
}
.team-card > p:not(.team-role) {
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif;
  text-align: left;
  font-size: 0.95rem;
  line-height: 1.55;
}

/* News cards: force CSS grid over any WP flex layout; photo fills frame */
.news-card,
.wp-block-group.news-card,
article.news-card,
.news-card.is-layout-flex,
.wp-block-group.news-card.is-layout-flex {
  display: grid !important;
  grid-template-columns: 240px minmax(0, 1fr) !important;
  gap: 0 !important;
  align-items: stretch !important;
  flex-wrap: unset !important;
  flex-direction: unset !important;
}
.news-card > .wp-block-image.thumb,
.news-card > figure.thumb {
  display: block !important;
  position: relative !important;
  align-self: stretch !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: var(--surface);
}
.news-card > .wp-block-image.thumb a,
.news-card > figure.thumb a {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
.news-card > .wp-block-image.thumb img,
.news-card > figure.thumb img,
.news-card a.thumb img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: top center !important;
  display: block !important;
}
@media (max-width: 900px) {
  .news-card,
  .wp-block-group.news-card,
  article.news-card,
  .news-card.is-layout-flex {
    grid-template-columns: 1fr !important;
  }
  .news-card > .wp-block-image.thumb,
  .news-card > figure.thumb {
    position: relative !important;
    height: auto !important;
    min-height: 200px !important;
    aspect-ratio: 16 / 9;
  }
}

/* === visual-qa-v119 === */
/* Section heads / page-hero: force left (override WP has-text-align-center + auto margins) */
.section-head,
.wp-block-group.section-head,
.page-hero,
.wp-block-group.page-hero {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  justify-self: start;
  align-self: start;
  width: 100%;
  max-width: 36rem;
}
.page-hero,
.wp-block-group.page-hero {
  max-width: none;
}
.section-head .wp-block-heading,
.section-head p,
.section-head .section-label,
.section-head .has-text-align-center,
.page-hero .wp-block-heading,
.page-hero p,
.page-hero .section-label,
.page-hero .has-text-align-center,
.wp-block-group.section-head .has-text-align-center,
.wp-block-group.page-hero .has-text-align-center {
  text-align: left !important;
}

/* Section labels (TEAM / ABOUT / MISSION / etc.) + Board role lines — brand gold */
.wp-block-post-content p.section-label,
.entry-content p.section-label,
.page-hero p.section-label,
.section-head p.section-label,
#team p.section-label,
.section#team p.section-label,
p.section-label.has-gold-color,
p.section-label,
.section-label {
  color: #8F6A2A !important;
  -webkit-text-fill-color: #8F6A2A !important;
}
.team-card .team-role,
.team-card p.team-role,
.team-card .role,
.wp-block-column.team-card .team-role {
  color: #8F6A2A !important;
}

/* Empty photo slots (Randy / Stanley): keep 4:3 surface placeholder */
.team-card .team-photo--empty,
.team-card .team-photo:not(:has(img)),
.wp-block-column.team-card .team-photo:not(:has(img)) {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--surface);
  border: none;
  margin: 0 0 1.1rem;
  display: block;
  box-sizing: border-box;
}
.team-card .team-photo img,
.team-card .wp-block-image.team-photo img {
  object-fit: cover;
  object-position: top center;
}

/* P1: hide editor help boxes on the public front (all visitors, including logged-in admins) */
.admin-note {
  display: none !important;
}
.editor-styles-wrapper .admin-note,
.block-editor-block-list__layout .admin-note {
  display: block !important;
}


/* === layout-logo-edge-v113 === */
/* Alignment standard: left edge of page titles/text boxes = left edge of
   header Bedrock logo (.wrap: min(100% - 2.5rem, 1120px) centered). */
:root {
  --max: 1120px;
  --page-inline: max(1.25rem, calc((100% - 1120px) / 2));
}
.wrap {
  width: min(100% - 2.5rem, var(--max));
  margin-inline: auto;
}

/* Full-width sections: inset equals header wrap / logo left edge */
.wp-block-group.alignfull.section,
.wp-block-group.alignfull.page-hero,
.wp-block-group.section.alignfull,
.wp-block-group.page-hero.alignfull,
section.alignfull.section,
section.alignfull.page-hero,
.section.alignfull,
.page-hero.alignfull {
  padding-left: var(--page-inline) !important;
  padding-right: var(--page-inline) !important;
  box-sizing: border-box;
}

/* Inside those sections, heads span the content column and sit on the logo edge
   (no extra indent; beat WP constrained margin-inline:auto centering) */
.section .section-head,
.page-hero .section-head,
.wp-block-group.section .section-head,
.wp-block-group.page-hero .section-head,
.wp-block-group.alignfull.is-layout-constrained > .section-head,
.wp-block-group.alignfull.is-layout-constrained > .wp-block-group.section-head,
.is-layout-constrained > .section-head,
.is-layout-constrained > .wp-block-group.section-head,
.section-head,
.wp-block-group.section-head {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  margin-inline: 0 auto !important;
  justify-self: start !important;
  align-self: start !important;
  width: 100% !important;
  max-width: 40rem !important;
  box-sizing: border-box;
  padding-left: 0 !important;
}

.page-hero,
.wp-block-group.page-hero {
  text-align: left !important;
}
.page-hero .wp-block-heading,
.page-hero p,
.page-hero .section-label,
.page-hero .has-text-align-center,
.section-head .wp-block-heading,
.section-head p,
.section-head .section-label,
.section-head .has-text-align-center,
.wp-block-group.page-hero.is-layout-constrained > .wp-block-heading,
.wp-block-group.page-hero.is-layout-constrained > p {
  text-align: left !important;
  margin-left: 0 !important;
  margin-inline-start: 0 !important;
  margin-right: auto !important;
}

/* Constrained children: same max width as .wrap so left edge = logo */
.wp-block-group.alignfull.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-post-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: 1120px !important;
}

/* When section already has logo-edge padding, don't double-center children */
.wp-block-group.alignfull.section.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-group.alignfull.page-hero.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-inline: 0 !important;
}

/* Hero banner copy already uses logo-edge padding — keep in sync */
.hero-banner .wp-block-cover__inner-container,
.hero-banner .hero-content {
  padding-left: 0; /* section/cover handles inset */
}
.wp-block-cover.hero-banner {
  padding-left: var(--page-inline) !important;
  padding-right: var(--page-inline) !important;
  box-sizing: border-box;
}


/* === finance-table-block-v114 === */
/* Native Table block on Financial Data — same look as legacy .data-table HTML */
.wp-block-table.data-table,
.wp-block-table.finance-data-table,
figure.wp-block-table.data-table,
figure.wp-block-table.finance-data-table {
  margin: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.wp-block-table.data-table table,
.wp-block-table.finance-data-table table,
.wp-block-table.data-table table.has-fixed-layout,
#finance-data-table {
  width: 100%;
  min-width: 480px;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}
.wp-block-table.data-table th,
.wp-block-table.data-table td,
.wp-block-table.finance-data-table th,
.wp-block-table.finance-data-table td,
#finance-data-table th,
#finance-data-table td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border, #e5e0d8);
  text-align: right;
}
.wp-block-table.data-table th:first-child,
.wp-block-table.data-table td:first-child,
.wp-block-table.finance-data-table th:first-child,
.wp-block-table.finance-data-table td:first-child,
#finance-data-table th:first-child,
#finance-data-table td:first-child {
  text-align: left;
}
.wp-block-table.data-table thead th,
.wp-block-table.finance-data-table thead th,
#finance-data-table thead th {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted, #5c574f);
  font-weight: 600;
}
.wp-block-table.data-table tfoot td,
.wp-block-table.finance-data-table tfoot td,
#finance-data-table tfoot td {
  font-weight: 600;
  border-bottom: 0;
}


/* === partners-white-tiles-v115 === */
/* Partner & Grantee logo frames: always white tile background by default */
.partners .partner-logo,
.partners figure.partner-logo,
.partners .wp-block-image.partner-logo,
.partners-grid .partner-logo,
.partners-grid figure.partner-logo,
.partners-grid .wp-block-image.partner-logo,
.partners-grid > .wp-block-image,
.partners-grid > figure,
.partners .partner-logo.dark,
.partners figure.partner-logo.dark,
.partners .wp-block-image.partner-logo.dark,
.partners-grid .partner-logo.dark,
.partners-grid figure.partner-logo.dark,
.partners-grid .wp-block-image.partner-logo.dark {
  background: #ffffff !important;
  background-color: #ffffff !important;
  border: 1px solid var(--border, #e5e0d8) !important;
  box-shadow: none !important;
}
.partners-grid .partner-logo img,
.partners .partner-logo img {
  background: transparent !important;
  mix-blend-mode: normal;
}


/* === layout-logo-edge-v116 === */
/* Fix About/Financial flush-left (alignfull without combined page-hero class)
   and Home hero double-inset (page-inline + WP has-global-padding). */

/* Every top-level full-bleed group/cover in page content shares logo edge */
.wp-block-post-content > .wp-block-group.alignfull,
.entry-content > .wp-block-group.alignfull,
.wp-block-post-content > .wp-block-cover.alignfull,
.entry-content > .wp-block-cover.alignfull,
.wp-block-post-content .page-hero,
.entry-content .page-hero,
.wp-block-post-content .section.alignfull,
.entry-content .section.alignfull {
  padding-left: var(--page-inline) !important;
  padding-right: var(--page-inline) !important;
  box-sizing: border-box;
}

/* When parent already has logo-edge padding, constrained children fill it */
.wp-block-post-content > .wp-block-group.alignfull.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.entry-content > .wp-block-group.alignfull.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-post-content > .wp-block-group.alignfull.has-global-padding.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-inline: 0 !important;
}

/* Home hero: one inset only — match logo; strip WP global padding on inner */
.wp-block-cover.alignfull.hero-banner,
.wp-block-cover.hero-banner.alignfull,
.hero-banner.alignfull {
  padding-left: var(--page-inline) !important;
  padding-right: var(--page-inline) !important;
  box-sizing: border-box;
}
.wp-block-cover.hero-banner.has-global-padding,
.wp-block-cover.hero-banner .wp-block-cover__inner-container.has-global-padding,
.wp-block-cover.hero-banner .wp-block-cover__inner-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 1120px !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  margin-inline: 0 auto !important;
}

/* Hero copy stack: never center the mission paragraph relative to the title */
.wp-block-cover.hero-banner .wp-block-cover__inner-container.is-layout-constrained > .mission,
.wp-block-cover.hero-banner .mission.wp-block-paragraph {
  max-width: min(40rem, 100%) !important;
  width: auto !important;
  margin-left: 0 !important;
  margin-inline: 0 auto !important;
}



/* === about-raw-html-logo-edge-v117 === */
/* About (and any page) still using classic HTML <section class="page-hero|section">
   inside post content — those lack .alignfull, so prior logo-edge rules missed them. */
.wp-block-post-content > .page-hero,
.wp-block-post-content > .section,
.wp-block-post-content > section.page-hero,
.wp-block-post-content > section.section,
.entry-content > .page-hero,
.entry-content > .section,
.entry-content > section.page-hero,
.entry-content > section.section,
.wp-block-post-content.alignfull > .page-hero,
.wp-block-post-content.alignfull > .section,
.entry-content.alignfull > .page-hero,
.entry-content.alignfull > .section {
  padding-left: var(--page-inline) !important;
  padding-right: var(--page-inline) !important;
  box-sizing: border-box;
  text-align: left !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.wp-block-post-content > .page-hero .section-label,
.wp-block-post-content > .page-hero h1,
.wp-block-post-content > .page-hero p,
.wp-block-post-content > .section .section-label,
.wp-block-post-content > .section h2,
.wp-block-post-content > .section .lead,
.wp-block-post-content > .section .section-head,
.entry-content > .page-hero .section-label,
.entry-content > .page-hero h1,
.entry-content > .page-hero p,
.entry-content > .section .section-label,
.entry-content > .section h2,
.entry-content > .section .lead,
.entry-content > .section .section-head {
  text-align: left !important;
  margin-left: 0 !important;
  margin-inline-start: 0 !important;
}


/* === project-cards-equal-row-v118 === */
/* Force equal-height project cards in each row (beat WP .is-layout-flow display). */
.project-grid,
.project-grid.wp-block-group,
.wp-block-group.project-grid.is-layout-flow,
.wp-block-group.project-grid.is-layout-constrained {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.35rem !important;
  align-items: stretch !important;
}
.project-card,
article.project-card,
.wp-block-group.project-card,
.wp-block-group.project-card.is-layout-flow,
.project-grid > .wp-block-group.project-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 100%;
  align-self: stretch !important;
  box-sizing: border-box;
}
.project-card > .wp-block-image.thumb,
.project-card > figure.thumb,
.project-card .wp-block-image.thumb,
.project-card figure.thumb {
  flex: 0 0 auto !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
}
.project-card .thumb img,
.project-card figure.thumb img,
.project-card .wp-block-image.thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}
.project-card > .meta,
.project-card > .wp-block-group.meta,
.project-card .wp-block-group.meta.is-layout-flow {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start;
  gap: 0.35rem;
  padding: 1rem 1.05rem 1.15rem !important;
  box-sizing: border-box;
  min-height: 0;
}
/* Reserve title space so shorter titles still line up; pin period to card bottom */
.project-card .meta h3,
.project-card .meta .wp-block-heading {
  margin: 0 0 0.35rem !important;
  min-height: calc(1.25em * 3);
  line-height: 1.25;
}
.project-card .meta .project-direction,
.project-card .meta p.project-direction {
  margin: 0 0 0.25rem !important;
  min-height: 1.2em;
}
.project-card .meta .period,
.project-card .meta p.period {
  margin-top: auto !important;
  margin-bottom: 0 !important;
}
@media (max-width: 900px) {
  .project-grid,
  .project-grid.wp-block-group,
  .wp-block-group.project-grid.is-layout-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 640px) {
  .project-grid,
  .project-grid.wp-block-group,
  .wp-block-group.project-grid.is-layout-flow {
    grid-template-columns: 1fr !important;
  }
  .project-card .meta h3,
  .project-card .meta .wp-block-heading {
    min-height: 0;
  }
}


/* === project-cards-flow-margin-v119 === */
/* WP .is-layout-flow > * + * { margin-block-start } offsets cards 2+ by ~24px
   so same-row top/bottom edges misalign even when card heights match. */
.project-grid.wp-block-group.is-layout-flow > * + *,
.project-grid.is-layout-flow > * + *,
.wp-block-group.project-grid.is-layout-flow > * + *,
.wp-block-group.project-grid > * + *,
.project-grid > * + * {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}
.project-grid > .project-card,
.project-grid > article.project-card,
.project-grid > .wp-block-group.project-card,
.wp-block-group.project-grid > .wp-block-group.project-card {
  margin: 0 !important;
  margin-block: 0 !important;
}
/* Re-assert stretch after flow margin kill */
.project-grid,
.wp-block-group.project-grid {
  align-items: stretch !important;
  grid-auto-rows: 1fr;
}
@supports (grid-template-rows: masonry) {
  /* no-op; keep stretch path */
}
.project-grid > .project-card,
.wp-block-group.project-grid > .project-card {
  height: 100% !important;
  min-height: 100%;
}


/* === project-card-meta-gap-v120 === */
/* Tighten whitespace between project card image and text (user red-box gap). */
.project-card > .meta,
.project-card > .wp-block-group.meta,
.project-card .wp-block-group.meta.is-layout-flow,
.project-card .meta {
  padding-top: 0.5rem !important;
  padding-bottom: 0.95rem !important;
  padding-left: 1.05rem !important;
  padding-right: 1.05rem !important;
  gap: 0.25rem !important;
}
.project-card .meta > :first-child,
.project-card .meta .project-direction,
.project-card .meta p.project-direction {
  margin-top: 0 !important;
}
.project-card .meta h3,
.project-card .meta .wp-block-heading {
  margin-top: 0.15rem !important;
  margin-bottom: 0.25rem !important;
}
/* Keep equal-height cards, but don't reserve oversized blank title space */
.project-card .meta h3,
.project-card .meta .wp-block-heading {
  min-height: 0 !important;
}


/* === mobile-overflow-fix-v121 === */
/* P0 mobile: partners overflow, news clip, financial table page scroll */
html, body {
  overflow-x: clip;
  max-width: 100%;
}
.partners,
.partners-grid,
.wp-block-group.partners,
.wp-block-group.partners-grid {
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
}
.partners-grid,
.partners-grid.wp-block-group,
.wp-block-group.partners-grid.is-layout-flow {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1rem !important;
  justify-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
}
.partner-logo,
figure.partner-logo,
.wp-block-image.partner-logo,
.partners-grid > .wp-block-image.partner-logo {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 88px;
  aspect-ratio: 2 / 1;
  box-sizing: border-box;
}
@media (max-width: 900px) {
  .partners-grid,
  .partners-grid.wp-block-group,
  .wp-block-group.partners-grid.is-layout-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .news-card,
  .wp-block-group.news-card,
  article.news-card {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .news-card .body,
  .news-card .wp-block-group.body {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .news-card h3,
  .news-card .excerpt,
  .news-card .date {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}
@media (max-width: 560px) {
  .partners-grid,
  .partners-grid.wp-block-group,
  .wp-block-group.partners-grid.is-layout-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .partner-logo,
  figure.partner-logo,
  .wp-block-image.partner-logo {
    min-height: 72px;
    padding: 10px 12px !important;
  }
}

/* Financial: keep table scroll inside wrapper; never widen the page */
.wp-block-table.data-table,
.wp-block-table.finance-data-table,
figure.wp-block-table.data-table,
figure.wp-block-table.finance-data-table {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
}
.wp-block-table.data-table table,
.wp-block-table.finance-data-table table,
#finance-data-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none;
}
@media (max-width: 700px) {
  .wp-block-table.data-table table,
  .wp-block-table.finance-data-table table,
  #finance-data-table {
    min-width: 520px; /* scroll inside figure, not the page */
  }
  .chart-panel,
  .chart-wrap {
    max-width: 100%;
    overflow-x: auto;
  }
  .chart-wrap canvas {
    max-width: 100%;
  }
}
.finance-section,
.wp-block-group.finance-section {
  max-width: 100%;
  overflow-x: clip;
  box-sizing: border-box;
}

/* === hero-banner-left-align-v124 === */
/* WP Cover + is-layout-constrained uses justify-items:center and
   margin-inline:auto on children — a max-width .mission then sits
   to the right of the full-width title. Force the whole hero stack left. */
.wp-block-cover.hero-banner .wp-block-cover__inner-container,
.wp-block-cover.hero-banner .wp-block-cover__inner-container.is-layout-constrained,
.wp-block-cover.hero-banner .wp-block-cover__inner-container.has-global-padding,
.hero-banner .wp-block-cover__inner-container {
  justify-items: start !important;
  justify-content: start !important;
  align-items: start !important;
  text-align: left !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.wp-block-cover.hero-banner .wp-block-cover__inner-container > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-cover.hero-banner .wp-block-cover__inner-container.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-cover.hero-banner .wp-block-cover__inner-container > .hero-kicker,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > .wp-block-heading,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > h1,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > .mission,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > p.mission,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > .wp-block-buttons,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > .wp-block-buttons.actions,
.hero-banner .mission,
.hero-banner p.mission {
  margin-left: 0 !important;
  margin-right: auto !important;
  margin-inline: 0 auto !important;
  margin-inline-start: 0 !important;
  margin-inline-end: auto !important;
  justify-self: start !important;
  align-self: start !important;
  text-align: left !important;
  padding-left: 0 !important;
}

.hero-banner .mission,
.wp-block-cover.hero-banner .mission,
.wp-block-cover.hero-banner p.mission.wp-block-paragraph {
  max-width: min(40rem, 100%) !important;
  width: auto !important;
}

/* === team-name-match-cards-v126 === */
/* Board names: match Project/News card titles — Source Sans 3, not Noto Serif */
.team-card .team-name,
.team-card h3.team-name,
.wp-block-column.team-card .team-name,
.wp-block-column.team-card h3.team-name,
h3.wp-block-heading.team-name,
.team-grid .team-name,
.team-grid h3.team-name {
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 1.2rem !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--ink) !important;
  margin: 0 0 0.35rem !important;
  text-align: left !important;
}

/* === board-display-and-hide-admin-note-v127 === */
/* Hide Editor notes on the public site (including logged-in admins viewing the front).
   Still visible inside the block editor canvas. */
body:not(.block-editor-page) .admin-note,
body.logged-in:not(.block-editor-page) .admin-note,
.home .admin-note,
.page .admin-note,
.single .admin-note,
.wp-site-blocks .admin-note {
  display: none !important;
}
.editor-styles-wrapper .admin-note,
.block-editor-block-list__layout .admin-note,
.block-editor-page .admin-note {
  display: block !important;
}

/* Board names: never uppercase; card-title size; readable letter-spacing */
.team-card .team-name,
.team-card h3.team-name,
.wp-block-column.team-card .team-name,
.wp-block-column.team-card h3.team-name,
h3.wp-block-heading.team-name,
.team-grid .team-name,
.team-grid h3.wp-block-heading.team-name,
.team-card h3.wp-block-heading {
  text-transform: none !important;
  letter-spacing: normal !important;
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 1.25rem !important;
  line-height: 1.3 !important;
  color: var(--ink) !important;
  margin: 0.85rem 1rem 0.35rem !important;
  padding: 0 !important;
  text-align: left !important;
}

/* Role under name */
.team-card .team-role,
.team-card p.team-role,
.wp-block-column.team-card .team-role {
  margin: 0 1rem 0.75rem !important;
  padding: 0 !important;
}

/* Bio / intro paragraphs: inset from card edges so text doesn't hug the sides */
.team-card > p:not(.team-role):not(.admin-note),
.wp-block-column.team-card > p:not(.team-role):not(.admin-note),
.team-card .team-body,
.wp-block-column.team-card .team-body {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
  padding-bottom: 1.1rem !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}
.team-card > p:not(.team-role):not(.admin-note),
.wp-block-column.team-card > p:not(.team-role):not(.admin-note) {
  margin-top: 0 !important;
  margin-bottom: 0.75rem !important;
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
}
.team-card > p:not(.team-role):not(.admin-note):last-child,
.wp-block-column.team-card > p:not(.team-role):not(.admin-note):last-child {
  margin-bottom: 0 !important;
  padding-bottom: 1.15rem !important;
}

/* Photo stays full-bleed; text block below has inset */
.team-card .team-photo,
.team-card .wp-block-image.team-photo,
.wp-block-column.team-card > .wp-block-image {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
}

/* === hero-mission-flush-left-v128 === */
/* Beat WP global .is-layout-constrained > * { margin-left/right:auto !important } */
.wp-block-cover.alignfull.hero-banner .wp-block-cover__inner-container.is-layout-constrained,
.wp-block-cover.hero-banner .wp-block-cover__inner-container.is-layout-constrained,
.wp-block-cover.hero-banner .wp-block-cover__inner-container {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  justify-items: start !important;
  text-align: left !important;
  width: 100% !important;
  max-width: 1120px !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

.wp-block-cover.alignfull.hero-banner .wp-block-cover__inner-container.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-cover.hero-banner .wp-block-cover__inner-container > .hero-kicker,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > .wp-block-heading,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > h1,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > p,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > .mission,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > p.mission,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > .wp-block-buttons {
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-inline: 0 !important;
  margin-inline-start: 0 !important;
  margin-inline-end: 0 !important;
  justify-self: start !important;
  align-self: flex-start !important;
  text-align: left !important;
  max-width: 100% !important;
}

.wp-block-cover.hero-banner .mission,
.wp-block-cover.hero-banner p.mission,
.wp-block-cover.hero-banner .wp-block-cover__inner-container > p.mission.wp-block-paragraph {
  max-width: 36rem !important;
  width: min(36rem, 100%) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-inline: 0 !important;
  text-align: left !important;
  align-self: flex-start !important;
}

/* === cache-bust-admin-note-v129 === */
/* Always hide on front; editor canvas may still show via editor-styles-wrapper */
body .admin-note,
body.logged-in .admin-note,
body.admin-bar .admin-note,
.wp-site-blocks .admin-note,
.entry-content .admin-note,
.wp-block-post-content .admin-note {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  visibility: hidden !important;
}
.editor-styles-wrapper .admin-note,
.block-editor-block-list__layout .admin-note,
.editor-styles-wrapper .wp-block-paragraph.admin-note {
  display: block !important;
  height: auto !important;
  overflow: visible !important;
  visibility: visible !important;
  margin: 0 0 1.6rem !important;
  padding: 1rem 1.15rem !important;
  border: 1px dashed var(--gold) !important;
}

/* === form990-file-upload-v130 === */
/* File block inside each Form 990 row — looks like DOWNLOAD PDF; upload via Replace in editor */
.form990-item .wp-block-file {
  margin: 0.35rem 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.form990-item .wp-block-file > a:not(.wp-block-file__button) {
  display: none; /* hide raw filename; button is the public CTA */
}
.form990-item .wp-block-file .wp-block-file__button,
.form990-item .wp-block-file a.wp-block-file__button {
  display: inline-block !important;
  background: transparent !important;
  background-color: transparent !important;
  color: var(--gold) !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  line-height: 1.4 !important;
}
.form990-item .wp-block-file .wp-block-file__button:hover,
.form990-item .wp-block-file a.wp-block-file__button:hover {
  color: var(--ink) !important;
  background: transparent !important;
  text-decoration: underline !important;
}
/* Editor placeholder when no PDF yet */
.editor-styles-wrapper .form990-item .wp-block-file,
.block-editor-block-list__layout .form990-item .wp-block-file {
  min-height: 2.5rem;
}

/* === form990-no-pdf-preview-v131 === */
/* Never show inline PDF embed/preview on Annual 990 — download button only */
.form990-item .wp-block-file__embed,
.form990-item .wp-block-file object,
.form990-item .wp-block-file embed,
.form990-item .wp-block-file iframe,
.wp-block-group.form990-item .wp-block-file__embed,
.wp-block-group.form990-item .wp-block-file object,
.wp-block-group.form990-item .wp-block-file embed,
.wp-block-group.form990-item .wp-block-file iframe,
.form990-list .wp-block-file__embed,
.form990-list .wp-block-file object,
body.page-id-22 .wp-block-file__embed,
body.page-id-22 .wp-block-file object.wp-block-file__embed {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  position: absolute !important;
  pointer-events: none !important;
}
/* Keep only the DOWNLOAD PDF button visible */
.form990-item .wp-block-file > a:not(.wp-block-file__button),
.wp-block-group.form990-item .wp-block-file > a:not(.wp-block-file__button),
.form990-list .wp-block-file > a:not(.wp-block-file__button) {
  display: none !important;
}
.form990-item .wp-block-file,
.wp-block-group.form990-item .wp-block-file {
  margin-top: 0.35rem !important;
  margin-bottom: 0 !important;
}

/* === project-grid-dup-width-v132 === */
/* Keep equal card widths after Duplicate in the editor/front.
   Duplicated cards must stay inside .project-grid as direct children. */
.project-grid,
.wp-block-group.project-grid,
.wp-block-group.project-grid.is-layout-flow,
.wp-block-group.project-grid.is-layout-constrained,
.wp-block-group.project-grid.is-layout-flex {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.35rem !important;
  width: 100% !important;
  max-width: 100% !important;
  align-items: stretch !important;
  box-sizing: border-box !important;
}

/* Every direct child of the grid shares one column cell — even if Duplicate
   wraps a card in an extra Group without .project-card */
.project-grid > *,
.wp-block-group.project-grid > * {
  min-width: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-inline: 0 !important;
  box-sizing: border-box !important;
  justify-self: stretch !important;
}

.project-grid > .project-card,
.project-grid > article.project-card,
.project-grid > .wp-block-group.project-card,
.wp-block-group.project-grid > .wp-block-group.project-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

/* Kill WP flow sibling margin that stretches/offsets cards after Duplicate */
.project-grid.wp-block-group.is-layout-flow > * + *,
.wp-block-group.project-grid.is-layout-flow > * + *,
.project-grid.is-layout-flow > * + * {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

@media (max-width: 900px) {
  .project-grid,
  .wp-block-group.project-grid,
  .wp-block-group.project-grid.is-layout-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 560px) {
  .project-grid,
  .wp-block-group.project-grid,
  .wp-block-group.project-grid.is-layout-flow {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Editor canvas: same grid so Duplicate preview matches front */
.editor-styles-wrapper .project-grid,
.block-editor-block-list__layout .project-grid,
.editor-styles-wrapper .wp-block-group.project-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.35rem !important;
}

/* === project-card-editor-select-v133 === */
/* Make whole Project cards easier to select in the block editor */
.editor-styles-wrapper .project-card,
.block-editor-block-list__layout .project-card,
.editor-styles-wrapper .wp-block-group.project-card {
  position: relative;
  outline: 1px dashed transparent;
  outline-offset: 4px;
  cursor: pointer;
}
.editor-styles-wrapper .project-card:hover,
.block-editor-block-list__layout .project-card:hover {
  outline-color: rgba(143, 106, 42, 0.55);
}
.editor-styles-wrapper .project-card.is-selected,
.editor-styles-wrapper .project-card.has-child-selected,
.block-editor-block-list__layout .project-card.is-selected,
.block-editor-block-list__layout .project-card.has-child-selected {
  outline: 2px solid #8F6A2A;
  outline-offset: 4px;
}
/* Label chip when the card (or a child inside it) is selected */
.editor-styles-wrapper .project-card.has-child-selected::before,
.editor-styles-wrapper .project-card.is-selected::before,
.block-editor-block-list__layout .project-card.has-child-selected::before,
.block-editor-block-list__layout .project-card.is-selected::before {
  content: "Project card — click toolbar ↑ to select parent, or use List View";
  display: block;
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 5;
  max-width: calc(100% - 12px);
  padding: 0.2rem 0.45rem;
  background: #8F6A2A;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.02em;
  pointer-events: none;
  border-radius: 2px;
}
.editor-styles-wrapper .project-grid,
.block-editor-block-list__layout .project-grid {
  outline: 1px dashed rgba(15, 15, 15, 0.15);
  outline-offset: 8px;
  padding: 0.35rem;
}

/* === project-direction-gold-lock-v134 === */
/* Keep Project card direction label gold even after block-editor color edits */
.project-card .project-direction,
.project-card p.project-direction,
.project-card .meta .project-direction,
.project-card .meta p.project-direction,
.editor-styles-wrapper .project-card .project-direction,
.editor-styles-wrapper .project-card p.project-direction,
.project-direction.has-text-color,
.project-direction.has-link-color,
p.project-direction.has-text-color,
p.project-direction.has-link-color {
  color: #8F6A2A !important;
  -webkit-text-fill-color: #8F6A2A !important;
}
.project-card .project-direction a,
.project-card .project-direction a:visited,
.project-card .project-direction a:link,
.project-card .project-direction a.has-text-color,
.project-card .project-direction a.has-link-color,
.project-card .project-direction .has-inline-color,
.editor-styles-wrapper .project-card .project-direction a,
.editor-styles-wrapper .project-card .project-direction a:visited {
  color: #8F6A2A !important;
  -webkit-text-fill-color: #8F6A2A !important;
}
.project-card .project-direction a:hover,
.editor-styles-wrapper .project-card .project-direction a:hover {
  color: #1a1a1a !important;
  -webkit-text-fill-color: #1a1a1a !important;
}

/* === contact-form-mail-v135 === */
.form-success {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  background: #eef6ee;
  border-left: 3px solid #2f6b3a;
  color: #1e3d24;
}
.form-error {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  background: #fceeee;
  border-left: 3px solid #a33;
  color: #5a1f1f;
}
.form-note { display: none !important; }

/* === careers-job-layout-v137 === */
.bf-team-job {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.bf-team-job h3 {
  margin-top: 2rem;
  margin-bottom: 0.75rem;
  font-size: 1.05rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.bf-team-job h4 {
  margin-top: 1.35rem;
  margin-bottom: 0.55rem;
  font-size: 1rem;
  letter-spacing: 0.04em;
  text-transform: none;
  font-weight: 600;
  color: var(--ink);
}
.bf-team-job ul,
.bf-team-job ol {
  margin: 0 0 1.1rem;
  padding-left: 1.25rem;
}
.bf-team-job li {
  margin-bottom: 0.45rem;
}
.bf-team-job p {
  margin-bottom: 1em;
}
@media (max-width: 560px) {
  .bf-team-job ul,
  .bf-team-job ol {
    padding-left: 1.1rem;
  }
  .bf-team-job h3 {
    margin-top: 1.6rem;
  }
}

/* === v1.1.38 team-grid mobile stack === */
/* Desktop board rule used grid-template-columns: repeat(3,…) without a matching
   !important mobile override, so phones kept three skinny columns. */
@media (max-width: 900px) {
  .team-grid,
  .team-grid.wp-block-columns,
  .wp-block-columns.team-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 2rem !important;
  }
  .team-grid.wp-block-columns > .wp-block-column,
  .team-grid.wp-block-columns > .wp-block-column.team-card,
  .wp-block-columns.team-grid > .wp-block-column {
    flex-basis: 100% !important;
    flex-grow: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .team-grid,
  .team-grid.wp-block-columns,
  .wp-block-columns.team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* === v1.1.41 finance chart/table mobile scroll === */
/* Live markup is <div class="chart-wrap"><canvas> with NO .chart-panel wrapper. */
@media (max-width: 900px) {
  .finance-section,
  .section.finance-section,
  .wp-block-group.finance-section {
    overflow: visible !important;
  }
  .chart-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
    height: 300px !important;
    max-height: 300px !important;
  }
  .chart-wrap canvas,
  #finance-chart {
    display: block !important;
    min-width: 640px !important;
    width: 640px !important;
    max-width: none !important;
    height: 280px !important;
    max-height: 280px !important;
  }
  figure.wp-block-table.data-table,
  figure.wp-block-table.finance-data-table,
  .wp-block-table.data-table,
  .wp-block-table.finance-data-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }
  figure.wp-block-table.data-table table,
  figure.wp-block-table.finance-data-table table,
  .wp-block-table.finance-data-table table,
  .wp-block-table.data-table table.has-fixed-layout {
    width: 640px !important;
    min-width: 640px !important;
    max-width: none !important;
    table-layout: auto !important;
  }
}
