:root {
  --blue-950: #0d3345;
  --blue-800: #105b79;
  --blue-600: #1597c8;
  --blue-100: #e7f6fb;
  --green-500: #46bd8f;
  --green-100: #e5f7ef;
  --gold-500: #d99a2b;
  --gold-100: #fff3d8;
  --orange-500: #e67e22;
  --ink: #102b39;
  --muted: #637982;
  --line: #dde9ee;
  --soft: #f4fafb;
  --white: #ffffff;
  --shadow: 0 20px 60px rgba(13, 51, 69, .12);
  --radius: 8px;
  font-family: "Segoe UI", Arial, Helvetica, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body { min-width: 0; margin: 0; color: var(--ink); background: var(--white); line-height: 1.6; overflow-x: hidden; }
body, button, input, select, textarea { font-family: "Segoe UI", Arial, Helvetica, sans-serif; }
main { width: 100%; max-width: 100%; overflow: hidden; }
img, video, iframe, embed, object { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
.site-header { position: sticky; top: 0; z-index: 50; min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 clamp(16px, 4vw, 58px); background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.brand img { width: 168px; }
.main-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 16px; font-size: 13px; font-weight: 800; }
.main-nav a { color: var(--ink); }
.main-nav a:hover, .main-nav a.active { color: var(--blue-600); }
.nav-donate { padding: 10px 14px; color: var(--white) !important; background: var(--blue-600); border-radius: 999px; }
.menu-button { display: none; width: 44px; height: 44px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.menu-button span { display: block; height: 2px; margin: 5px 8px; background: var(--ink); }
.hero { position: relative; min-height: calc(100vh - 78px); display: flex; align-items: flex-end; padding: clamp(96px, 14vw, 150px) clamp(18px, 6vw, 80px) clamp(48px, 7vw, 86px); color: var(--white); overflow: hidden; }
.hero-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.hero:after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,35,49,.92), rgba(13,91,121,.66) 52%, rgba(7,35,49,.25)); }
.hero-content { max-width: 880px; }
.eyebrow { margin: 0 0 12px; color: var(--green-500); font-size: 13px; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
.hero h1, .page-hero h1 { margin: 0; font-size: clamp(42px, 7vw, 82px); line-height: 1; letter-spacing: 0; }
.hero p:not(.eyebrow), .page-hero p:not(.eyebrow) { max-width: 760px; font-size: clamp(18px, 2vw, 23px); color: rgba(255,255,255,.9); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 18px; border: 1px solid transparent; border-radius: 999px; font-weight: 900; cursor: pointer; }
.button.primary { color: var(--white); background: var(--blue-600); }
.button.light { color: var(--ink); background: var(--white); }
.button.ghost { color: var(--white); border-color: rgba(255,255,255,.7); }
.button.outline.dark { color: var(--blue-950); background: transparent; border-color: var(--blue-600); margin-left: 10px; }
.button.small { min-height: 38px; padding: 9px 14px; font-size: 14px; color: var(--white); background: var(--blue-600); }
.button.dark { color: var(--white); background: var(--blue-950); }
.page-hero { padding: clamp(86px, 12vw, 132px) clamp(18px, 6vw, 80px); color: var(--white); background: linear-gradient(135deg, var(--blue-950), var(--blue-800)); }
.page-hero.donate { background: linear-gradient(135deg, var(--blue-950), var(--green-500)); }
.page-hero.priority { background: linear-gradient(135deg, var(--blue-950), #7a4c10); }
.section { width: 100%; max-width: 100%; padding: clamp(58px, 9vw, 108px) clamp(18px, 6vw, 80px); }
.split { display: grid; grid-template-columns: minmax(260px,.85fr) minmax(300px,1.1fr); gap: clamp(30px, 6vw, 86px); max-width: 1180px; margin: 0 auto; }
h2 { margin: 0; font-size: clamp(31px, 4.5vw, 56px); line-height: 1.05; letter-spacing: 0; }
h3 { margin: 0 0 10px; line-height: 1.18; }
h1, h2, h3, p, li, a, span, strong, dd, dt { overflow-wrap: break-word; }
.split > *, .cards > *, .project-grid > *, .news-grid > *, .program-grid > *, .values-grid > *, .two-columns > *, .team-grid > *, .partner-grid > *, .project-detail > *, .contact-layout > *, .timeline-list > *, .impact-callout > *, .donation-band > * { min-width: 0; }
.text-flow p, .project-card p, .news-card p, .program-card dd, .card p, .panel p { color: var(--muted); }
.text-link, .project-card a, .news-card a { color: var(--blue-600); font-weight: 900; }
.soft { background: var(--soft); }
.section-heading { max-width: 880px; margin: 0 auto 36px; text-align: center; }
.stats-strip { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stats-strip article { padding: 28px clamp(16px,4vw,48px); border-right: 1px solid var(--line); }
.stats-strip article:last-child { border-right: 0; }
.stats-strip strong { display: block; color: var(--blue-600); font-size: clamp(30px, 4vw, 52px); line-height: 1; }
.stats-strip span { color: var(--muted); font-weight: 800; }
.stats-strip.large { background: var(--soft); }
.cards, .project-grid, .news-grid, .program-grid, .values-grid, .two-columns, .team-grid, .partner-grid { display: grid; gap: 22px; max-width: 1180px; margin: 0 auto; }
.cards.six, .program-grid { grid-template-columns: repeat(3,1fr); }
.cards.four { grid-template-columns: repeat(4,1fr); }
.values-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.card, .program-card, .panel, .values-grid article { padding: 26px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 30px rgba(13,51,69,.06); }
.card h3, .program-card h2 { color: var(--blue-950); }
.program-card h2, .news-card h2, .project-body h2 { font-size: clamp(22px, 2.4vw, 32px); }
.project-grid, .news-grid { grid-template-columns: repeat(3,1fr); }
.project-card, .news-card, .project-detail { overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.project-card img, .news-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: center 38%; }
.project-card div, .news-card div { padding: 22px; }
.news-card[hidden] { display: none; }
.badge { display: inline-flex; margin-bottom: 12px; padding: 5px 10px; border-radius: 999px; font-size: 12px; font-weight: 900; }
.badge.done { color: #0e6d48; background: #dff6ec; }
.badge.progress { color: #0c5a77; background: #dff2f8; }
.badge.future { color: #7a4c10; background: #fff0d7; }
.badge.funding { color: #96420c; background: #ffe7d6; }
.impact-callout, .donation-band { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: clamp(48px, 7vw, 86px) clamp(18px, 6vw, 80px); color: var(--white); background: linear-gradient(135deg, var(--blue-950), var(--blue-600)); }
.impact-callout p, .donation-band p { max-width: 760px; color: rgba(255,255,255,.82); }
.donation-band { background: linear-gradient(135deg, var(--blue-800), var(--green-500)); }
.team-grid { grid-template-columns: repeat(4, 1fr); }
.team-card {
  min-height: 190px;
  padding: 22px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 8px 30px rgba(13,51,69,.06);
}
.team-card.leader { border-top: 5px solid var(--gold-500); }
.avatar {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  color: var(--white);
  background: linear-gradient(135deg, var(--blue-600), var(--green-500));
  border-radius: 50%;
  font-weight: 900;
}
.team-photo {
  width: 84px;
  height: 84px;
  margin-bottom: 18px;
  object-fit: cover;
  object-position: center;
  border: 4px solid var(--white);
  border-radius: 50%;
  box-shadow: 0 8px 24px rgba(13,51,69,.18);
}
.team-card h3 { font-size: 18px; }
.team-card p { margin: 0; color: var(--muted); }
.partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.partner-card {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 18px;
  align-items: center;
  padding: 24px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 8px 30px rgba(13,51,69,.06);
}
.partner-mark {
  width: 80px;
  height: 80px;
  display: grid;
  place-items: center;
  color: var(--white);
  background: var(--blue-600);
  border-radius: 50%;
  font-weight: 900;
}
.partner-mark.gold { background: var(--gold-500); }
.partner-card p { margin: 0; color: var(--muted); }
.partner-logo {
  width: 100%;
  max-width: 112px;
  max-height: 78px;
  object-fit: contain;
  padding: 12px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.program-card dl { display: grid; gap: 8px; margin: 18px 0 22px; }
.card-cover { width: calc(100% + 52px); max-width: none; margin: -26px -26px 22px; aspect-ratio: 16 / 10; object-fit: cover; }
.program-card dt { color: var(--blue-600); font-weight: 900; }
.program-card dd { margin: 0 0 8px; }
.filter-bar { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 34px; }
.filter-bar button { padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--ink); font-weight: 900; cursor: pointer; }
.filter-bar button.active { color: var(--white); background: var(--blue-600); border-color: var(--blue-600); }
.project-list { display: grid; gap: 24px; max-width: 1120px; margin: 0 auto; }
.project-detail { display: grid; grid-template-columns: 340px 1fr; }
.project-detail img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; }
.project-detail div { padding: 28px; }
.project-detail ul { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px 18px; padding: 0; margin: 14px 0; list-style: none; color: var(--muted); }
.chart-list { display: grid; gap: 22px; }
.chart-row { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.chart-top { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 10px; font-weight: 900; }
.chart-track { height: 14px; overflow: hidden; background: var(--soft); border-radius: 999px; }
.chart-track span { display: block; height: 100%; background: linear-gradient(90deg, var(--blue-600), var(--green-500)); border-radius: inherit; }
.chart-row small { color: var(--muted); }
.timeline-list { display: grid; gap: 16px; max-width: 960px; margin: 0 auto; }
.timeline-list article { display: grid; grid-template-columns: 92px 1fr; gap: 18px; padding: 20px; border-left: 4px solid var(--green-500); background: var(--soft); border-radius: var(--radius); }
.timeline-list strong { color: var(--blue-600); font-size: 26px; }
.two-columns { grid-template-columns: repeat(2,1fr); }
.info-box { padding: 36px; background: var(--soft); border-radius: var(--radius); }
.contact-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(30px,6vw,80px); max-width: 1120px; margin: 0 auto; }
.contact-details ul { display: grid; gap: 16px; padding: 0; margin: 24px 0 0; list-style: none; }
.contact-details li { display: grid; gap: 4px; padding-bottom: 14px; border-bottom: 1px solid var(--line); color: var(--muted); }
.contact-details b { color: var(--blue-950); }
.social-links { display: flex; flex-wrap: wrap; gap: 10px; }
.social-links a {
  display: inline-flex;
  padding: 7px 10px;
  color: var(--white);
  background: var(--blue-600);
  border-radius: 999px;
  font-weight: 900;
}
.contact-form { display: grid; gap: 16px; padding: 28px; background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius); }
.contact-form label { display: grid; gap: 8px; font-weight: 900; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: 13px 14px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); background: var(--white); font: inherit; }
.form-note { margin: 0; color: var(--muted); font-size: 14px; }
.site-footer { padding: 56px clamp(18px, 6vw, 80px) 26px; color: var(--white); background: var(--blue-950); }
.footer-inner { display: grid; grid-template-columns: 1.25fr .8fr 1fr 1.15fr; gap: clamp(26px, 4vw, 54px); max-width: 1180px; margin: 0 auto; text-align: left; }
.footer-brand { display: grid; gap: 16px; align-content: start; }
.footer-brand img { width: 178px; background: var(--white); border-radius: var(--radius); }
.site-footer h3 { margin: 0 0 12px; color: var(--white); }
.site-footer p { margin: 0; color: rgba(255,255,255,.78); }
.site-footer nav { display: grid; gap: 8px; }
.site-footer a { color: rgba(255,255,255,.86); font-weight: 800; }
.footer-socials { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.footer-socials a { padding: 6px 9px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; }
.footer-bottom { max-width: 1180px; margin: 34px auto 0; padding-top: 18px; color: rgba(255,255,255,.65); border-top: 1px solid rgba(255,255,255,.16); text-align: left; }
@media (max-width: 1040px) {
  .menu-button { display: block; }
  .main-nav { position: absolute; top: 77px; left: 0; right: 0; display: none; align-items: stretch; flex-direction: column; gap: 0; padding: 12px 18px 18px; background: var(--white); border-bottom: 1px solid var(--line); }
  .main-nav.is-open { display: flex; }
  .main-nav a { padding: 11px 0; }
  .nav-donate { padding: 12px 16px !important; text-align: center; }
  .split, .contact-layout { grid-template-columns: 1fr; }
  .cards.six, .program-grid, .project-grid, .news-grid, .team-grid { grid-template-columns: repeat(2,1fr); }
  .cards.four, .stats-strip { grid-template-columns: repeat(2,1fr); }
  .project-detail { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .brand img { width: 142px; }
  .hero { min-height: 740px; }
  .hero-actions .button, .donation-band .button, .impact-callout .button, .page-hero .button { width: 100%; }
  .cards.six, .cards.four, .program-grid, .project-grid, .news-grid, .two-columns, .stats-strip, .team-grid, .partner-grid { grid-template-columns: 1fr; }
  .partner-card { grid-template-columns: 1fr; }
  .stats-strip article { border-right: 0; border-bottom: 1px solid var(--line); }
  .impact-callout, .donation-band { align-items: stretch; flex-direction: column; }
  .project-detail ul { grid-template-columns: 1fr; }
  .timeline-list article { grid-template-columns: 1fr; }
  .button.outline.dark { margin-left: 0; margin-top: 10px; }
}

.section.lead-section { padding-top: clamp(42px, 6vw, 72px); padding-bottom: clamp(42px, 6vw, 72px); }
.lead-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(26px, 5vw, 68px); align-items: center; max-width: 1180px; margin: 0 auto; }
.lead-grid figure { margin: 0; overflow: hidden; border-radius: var(--radius); box-shadow: var(--shadow); }
.lead-grid img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; }
.lead-grid p { color: var(--muted); }

.logo-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: 900px; margin: 28px auto 0; }
.logo-card { display: grid; grid-template-columns: 132px 1fr; gap: 18px; align-items: center; padding: 22px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 10px 30px rgba(13,51,69,.06); }
.logo-card img { width: 120px; max-height: 76px; object-fit: contain; }
.logo-card h3 { margin: 0 0 4px; font-size: 19px; color: var(--blue-950); }
.logo-card p { margin: 0; color: var(--muted); }

.project-hero { position: relative; overflow: hidden; background: linear-gradient(120deg, rgba(13,51,69,.94), rgba(16,91,121,.76)), url("../images/projects/mushie/classe-2.jpeg") center / cover; }
.project-hero h1 { max-width: 900px; }
.project-hero p:not(.eyebrow) { max-width: 820px; }
.project-toolbar { max-width: 1180px; margin: 0 auto 28px; }
.filter-bar.project-filters { justify-content: flex-start; margin-bottom: 18px; }
.filter-summary { color: var(--muted); font-weight: 700; }
.project-showcase-list { display: grid; gap: 24px; max-width: 1180px; margin: 0 auto; }
.project-showcase-card { display: grid; grid-template-columns: minmax(280px, .86fr) minmax(0, 1.14fr); overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.project-showcase-card[hidden] { display: none; }
.project-media { position: relative; min-height: 320px; background: var(--blue-100); }
.project-media img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; }
.project-body { display: grid; gap: 14px; align-content: center; padding: clamp(24px, 4vw, 38px); }
.project-body h2 { font-size: clamp(26px, 3vw, 40px); }
.project-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 4px 0; }
.project-kpis span { display: grid; gap: 2px; padding: 12px; background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius); color: var(--muted); font-size: 13px; font-weight: 700; }
.project-kpis b { color: var(--blue-950); font-size: 17px; }
.project-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.project-actions .button.outline.dark { margin-left: 0; }
.filter-empty { max-width: 780px; margin: 18px auto 0; padding: 18px; color: var(--muted); text-align: center; background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius); }
.mini-meta { margin: 0; color: var(--blue-600); font-size: 13px; font-weight: 900; text-transform: uppercase; }
.progress-block { display: grid; gap: 8px; }
.progress-top { display: flex; justify-content: space-between; gap: 16px; color: var(--muted); font-size: 14px; font-weight: 900; }
.progress-track { height: 11px; overflow: hidden; background: var(--soft); border-radius: 999px; }
.progress-track span { display: block; height: 100%; background: linear-gradient(90deg, var(--blue-600), var(--green-500)); border-radius: inherit; }
.quick-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; max-width: 1180px; margin: 0 auto; }
.quick-card { padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 28px rgba(13,51,69,.06); }
.quick-card strong { display: block; color: var(--blue-600); font-size: 28px; line-height: 1; }
.method-list { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; max-width: 1180px; margin: 0 auto; counter-reset: steps; }
.method-list article { padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 28px rgba(13,51,69,.06); counter-increment: steps; }
.method-list article:before { content: counter(steps, decimal-leading-zero); display: inline-flex; margin-bottom: 16px; color: var(--blue-600); font-size: 22px; font-weight: 900; }
.info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; max-width: 1180px; margin: 0 auto; }
.info-card { padding: 22px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 28px rgba(13,51,69,.06); }
.info-card strong { color: var(--blue-600); }

