/* Open Shelf Literacy Project. Black-and-white editorial frame, full pastel colour blocks, the bookplate as the object. */
.b-nonprofits {
  --b-bg: #ffffff; --b-ink: #16130f; --b-acc: #16130f; --b-soft: #f2d4cf; --b-on: #ffffff;
  --b-d: "Zilla Slab", Georgia, serif; --b-t: "Instrument Sans", system-ui, sans-serif;
  --paper: #ffffff; --ink: #16130f; --ink-2: #4f4840; --stone: #f0f0f0; --stone-2: #e3e3e3;
  --blush: #f2d4cf; --mint: #cfe6d2; --lime: #e2edb6; --sky: #cfe0ef; --coral: #f6cdb9;
  --stamp: #1f5a9e;
  --gut: clamp(16px, 3.4vw, 48px); --max: 1280px; --r: 20px;
  --s-display: clamp(44px, 6.4vw, 104px); --s-head: clamp(30px, 3.4vw, 54px); --s-lead: clamp(20px, 1.55vw, 24px); --s-body: 18px; --s-small: 14px;
  --ease: cubic-bezier(.16, 1, .3, 1);
  font-family: var(--b-t);
}
body.b-nonprofits { background: var(--paper); color: var(--ink); font: 400 var(--s-body)/1.5 var(--b-t); caret-color: var(--ink); scrollbar-color: var(--ink) var(--stone); }
.b-nonprofits ::selection { background: var(--ink); color: var(--lime); }
.b-nonprofits :focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; border-radius: 4px; }
.b-nonprofits h1, .b-nonprofits h2, .b-nonprofits h3 { font-family: var(--b-d); font-weight: 600; letter-spacing: -.025em; line-height: 1; margin: 0; text-wrap: balance; color: inherit; }
.b-nonprofits h1 { font-size: var(--s-display); }
.b-nonprofits h2 { font-size: var(--s-head); }
.b-nonprofits h3 { font-size: var(--s-lead); letter-spacing: -.01em; line-height: 1.2; }
.b-nonprofits p { margin: 0; }
.b-nonprofits a { color: inherit; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.b-nonprofits img { display: block; max-width: 100%; height: auto; }
.b-nonprofits .np-lead { font-size: var(--s-lead); line-height: 1.4; max-width: 46ch; }
.b-nonprofits .np-fine { font-size: var(--s-small); line-height: 1.45; color: var(--ink-2); max-width: 62ch; }
.b-nonprofits .np-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.b-nonprofits .np-wrap { max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); }
.b-nonprofits ol, .b-nonprofits ul { margin: 0; padding: 0; list-style: none; }

/* buttons: pills only */
.b-nonprofits .np-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 12px 24px; border: 0; border-radius: 999px; background: var(--ink); color: var(--paper); font: 600 18px/1.2 var(--b-t); text-decoration: none; cursor: pointer; transition: transform .25s var(--ease), background-color .2s; }
.b-nonprofits .np-btn:hover { background: #3a342c; transform: translateY(-2px); }
.b-nonprofits .np-btn:active { transform: scale(.97); }
.b-nonprofits .np-btn--soft { background: var(--stone); color: var(--ink); }
.b-nonprofits .np-btn--soft:hover { background: var(--stone-2); }
.b-nonprofits .np-btn--wide { width: 100%; min-height: 58px; font-size: 18px; }
.b-nonprofits .np-btn[disabled] { opacity: .55; cursor: default; transform: none; }
.b-nonprofits .np-tl { display: inline-block; margin-top: 14px; font-weight: 600; }

/* header */
.b-nonprofits .np-bar { position: sticky; top: 0; z-index: 15; background: var(--paper); }
.b-nonprofits .np-bar__in { max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); height: 68px; display: flex; align-items: center; gap: 28px; }
.b-nonprofits .np-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-size: 22px; color: var(--ink); min-height: 44px; }
.b-nonprofits .np-mark, .np-mark { height: 1.15em; width: auto; flex: none; }
.b-nonprofits .np-word, .np-word { font-family: "Zilla Slab", Georgia, serif; font-weight: 700; letter-spacing: -.02em; line-height: 1; white-space: nowrap; }
.dm-logo--own { display: inline-flex; align-items: center; gap: .4em; }
.b-nonprofits .np-nav { display: flex; gap: 4px; margin-left: auto; }
.b-nonprofits .np-nav a, .b-nonprofits .np-menu__p a { font-size: 16px; font-weight: 500; text-decoration: none; padding: 10px 12px; border-radius: 999px; transition: background-color .2s; }
.b-nonprofits .np-nav a:hover, .b-nonprofits .np-nav a[aria-current] { background: var(--stone); }
.b-nonprofits .np-bar__act { display: flex; align-items: center; gap: 8px; }
.b-nonprofits .np-btn--give { min-height: 46px; padding: 10px 20px; }
.b-nonprofits .np-menu { position: relative; display: none; }
.b-nonprofits .np-menu summary { list-style: none; cursor: pointer; min-height: 46px; padding: 0 18px; display: inline-flex; align-items: center; border-radius: 999px; background: var(--stone); font-weight: 600; font-size: 16px; }
.b-nonprofits .np-menu summary::-webkit-details-marker { display: none; }
.b-nonprofits .np-menu__p { position: absolute; right: 0; top: calc(100% + 10px); width: min(300px, calc(100vw - 32px)); padding: 10px; background: var(--paper); border-radius: var(--r); background: var(--ink); display: grid; }
.b-nonprofits .np-menu__p a { padding: 13px 14px; color: var(--paper); }
.b-nonprofits .np-menu__p a:hover, .b-nonprofits .np-menu__p a[aria-current] { background: #3a342c; }

/* hero: the bookplate over a dim room, pinned while it settles */
.b-nonprofits .np-hero { position: relative; height: 128svh; background: var(--ink); }
.b-nonprofits .np-hero__stick { position: sticky; top: 68px; height: calc(100svh - 68px); min-height: 600px; overflow: hidden; display: grid; place-items: center; padding: 24px var(--gut); }
.b-nonprofits .np-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.62); transform: scale(1.08); transform-origin: 50% 40%; will-change: transform; }
.b-nonprofits .np-plate { position: relative; width: min(58vw, 860px); min-height: min(64%, 600px); padding: clamp(28px, 3.2vw, 48px); background: var(--paper); display: grid; grid-template-rows: auto 1fr auto; gap: 28px; text-align: center;
  clip-path: polygon(22px 0, calc(100% - 22px) 0, 100% 22px, 100% calc(100% - 22px), calc(100% - 22px) 100%, 22px 100%, 0 calc(100% - 22px), 0 22px); will-change: transform; transform-origin: 50% 30%; }
.b-nonprofits .np-plate h1 { font-size: clamp(40px, 4.7vw, 76px); }
.b-nonprofits .np-plate__facts { display: grid; gap: 18px; align-content: center; justify-items: center; }
.b-nonprofits .np-plate__facts p:first-child { font-size: var(--s-body); line-height: 1.6; }
.b-nonprofits .np-plate__sub { font-family: var(--b-d); font-weight: 500; font-size: var(--s-lead); line-height: 1.3; max-width: 30ch; padding: 12px 22px; background: var(--blush); border-radius: 999px; }
.b-nonprofits .np-plate__foot { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; font-size: var(--s-small); }
.b-nonprofits .np-plate__foot > span { text-align: left; color: var(--ink-2); }
.b-nonprofits .np-plate__foot > a:last-child { text-align: right; font-weight: 600; font-size: 16px; }

/* intro: title, note, facts row */
.b-nonprofits .np-intro { padding: clamp(80px, 10vw, 150px) 0 clamp(72px, 8vw, 120px); }
.b-nonprofits .np-intro__top { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 24px; align-items: end; }
.b-nonprofits .np-intro__top h2 { grid-column: 1 / 7; font-size: var(--s-display); font-weight: 500; }
.b-nonprofits .np-intro__top p { grid-column: 9 / 13; font-size: 18px; line-height: 1.55; }
.b-nonprofits .np-facts { margin: clamp(64px, 8vw, 120px) 0 0; display: flex; justify-content: space-between; gap: 32px; }
.b-nonprofits .np-facts dt { font-family: var(--b-d); font-weight: 500; font-size: var(--s-head); letter-spacing: -.02em; line-height: 1; font-variant-numeric: lining-nums tabular-nums; }
.b-nonprofits .np-facts dd { margin: 10px 0 0; font-size: var(--s-small); color: var(--ink-2); max-width: 22ch; }

