:root { --forest:#123e2d; --green:#146b3a; --orange:#f47b32; --ink:#183329; --muted:#496156; --paper:#f6f8f4; --line:#d9e3db; --heading:"Space Grotesk",Arial,Helvetica,sans-serif; --body:"Manrope",Arial,Helvetica,sans-serif; }
*,*::before,*::after { box-sizing:border-box; }
html { overflow-y:scroll; scroll-padding-top:110px; }
body { margin:0; background:var(--paper); color:var(--ink); font:400 16px/1.75 var(--body); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4 { font-family:var(--heading); font-weight:700; line-height:1.13; letter-spacing:-.035em; margin:0 0 20px; }
h1 { font-size:clamp(42px,5.2vw,76px); }
h2 { font-size:clamp(30px,3.3vw,46px); }
h3 { font-size:24px; }
p { margin:0 0 20px; }
a { color:var(--green); text-underline-offset:4px; }
img { max-width:100%; display:block; }
button { font:inherit; }
a,button { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #956100; outline-offset:5px; }
main:focus { outline:none; }
main { padding-top:89px; }
.skip-link { position:fixed; top:8px; left:8px; z-index:200; padding:12px 20px; background:#fff; color:var(--forest); transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.wrap { width:min(1200px,calc(100% - 64px)); margin-inline:auto; }
.section { padding-block:88px; }
.section-white { background:#fff; }
.eyebrow { font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--green); margin-bottom:18px; }
.lead { font-size:clamp(18px,1.7vw,22px); line-height:1.7; color:var(--muted); max-width:660px; }
.section-heading { max-width:740px; margin-bottom:40px; }
.hero { position:relative; isolation:isolate; overflow:hidden; min-height:570px; display:flex; align-items:center; background:#e8eee7; }
.hero-image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.hero::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(248,250,246,.99) 0%,rgba(248,250,246,.94) 32%,rgba(248,250,246,.72) 55%,rgba(248,250,246,.12) 100%); }
.hero-content { padding-block:72px; }
.hero-copy { max-width:730px; }
.hero h1 { color:#283e37; }
.hero h1 span { color:var(--green); }
.hero p { color:#243e32; max-width:610px; }
.hero-home { min-height:690px; }
.hero-home h1 { font-size:clamp(42px,5.2vw,74px); max-width:800px; }
.hero-seal { width:180px; height:180px; margin-bottom:26px; }
.hero-home .eyebrow { display:flex; align-items:center; gap:10px; }
.status-dot { width:9px; height:9px; border-radius:50%; background:var(--green); flex:none; }
.actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:50px; padding:13px 24px; border:1px solid transparent; border-radius:6px; font-size:14px; font-weight:700; text-decoration:none; line-height:1.5; }
.button-primary { background:var(--orange); color:#183026; border-color:var(--orange); }
.button-primary:hover { background:#ff995b; }
.button-secondary { background:#fff; color:var(--forest); border-color:#b7cbbd; }
.button-secondary:hover { background:#eaf2eb; }
.trust-strip { background:var(--forest); color:#fff; }
.trust-inner { display:grid; grid-template-columns:repeat(3,1fr); padding-block:22px; gap:24px; }
.trust-inner p { margin:0; font-size:13px; border-right:1px solid #ffffff35; }
.trust-inner p:last-child { border:0; }
.trust-inner strong { display:block; font-family:var(--heading); font-size:20px; letter-spacing:-.02em; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.feature-image { width:100%; aspect-ratio:1.12; object-fit:cover; border-radius:18px; }
.cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.card { padding:32px; background:#fff; border:1px solid var(--line); border-radius:14px; min-width:0; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.card-number { display:inline-flex; background:#eaf2eb; color:var(--green); border-radius:6px; padding:6px 12px; font-size:13px; font-weight:700; margin-bottom:26px; }
.card p { color:var(--muted); }
.card:focus-within { border-color:var(--orange); box-shadow:0 12px 28px #123e2d14; }
@media (hover:hover) and (pointer:fine) {
 .card:hover { transform:translateY(-5px); border-color:var(--orange); box-shadow:0 12px 28px #123e2d14; }
}
.card ul { padding-left:20px; color:var(--muted); }
.price { font:700 28px/1.3 var(--heading); color:var(--forest)!important; }
.price small { font:400 14px var(--body); }
.impact-band { background:var(--forest); color:#fff; }
.impact-band h2,.impact-band h3,.impact-band p { color:#fff; }
.impact-band .eyebrow { color:#ffc79e; }
.impact-stat { padding:40px; background:#ffffff0c; border:1px solid #ffffff35; border-radius:14px; }
.impact-stat strong { display:block; font:700 72px/1 var(--heading); margin-bottom:24px; }
.team-list { display:grid; gap:30px; }
.team-card { display:grid; grid-template-columns:230px 1fr; gap:36px; padding:30px; background:#fff; border:1px solid var(--line); border-radius:16px; align-items:start; }
.team-card img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:10px; }
.team-card p { color:var(--muted); margin-bottom:0; }
.image-callout { position:relative; isolation:isolate; overflow:hidden; padding-block:80px; color:#fff; }
.image-callout > img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; }
.image-callout::before { content:""; position:absolute; z-index:-1; inset:0; background:#082d24e8; }
.image-callout h2,.image-callout p { color:#fff; max-width:680px; }
.page-intro { padding-block:64px 40px; }
.page-intro h1 { max-width:950px; }
.resource-list { display:grid; gap:14px; }
.resource-list a { display:block; background:#fff; padding:18px 22px; border:1px solid var(--line); border-radius:8px; font-weight:700; text-decoration:none; }
.resource-list a:hover { border-color:var(--green); }
.zone-map { background:white; padding:20px; border:1px solid var(--line); border-radius:16px; margin:0; }
.zone-map img { width:100%; height:auto; }
.zone-map figcaption { font-size:13px; color:var(--muted); margin-top:16px; }
.check-list { padding-left:24px; color:var(--muted); }
.check-list li { padding-bottom:10px; }
.donation-note { margin-top:28px; font-size:14px; color:var(--muted); }
givebutter-widget { display:block; min-height:54px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.gallery-card { margin:0; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#fff; }
.gallery-card img { width:100%; height:290px; object-fit:cover; }
.gallery-card figcaption { padding:18px 22px; color:var(--forest); font-weight:700; font-size:14px; }
.members-main { padding-top:145px; }
.fdf-header-inner { height:88px; }
.fdf-footer a { line-height:1.8; }
@media (max-width:1199px) { main { padding-top:81px; } .fdf-header-inner { height:80px; } }
@media (max-width:900px) { .split { gap:36px; } .cards { grid-template-columns:1fr; } .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .hero::before { background:linear-gradient(90deg,#f8faf6f5,#f8faf6d9 60%,#f8faf68c); } }
@media (max-width:650px) {
 .wrap { width:calc(100% - 40px); }
 .section { padding-block:56px; }
 .hero,.hero-home { min-height:0; }
 .hero-content { padding-block:48px; }
 .hero-home h1 { font-size:42px; }
 .hero-copy { max-width:100%; }
 .hero::before { background:#f8faf6e8; }
 .hero-seal { width:132px; height:132px; }
 .trust-inner { grid-template-columns:1fr; gap:14px; }
 .trust-inner p { border-right:0; border-bottom:1px solid #ffffff35; padding-bottom:14px; }
 .trust-inner p:last-child { padding-bottom:0; }
 .trust-inner strong { display:inline; margin-right:8px; font-size:18px; }
 .split,.team-card,.gallery-grid { grid-template-columns:1fr; }
 .team-card { padding:24px; gap:24px; }
 .team-card img { max-width:240px; }
 .card { padding:26px; }
 .page-intro { padding-block:46px 26px; }
 .image-callout { padding-block:56px; }
 .impact-stat { padding:28px; }
 .button { width:100%; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .card:hover { transform:none; } }

.directory-cta { background: #eaf3f8; border-top: 1px solid #cbdfe9; }
.directory-cta-image { display: block; width: 100%; height: auto; border-radius: 16px; box-shadow: 0 12px 30px #102e451a; }
.directory-cta .button { white-space: normal; }

.site-faq { padding: 40px 0 56px; }
.site-faq .wrap { max-width: 1000px; }
.site-faq h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
.site-faq details { padding: 16px 0; border-bottom: 1px solid #b8c9be; }
.site-faq summary { cursor: pointer; color: #123e2d; font-weight: 700; min-height: 44px; }
.site-faq details p { margin: 8px 0 0; }
.feature-image { height: auto; }