.detail-hero { position: relative; min-height: 520px; display: flex; align-items: flex-end; padding: clamp(96px, 13vw, 150px) clamp(18px, 6vw, 80px) clamp(46px, 7vw, 78px); color: var(--white); overflow: hidden; }
.detail-hero img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.detail-hero:after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,35,49,.94), rgba(13,91,121,.64) 58%, rgba(7,35,49,.28)); }
.detail-hero-content { max-width: 920px; }
.detail-hero h1 { margin: 0; font-size: clamp(40px, 6vw, 74px); line-height: 1; }
.detail-hero p:not(.eyebrow) { max-width: 760px; color: rgba(255,255,255,.88); font-size: clamp(18px, 2vw, 22px); }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(28px, 5vw, 64px); max-width: 1180px; margin: 0 auto; align-items: start; }
.detail-content { display: grid; gap: 24px; }
.detail-content p { color: var(--muted); }
.detail-sidebar { position: sticky; top: 104px; display: grid; gap: 14px; padding: 22px; background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius); }
.detail-sidebar h2 { font-size: 24px; }
.fact-list { display: grid; gap: 10px; padding: 0; margin: 0; list-style: none; }
.fact-list li { display: grid; gap: 2px; padding-bottom: 10px; border-bottom: 1px solid var(--line); color: var(--muted); }
.fact-list b { color: var(--blue-950); }
.detail-facts strong { font-size: clamp(20px, 2.4vw, 30px); }
.detail-actions { display: grid; gap: 10px; }
.detail-actions .button.outline.dark { margin-left: 0; }
.check-list { display: grid; gap: 12px; padding: 0; margin: 18px 0 0; list-style: none; }
.check-list li { position: relative; padding-left: 28px; color: var(--muted); }
.check-list li:before { content: ""; position: absolute; left: 0; top: .58em; width: 10px; height: 10px; background: var(--green-500); border-radius: 50%; box-shadow: 0 0 0 5px var(--green-100); }
.detail-gallery { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 14px; max-width: 1180px; margin: 0 auto; }
.detail-gallery img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; border-radius: var(--radius); box-shadow: 0 10px 34px rgba(13,51,69,.1); }
.detail-gallery img:first-child { grid-row: span 2; min-height: 454px; }
.rich-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  max-width: 1180px;
  margin: 28px auto 0;
}
.rich-gallery figure {
  min-height: 180px;
  margin: 0;
  overflow: hidden;
  background: var(--soft);
  border-radius: var(--radius);
  box-shadow: 0 8px 26px rgba(13,51,69,.08);
}
.rich-gallery img {
  width: 100%;
  height: 100%;
  min-height: 180px;
  object-fit: cover;
  transition: transform .28s ease;
}
.rich-gallery figure:hover img { transform: scale(1.04); }
.rich-gallery figure:nth-child(1),
.rich-gallery figure:nth-child(10) {
  grid-column: span 2;
  grid-row: span 2;
}
.rich-gallery figure:nth-child(1) img,
.rich-gallery figure:nth-child(10) img { min-height: 372px; }
.gallery-intro { max-width: 760px; margin: -18px auto 0; color: var(--muted); text-align: center; }
.gallery-stack { display: grid; gap: clamp(34px, 5vw, 58px); max-width: 1180px; margin: 0 auto; }
.gallery-stack h3 { margin-bottom: 14px; color: var(--blue-950); font-size: clamp(22px, 2.5vw, 32px); }
.rich-gallery.compact { margin-top: 0; }
.rich-gallery.compact figure { min-height: 150px; }
.rich-gallery.compact img { min-height: 150px; }
.rich-gallery.compact figure:nth-child(1),
.rich-gallery.compact figure:nth-child(10) {
  grid-column: span 1;
  grid-row: span 1;
}
.rich-gallery.compact figure:nth-child(1) img,
.rich-gallery.compact figure:nth-child(10) img { min-height: 150px; }
.impact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.impact-grid article { padding: 20px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 26px rgba(13,51,69,.05); }
.impact-grid strong { display: block; color: var(--blue-600); font-size: 30px; line-height: 1; }
.impact-grid span { color: var(--muted); font-weight: 700; }