/* colour blocks */
.b-nonprofits .np-blk { margin: clamp(40px, 6vw, 96px) var(--gut); border-radius: 28px; background: var(--blush); }
.b-nonprofits .np-blk--flush { margin-top: 0; }
.b-nonprofits .np-blk--mint { background: var(--mint); } .b-nonprofits .np-blk--lime { background: var(--lime); }
.b-nonprofits .np-blk--sky { background: var(--sky); } .b-nonprofits .np-blk--coral { background: var(--coral); }
.b-nonprofits .np-blk__in { max-width: calc(var(--max) - 2 * var(--gut)); margin: 0 auto; padding: clamp(28px, 5vw, 72px) clamp(20px, 4vw, 64px); }
.b-nonprofits .np-blk__h { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; align-items: end; margin-bottom: clamp(28px, 4vw, 48px); }

/* ---------- signature: the giving card ---------- */
.b-nonprofits .np-give { font-family: var(--b-t); color: var(--ink); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); grid-template-areas: "ctl res" "fin res" "fin more"; grid-template-rows: auto auto 1fr; gap: 0 clamp(24px, 3.4vw, 56px); align-items: start; }
.b-nonprofits.wk-sigwrap .np-give { padding: clamp(18px, 3vw, 40px); border-radius: 28px; background: var(--blush); }
.b-nonprofits .np-give__ctl { grid-area: ctl; background: var(--paper); border-radius: var(--r) var(--r) 0 0; padding: 24px 24px 8px; }
.b-nonprofits .np-give__fin { grid-area: fin; background: var(--paper); border-radius: 0 0 var(--r) var(--r); padding: 8px 24px 24px; display: grid; gap: 12px; }
.b-nonprofits .np-give__res { grid-area: res; }
.b-nonprofits .np-give__more { grid-area: more; display: grid; gap: 20px; margin-top: 20px; }
.b-nonprofits .np-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 999px; background: var(--stone); }
.b-nonprofits .np-tab, .b-nonprofits .np-amt, .b-nonprofits .np-chip { min-height: 48px; border: 0; border-radius: 999px; font: 600 18px/1 var(--b-t); color: var(--ink); background: transparent; cursor: pointer; transition: background-color .2s, color .2s, transform .2s var(--ease); }
.b-nonprofits .np-tab[aria-pressed="true"], .b-nonprofits .np-amt[aria-pressed="true"], .b-nonprofits .np-chip[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.b-nonprofits .np-amt:active, .b-nonprofits .np-chip:active, .b-nonprofits .np-tab:active { transform: scale(.95); }
.b-nonprofits .np-give__q { margin: 22px 0 10px; font-weight: 600; font-size: 16px; }
.b-nonprofits .np-amts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.b-nonprofits .np-amt { background: var(--stone); font-variant-numeric: tabular-nums; }
.b-nonprofits .np-amt:hover:not([aria-pressed="true"]) { background: var(--stone-2); }
.b-nonprofits .np-range { display: block; margin: 16px 0 6px; }
.b-nonprofits .np-range input { width: 100%; height: 44px; margin: 0; accent-color: var(--ink); cursor: pointer; }
.b-nonprofits .np-other { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 16px; padding-bottom: 14px; }
.b-nonprofits .np-other__f { display: inline-flex; align-items: center; gap: 4px; padding: 0 12px; min-height: 48px; border-radius: 12px; background: var(--stone); }
.b-nonprofits .np-other__f input { width: 5.5ch; border: 0; background: transparent; font: 600 18px var(--b-t); color: var(--ink); padding: 10px 0; -moz-appearance: textfield; }
.b-nonprofits .np-other__f input::-webkit-inner-spin-button { -webkit-appearance: none; }
.b-nonprofits .np-other__per { font-weight: 600; }
.b-nonprofits .np-upsell { margin: 0 0 14px; padding: 14px 16px; border-radius: 14px; background: var(--lime); font-size: 16px; line-height: 1.4; }
.b-nonprofits .np-upsell__b { border: 0; background: var(--ink); color: var(--paper); font: 600 16px var(--b-t); min-height: 44px; padding: 0 16px; border-radius: 999px; cursor: pointer; margin: 0 6px 6px 0; }
.b-nonprofits .np-check { display: flex; gap: 12px; align-items: flex-start; min-height: 44px; padding: 10px 0 0; font-size: 16px; line-height: 1.4; cursor: pointer; }
.b-nonprofits .np-check input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: var(--ink); }
.b-nonprofits .np-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 6px; }
.b-nonprofits .np-in { width: 100%; min-height: 50px; padding: 12px 14px; border: 1.5px solid #b9b0a5; border-radius: 12px; background: var(--paper); color: var(--ink); font: 400 18px/1.3 var(--b-t); }
.b-nonprofits .np-in:focus { outline: 3px solid var(--ink); outline-offset: 1px; border-color: var(--ink); }
.b-nonprofits .np-in::placeholder { color: #6b6359; }
.b-nonprofits textarea.np-in { resize: vertical; min-height: 96px; }
.b-nonprofits .np-give__safe { font-size: var(--s-small); color: var(--ink-2); line-height: 1.45; }
.b-nonprofits .np-give__done, .b-nonprofits .np-prev__done, .b-nonprofits .np-match__done { padding: 14px 16px; border-radius: 14px; background: var(--mint); font-size: 16px; line-height: 1.45; }
.b-nonprofits .np-give__big { font-family: var(--b-d); font-weight: 600; font-size: var(--s-head); letter-spacing: -.025em; line-height: 1.02; text-wrap: balance; }
.b-nonprofits .np-give__big [data-big] { font-variant-numeric: lining-nums tabular-nums; }
.b-nonprofits .np-give__kids { margin-top: 14px; font-size: var(--s-lead); line-height: 1.35; max-width: 34ch; }
.b-nonprofits .np-shelf { margin: 22px 0 14px; }
.b-nonprofits .np-shelf__row { height: 118px; display: flex; align-items: flex-end; gap: 4px; overflow: hidden; padding: 0 6px; }
.b-nonprofits .np-sp { flex: none; width: var(--w, 14px); height: var(--h, 80%); border-radius: 3px 3px 1px 1px; background: var(--c, var(--ink)); transform-origin: 50% 100%; transform: rotate(var(--t, 0deg)); transition: transform .5s var(--ease), opacity .3s; }
.b-nonprofits .np-sp.is-new { transform: scaleY(0); opacity: 0; }
.b-nonprofits .np-sp.is-out { transform: scaleY(0); opacity: 0; }
.b-nonprofits .np-shelf__board { height: 14px; border-radius: 4px; background: var(--ink); position: relative; }
.b-nonprofits .np-shelf__board span { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); color: var(--paper); font-size: 12px; font-weight: 600; line-height: 1; }
.b-nonprofits .np-give__basis { font-size: 16px; line-height: 1.5; max-width: 56ch; }
.b-nonprofits .np-card { background: var(--paper); border-radius: var(--r); padding: 20px 22px 22px; }
.b-nonprofits .np-card__h { font-family: var(--b-d); font-weight: 600; font-size: 22px; line-height: 1.1; margin-bottom: 14px; }
.b-nonprofits .np-card__d { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px 8px; }
.b-nonprofits .np-stamp-d { display: grid; justify-items: center; gap: 1px; padding: 8px 2px; border-radius: 10px; color: var(--stamp); background: #edf2f8; transform: rotate(var(--t, 0deg)); transition: transform .45s var(--ease), opacity .3s; font-variant-numeric: tabular-nums; }
.b-nonprofits .np-stamp-d b { font-family: var(--b-d); font-weight: 700; font-size: 22px; line-height: 1; }
.b-nonprofits .np-stamp-d span { font-size: 14px; line-height: 1.2; }
.b-nonprofits .np-stamp-d.is-thunk { transform: rotate(var(--t, 0deg)) scale(1.14); }
.b-nonprofits .np-stamp-d[hidden] { display: none; }
.b-nonprofits .np-card__once { margin-top: 12px; font-size: 16px; }
.b-nonprofits .np-drive { background: var(--paper); border-radius: var(--r); padding: 20px 22px; }
.b-nonprofits .np-drive__h { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-family: var(--b-d); font-weight: 500; font-size: 18px; }
.b-nonprofits .np-drive__h b { font-family: var(--b-d); font-weight: 600; font-size: 22px; line-height: 1.1; }
.b-nonprofits .np-drive__bar { position: relative; height: 18px; margin: 14px 0 10px; border-radius: 999px; background: var(--stone); overflow: hidden; }
.b-nonprofits .np-drive__bar i { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; transform-origin: 0 50%; transition: transform .6s var(--ease); }
.b-nonprofits .np-drive__have { background: var(--ink); transform: scaleX(var(--p, .66)); }
.b-nonprofits .np-drive__you { background: var(--stamp); transform: translateX(var(--x, 66%)) scaleX(var(--q, .01)); }
.b-nonprofits .np-drive__n { font-size: 16px; }
.b-nonprofits .np-irs { font-size: 16px; line-height: 1.5; padding: 0 4px; }

/* slips: October's books, standing along the bottom edge */
.b-nonprofits .np-slips { position: relative; min-height: 96svh; overflow: hidden; color: var(--paper); background: var(--ink); }
.b-nonprofits .np-slips__bg { position: absolute; inset: 0; }
.b-nonprofits .np-slips__bg img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.72); animation: np-drift 26s ease-in-out infinite alternate; }
@keyframes np-drift { from { transform: scale(1); } to { transform: scale(1.07) translateX(-1.5%); } }
.b-nonprofits .np-slips__copy { position: relative; margin-left: 18%; padding: clamp(56px, 8vw, 110px) 32px 32px; max-width: 40ch; display: grid; gap: 18px; font-family: var(--b-d); font-weight: 500; font-size: clamp(22px, 2vw, 30px); line-height: 1.25; }
.b-nonprofits .np-slips__copy::before { content: ""; position: absolute; inset: 0; background: rgba(12, 10, 8, .5); border-radius: 0 0 var(--r) var(--r); z-index: -1; }
.b-nonprofits .np-slips__copy b { font-weight: 700; }
.b-nonprofits .np-slips__row { position: absolute; left: var(--gut); right: var(--gut); bottom: 0; display: flex; gap: 12px; align-items: flex-end; }
.b-nonprofits .np-slip { flex: 1 1 0; min-width: 0; height: var(--h); padding: 18px 16px; background: var(--paper); color: var(--ink); border-radius: 12px 12px 0 0; transform: rotate(var(--r)); transform-origin: 50% 100%; display: flex; flex-direction: column; gap: 6px; font-size: 16px; line-height: 1.35; overflow: hidden; transition: transform .4s var(--ease); }
.b-nonprofits .np-slip:hover { transform: rotate(var(--r)) translateY(-10px); }
.b-nonprofits .np-slip > b { font-size: 16px; }
.b-nonprofits .np-slip__cut { color: var(--ink-2); letter-spacing: .05em; white-space: nowrap; overflow: hidden; }
.b-nonprofits .np-slip i { font-style: normal; font-family: var(--b-d); font-weight: 600; font-size: 22px; line-height: 1.1; }
.b-nonprofits .np-slip__d { color: var(--ink-2); }

