/* Grabba Leaf Foundation site styles */
:root{
  --ink:#211D18; --ink-2:#4C4437; --muted:#6B6052; --muted-2:#7B6F5D;
  --cream:#FBF6EE; --sand:#F4EADA; --line:#E5DACA; --line-2:#E9DECD;
  --red:#D6372B; --red-dk:#B82C21; --green:#2E7A45; --green-dk:#25643A; --gold:#EFB421; --gold-ink:#8A6208;
  --maxw:1180px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--cream);color:var(--ink);font-family:Karla,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--green);text-decoration:none}
a:hover{color:var(--red)}
h1,h2,h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;letter-spacing:-.02em;margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.wrap-md{max-width:1000px;margin:0 auto;padding:0 24px}
.wrap-sm{max-width:880px;margin:0 auto;padding:0 24px}
.prose{max-width:720px;margin:0 auto;padding:0 24px}
.script{font-family:Caveat,cursive;font-weight:600}
.mono{font-family:ui-monospace,Menlo,monospace}
.eyebrow{font:700 11px ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}

/* header */
.site-head{position:sticky;top:0;z-index:50;background:var(--cream);border-bottom:1px solid var(--line)}
.head-in{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:14px 24px;max-width:var(--maxw);margin:0 auto}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:52px;width:auto;display:block}
@media (max-width:520px){.brand img{height:42px}}
.brand-name{display:flex;flex-direction:column;line-height:1.05}
.brand-name b{font:800 15px "Bricolage Grotesque",system-ui,sans-serif;color:var(--ink)}
.brand-name span{font:500 13px "Bricolage Grotesque",system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--green)}
.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}
.nav a.navlink,.nav button.navlink{padding:10px 14px;border:0;background:none;border-radius:999px;font:500 15px Karla,sans-serif;color:#3D3529;display:flex;align-items:center;gap:7px;cursor:pointer}
.nav a.navlink:hover,.nav button.navlink:hover{background:#F1E6D6;color:var(--ink)}
.nav .caret{font-size:9px;color:#9C8F79}
.has-menu{position:relative}
.menu{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(33,29,24,.14);padding:8px;display:none;flex-direction:column}
.menu.open{display:flex}
.menu-wide{min-width:320px;max-width:min(320px,calc(100vw - 32px))}
.menu a{padding:11px 13px;border-radius:10px;color:var(--ink);display:block;font:500 15px Karla,sans-serif}
.menu a:hover{background:#F6EFE3;color:var(--ink)}
.menu a b{display:block;font:700 15px Karla,sans-serif}
.menu a small{display:block;font:400 13px Karla,sans-serif;color:var(--muted-2);margin-top:2px}
.menu .all{margin-top:4px;border-top:1px solid #EFE6D8;font:600 13px Karla,sans-serif;color:var(--green)}

/* hero (home) */
.hero{position:relative;background:var(--ink);color:var(--cream);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(112deg,rgba(255,255,255,.045) 0 14px,rgba(255,255,255,0) 14px 28px)}
.hero-in{position:relative;max-width:var(--maxw);margin:0 auto;padding:76px 24px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px;align-items:end}
.hero-copy{padding-bottom:76px}
.hero h1{margin:10px 0 22px;font-size:clamp(40px,5.4vw,68px);line-height:1.02;font-weight:800;letter-spacing:-.025em;text-wrap:pretty}
.hero p{margin:0 0 30px;max-width:44ch;font:400 19px/1.65 Karla,sans-serif;color:#D9CFBF;text-wrap:pretty}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.btn{padding:15px 26px;border-radius:999px;font:700 16px Karla,sans-serif}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:#FFC93C;color:var(--ink)}
.btn-ghost{border:1px solid rgba(251,246,238,.35);color:var(--cream)}
.btn-ghost:hover{background:rgba(251,246,238,.1);color:#fff}
.btn-green{background:var(--green);color:#F4FBF6}
.btn-green:hover{background:var(--green-dk);color:#fff}

/* photo placeholders: swap .ph for <img> */
.ph{background:repeating-linear-gradient(135deg,#EFE4D2 0 11px,#F7EFE2 11px 22px);display:flex;align-items:flex-end;padding:14px}
.ph.dark{background:repeating-linear-gradient(135deg,#3A322A 0 12px,#312A23 12px 24px)}
.ph span{font:500 11px ui-monospace,Menlo,monospace;color:var(--muted-2);background:var(--cream);padding:5px 9px;border-radius:999px}
.ph.dark span{color:var(--ink);background:var(--gold)}
.ph-hero{min-height:420px;border-radius:20px 20px 0 0;overflow:hidden;padding:18px}
.ph-wide{aspect-ratio:16/8;border-radius:20px;border:1px solid var(--line)}
.ph-43{aspect-ratio:4/3}
.ph-32{aspect-ratio:3/2}
.ph-sq{aspect-ratio:1;border-radius:14px;padding:12px}

/* stats band */
.band{background:var(--green);color:#F4FBF6}
.band-in{max-width:var(--maxw);margin:0 auto;padding:34px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:26px}
.band b{display:block;font:800 40px "Bricolage Grotesque",system-ui,sans-serif}
.band span{font:500 15px Karla,sans-serif;color:#CFE8D9}

/* sections + cards */
.sec{max-width:var(--maxw);margin:0 auto;padding:84px 24px 20px}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:34px}
.sec-head h2{font-size:clamp(28px,3.4vw,42px);line-height:1.08;font-weight:700}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:26px}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-2);border-radius:18px;overflow:hidden;color:var(--ink)}
.card:hover{border-color:var(--red);color:var(--ink)}
.card-body{padding:22px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body h3{font-size:22px;line-height:1.2;font-weight:700}
.card-body p{margin:0;font:400 16px/1.6 Karla,sans-serif;color:var(--muted)}
.card-kicker{font:700 11px ui-monospace,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.card-more{margin-top:auto;font:700 15px Karla,sans-serif;color:var(--green)}

/* partner promo */
.promo{background:var(--sand);border-radius:22px;padding:44px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px;align-items:center}
.promo h2{margin:6px 0 14px;font-size:clamp(26px,3vw,36px);line-height:1.1;font-weight:700}
.promo p{margin:0 0 22px;font:400 17px/1.65 Karla,sans-serif;color:#5F5546;max-width:46ch}
.plist{display:grid;gap:16px}
.prow{background:#fff;border-radius:14px;padding:22px;display:flex;align-items:center;gap:18px}
.prow .mark{width:64px;height:64px;flex:none;border-radius:12px;background:repeating-linear-gradient(135deg,#EFE4D2 0 8px,#F7EFE2 8px 16px)}
.prow b{display:block;font:700 18px "Bricolage Grotesque",system-ui,sans-serif}
.prow span{font:400 15px Karla,sans-serif;color:var(--muted-2)}

/* page heads */
.phead{background:var(--cream);border-bottom:1px solid var(--line)}
.phead-in{padding:76px 24px 50px}
.phead h1{margin:18px 0 12px;font-size:clamp(32px,4.4vw,54px);line-height:1.07;font-weight:700;text-wrap:pretty}
.phead p{margin:0;max-width:56ch;font:400 19px/1.6 Karla,sans-serif;color:var(--muted)}
.phead-dark{background:var(--ink);color:var(--cream)}
.phead-dark .eyebrow{color:var(--gold)}
.phead-green{background:var(--green);color:#F4FBF6}
.phead-green .eyebrow{color:#F4FBF6}
.phead-green p{color:#EAF5EE}
.phead-sand{background:var(--sand)}
.back{font:600 14px Karla,sans-serif;color:var(--muted-2)}
.phead-dark .back,.phead-green .back{color:#B8AB96}
.phead-dark .back:hover,.phead-green .back:hover{color:#fff}
.pull-up{margin-top:-40px}

/* mission + editorial */
.mission{background:var(--sand);border-left:4px solid var(--green);border-radius:0 18px 18px 0;padding:34px 36px}
.mission p{margin:14px 0 0;font:400 clamp(19px,2.2vw,25px)/1.5 Karla,sans-serif;color:#2E2822;text-wrap:pretty}
.label{font:700 11px ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.cols-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px}
.cols-3 h2{margin:0 0 10px;font-size:22px;font-weight:700}
.cols-3 p{margin:0;font:400 17px/1.65 Karla,sans-serif;color:var(--muted)}
article.body p{font:400 19px/1.75 Karla,sans-serif;color:var(--ink-2);margin:0 0 22px}
article.body p.lead{font-size:21px;line-height:1.65;color:#2E2822}
blockquote{margin:32px 0;padding:26px 30px;background:var(--ink);color:var(--cream);border-radius:18px;font:400 22px/1.5 Karla,sans-serif}
.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.figures b{display:block;font:800 30px "Bricolage Grotesque",system-ui,sans-serif;color:var(--red)}
.figures span{font:400 14px Karla,sans-serif;color:var(--muted-2)}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px}
.aside{background:var(--sand);border-radius:18px;padding:28px;align-self:start}
.aside .row{margin-top:14px}
.aside .row small{display:block;font:400 13px Karla,sans-serif;color:var(--muted-2)}
.aside .row b{font:700 18px Karla,sans-serif}
.tile{background:#fff;border:1px solid var(--line-2);border-radius:16px;padding:24px}
.tile b{font:700 19px "Bricolage Grotesque",system-ui,sans-serif}
.tile p{margin:8px 0 0;font:400 16px/1.6 Karla,sans-serif;color:var(--muted)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.next{display:block;background:var(--sand);border-radius:18px;padding:30px;color:var(--ink)}
.next:hover{background:#EFE3D0;color:var(--ink)}
.next b{display:block;font:700 24px/1.2 "Bricolage Grotesque",system-ui,sans-serif;margin:4px 0 8px}
.next p{margin:0;font:400 16px/1.6 Karla,sans-serif;color:var(--muted)}
.partner-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0;background:#fff;border:1px solid var(--line-2);border-radius:20px;overflow:hidden}
.partner-card.dark{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.partner-card .pc-body{padding:40px}
.partner-card h2{margin:10px 0 14px;font-size:clamp(24px,2.8vw,34px);line-height:1.12;font-weight:700}
.partner-card p{margin:0 0 18px;font:400 17px/1.65 Karla,sans-serif;color:var(--muted)}
.partner-card.dark p{color:#CDC2B1}
.partner-card .pc-ph{min-height:300px;padding:16px}
.pc-figures{display:flex;flex-wrap:wrap;gap:22px;padding:18px 0;border-top:1px solid #EFE6D8;border-bottom:1px solid #EFE6D8;margin-bottom:20px}
.pc-figures b{display:block;font:800 26px "Bricolage Grotesque",system-ui,sans-serif;color:var(--red)}
.pc-figures span{font:400 14px Karla,sans-serif;color:var(--muted-2)}
.gold-link{font:700 16px Karla,sans-serif;color:var(--gold)}
.gold-link:hover{color:#FFC93C}

/* footer */
.site-foot{background:var(--ink);color:#CDC2B1;margin-top:40px}
.foot-in{max-width:var(--maxw);margin:0 auto;padding:56px 24px 30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px}
.site-foot img{height:auto;width:min(260px,100%);display:block;margin-bottom:18px;background:#FBF6EE;border-radius:12px;padding:12px}
.site-foot p{margin:0;font:400 15px/1.6 Karla,sans-serif;max-width:32ch}
.foot-title{font:700 12px ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:#8A7C66;margin-bottom:14px}
.foot-col{display:flex;flex-direction:column;gap:9px}
.foot-col a{font:500 16px Karla,sans-serif;color:#EDE4D6}
.foot-col a:hover{color:var(--gold)}
.foot-col span{font:400 16px Karla,sans-serif;color:#8A7C66}
.foot-base{max-width:var(--maxw);margin:0 auto;padding:18px 24px 40px;border-top:1px solid #332C24;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font:400 14px Karla,sans-serif;color:#8A7C66}
@media print{.site-head{position:static}}

/* single-page anchors */
section[id],article[id]{scroll-margin-top:96px}
html{scroll-behavior:smooth}
.rule{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.rule hr{border:0;border-top:1px solid var(--line);margin:0}
.sec-label{font:700 11px ui-monospace,Menlo,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:14px}
.proj{padding:64px 0;border-top:1px solid var(--line)}
.proj-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:36px;align-items:start}
.proj-head h3{font-size:clamp(26px,3.2vw,40px);line-height:1.08;font-weight:700;text-wrap:pretty}
.proj-head .kicker{font:700 11px ui-monospace,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--green);display:block;margin-bottom:10px}
.proj-head p{margin:14px 0 0;font:400 18px/1.7 Karla,sans-serif;color:var(--ink-2)}

/* tagline */
.tagline{font:700 14px Karla,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 20px}
.foot-tagline{margin:0 0 12px;font-size:12px;letter-spacing:.2em}


/* real photos */
.photo{overflow:hidden;background:#EFE4D2;display:block}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.ph-hero.photo{min-height:420px;padding:0;border-radius:20px}
.photo.pc-ph{min-height:300px;padding:0}
.photo.ph-sq{aspect-ratio:1;border-radius:14px;padding:0}

/* hero image vertically centered in the hero */
.ph-hero.photo{align-self:center;margin:0 0 76px}
.ph-hero.photo img{object-position:center center}
@media (max-width:820px){.ph-hero.photo{margin-bottom:40px}}

/* hero photo keeps the group shot uncropped */
.ph-hero.photo{aspect-ratio:1400/1089;min-height:0}
@media (max-width:820px){.ph-hero.photo{aspect-ratio:4/3}}

/* captioned figure */
.figure{margin:0}
.figure figcaption{margin-top:12px;font:400 15px Karla,sans-serif;color:var(--muted-2)}

/* partner logo plate */
.partner-card .logo-plate{display:flex;align-items:center;justify-content:center;background:#FBF6EE;padding:40px}
.partner-card .logo-plate img{width:min(150px,55%);height:auto;display:block}

/* horizontal lockup sits a touch taller */
.brand img{height:56px}
@media (max-width:520px){.brand img{height:40px}}
.site-foot img{width:min(300px,100%)}

/* mobile hamburger menu */
.hamburger{display:none;margin-left:auto;width:48px;height:48px;border:1px solid var(--line);border-radius:12px;background:var(--cream);flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.hamburger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:860px){
  .head-in{gap:12px;padding:12px 20px}
  .hamburger{display:flex}
  .nav{display:none;order:3;width:100%;margin-left:0;flex-direction:column;align-items:stretch;gap:2px;padding:10px 0 6px;border-top:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a.navlink,.nav button.navlink{width:100%;min-height:48px;border-radius:12px;font-size:17px;justify-content:space-between}
  .has-menu{position:static}
  .menu,.menu.open{display:flex;position:static;border:0;box-shadow:none;background:transparent;padding:0 0 8px 10px;min-width:0;max-width:none}
  .menu a{min-height:44px;display:flex;flex-direction:column;justify-content:center}
  .nav .caret{display:none}
}


/* sponsor logo list */
.sponsor-lede{margin:44px 0 18px;font:700 13px Karla,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.sponsor-logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.sponsor-logo{background:#fff;border:1px solid var(--line-2);border-radius:16px;min-height:150px;display:flex;align-items:center;justify-content:center;padding:26px}
.sponsor-logo img{max-width:100%;max-height:96px;width:auto;height:auto;object-fit:contain;display:block}
.sponsor-cta{margin:26px 0 0}

/* video facade */
.video-facade{cursor:pointer}
.video-facade .play-btn{position:absolute;inset:0;margin:auto;width:68px;height:48px;padding:0;border:0;background:none;cursor:pointer}
.video-facade:hover .play-btn rect{fill:#c8102e;fill-opacity:1}
