/* Focused programme layout and a selective community photo story. */
.program-grid { grid-template-columns: repeat(2, 1fr); }
.program-card { border-bottom: 1px solid var(--line); }
.program-card:nth-child(even) { border-right: 0; }
.program-card:nth-last-child(-n + 2) { border-bottom: 0; }

.purpose-content { display: grid; grid-template-columns: 1.15fr .85fr; gap: 42px; align-items: center; }
.purpose-links { display: flex; flex-wrap: wrap; gap: 20px; }
.purpose-image { margin: 0; min-height: 330px; position: relative; background: #d4dfd3; }
.purpose-image img { display: block; width: 100%; height: 330px; object-fit: cover; }
.purpose-image figcaption { padding: 12px 15px; background: var(--forest); color: #fff; font-size: 12px; }

.story-heading { margin-bottom: 42px; }
.story-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 24px; align-items: stretch; }
.story-grid figure { margin: 0; }
.story-grid img { display: block; width: 100%; height: 100%; object-fit: cover; }
.story-feature { min-height: 545px; position: relative; background: #d4dfd3; }
.story-feature figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px 28px; background: linear-gradient(transparent, rgba(16,46,37,.88)); color: #fff; font-size: 15px; }
.story-feature figcaption span { display: block; color: #e0c671; font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; margin-bottom: 5px; }
.story-pair { display: grid; grid-template-rows: 1fr 1fr; gap: 24px; }
.story-pair figure { position: relative; min-height: 0; background: #d4dfd3; }
.story-pair figcaption { position: absolute; left: 0; bottom: 0; padding: 14px 17px; background: rgba(16,46,37,.9); color: #fff; font-size: 13px; }

/* A warmer, more photographic front page. */
.site-header { backdrop-filter: blur(12px); background: rgba(246,243,236,.94); }
.site-nav a { transition: color .2s ease, background .2s ease; }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--clay); }
.site-nav .nav-contact:hover, .site-nav .nav-contact:focus-visible { background: var(--forest); color: #fff; }
.button, .text-link { transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); background: var(--deep); }
.text-link:hover, .text-link:focus-visible { color: var(--clay); }
.hero { padding-top: 82px; }
.hero-image { min-height: 470px; padding: 0; overflow: hidden; align-items: stretch; justify-content: flex-end; background: var(--deep); }
.hero-image:after { inset: 0; width: auto; height: auto; transform: translate(13px,13px); z-index: 1; }
.hero-image img { width: 100%; height: 470px; object-fit: cover; object-position: 54% center; mix-blend-mode: normal; filter: saturate(.9) contrast(1.03); }
.hero-image figcaption { position: absolute; z-index: 2; inset: auto 0 0; max-width: none; padding: 60px 28px 24px; text-align: left; color: #fff; background: linear-gradient(transparent,rgba(16,46,37,.94)); }
.hero-image figcaption span { display: block; color: #e0c671; font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; margin-bottom: 6px; }
.impact-bar { background: var(--forest); color: #fff; }
.featured-film { padding: 108px 0; background: var(--deep); color: #fff; }
.film-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; align-items: center; }
.film-copy h2 { margin: 0 0 20px; font: 700 clamp(40px,4.5vw,64px)/1.03 var(--serif); letter-spacing: -.04em; }
.film-copy p { max-width:410px; color:#d6e2d9; font-size:17px; }.film-copy .film-kicker { margin:0 0 16px; color:#e0c671; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }.film-copy .film-note { margin-top:28px; color:#a9bcb0; font-size:13px; }
.film-player { position:relative; background:#071b15; box-shadow:18px 18px 0 rgba(224,198,113,.2); }.film-player video { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:#071b15; }
.impact-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.impact-grid div { min-height: 145px; padding: 29px 32px; border-right: 1px solid rgba(255,255,255,.2); display: flex; flex-direction: column; justify-content: center; }
.impact-grid div:last-child { border: 0; }.impact-grid strong { font: 700 clamp(25px,3vw,39px)/1 var(--serif); color: #e0c671; }.impact-grid span { margin-top: 9px; max-width: 170px; color: #e3ece5; font-size: 13px; }
.purpose-image { box-shadow: 14px 14px 0 #d5dfd5; }.purpose-image img { filter: saturate(.88); }
.program-card { transition: transform .24s ease, box-shadow .24s ease; }.program-card:hover { position: relative; z-index: 1; transform: translateY(-5px); box-shadow: 0 12px 28px rgba(16,46,37,.12); }.program-card a { margin-top: 24px; color: var(--forest); font-size: 13px; font-weight: 700; text-decoration: none; }.program-card.featured a { color: #e0c671; }.program-card a:hover { text-decoration: underline; }
.story-grid img { transition: transform .3s ease; }.story-grid figure { overflow: hidden; }.story-grid figure:hover img { transform: scale(1.035); }

@media (max-width: 760px) {
  .program-grid, .story-grid, .purpose-content { grid-template-columns: 1fr; }
  .program-card, .program-card:nth-child(even) { border-right: 0; border-bottom: 1px solid var(--line); }
  .program-card:last-child { border-bottom: 0; }
  .story-feature { min-height: 380px; }
  .story-pair { grid-template-columns: 1fr 1fr; grid-template-rows: none; gap: 14px; }
  .story-pair figure { height: 220px; }
  .hero { padding-top: 58px; }.hero-image, .hero-image img { min-height: 350px; height: 350px; }.featured-film { padding:72px 0; }.film-grid { grid-template-columns:1fr; gap:35px; }.film-player { box-shadow:10px 10px 0 rgba(224,198,113,.2); }.impact-grid { grid-template-columns: 1fr; }.impact-grid div { min-height: auto; padding: 22px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }.impact-grid div:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