/* ledger: decimal-aligned figures */
.b-nonprofits .np-ledger { padding: clamp(96px, 11vw, 170px) 0; }
.b-nonprofits .np-ledger--mint { background: var(--mint); }
.b-nonprofits .np-ledger__in { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; align-items: center; }
.b-nonprofits .np-ledger h2 { grid-column: 1 / 6; font-size: var(--s-head); }
.b-nonprofits .np-ledger h2 span { display: block; color: var(--ink-2); }
.b-nonprofits .np-led { grid-column: 7 / 13; display: grid; grid-template-columns: max-content max-content minmax(0, 1fr); row-gap: 36px; align-items: end; }
.b-nonprofits .np-led__r { display: contents; }
.b-nonprofits .np-led__w, .b-nonprofits .np-led__f { font-family: var(--b-d); font-weight: 600; font-size: var(--s-display); line-height: 1; letter-spacing: -.03em; font-variant-numeric: lining-nums tabular-nums; }
.b-nonprofits .np-led__w { text-align: right; }
.b-nonprofits .np-led__f { min-width: 1.4ch; }
.b-nonprofits .np-led__c { padding: 0 0 .5em 28px; font-size: 16px; line-height: 1.4; max-width: 26ch; }
.rv-on .b-nonprofits .np-led[data-rv] > *, .rv-on .np-led[data-rv] > * { opacity: 1; transform: none; }
.rv-on .np-led[data-rv] > .np-led__r > * { opacity: 0; transform: translateY(20px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.rv-on .np-led[data-rv].is-in > .np-led__r > * { opacity: 1; transform: none; }
.rv-on .np-led[data-rv].is-in > .np-led__r:nth-child(2) > * { transition-delay: 80ms; } .rv-on .np-led[data-rv].is-in > .np-led__r:nth-child(3) > * { transition-delay: 160ms; }
.rv-on .np-led[data-rv].is-in > .np-led__r:nth-child(4) > * { transition-delay: 240ms; } .rv-on .np-led[data-rv].is-in > .np-led__r:nth-child(5) > * { transition-delay: 320ms; }

/* drag row: a book's month */
.b-nonprofits .np-drag { padding: clamp(72px, 8vw, 120px) 0 clamp(80px, 9vw, 140px); background: var(--stone); }
.b-nonprofits .np-drag__top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.b-nonprofits .np-drag__top h2 { font-size: clamp(30px, 2.3vw, 32px); }
.b-nonprofits .np-drag__btns { display: flex; gap: 8px; }
.b-nonprofits .np-sq { width: 50px; height: 50px; border: 0; border-radius: 999px; background: var(--ink); color: var(--paper); display: grid; place-items: center; cursor: pointer; transition: transform .2s var(--ease), opacity .2s; }
.b-nonprofits .np-sq:hover { transform: scale(1.06); } .b-nonprofits .np-sq:disabled { opacity: .3; cursor: default; transform: none; }
.b-nonprofits .np-drag__bar { height: 6px; margin: 22px 0 36px; border-radius: 999px; background: var(--stone-2); overflow: hidden; }
.b-nonprofits .np-drag__bar i { display: block; height: 100%; background: var(--ink); transform-origin: 0 50%; transform: scaleX(var(--p, .2)); transition: transform .2s linear; }
.b-nonprofits .np-drag__row { display: flex; gap: 32px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--gut) 12px max(var(--gut), calc((100vw - var(--max)) / 2 + var(--gut))); scrollbar-width: none; overscroll-behavior-x: contain; }
.b-nonprofits .np-drag__row::-webkit-scrollbar { display: none; }
.b-nonprofits .np-mo { flex: 0 0 300px; scroll-snap-align: start; display: flex; flex-direction: column; }
.b-nonprofits .np-mo__h { font-weight: 700; font-size: 18px; }
.b-nonprofits .np-mo__t { margin-top: 8px; font-size: 16px; line-height: 1.5; color: var(--ink-2); }
.b-nonprofits .np-mo img { margin-top: var(--gap); width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r); }