.program-visual-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; max-width: 1180px; margin: 34px auto 0; }
.program-visual-card { overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 10px 34px rgba(13,51,69,.08); }
.program-visual-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.program-visual-card div { padding: 20px; }
.program-visual-card h3 { color: var(--blue-950); }

@media (max-width: 1040px) {
  .lead-grid, .project-showcase-card, .detail-layout { grid-template-columns: 1fr; }
  .detail-sidebar { position: static; }
  .project-media, .project-media img { min-height: 280px; }
  .program-visual-grid, .impact-grid, .rich-gallery, .quick-grid, .method-list, .info-grid, .footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rich-gallery figure:nth-child(1),
  .rich-gallery figure:nth-child(10) { grid-column: span 1; grid-row: span 1; }
  .rich-gallery figure:nth-child(1) img,
  .rich-gallery figure:nth-child(10) img { min-height: 220px; }
}

@media (max-width: 680px) {
  .logo-strip, .logo-card, .project-kpis, .program-visual-grid, .impact-grid, .detail-gallery, .rich-gallery, .quick-grid, .method-list, .info-grid, .footer-inner { grid-template-columns: 1fr; }
  .logo-card img { width: 100%; max-width: 150px; }
  .detail-gallery img:first-child { grid-row: auto; min-height: 220px; }
  .filter-bar.project-filters { justify-content: center; }
}