/* ways to help: giant word and filled bars */
.b-nonprofits .np-ways { padding: clamp(96px, 11vw, 160px) var(--gut); }
.b-nonprofits .np-ways__col { max-width: 620px; margin: 0 auto; container-type: inline-size; }
.b-nonprofits .np-giant { font-size: 40cqw; font-weight: 700; line-height: .8; letter-spacing: -.03em; text-align: center; }
.b-nonprofits .np-ways__bars { margin-top: 22px; display: grid; gap: 6px; }
.b-nonprofits .np-bar-d { background: var(--stone); border-radius: 16px; transition: background-color .2s; }
.b-nonprofits .np-bar-d[open] { background: var(--lime); }
.b-nonprofits .np-bar-d summary { list-style: none; cursor: pointer; min-height: 58px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-weight: 600; font-size: 18px; }
.b-nonprofits .np-bar-d summary::-webkit-details-marker { display: none; }
.b-nonprofits .np-bar-d summary::after { content: "+"; font: 400 32px/1 var(--b-t); transition: transform .3s var(--ease); }
.b-nonprofits .np-bar-d[open] summary::after { transform: rotate(45deg); }
.b-nonprofits .np-bar-d ul, .b-nonprofits .np-bar-d > p { padding: 0 20px 20px; }
.b-nonprofits .np-bar-d > p { font-size: 18px; line-height: 1.55; max-width: 62ch; }
.b-nonprofits .np-bar-d li { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; font-size: 16px; }
.b-nonprofits .np-bar-d li b { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.b-nonprofits .np-bar-d .np-tl { margin: 0 20px 20px; }

/* our schools, printed on a card */
.b-nonprofits .np-guest { height: clamp(640px, 92svh, 900px); overflow: hidden; background: var(--mint); display: flex; justify-content: center; padding-top: clamp(64px, 8vw, 110px); }
.b-nonprofits .np-guest__card { width: min(56vw, 760px); aspect-ratio: 5 / 7; flex: none; padding: 56px; background: var(--paper); transform: rotate(-1.5deg); text-align: center; display: flex; flex-direction: column; gap: 26px; }
.b-nonprofits .np-guest__card h2 { font-size: 32px; }
.b-nonprofits .np-guest__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.b-nonprofits .np-guest__names { font-family: var(--b-d); font-weight: 500; font-size: 22px; line-height: 1.7; text-wrap: balance; }
.b-nonprofits .np-guest__names span { white-space: nowrap; }
.b-nonprofits .np-guest__fine { font-size: 16px; color: var(--ink-2); }

/* the reply card */
.b-nonprofits .np-reply { background: var(--ink); color: var(--paper); overflow: hidden; }
.b-nonprofits .np-reply__in { max-width: var(--max); margin: 0 auto; padding: clamp(80px, 10vw, 140px) var(--gut) 0; min-height: 80svh; display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; align-items: end; }
.b-nonprofits .np-reply__p { grid-column: 1 / 5; padding-bottom: 64px; font-family: var(--b-d); font-weight: 500; font-size: clamp(20px, 1.8vw, 26px); line-height: 1.35; }
.b-nonprofits .np-reply__card { grid-column: 6 / 13; aspect-ratio: 7 / 5; margin-bottom: -60px; padding: 48px; background: var(--paper); color: var(--ink); transform: rotate(2deg); display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 16px; text-align: center; }
.b-nonprofits .np-reply__card h2 { font-size: var(--s-head); }
.b-nonprofits .np-reply__card p { font-size: 18px; max-width: 34ch; }
.b-nonprofits .np-reply__bar { margin-top: 12px; width: 100%; min-height: 58px; display: flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--ink); color: var(--paper); font-weight: 600; font-size: 18px; text-decoration: none; transition: transform .25s var(--ease); }
.b-nonprofits .np-reply__bar:hover { transform: translateY(-2px); }

/* footer: the back of the card */
.b-nonprofits .np-foot { background: var(--ink); padding: clamp(64px, 8vw, 110px) var(--gut) 0; position: relative; z-index: 1; }
.b-nonprofits .np-foot__card { max-width: 1100px; margin: 0 auto; background: var(--paper); color: var(--ink); position: relative; }
.b-nonprofits .np-scal { position: absolute; left: 0; right: 0; top: -31px; width: 100%; height: 32px; color: var(--paper); display: block; }
.b-nonprofits .np-foot__in { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; padding: clamp(36px, 4.5vw, 64px); min-height: 360px; }
.b-nonprofits .np-foot__sign { font-family: var(--b-d); font-weight: 600; font-size: 32px; letter-spacing: -.02em; margin-bottom: 14px; }
.b-nonprofits .np-foot__msg > p:not(.np-foot__sign) { font-size: 16px; max-width: 46ch; }
.b-nonprofits .np-foot__links { display: flex; flex-wrap: wrap; gap: 4px 18px; margin-top: 20px; }
.b-nonprofits .np-foot__links a { font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.b-nonprofits .np-foot__addr { position: relative; display: grid; align-content: start; gap: 4px; padding-right: 112px; }
.b-nonprofits .np-foot__addr a { font-size: 18px; min-height: 40px; display: flex; align-items: center; text-decoration: none; }
.b-nonprofits .np-foot__addr a:hover { text-decoration: underline; }
.b-nonprofits .np-stamp { position: absolute; top: 0; right: 0; width: 88px; aspect-ratio: 3 / 4; object-fit: cover; padding: 6px; background: var(--blush); transform: rotate(3deg); }
.b-nonprofits .np-foot__imp { text-align: center; font-size: 14px; color: var(--ink-2); padding: 0 24px 24px; }

/* inner page heads */
.b-nonprofits .np-ph { padding: clamp(72px, 9vw, 140px) 0 clamp(40px, 5vw, 72px); }
.b-nonprofits .np-ph__in { display: grid; gap: 24px; }
.b-nonprofits .np-ph h1 { max-width: 15ch; }
.b-nonprofits .np-ph--give h1, .b-nonprofits .np-ph--drive h1 { max-width: 18ch; }

/* give: after you give */
.b-nonprofits .np-after { padding: clamp(80px, 10vw, 140px) 0; }
.b-nonprofits .np-after__in { display: grid; grid-template-columns: 5fr 7fr; gap: 48px; align-items: start; }
.b-nonprofits .np-after__in h2 { margin-bottom: 20px; }
.b-nonprofits .np-after__l { display: grid; gap: 8px; counter-reset: s; }
.b-nonprofits .np-after__l li { display: grid; grid-template-columns: 9.5em 1fr; gap: 16px; padding: 18px 22px; border-radius: 16px; background: var(--stone); font-size: 18px; line-height: 1.45; }
.b-nonprofits .np-after__l li b { font-family: var(--b-t); letter-spacing: -.01em; font-weight: 700; font-size: 20px; line-height: 1.2; }
.b-nonprofits .np-cost { display: grid; grid-template-columns: 7fr 4fr; gap: clamp(28px, 4vw, 64px); align-items: center; }
.b-nonprofits .np-cost h2 { margin-bottom: 28px; }
.b-nonprofits .np-cost__bar { display: flex; height: 64px; border-radius: 999px; overflow: hidden; background: var(--paper); }
.b-nonprofits .np-cost__bar i { width: var(--w); display: flex; align-items: center; padding-left: 22px; font-style: normal; font-weight: 600; font-size: 18px; }
.b-nonprofits .np-cost__bar i:nth-child(1) { background: var(--ink); color: var(--paper); } .b-nonprofits .np-cost__bar i:nth-child(2) { background: var(--stamp); } .b-nonprofits .np-cost__bar i:nth-child(3) { background: var(--coral); }
.b-nonprofits .np-cost__k { margin: 24px 0 18px; display: grid; gap: 10px; font-size: 18px; }
.b-nonprofits .np-cost__k b { font-family: var(--b-t); letter-spacing: -.01em; font-size: 22px; margin-right: 8px; font-variant-numeric: tabular-nums; }
.b-nonprofits .np-cost__img, .b-nonprofits .np-prog__img, .b-nonprofits .np-buddy__img, .b-nonprofits .np-wrong__img, .b-nonprofits .np-vh__img, .b-nonprofits .np-rules__img, .b-nonprofits .np-rep__img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r); }
.b-nonprofits .np-ow { display: grid; grid-template-columns: 4fr 8fr; gap: 24px 48px; padding-top: clamp(64px, 8vw, 120px); padding-bottom: clamp(80px, 9vw, 140px); }
.b-nonprofits .np-ow__bars { display: grid; gap: 6px; }
.b-nonprofits .np-ow__disc { grid-column: 2; margin-top: 28px; display: grid; gap: 14px; font-size: 16px; line-height: 1.55; max-width: 60ch; }

/* impact */
.b-nonprofits .np-rep { padding: clamp(56px, 7vw, 110px) 0 clamp(64px, 8vw, 120px); }
.b-nonprofits .np-rep__in { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(28px, 5vw, 80px); align-items: end; }
.b-nonprofits .np-rep__t { display: grid; gap: 24px; padding-bottom: 12px; }
.b-nonprofits .np-rep__t h1 { font-size: clamp(56px, 9vw, 150px); line-height: .92; }
.b-nonprofits .np-rep__dl { display: flex; flex-wrap: wrap; gap: 10px; }
.b-nonprofits .np-growth { padding: clamp(96px, 11vw, 160px) 0; }
.b-nonprofits .np-growth__in { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 5vw, 80px); align-items: start; }
.b-nonprofits .np-growth__in > div:first-child { display: grid; gap: 20px; font-size: 18px; }
.b-nonprofits .np-gr { display: grid; gap: 28px; }
.b-nonprofits .np-gr__g { display: grid; gap: 8px; }
.b-nonprofits .np-gr__g > p { font-weight: 600; font-size: 18px; }
.b-nonprofits .np-gr__b { height: 54px; border-radius: 999px; background: var(--stone); overflow: hidden; }
.b-nonprofits .np-gr__b i { display: flex; align-items: center; height: 100%; width: var(--w); min-width: max-content; padding: 0 20px; border-radius: 999px; background: var(--stone-2); font-style: normal; font-weight: 600; font-size: 18px; white-space: nowrap; transform-origin: 0 50%; transition: transform 1s var(--ease); }
.b-nonprofits .np-gr__b--on i { background: var(--ink); color: var(--paper); }
.rv-on .np-gr[data-rv]:not(.is-in) .np-gr__b i { transform: scaleX(.2); }
.b-nonprofits .np-mchart { display: grid; grid-template-columns: 4fr 8fr; gap: 32px 56px; align-items: end; }
.b-nonprofits .np-mchart > div { display: grid; gap: 16px; font-size: 18px; }
.b-nonprofits .np-mchart__b { height: 320px; display: flex; align-items: flex-end; gap: 10px; }
.b-nonprofits .np-mchart__b li { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 6px; font-size: 14px; font-variant-numeric: tabular-nums; }
.b-nonprofits .np-mchart__b li::before { content: ""; order: 2; width: 100%; height: var(--h); border-radius: 10px 10px 4px 4px; background: var(--ink); transform-origin: 50% 100%; transition: transform .9s var(--ease); }
.b-nonprofits .np-mchart__b li:last-child::before { background: var(--stamp); }
.b-nonprofits .np-mchart__b b { order: 1; font-weight: 600; } .b-nonprofits .np-mchart__b span { order: 3; font-size: 14px; font-weight: 600; }
.rv-on .np-mchart__b[data-rv]:not(.is-in) li::before { transform: scaleY(.1); }
.b-nonprofits .np-wrong { padding: clamp(96px, 11vw, 160px) 0; }
.b-nonprofits .np-wrong__in { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
.b-nonprofits .np-wrong__in > div { display: grid; gap: 18px; font-size: 18px; line-height: 1.55; max-width: 60ch; }

/* programs */
.b-nonprofits .np-sheet { padding: 0 0 clamp(40px, 5vw, 72px); }
.b-nonprofits .np-sheet__p { background: var(--stone); border-radius: 28px; padding: clamp(18px, 3vw, 44px); }
.b-nonprofits .np-tbl { width: 100%; border-collapse: separate; border-spacing: 0 6px; font-size: 18px; line-height: 1.4; }
.b-nonprofits .np-tbl caption { text-align: left; font-size: var(--s-small); color: var(--ink-2); padding: 0 6px 10px; caption-side: top; }
.b-nonprofits .np-tbl th, .b-nonprofits .np-tbl td { text-align: left; padding: 16px 18px; vertical-align: top; }
.b-nonprofits .np-tbl thead th { font-size: 14px; font-weight: 600; padding-top: 4px; padding-bottom: 4px; }
.b-nonprofits .np-tbl tbody th, .b-nonprofits .np-tbl tbody td { background: var(--paper); }
.b-nonprofits .np-tbl tbody th { font-family: var(--b-d); font-weight: 600; font-size: 22px; border-radius: 14px 0 0 14px; }
.b-nonprofits .np-tbl tbody td:last-child { border-radius: 0 14px 14px 0; font-weight: 600; }
.b-nonprofits .np-prog, .b-nonprofits .np-buddy__in, .b-nonprofits .np-vh__in, .b-nonprofits .np-rules__in, .b-nonprofits .np-teams__in { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
.b-nonprofits .np-prog > div, .b-nonprofits .np-buddy__in > div, .b-nonprofits .np-rules__in > div, .b-nonprofits .np-teams__in > div { display: grid; gap: 20px; align-content: center; }
.b-nonprofits .np-ticks { display: grid; gap: 12px; font-size: 18px; line-height: 1.5; }
.b-nonprofits .np-ticks li { padding-left: 30px; position: relative; }
.b-nonprofits .np-ticks li::before { content: ""; position: absolute; left: 2px; top: .38em; width: 14px; height: 8px; border-left: 3px solid currentColor; border-bottom: 3px solid currentColor; transform: rotate(-45deg); }
.b-nonprofits .np-picks { padding: clamp(96px, 11vw, 160px) 0; }
.b-nonprofits .np-picks__in { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 5vw, 80px); }
.b-nonprofits .np-picks__in > div { display: grid; gap: 20px; align-content: start; font-size: 18px; }
.b-nonprofits .np-picks__l { display: grid; gap: 4px; }
.b-nonprofits .np-picks__l li { display: grid; grid-template-columns: 9em 1fr auto; gap: 16px; align-items: baseline; padding: 16px 0; }
.b-nonprofits .np-picks__l li:nth-child(odd) { background: var(--stone); border-radius: 14px; padding-inline: 16px; margin-inline: -16px; }
.b-nonprofits .np-picks__l span { font-size: 16px; font-weight: 600; } .b-nonprofits .np-picks__l b { font-family: var(--b-t); letter-spacing: -.01em; font-weight: 700; font-size: 22px; line-height: 1.15; } .b-nonprofits .np-picks__l i { font-style: normal; font-size: 16px; color: var(--ink-2); }
.b-nonprofits .np-buddy { padding: 0 0 clamp(64px, 8vw, 120px); }
.b-nonprofits .np-buddy__in { grid-template-columns: 7fr 5fr; }
.b-nonprofits .np-sess { display: grid; gap: 6px; }
.b-nonprofits .np-sess li { display: grid; grid-template-columns: 4em 1fr; gap: 12px; padding: 14px 18px; border-radius: 14px; background: var(--stone); font-size: 18px; }
.b-nonprofits .np-sess b { font-variant-numeric: tabular-nums; }
.b-nonprofits .np-two { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 80px); }
.b-nonprofits .np-two > div { display: grid; gap: 16px; font-size: 18px; align-content: start; }

/* volunteer */
.b-nonprofits .np-vh { padding: clamp(48px, 6vw, 96px) 0 clamp(24px, 3vw, 48px); }
.b-nonprofits .np-vh__in { grid-template-columns: 7fr 5fr; }
.b-nonprofits .np-vh__in > div { display: grid; gap: 24px; }
.b-nonprofits .np-vh__img { aspect-ratio: 4 / 4.4; }
.b-nonprofits .np-need { padding: clamp(80px, 10vw, 140px) 0; }
.b-nonprofits .np-need__in { display: grid; grid-template-columns: 4fr 8fr; gap: 48px; }
.b-nonprofits .np-need__l { display: grid; grid-template-columns: 1fr 1fr; gap: 36px 40px; }
.b-nonprofits .np-need__l li { display: grid; gap: 8px; font-size: 18px; line-height: 1.5; }
.b-nonprofits .np-need__l b { font-family: var(--b-t); letter-spacing: -.01em; font-weight: 700; font-size: 22px; line-height: 1.1; }
.b-nonprofits .np-teams { padding: 0 0 clamp(80px, 10vw, 140px); }
.b-nonprofits .np-teams__in { grid-template-columns: 7fr 5fr; }
.b-nonprofits .np-teams__img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r); }
.b-nonprofits .np-lab { display: grid; gap: 8px; font-size: 16px; font-weight: 600; }
.b-nonprofits .np-lab small { font-weight: 400; font-size: 14px; color: var(--ink-2); }
.b-nonprofits .np-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.b-nonprofits .np-chip { background: var(--paper); padding: 0 18px; }
.b-nonprofits .np-match { display: grid; grid-template-columns: 5fr 7fr; gap: 24px clamp(24px, 4vw, 56px); align-items: start; }
.b-nonprofits .np-match__form { display: grid; gap: 22px; background: var(--paper); border-radius: var(--r); padding: 24px; }
.b-nonprofits .np-match__form .np-chip { background: var(--stone); }
.b-nonprofits .np-match__form .np-chip[aria-pressed="true"] { background: var(--ink); }
.b-nonprofits .np-in--zip { max-width: 9ch; font-size: 22px; font-weight: 600; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.b-nonprofits .np-match__h { font-family: var(--b-d); font-weight: 600; font-size: clamp(26px, 2.4vw, 36px); line-height: 1.1; margin-bottom: 16px; }
.b-nonprofits .np-match__list { display: grid; gap: 10px; margin-bottom: 12px; }
.b-nonprofits .np-mt { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; align-items: center; padding: 20px 22px; border-radius: var(--r); background: var(--paper); animation: np-in .5s var(--ease) both; animation-delay: var(--d, 0ms); }
@keyframes np-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.b-nonprofits .np-mt__n { font-family: var(--b-d); font-weight: 600; font-size: 22px; line-height: 1.15; }
.b-nonprofits .np-mt__m { grid-column: 1; font-size: 16px; line-height: 1.45; }
.b-nonprofits .np-mt .np-btn { grid-row: 1 / 3; grid-column: 2; min-height: 48px; padding: 10px 18px; font-size: 16px; }
.b-nonprofits .np-mt__none { padding: 20px 22px; border-radius: var(--r); background: var(--paper); font-size: 18px; }

/* book drive builder */
.b-nonprofits .np-build { display: grid; grid-template-columns: 5fr 7fr; gap: 24px clamp(24px, 4vw, 56px); align-items: start; }
.b-nonprofits .np-build__form { display: grid; gap: 18px; background: var(--paper); border-radius: var(--r); padding: 24px; }
.b-nonprofits .np-build input[type=range] { width: 100%; height: 44px; accent-color: var(--ink); margin: 0; }
.b-nonprofits .np-swatch { display: flex; gap: 10px; }
.b-nonprofits .np-swatch button { width: 48px; height: 48px; border-radius: 999px; border: 0; cursor: pointer; transition: transform .2s var(--ease); }
.b-nonprofits .np-swatch button[aria-pressed="true"] { outline: 3px solid var(--ink); outline-offset: 3px; }
.b-nonprofits .np-swatch [data-c=blush] { background: var(--blush); } .b-nonprofits .np-swatch [data-c=mint] { background: var(--mint); } .b-nonprofits .np-swatch [data-c=lime] { background: var(--lime); } .b-nonprofits .np-swatch [data-c=sky] { background: var(--sky); }
.b-nonprofits .np-build__prev { display: grid; gap: 12px; position: sticky; top: 88px; }
.b-nonprofits .np-prev__url { font-size: 14px; font-weight: 600; padding: 12px 18px; border-radius: 999px; background: var(--paper); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.b-nonprofits .np-prev__page { background: var(--paper); border-radius: var(--r); padding: clamp(22px, 3vw, 40px); display: grid; gap: 14px; transition: background-color .3s; }
.b-nonprofits [data-tone=blush] .np-prev__page { background: var(--blush); } .b-nonprofits [data-tone=mint] .np-prev__page { background: #e5f2e6; } .b-nonprofits [data-tone=lime] .np-prev__page { background: var(--lime); } .b-nonprofits [data-tone=sky] .np-prev__page { background: var(--sky); }
.b-nonprofits .np-prev__h { font-family: var(--b-d); font-weight: 600; font-size: clamp(26px, 2.6vw, 40px); line-height: 1.05; letter-spacing: -.02em; text-wrap: balance; }
.b-nonprofits .np-prev__by { font-size: 16px; font-weight: 600; }
.b-nonprofits .np-prev__shelf { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 3px; min-height: 60px; padding: 10px 10px 0; border-bottom: 10px solid var(--ink); border-radius: 0 0 4px 4px; }
.b-nonprofits .np-prev__shelf i { width: 9px; height: var(--h); border-radius: 2px 2px 0 0; background: rgba(22, 19, 15, .16); transition: height .3s var(--ease); }
.b-nonprofits .np-prev__n { font-size: 18px; font-variant-numeric: tabular-nums; }
.b-nonprofits .np-prev__note { font-size: 18px; line-height: 1.5; max-width: 52ch; }
.b-nonprofits .np-prev__note:empty { display: none; }
.b-nonprofits .np-prev__btn { justify-self: start; display: inline-flex; min-height: 48px; align-items: center; padding: 0 22px; border-radius: 999px; background: var(--ink); color: var(--paper); font-weight: 600; }
.b-nonprofits .np-prev__fine { font-size: 14px; color: var(--ink-2); }
.b-nonprofits .np-prev__act { display: flex; flex-wrap: wrap; gap: 8px; }
.b-nonprofits .np-how { padding: clamp(80px, 10vw, 140px) 0; }
.b-nonprofits .np-how__in h2 { margin-bottom: 36px; }
.b-nonprofits .np-how__l { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; counter-reset: h; }
.b-nonprofits .np-how__l li { display: grid; gap: 10px; align-content: start; font-size: 18px; line-height: 1.5; counter-increment: h; }
.b-nonprofits .np-how__l li::before { content: counter(h); width: 52px; height: 52px; border-radius: 999px; display: grid; place-items: center; background: var(--blush); font: 600 24px/1 var(--b-d); }
.b-nonprofits .np-how__l b { font-family: var(--b-t); letter-spacing: -.01em; font-weight: 700; font-size: 22px; line-height: 1.15; }
.b-nonprofits .np-rules { padding: 0 0 clamp(80px, 10vw, 140px); }
.b-nonprofits .np-rules__in { grid-template-columns: 4fr 8fr; }

/* financials */
.b-nonprofits .np-fin { padding: clamp(64px, 8vw, 120px) 0 clamp(24px, 3vw, 48px); }
.b-nonprofits .np-fin__in { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(28px, 5vw, 80px); align-items: end; }
.b-nonprofits .np-fin__in > div { display: grid; gap: 24px; }
.b-nonprofits .np-fin__f { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.b-nonprofits .np-fin__f > div { padding: 16px 18px; border-radius: 14px; background: var(--stone); }
.b-nonprofits .np-fin__f dt { font-size: 14px; font-weight: 600; color: var(--ink-2); }
.b-nonprofits .np-fin__f dd { margin: 4px 0 0; font-size: 18px; font-weight: 600; line-height: 1.35; }
.b-nonprofits .np-docs h2 { margin-bottom: 28px; }
.b-nonprofits .np-docs__l { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; margin-bottom: 16px; }
.b-nonprofits .np-docs__l li { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 0 22px; min-height: 64px; border-radius: 16px; background: var(--paper); }
.b-nonprofits .np-docs__l a { font-weight: 600; font-size: 18px; }
.b-nonprofits .np-docs__l span { font-size: 14px; color: var(--ink-2); text-align: right; }
.b-nonprofits .np-spend { padding: clamp(80px, 10vw, 140px) 0; }
.b-nonprofits .np-spend__in { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 5vw, 80px); }
.b-nonprofits .np-spend__in > div:first-child { display: grid; gap: 20px; align-content: start; font-size: 18px; }
.b-nonprofits .np-split { display: flex; height: 72px; border-radius: 999px; overflow: hidden; }
.b-nonprofits .np-split i { width: var(--w); } .b-nonprofits .np-split i:nth-child(1) { background: var(--ink); } .b-nonprofits .np-split i:nth-child(2) { background: var(--stamp); } .b-nonprofits .np-split i:nth-child(3) { background: var(--coral); }
.b-nonprofits .np-split__k { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 16px 0 40px; font-size: 18px; }
.b-nonprofits .np-split__k li::before { content: ""; display: inline-block; width: 14px; height: 14px; border-radius: 999px; margin-right: 8px; vertical-align: -1px; background: var(--ink); }
.b-nonprofits .np-split__k li:nth-child(2)::before { background: var(--stamp); } .b-nonprofits .np-split__k li:nth-child(3)::before { background: var(--coral); }
.b-nonprofits .np-split__k b { font-family: var(--b-t); letter-spacing: -.01em; font-size: 22px; margin-right: 4px; }
.b-nonprofits .np-spend h3 { margin-bottom: 12px; }
.b-nonprofits .np-from { display: grid; gap: 6px; }
.b-nonprofits .np-from li { display: flex; justify-content: space-between; padding: 14px 18px; border-radius: 14px; background: var(--stone); font-size: 18px; }
.b-nonprofits .np-from b { font-variant-numeric: tabular-nums; }
.b-nonprofits .np-board { padding: 0 0 clamp(64px, 8vw, 110px); }
.b-nonprofits .np-board__in { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 5vw, 80px); }
.b-nonprofits .np-board__in > div:first-child { display: grid; gap: 20px; align-content: start; font-size: 18px; }
.b-nonprofits .np-board__c { display: grid; gap: 14px; }
.b-nonprofits .np-ppl { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 32px; margin-bottom: 24px; }
.b-nonprofits .np-ppl li { display: grid; gap: 2px; font-size: 16px; }
.b-nonprofits .np-ppl b { font-family: var(--b-t); letter-spacing: -.01em; font-weight: 700; font-size: 22px; }
.b-nonprofits .np-pol { background: var(--stone); }
.b-nonprofits .np-pol .np-bar-d { background: var(--paper); }
.b-nonprofits .np-pol .np-bar-d[open] { background: var(--lime); }

/* partner schools */
.b-nonprofits .np-sh { padding-bottom: clamp(40px, 5vw, 72px); }
.b-nonprofits .np-sh__img img { width: 100%; height: clamp(260px, 42vw, 560px); object-fit: cover; }
.b-nonprofits .np-sh__t { display: grid; grid-template-columns: 7fr 5fr; gap: 24px 48px; align-items: end; margin-top: -0.32em; }
.b-nonprofits .np-sh__t h1 { position: relative; padding-top: 28px; }
.b-nonprofits .np-sheet__p--wide { padding: clamp(12px, 2vw, 28px); }
.b-nonprofits .np-tbl--schools tbody th { font-size: 19px; }
.b-nonprofits .np-tbl--schools td { font-size: 16px; }
.b-nonprofits .np-bring { display: grid; grid-template-columns: 6fr 5fr; gap: clamp(28px, 5vw, 72px); align-items: start; }
.b-nonprofits .np-bring > div { display: grid; gap: 20px; }
.b-nonprofits .np-crit { display: grid; gap: 6px; }
.b-nonprofits .np-crit li { padding: 14px 18px; border-radius: 14px; background: rgba(255, 255, 255, .55); font-size: 18px; }
.b-nonprofits .np-crit span { display: block; font-size: 16px; color: var(--ink-2); }
.b-nonprofits .np-apply { display: grid; gap: 16px; background: var(--paper); border-radius: var(--r); padding: 24px; }

/* ---------- tablet ---------- */
@media (max-width: 1080px) {
  .b-nonprofits .np-nav { display: none; }
  .b-nonprofits .np-bar__act { margin-left: auto; }
  .b-nonprofits .np-menu { display: block; }
  .b-nonprofits .np-plate { width: min(84vw, 760px); }
  .b-nonprofits .np-give { grid-template-columns: 1fr; grid-template-areas: "ctl" "res" "fin" "more"; grid-template-rows: none; row-gap: 20px; }
  .b-nonprofits .np-give__more { margin-top: 0; }
  .b-nonprofits .np-give__ctl { border-radius: var(--r); padding-bottom: 20px; }
  .b-nonprofits .np-give__fin { border-radius: var(--r); margin-top: 0; padding-top: 20px; }
  .b-nonprofits .np-match, .b-nonprofits .np-build { grid-template-columns: 1fr; }
  .b-nonprofits .np-build__prev { position: static; }
  .b-nonprofits .np-ledger h2 { grid-column: 1 / -1; } .b-nonprofits .np-led { grid-column: 1 / -1; }
  .b-nonprofits .np-intro__top h2 { grid-column: 1 / -1; margin-bottom: 24px; } .b-nonprofits .np-intro__top p { grid-column: 1 / 10; }
  .b-nonprofits .np-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
  .b-nonprofits .np-reply__p { grid-column: 1 / -1; padding-bottom: 0; } .b-nonprofits .np-reply__card { grid-column: 2 / 12; }
  .b-nonprofits .np-guest__card { width: min(80vw, 640px); }
  .b-nonprofits .np-how__l { grid-template-columns: 1fr 1fr; }
  .b-nonprofits .np-after__in, .b-nonprofits .np-ow, .b-nonprofits .np-growth__in, .b-nonprofits .np-mchart, .b-nonprofits .np-picks__in, .b-nonprofits .np-need__in, .b-nonprofits .np-spend__in, .b-nonprofits .np-board__in, .b-nonprofits .np-bring, .b-nonprofits .np-fin__in { grid-template-columns: 1fr; }
  .b-nonprofits .np-ow__disc { grid-column: 1; }
  .b-nonprofits .np-slips__copy { margin-left: var(--gut); }
}
/* ---------- phone ---------- */
@media (max-width: 760px) {
  .b-nonprofits { --r: 18px; }
  .b-nonprofits .np-bar__in { height: 62px; gap: 12px; }
  .b-nonprofits .np-logo { font-size: 20px; }
  .b-nonprofits .np-btn--give { padding: 10px 16px; font-size: 16px; }
  .b-nonprofits .np-menu summary { padding: 0 14px; }
  .b-nonprofits .np-hero { height: 118svh; }
  .b-nonprofits .np-hero__stick { top: 62px; height: calc(100svh - 62px); min-height: 560px; padding: 16px; }
  .b-nonprofits .np-plate { width: 100%; min-height: 70%; padding: 26px 18px 20px; gap: 20px; clip-path: polygon(16px 0, calc(100% - 16px) 0, 100% 16px, 100% calc(100% - 16px), calc(100% - 16px) 100%, 16px 100%, 0 calc(100% - 16px), 0 16px); }
  .b-nonprofits .np-plate h1 { font-size: min(8.6vw, 44px); }
  .b-nonprofits .np-plate__facts p:first-child { font-size: 16px; }
  .b-nonprofits .np-plate__sub { font-size: 19px; border-radius: 18px; }
  .b-nonprofits .np-plate__foot { grid-template-columns: 1fr; justify-items: center; gap: 10px; }
  .b-nonprofits .np-plate__foot > span { display: none; }
  .b-nonprofits .np-plate__foot .np-btn { width: 100%; }
  .b-nonprofits .np-plate__foot > a:last-child { text-align: center; min-height: 44px; display: inline-flex; align-items: center; }
  .b-nonprofits .np-intro__top h2 { font-size: 11vw; } .b-nonprofits .np-intro__top p { grid-column: 1 / -1; font-size: 18px; }
  .b-nonprofits .np-facts dt { font-size: 22px; }
  .b-nonprofits .np-blk { margin-inline: 0; border-radius: 0; }
  .b-nonprofits .np-blk__in { padding: 40px 16px; }
  .b-nonprofits .np-blk__h { grid-template-columns: 1fr; }
  .b-nonprofits.wk-sigwrap .np-give { padding: 12px; border-radius: 20px; }
  .b-nonprofits .np-give__ctl, .b-nonprofits .np-give__fin { padding-inline: 16px; }
  .b-nonprofits .np-amt { font-size: 16px; }
  .b-nonprofits .np-fields { grid-template-columns: 1fr; }
  .b-nonprofits .np-card__d { grid-template-columns: repeat(4, 1fr); }
  .b-nonprofits .np-shelf__row { height: 96px; }
  .b-nonprofits .np-slips { min-height: 100svh; }
  .b-nonprofits .np-slips__copy { margin: 0 16px; padding: 40px 18px 22px; font-size: 22px; }
  .b-nonprofits .np-slips__row { left: 0; right: 0; padding: 0 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .b-nonprofits .np-slips__row::-webkit-scrollbar { display: none; }
  .b-nonprofits .np-slip { flex: 0 0 44vw; scroll-snap-align: start; font-size: 14px; }
  .b-nonprofits .np-slip i { font-size: 19px; }
  .b-nonprofits .np-ledger h2 { font-size: 28px; }
  .b-nonprofits .np-led { row-gap: 26px; }
  .b-nonprofits .np-led__w, .b-nonprofits .np-led__f { font-size: 11vw; }
  .b-nonprofits .np-led__c { padding: 0 0 .3em 14px; font-size: 16px; }
  .b-nonprofits .np-drag__btns { display: none; }
  .b-nonprofits .np-drag__row { gap: 16px; padding-inline: 16px; }
  .b-nonprofits .np-mo { flex-basis: 72vw; }
  .b-nonprofits .np-mo img { margin-top: calc(var(--gap) * .45); }
  .b-nonprofits .np-ways { padding-inline: 16px; }
  .b-nonprofits .np-guest { height: 720px; padding-top: 56px; }
  .b-nonprofits .np-guest__card { width: 92vw; padding: 28px; transform: rotate(-1deg); gap: 18px; }
  .b-nonprofits .np-guest__card h2 { font-size: 22px; }
  .b-nonprofits .np-guest__names { font-size: 18px; }
  .b-nonprofits .np-reply__in { grid-template-columns: 1fr; min-height: 0; padding-top: 64px; gap: 36px; }
  .b-nonprofits .np-reply__p { font-size: 20px; }
  .b-nonprofits .np-reply__card { grid-column: 1; width: 90%; justify-self: center; aspect-ratio: auto; padding: 36px 22px 48px; transform: rotate(1deg); margin-bottom: -40px; }
  .b-nonprofits .np-reply__card h2 { font-size: 30px; } .b-nonprofits .np-reply__card p { font-size: 16px; }
  .b-nonprofits .np-reply__bar { min-height: 52px; }
  .b-nonprofits .np-foot { padding: 72px 0 0; }
  .b-nonprofits .np-foot__in { grid-template-columns: 1fr; gap: 28px; padding: 32px 20px 24px; }
  .b-nonprofits .np-foot__addr { padding-right: 0; padding-top: 0; }
  .b-nonprofits .np-foot__addr a { font-size: 18px; }
  .b-nonprofits .np-stamp { width: 64px; top: -96px; right: 0; }
  .b-nonprofits .np-foot__msg { padding-right: 72px; }
  .b-nonprofits .np-after__l li { grid-template-columns: 1fr; gap: 4px; }
  .b-nonprofits .np-cost { grid-template-columns: 1fr; }
  .b-nonprofits .np-cost__bar i:first-child { padding-left: 16px; font-size: 16px; }
  .b-nonprofits .np-rep__in, .b-nonprofits .np-prog, .b-nonprofits .np-buddy__in, .b-nonprofits .np-vh__in, .b-nonprofits .np-rules__in, .b-nonprofits .np-teams__in, .b-nonprofits .np-wrong__in, .b-nonprofits .np-two, .b-nonprofits .np-sh__t { grid-template-columns: 1fr; }
  .b-nonprofits .np-rep__img, .b-nonprofits .np-wrong__img, .b-nonprofits .np-cost__img, .b-nonprofits .np-prog__img, .b-nonprofits .np-buddy__img, .b-nonprofits .np-rules__img { aspect-ratio: 4 / 3.4; }
  .b-nonprofits .np-mchart__b { height: 240px; gap: 4px; } .b-nonprofits .np-mchart__b b { font-size: 11px; writing-mode: vertical-rl; transform: rotate(180deg); }
  .b-nonprofits .np-tbl, .b-nonprofits .np-tbl tbody, .b-nonprofits .np-tbl tr, .b-nonprofits .np-tbl th, .b-nonprofits .np-tbl td { display: block; }
  .b-nonprofits .np-tbl thead { display: none; }
  .b-nonprofits .np-tbl tbody tr { background: var(--paper); border-radius: 14px; padding: 16px 16px 10px; margin-bottom: 6px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; }
  .b-nonprofits .np-tbl tbody th, .b-nonprofits .np-tbl tbody td { padding: 0; border-radius: 0; background: none; }
  .b-nonprofits .np-tbl tbody th { grid-column: 1 / -1; }
  .b-nonprofits .np-tbl td::before { content: attr(data-l); display: block; font-size: 13px; font-weight: 600; color: var(--ink-2); }
  .b-nonprofits .np-tbl td { font-size: 16px; padding-bottom: 6px; }
  .b-nonprofits .np-sheet__p { border-radius: 0; margin-inline: calc(var(--gut) * -1); padding: 12px; }
  .b-nonprofits .np-picks__l li { grid-template-columns: 1fr; gap: 2px; }
  .b-nonprofits .np-need__l, .b-nonprofits .np-docs__l, .b-nonprofits .np-ppl, .b-nonprofits .np-how__l, .b-nonprofits .np-fin__f { grid-template-columns: 1fr; }
  .b-nonprofits .np-docs__l li { min-height: 60px; padding: 10px 18px; }
  .b-nonprofits .np-mt { grid-template-columns: 1fr; }
  .b-nonprofits .np-mt .np-btn { grid-row: auto; grid-column: 1; justify-self: start; }
  .b-nonprofits .np-sh__t { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .b-nonprofits *, .b-nonprofits *::before { animation: none !important; transition: none !important; }
  .b-nonprofits .np-hero { height: auto; } .b-nonprofits .np-hero__stick { position: relative; top: 0; }
  .b-nonprofits .np-hero__bg { transform: none; }
}

/* kit chrome in this brand's face, flat */
body.b-nonprofits .dm-ribbon, body.b-nonprofits .dm-credit { font-family: var(--b-t); font-size: 14px; }
body.b-nonprofits .dm-chatbtn > button { box-shadow: none; font-family: var(--b-t); } /* taste-skill-ignore: removes the kit shadow */

.b-nonprofits .np-ph__split { display: grid; grid-template-columns: 7fr 4fr; gap: clamp(28px, 5vw, 80px); align-items: end; }
.b-nonprofits .np-ph__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r); }
.b-nonprofits .np-after__img { margin-top: 32px; width: 100%; max-width: 420px; aspect-ratio: 4 / 4.4; object-fit: cover; border-radius: var(--r); }
.b-nonprofits .np-ow__h { display: grid; gap: 28px; align-content: start; }
.b-nonprofits .np-ow__img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r); }
.b-nonprofits .np-sp--ghost { background: rgba(22, 19, 15, .09) !important; }
@media (max-width: 1080px) { .b-nonprofits .np-ph__split { grid-template-columns: 1fr; } .b-nonprofits .np-ph__img { max-width: 520px; } .b-nonprofits .np-ow__img { max-width: 520px; } }
.b-nonprofits .np-give__ghost { margin: -4px 0 12px; font-size: 16px; line-height: 1.45; }
.b-nonprofits .np-give__ghost:empty { display: none; }
