PageSourceSearch

https://www.funraise.org/pricing

html funraise.org collected 2026-09-24 07:48:48 UTC 241,524 bytes, 2,480 lines download raw bytes

1<!DOCTYPE html><!-- Last Published: Wed Sep 16 2026 15:00:31 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="webflow.funraise.org" data-wf-page="650ab050bb6e81487eea52fb" data-wf-site="5d6eb414117b673d211598f2" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Pricing | Funraise</title><meta content="Get the most updated pricing for Funraise&#x27;s nonprofit fundraising platform or open your free Funraise account on this page. Contact Funraise for custom pricing." name="description"/><meta content="Pricing | Funraise" property="og:title"/><meta content="Get the most updated pricing for Funraise&#x27;s nonprofit fundraising platform or open your free Funraise account on this page. Contact Funraise for custom pricing." property="og:description"/><meta content="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5fad74bdbb83d914d780e941_funraise-meta-2020.jpg" property="og:image"/><meta content="Pricing | Funraise" name="twitter:title"/><meta content="Get the most updated pricing for Funraise&#x27;s nonprofit fundraising platform or open your free Funraise account on this page. Contact Funraise for custom pricing." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5fad74bdbb83d914d780e941_funraise-meta-2020.jpg" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="7hAdDcT6Cvxny0SOemq_wCLVvztryh2j1w1ztnwyLkk" name="google-site-verification"/><link href="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/css/funraise-dev.shared.84194696f.min.css" rel="stylesheet" type="text/css" integrity="sha384-hBlGlvYMu8Y4TICw8QGElG23E/oz42ask9Pdjo/GhyHbQqJ7w/4V7In8wXCp0jky" crossorigin="anonymous"/>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5d8cfccee18d83ccde1c37fd_favicon-32x32.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5d8cfcd64ebd7300b7a48252_android-chrome-256x256.png" rel="apple-touch-icon"/><link href="https://www.funraise.org/pricing" rel="canonical"/>
1<script type="application/ld+json">
2  {
3    "@context": "https://schema.org",
4    "@graph": [
5      {
6        "@type": "WebPage",
7        "@id": "https://www.funraise.org/pricing#webpage",
8        "url": "https://www.funraise.org/pricing",
9        "name": "Pricing | Funraise",
10        "description": "Get the most updated pricing for Funraise’s nonprofit fundraising platform or open your free Funraise account on this page. Contact Funraise for custom pricing.",
11        "inLanguage": "en",
12        "isPartOf": {
13          "@id": "https://www.funraise.org/#website"
14        },
15        "breadcrumb": {
16          "@id": "https://www.funraise.org/pricing#breadcrumb"
17        },
18        "about": {
19          "@id": "https://www.funraise.org/#funraise-software"
20        },
21        "publisher": {
22          "@id": "https://www.funraise.org/#organization"
23        },
24        "mainEntity": {
25          "@id": "https://www.funraise.org/pricing#faqpage"
26        }
27      },
28      {
29        "@type": "BreadcrumbList",
30        "@id": "https://www.funraise.org/pricing#breadcrumb",
31        "itemListElement": [
32          {
33            "@type": "ListItem",
34            "position": 1,
35            "name": "Home",
36            "item": "https://www.funraise.org/"
37          },
38          {
39            "@type": "ListItem",
40            "position": 2,
41            "name": "Pricing"
42          }
43        ]
44      },
45      {
46        "@type": "FAQPage",
47        "@id": "https://www.funraise.org/pricing#faqpage",
48        "mainEntity": [
49          {
50            "@type": "Question",
51            "name": "Is there a Donors Cover Fees option?",
52            "acceptedAnswer": {
53              "@type": "Answer",
54              "text": "Yes! Donors can opt in to cover fees. When donors cover fees, the additional amount covers both Funraise’s platform fee and a portion of processing fees. With Funraise, about 90% of donors cover fees!"
55            }
56          },
57          {
58            "@type": "Question",
59            "name": "Can I migrate my data?",
60            "acceptedAnswer": {
61              "@type": "Answer",
62              "text": "Yes. All organizations have access to Funraise’s data import tool. You’ll be able to import donors and donations into Funraise."
63            }
64          },
65          {
66            "@type": "Question",
67            "name": "Can I migrate my recurring subscriptions?",
68            "acceptedAnswer": {
69              "@type": "Answer",
70              "text": "Yes. In most cases, we can migrate recurring donation subscriptions to Funraise. This is dependent on your current gateway; contact us to see if we can migrate your subscriptions."
71            }
72          },
73          {
74            "@type": "Question",
75            "name": "How flexible are these plans?",
76            "acceptedAnswer": {
77              "@type": "Answer",
78              "text": "We’re on your side, which means we’re here to help your organization succeed. If a feature you need isn’t included in your ideal plan, let’s talk.\nFree plans are standard and cannot be customized."
79            }
80          },
81          {
82            "@type": "Question",
83            "name": "Is Funraise only for nonprofit organizations?",
84            "acceptedAnswer": {
85              "@type": "Answer",
86              "text": "Yes. Your organization must be registered as a nonprofit or NGO. Organizations around the globe can use Funraise, but a national organization identification number is required. As with most things in life, there are exceptions; contact us with questions."
87            }
88          },
89          {
90            "@type": "Question",
91            "name": "Is Funraise for all nonprofit organizations?",
92            "acceptedAnswer": {
93              "@type": "Answer",
94              "text": "Yes; however, Funraise does not work with organizations that promote hate or discrimination of any kind. We use the Southern Poverty Law Center’s extremist groups list as a guide, then as a team, we make our own informed decisions. We have refused service to organizations that are not aligned with a safe, equitable, and free future for all, and we will c
94ontinue to do so."
95            }
96          },
97          {
98            "@type": "Question",
99            "name": "Are there setup fees?",
100            "acceptedAnswer": {
101              "@type": "Answer",
102              "text": "Nope. Here’s our full pricing breakdown."
103            }
104          }
105        ]
106      },
107      {
108        "@type": "SoftwareApplication",
109        "@id": "https://www.funraise.org/#funraise-software",
110        "name": "Funraise",
111        "url": "https://www.funraise.org/",
112        "applicationCategory": "BusinessApplication",
113        "applicationSubCategory": "Nonprofit Fundraising Software",
114        "operatingSystem": "Web",
115        "provider": {
116          "@id": "https://www.funraise.org/#organization"
117        },
118        "audience": {
119          "@type": "Audience",
120          "audienceType": "Nonprofit organizations and NGOs"
121        },
122        "offers": [
123          {
124            "@type": "Offer",
125            "name": "Free",
126            "description": "Get started with essential fundraising tools. Includes: One Donation Form, Up to 1,000 Supporters, Recurring Donations, Events & Tickets, Donor Management, Some integrations.",
127            "priceCurrency": "USD",
128            "url": "https://www.funraise.org/pricing",
129            "price": "0",
130            "priceSpecification": {
131              "@type": "UnitPriceSpecification",
132              "price": "0",
133              "priceCurrency": "USD",
134              "unitCode": "MON",
135              "referenceQuantity": {
136                "@type": "QuantitativeValue",
137                "value": 1,
138                "unitCode": "MON"
139              }
140            }
141          },
142          {
143            "@type": "Offer",
144            "name": "Standard",
145            "description": "Build your movement with fundraising websites and peer-to-peer fundraising. Includes: All of Free, Donation Forms, Donor management, Recurring donations, Events & Tickets, Fundraising Websites, Peer-to-Peer Fundraising, Attachments, Webhooks, Recurring migration services, Salesforce integration, Raiser’s Edge integration, More integrations.",
146            "priceCurrency": "USD",
147            "url": "https://www.funraise.org/pricing"
148          },
149          {
150            "@type": "Offer",
151            "name": "Premium",
152            "description": "Accelerate your growth with advanced fundraising tools. Includes: All of Standard, Advanced Reporting & Dashboards, Facebook integration, Dedicated Success Manager, Text Engagement, Subaccounts.",
153            "priceCurrency": "USD",
154            "url": "https://www.funraise.org/pricing"
155          }
156        ]
157      }
158    ]
159  }
160</script>
160<script type="text/javascript">!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.agent='plwebflow';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '214357609356069');fbq('track', 'PageView');</script>
160<!-- META: Site verifications -->
161<meta name="ahrefs-site-verification" content="0fe9b058905dbf479138df8cb312218e9cda5cd5a6f63356170701e82cf2fb02">
162<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.funraise.org/#organization","name":"Funraise","url":"https://www.funraise.org/","logo":{"@type":"ImageObject","@id":"https://www.funraise.org/#logo","url":"https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5d6ecfcf7788c43958f8df80_Funraise_Logo_Dark.svg","caption":"Funraise"},"description":"Funraise is an online fundraising platform powering thousands of nonprofit missions with exceptional donation experiences and donor insights.","foundingDate":"2015","founder":[{"@type":"Person","name":"Justin Wheeler","url":"https://www.funraise.org/author/justin-wheeler"},{"@type":"Person","name":"Jason Swenski"},{"@type":"Person","name":"Tony Sasso"}],"address":{"@type":"PostalAddress","addressLocality":"Long Beach","addressRegion":"CA","addressCountry":"US"},"sameAs":["https://www.linkedin.com/company/funraise","https://x.com/funraise","https://twitter.com/funraise","https://www.facebook.com/funraiseplatform","https://www.instagram.com/funraise/","https://www.youtube.com/channel/UCexHcj-hA3W91OtezjSnnew","https://www.crunchbase.com/organization/funraise","https://www.g2.com/products/funraise/reviews","https://www.capterra.com/p/154623/Funraise/","https://www.softwareadvice.com/crm/funraise-profile/"]},{"@type":"WebSite","@id":"https://www.funraise.org/#website","url":"https://www.funraise.org/","name":"Funraise","publisher":{"@id":"https://www.funraise.org/#organization"},"inLanguage":"en"}]}</script>
162
163
164<!-- FONT PRELOAD (2026-07-31): the two Garnett weights used above the fold.
165     Without this they start only after the 732 KB stylesheet is parsed. -->
166<link rel="preload" as="font" type="font/woff2" crossorigin
167      href="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/668be495d4cd18780d80771d_Garnett-Medium.woff2">
168<link rel="preload" as="font" type="font/woff" crossorigin
169      href="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/668be49650e49af103d0b23e_Garnett-Semibold.wof">
170
171<!-- ANTI-FLICKER removed 2026-07-31: it hid the whole page (opacity:0) for
172     up to 1 s on every pageview — a direct LCP/FCP cost. -->
173
174<!-- GTM: Google Tag Manager -->
175<script defer>
vendor: 397 bytes, lines 175-185
175
176  (function(w,d,s,l,i){
177    w[l]=w[l]||[];
178    w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});
179    var f = d.getElementsByTagName(s)[0],
180        j = d.createElement(s),
181        dl = l!='dataLayer'?'&l='+l:'';
182    j.async = true;
183    j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
184    f.parentNode.insertBefore(j,f);
185  })(window, document, 'script', 'dataLayer', '
185GTM-P7XD5SD
vendor: 4 bytes, line 185
185');
186</script>
186
187
188<!-- MIDA: A/B Testing Script -->
189<script defer src="https://cdn.mida.so/js/optimize.js?key=XZbzAeVxR9AwKRo9DGmWNy"></script>
189
190
191<!-- GLOBAL CSS (left untouched on purpose) -->
192<style media="screen">
193  body{
194-webkit-font-smoothing: antialiased;
195    -moz-osx-font-smoothing: grayscale;
196  }
197@font-face{font-display:swap}.nav-dropdown-menu-box-1,.nav-dropdown-menu-box-2,.nav-dropdown-menu-box-3{transition:opacity .3s,transform .3s;transform:translateY(-10px);opacity:0}.dropdown-wrap:hover .nav-dropdown-menu-box-1,.dropdown-wrap:hover .nav-dropdown-menu-box-2,.dropdown-wrap:hover .nav-dropdown-menu-box-3{transform:translateY(0);opacity:1}#leadinModal-1013719>div.leadinModal-content>button:hover,.double-text-wrapper:hover .nav-double-col-title-text,.nav-promo-column:hover .nav-promo-text{color:#2979ff}@media screen and (min-device-width:992px) and (max-device-width:1020px){.nav-link.v2{padding-left:10px!important}}.w--open{transition:.2s ease-in-out}@media only screen and (max-height:760px){.dropdown-menu-box{height:calc(100vh - 72px)!important;max-height:calc(100vh - 72px)!important}}@media screen and (min-width:992px) and (max-width:1399px){.content-container{padding-right:3.8em;padding-left:3.8em}.footer-link{font-size:.8em;padding-bottom:8px}
197.dropdown-bg-box .dropdown-bg{left:10%!important}.dropdown.dropdown-hover.resources-dropdown{font-size:.9em}.integration-description{min-height:12em}}@media screen and (min-width:1400px) and (max-width:1679px){.dropdown-bg-box .dropdown-bg{left:10%!important}.dropdown.dropdown-hover.resources-dropdown{font-size:.9em}}@media screen and (min-width:1680px) and (max-width:1800px){.dropdown-bg-box .dropdown-bg{left:18%!important}}#leadinModal-1013719>div.leadinModal-content{border:1px solid #e4e8ec!important;border-radius:5px;background-color:#fff;box-shadow:1px 1px 6px 0 rgb(8 22 45 / 4%);transition:.2s ease-in-out;color:#002042;min-height:440px}#leadinModal-1013719>div.leadinModal-overlay{background-color:rgba(0,32,66,.85)!important}#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>button.next-button,#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.leadin-button-wrapper>button.leadin-button.leadin-button-primary.leadin-primary.leadin-submit.button-with-gdpr,#leadinModal-content-wrapper-1013719>div>div>div.advance-wrapper>button,#leadinModal-content-wrapper-1013719>div>div>div.thank-you-message>div>a{margin-top:24px;padding:9px 15px!important;color:#fff;font-size:1.125em;font-weight:500!important;text-align:center;text-decoration:none;line-height:188%;background-color:#2979ff!important;transition:.2s ease-in-out;border:0;cursor:pointer}#input-email-015dc492-4fcf-436f-b1c2-8787b44ce5d9:hover label,#leadin-close-button,.nav-link-block:hover .nav-link-block-title{color:#2979ff!important}#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>button.next-button:hover,#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.leadin-button-wrapper>button.leadin-button.leadin-button-primary.leadin-primary.leadin-submit.button-with-gdpr:hover,#leadinModal-content-wrapper-1013719>div>div>div.advance-wrapper>button:hover,#leadinModal-content-wrapper-1013719>div>div>div.thank-you-message>div>a:hover{background-image:linear-gradient(120deg,#53b1ff,#2979ff)!important;box-shadow:0 2px 6px 0 rgba(8,22,45,.24)}#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.leadin-button-wrapper>button.leadin-button.leadin-button-secondary.leadin-secondary.back-button{padding:5px 15px!important;border:2px solid #2979ff!important;background-color:transparent!important;transition:.2s ease-in-out;outline:0;line-height:188%}#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.leadin-button-wrapper>button.leadin-button.leadin-button-secondary.leadin-secondary.back-button:hover{color:#fff!important;background-image:linear-gradient(120deg,#2979ff,#2979ff)!important}#leadin-close-button{margin-top:0!important;text-decoration:underline!important;font-weight:500;font-size:1.125em!important}#leadin-close-button:hover{color:#2c7cff}#leadinModal-1013719>div.leadinModal-content>button::before{font-size:24px;color:#002042;transition:.2s ease-in-out}#leadinModal-1013719>div.leadinModal-content>button{outline:0;color:#002042;transition:.2s ease-in-out}#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.leadin-button-wrapper{padding-top:32px}#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.leadin-button-wrapper>button.leadin-button.leadin-button-primary.leadin-primary.leadin-submit.button-with-gdpr{margin-top:0}#leadin-content-form-wrapper>div.leadin-message-wrapper>h4,#leadinModal-content-wrapper-1013719>div>div>h4{padding-bottom:8px;font-size:1.5em;font-weight:500;line-height:160%}#leadin-content-form-wrapper>div.leadin-message-wrapper>h4,#leadinModal-content-wrapper-1013719>div>div>h4,#leadinModal-content-wrapper-1013719>div>div>span{color:#002042}#leadinModal-content-wrapper-1013719 p,#leadinModal-content-wrapper-1013719>div>div>span{margin-left:0!important;font-size:1em;line-height:188%;color:#002042}#leadinModal-content-wrapper-1013719>div>div>div.thank-you-message>span>p:first-child{font-size:3em!important;line-height:100%!important}#leadinModal-content-wrapper-1013719>div>div>div.thank-you-message>div{padding-top:0!important}#input-email-015dc492-4fcf-436f-b1c2-8787b44ce5d9{padding:8px 16px;width:100%;height:42px;max-height:42px;border-radius:4px;border:1px solid rgba(127,143,161,.22);background-color:rgba(245,249,250,.4);font-size:.938em;transition:.2s ease-in-out}#input-email-015dc492-4fcf-436f-b1c2-8787b44ce5d9:hover{background-color:#fff;border-color:rgba(41,121,255,.4)}#input-email-015dc492-4fcf-436f-b1c2-8787b44ce5d9:focus{outline:0;border-color:#2979ff!important}.border-bottom-only,.no-border{border-top:none!important}.border-top-only,.no-border{border-bottom:none!important}#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.leadin-input-wrapper.form-fields>div>label{font-weight:500;font-size:.9em;margin-bottom:8px;color:#002042}#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9 .error-text,#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.gdpr-options>span>div:nth-child(8)>label>span{padding:0;margin:0 0 0 4px;text-align:left;font-size:.8em;font-weight:400;color:#e91e63!important;background-color:transparent}#leadinModal-content-wrapper-1013719>div>div>div.thank-you-message{margin-top:24px}#hs-eu-cookie-confirmation #hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area a#hs-eu-confirmation-button,#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.gdpr-options>span>div:nth-child(4)>label>div>p:nth-child(2),#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9>div.gdpr-options>span>div:nth-child(8)>label>div>p{font-weight:500!important}#leadin-content-form-wrapper>div.leadin-message-wrapper>div.dyno-image,#leadinModal-content-wrapper-1013719>div>div>div.dyno-image{margin:0 auto;display:block;width:100%;float:none}#leadin-content-form-wrapper>div.leadin-message-wrapper>div.dyno-image>div>img,#leadinModal-content-wrapper-1013719>div>div>div.dyno-image>div>img{margin:0 auto 24px;display:block;width:160px;height:auto;max-width:none!important}#leadin-content-form-wrapper>div.leadin-message-wrapper #leadinModal-content-wrapper-1013719 p,#leadin-content-form-wrapper>div.leadin-message-wrapper>h4,#leadin-content-form-wrapper>div.leadin-message-wrapper>span>p:nth-child(2),#leadinModal-content-wrapper-1013719>div>div,#leadinModal-content-wrapper-1013719>div>div>h4{margin:0 auto!important}#hsPopUpForm-015dc492-4fcf-436f-b1c2-8787b44ce5d9,#leadinModal-content-wrapper-1013719 .advance-wrapper{margin:0 auto;width:100%}#hs-eu-cookie-confirmation #hs-eu-cookie-confirmation-inner{width:100%;display:flex;flex-direction:column;margin:0 auto;max-width:1680px!important;background:0 0!important;font-size:1em;font-family:Garnett,Helvetica,Arial;justify-content:space-around;padding:1.5em!important}#hs-eu-cookie-confirmation #hs-eu-cookie-confirmation-inner p{margin:auto!important;padding-left:5px}#hs-eu-cookie-confirmation #hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area{margin-right:auto!important;justify-content:left;align-items:center}#hs-eu-cookie-confirmation #hs-eu-cookie-confirmation-inner #hs-eu-policy-wording>p{line-height:160%!important;margin-bottom:0!important}#hs-eu-cookie-confirmation #hs-eu-cookie-confirmation-inner #hs-eu-policy-wording>p>a{color:#2979ff!important;font-weight:500!important}@media only screen and (max-width:960px){#hs-eu-cookie-confirmation{width:70%!important}}@media screen and (max-width:480px){#hs-eu-cookie-confirmation #hs-eu-cookie-confirmation-inner{margin-top:10px!important}}.less{margin-top:-56px}
197.mt-0{margin-top:0!important}div#hs-eu-cookie-confirmation{z-index:999!important}.page-link{color:var(--black);border-radius:4px;justify-content:center;align-items:center;padding-left:12px;padding-right:12px;font-weight:500;line-height:32px;text-decoration:none;transition:.2s;display:flex}.page-link.current-page{background-color:rgb(41 122 255 / 9%);color:var(--primary)}
198
199.nav-btn-default,
200.nav-free-btn,
201.nav-btn-default-nav,
202.nav-free-btn-en {
203    display: none;
204}
205
206@media (max-width: 1215px) {
207  #banner-nav-pill {
208    display: none;
209  }
210}
211
212@media (max-width: 996px) {
213.mobile-hidden-important{
214	display: none !important;
215}
216}
217    .nav-link-wrapper-badge:hover .nav-text-grey{
218  color: #2979ff;
219  }
220  .nav-link-wrapper-box:hover .nav-text-grey{
221  color: #2979ff;
222  }
223
224  .feature_page_embed iframe{
225  border-radius: 12px;
226  }
227</style>
228<!-- IMAGE SIZES RUNTIME PATCH — patches `sizes` attribute for misconfigured images.
229     Source: audits/image-sizes-runtime.js in competitors repo.
230     Verify: document.querySelectorAll('img[data-sizes-patched]').length -->
231<script>
232(function () {
233  'use strict';
234  const RULES = [
235    {
236      selector: 'img.image-183',
237      sizes: '(min-width: 992px) 50vw, (min-width: 768px) 49vw, 100vw',
238    },
239  ];
240  function patch(img) {
241    for (const rule of RULES) {
242      if (!img.matches(rule.selector)) continue;
243      if (img.getAttribute('sizes') === rule.sizes) return;
244      img.setAttribute('sizes', rule.sizes);
245      img.setAttribute('data-sizes-patched', '1');
246      if (img.complete && img.currentSrc) {
247        const src = img.src;
248        img.removeAttribute('src');
249        img.src = src;
250      }
251      return;
252    }
253  }
254  function patchAll(root) {
255    (root || document).querySelectorAll('img').forEach(patch);
256  }
257  if (document.readyState === 'loading') {
258    document.addEventListener('DOMContentLoaded', () => patchAll());
259  } else {
260    patchAll();
261  }
262  const observer = new MutationObserver((mutations) => {
263    for (const m of mutations) {
264      m.addedNodes.forEach((n) => {
265        if (n.nodeType !== 1) return;
266        if (n.tagName === 'IMG') patch(n);
267        else if (n.querySelectorAll) patchAll(n);
268      });
269    }
270  });
271  if (document.body) {
272    observer.observe(document.body, { childList: true, subtree: true });
273  } else {
274    document.addEventListener('DOMContentLoaded', () => {
275      observer.observe(document.body, { childList: true, subtree: true });
276    });
277  }
278})();
279</script>
279
280
281<!--
282  Hero Section Fix — Image Overflow Across All Feature Pages
283  Funraise.org · 2026-05-12
284
285  WHERE TO PASTE THIS:
286    Webflow Designer → Project Settings → Custom Code → "Head Code"
287    Paste entire content of this file (both <style> and 
287<script> blocks).
288    Save → Publish.
289
290  WHAT IT DOES:
291    1. Fixes broken `.image-feature-page` in production CSS — restores width: 150%
292       and top: -71px offset so hero image overflows past viewport edge.
293    2. Normalizes `.hero_image-feature` (used on grid-43 pages) to also use width: 150%
294       so it overflows on wide monitors (1920+).
295    3. Normalizes `.grid-43` columns to match `.grid-45` (1fr 1fr).
296    4. Resets to single-column on tablet/mobile (<991px).
297    5. Overrides the `sizes` attribute on all hero <img> elements so the browser
298       loads the high-res srcset variant (1080w/1170w) instead of the small 500w
299       variant — image appears sharp.
300
301  AFFECTED PAGES (24 feature pages):
302    All /features/* pages. Scope is restricted to `.hero--left--fixed-opacity ...`
303    so no other sections are affected.
304
305  ROLLBACK: Remove the contents of this block from Head Code, save, publish.
306-->
307
308<style>
309/* ─── Hero overflow fix · 2026-05-12 ─── */
310.hero--left--fixed-opacity .image-feature-page {
311  width: 150%;
312  inset: -71px auto auto 0%;
313}
314
315.hero--left--fixed-opacity .hero_image-feature,
316.hero--left--fixed-opacity .hero_image-feature.prev-version {
317  width: 150%;
318  min-width: 0;
319  inset: -71px auto auto 0%;
320}
321
322.hero--left--fixed-opacity .grid-43 {
323  grid-template-columns: 1fr 1fr;
324  grid-column-gap: 20px;
325}
326
327@media (max-width: 991px) {
328  .hero--left--fixed-opacity .image-feature-page,
329  .hero--left--fixed-opacity .hero_image-feature,
330  .hero--left--fixed-opacity .hero_image-feature.prev-version {
331    width: 100%;
332    min-width: 0;
333    max-width: 100%;
334    inset: auto;
335    position: static;
336  }
337}
338</style>
339
340<script>
341(function () {
342  var SIZES = '(max-width: 479px) 100vw, (max-width: 767px) 100vw, (max-width: 991px) 800px, 1100px';
343  function applySizes() {
344    var imgs = document.querySelectorAll(
345      '.hero--left--fixed-opacity .image-feature-page, .hero--left--fixed-opacity .hero_image-feature'
346    );
347    imgs.forEach(function (img) { img.setAttribute('sizes', SIZES); });
348  }
349  if (document.readyState === 'loading') {
350    document.addEventListener('DOMContentLoaded', applySizes);
351  } else {
352    applySizes();
353  }
354})();
355</script>
355
356<link href="https://www.funraise.org/pricing" rel="canonical"/>
357
358<style media="screen">
359
360.call-out-box .link-icone-arrow{
361  transition: 0.3s;
362}
363.call-out-box:hover .link-icone-arrow {
364  transform: translate( 8px , 0);
365}
366.plan-chart-row:nth-of-type(even) {
367  background-image: linear-gradient(to bottom, var(--light-gray), var(--light-gray));
368  border-radius: 6px;
369}
370
371  @media screen and (min-width: 1216px) and (max-width: 1316px) {
372  	.pricing-lead.left-aligned {
373    	min-height: 4.8em !important;
374    }
375  }
376  @media screen and (min-width: 1400px) and (max-width: 1463px) {
377  .pricing-lead.left-aligned {
378    min-height: 4.8em !important;
379  }
380}
381</style></head><body class="body"><div><div class="promo-nav-wrap"><div class="promo-nav-wrap"><a href="/fundraising-events-event-watch" class="fee-banner"><span class="fee-banner-pill">WATCH NOW</span><span class="fee-banner-text">Funraise Events launch event</span></a><div><div id="nav-shade-over" class="nav-shade-over"></div><div class="promo-navbar-wrapper"><div data-collapse="medium" data-animation="over-left" data-duration="300" data-doc-height="1" data-easing2="ease-in-out" data-easing="ease-in-out" role="banner" class="navbar-3 main-nav nav-v2 w-nav"><div class="content-container-4 header-nav v2"><nav role="navigation" class="nav-menu nav-left v2 w-nav-menu"><a id="home" href="/" class="nav-logo w-inline-block"><img width="120" height="72" alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5895c_Funraise_Logo_Dark.svg" loading="lazy" class="image-233 v2"/></a><div data-delay="300" data-hover="false" class="nav-dropdown w-dropdown"><div id="platform" class="nav-link-2 dopdown-btn v2 w-dropdown-toggle"><div>Platform</div></div><nav class="nav-dropdown-menu w-dropdown-list"><div class="nav-colors-bg-wrapper"><div class="nav-grey-bg"></div><div class="nav-white-bg"></div></div><div class="content-container-4 header-nav v2 p-0"><div class="div-block-439"><div class="platform-dropdown-nav-wrapper-2 space-bet"><div class="div-block-431 hide-sm"><div class="nav-text-grey">The complete nonprofit fundraising platform.</div><div class="sm-nav-text mxw-244">Nonprofit tools, built by nonprofit people, all working together in one easy-to-use platform.</div></div><div class="div-dorpdown-nav-left hidenn"><a href="/free-fundraising-software-for-nonprofits" class="nav-dropdown-pill mobile-sm w-inline-block"><div class="text-block-1427">👉  Get Started for Free</div></a></div><div class="div-block-430"><a href="/contact-sales" class="arrow-link-wrap-3 w-inline-block"><div class="link-container-2 hide"><div class="arrow-link-txt-2">Get a Demo</div><div class="link-arrow"></div></div></a><a href="/features" class="arrow-link-wrap-3 w-inline-block"><div class="link-container-2"><div class="arrow-link-txt-2">All Features</div><div class="link-arrow"></div></div></a><a href="/integrations" class="arrow-link-wrap-3 w-inline-block"><div class="link-container-2"><div class="arrow-link-txt-2">Integrations</div><div class="link-arrow"></div></div></a></div></div><div id="nav-tab-one" class="nav-platform-tab-2 div-block-429"><div class="feature-list-wrapper-2 first"><a href="/features#fundraising" class="nav-link-heading">Fundraising</a><a href="/features/donation-forms" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c58966_donation-forms.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Donation Forms</div></div><div class="link-arrow feature"></div></a><a href="/features/donation-pages" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c58f6d_donation-pages.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Donation Pages</div></div><div class="link-arrow feature"></div></a><a href="/features/recurring-giving" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6
381702bad89f47b87835c5895e_recurring-giving.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Recurring Giving</div></div><div class="link-arrow feature"></div></a><a href="/features/fundraising-websites" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5895a_fundraising-websites.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Fundraising Websites</div></div><div class="link-arrow feature"></div></a><a href="/features/peer-to-peer-fundraising" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c58969_peer-to-peer.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Peer-to-peer Fundraising</div></div><div class="link-arrow feature"></div></a><a href="/features/events-and-ticketing" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c58967_events.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Fundraising Events</div><div class="nav-tag-new">NEW</div></div><div class="link-arrow feature"></div></a><a href="/features/fundraising-auctions" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c593f6_hammer.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Auctions</div></div><div class="link-arrow feature"></div></a><a href="/features/company-matching" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c58fef_company-match-icon-sm.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Company Matching</div></div><div class="link-arrow feature"></div></a></div><div class="feature-list-wrapper-2 _w-230"><a href="/features#crm" class="nav-link-heading">Nonprofit CRM</a><a href="/features/donor-crm" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c58968_supporters.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Donors</div></div><div class="link-arrow feature"></div></a><a href="/features/donor-prospecting" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67f90e3cba41a670dcf02c02_Wealth.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Wealth Screening</div></div><div class="link-arrow feature"></div></a><a href="/features/fundraising-intelligence" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c58ecd_donation-analytics.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Reports &amp; Dashboards</div></div><div class="link-arrow feature"></div></a><a href="/features/donation-management" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c58975_transactions.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Donations</div></div><div class="link-arrow feature"></div></a><a href="/features/donation-tasks" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c58970_tasks.svg"/><div class="dropdown-link-text feature-single">Automated Tasks</div></div><div class="link-arrow feature"></div></a><a href="/features/volunteer-management" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/[email protected]" class="feature-single-img"/><div class="dropdown-link-text feature-single">Volunteer Management</div></div><div class="link-arrow feature"></div></a><a href="/features/donor-portal-app" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="Funraise icon logo." src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/607a1579e9ca4e8f587aebcb_donor-portal-icon-sm.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Donor Portal</div></div><div class="link-arrow feature"></div></a></div><div class="feature-list-wrapper-2 _w-200"><a href="/features#engagement" class="nav-link-heading">Engagement</a><a href="/features/automated-emails" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6
381702bad89f47b87835c58964_automated-emails.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Email Messaging</div></div><div class="link-arrow feature"></div></a><a href="/features/text-engagement" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5896b_sms.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">SMS Messaging</div></div><div class="link-arrow feature"></div></a><a href="/features/text-engagement" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5896b_sms.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Text to Give</div></div><div class="link-arrow feature"></div></a></div><div class="feature-list-wrapper-2 _w-200 sm-hide l-border"><a href="/features#platfrom" class="nav-link-heading">Platform</a><a href="/features/funraise-app" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c59041_Funraise_Icon_app.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Funraise App</div></div><div class="link-arrow feature"></div></a><a href="/features/subaccounts" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5922b_%20AppealAI%402x.webp" class="feature-single-img"/><div class="dropdown-link-text feature-single">Subaccounts</div></div><div class="link-arrow feature"></div></a><a href="/features/funraise-ai" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5920e_AppealAI_Dropdown.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Funraise AI</div></div><div class="link-arrow feature"></div></a><a href="/integrations" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c595a5_Integrations%20(1).svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Integrations</div></div><div class="link-arrow feature"></div></a><a href="/about/security" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c595ad_Security.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Security</div></div><div class="link-arrow feature"></div></a></div></div></div></div></nav></div><div data-delay="0" data-hover="false" class="nav-dropdown w-dropdown"><div class="nav-link-2 dopdown-btn v2 w-dropdown-toggle"><div>Use Cases</div></div><nav class="nav-dropdown-menu w-dropdown-list"><div class="nav-colors-bg-wrapper"><div class="nav-white-bg"></div><div class="nav-grey-bg"></div></div><div class="content-container-4 header-nav v2 p-0"><div class="div-block-433 pt-10"><div class="us-html w-embed"><section class="frnv" aria-label="Customer video case studies">
382  <div class="frnv__inner">
383
384    <header class="frnv__head">
385      <div>
386        <p class="frnv__eyebrow">See Funraise in action</p>
387      </div>
388      <div class="frnv__nav" aria-hidden="false">
389        <button class="frnv__arrow" data-dir="-1" type="button" aria-label="Previous videos">
390          <svg viewBox="0 0 24 24" fill="none"><path d="M15 5l-7 7 7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
391        </button>
392        <button class="frnv__arrow" data-dir="1" type="button" aria-label="Next videos">
393          <svg viewBox="0 0 24 24" fill="none"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
394        </button>
395      </div>
396    </header>
397
398    <div class="frnv__viewport">
399    <ul class="frnv__track" id="frnv-track">
400      <li class="frnv__item">
401        <button class="frnv__card" type="button" data-media="auirnep9at" data-title="Liberty in North Korea"
402          style="--poster:url('https://embed-ssl.wistia.com/deliveries/788b7fff142b4c477f8b7ffe929a426d.jpg?image_crop_resized=720x960')"
403          aria-label="Play video: Liberty in North Korea">
404          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
405          <span class="frnv__name">Liberty in North Korea</span>
406        </button>
407      </li>
408      <li class="frnv__item">
409        <button class="frnv__card" type="button" data-media="9ud9rtsq0y" data-title="Bahati Foundation"
410          style="--poster:url('https://embed-ssl.wistia.com/deliveries/2df6ce3257104ed13105284788cf5a7d.jpg?image_crop_resized=720x960')"
411          aria-label="Play video: Bahati Foundation">
412          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
413          <span class="frnv__name">Bahati Foundation</span>
414        </button>
415      </li>
416      <li class="frnv__item">
417        <button class="frnv__card" type="button" data-media="f65h6noxj8" data-title="YMCA of Greater OKC"
418          style="--poster:url('https://embed-ssl.wistia.com/deliveries/c4d3bd25efce0f9182a1c69cb15693b8.jpg?image_crop_resized=720x960')"
419          aria-label="Play video: YMCA of Greater OKC">
420          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
421          <span class="frnv__name">YMCA of Greater OKC</span>
422        </button>
423      </li>
424      <li class="frnv__item">
425        <button class="frnv__card" type="button" data-media="pf77uoni1l" data-title="Liberty in North Korea"
426          style="--poster:url('https://embed-ssl.wistia.com/deliveries/386a4bcc31a982045dc55f20e5994053.jpg?image_crop_resized=720x960')"
427          aria-label="Play video: Liberty in North Korea">
428          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
429          <span class="frnv__name">Liberty in North Korea</span>
430        </button>
431      </li>
432      <li class="frnv__item">
433        <button class="frnv__card" type="button" data-media="iqbujj6kd5" data-title="Momento Foundation"
434          style="--poster:url('https://embed-ssl.wistia.com/deliveries/ce68e0bd013fdc7817166b3b826d8abe.jpg?image_crop_resized=720x960')"
435          aria-label="Play video: Momento Foundation">
436          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
437          <span class="frnv__name">Momento Foundation</span>
438        </button>
439      </li>
440      <li class="frnv__item">
441        <button class="frnv__card" type="button" data-media="8msd1b6kr2" data-title="Dressember"
442          style="--poster:url('https://embed-ssl.wistia.com/deliveries/f0dc9b3745aac6e0afc8f91f4990b7a1.jpg?image_crop_resized=720x960')"
443          aria-label="Play video: Dressember">
444          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
445          <span class="frnv__name">Dressember</span>
446        </button>
447      </li>
448      <li class="frnv__item">
449        <button class="frnv__card" type="button" data-media="cfkscchx2x" data-title="BLUE Missions"
450          style="--poster:url('https://embed-ssl.wistia.com/deliveries/190b246a6a212a91ec923384a890a026.jpg?image_crop_resized=720x960')"
451          aria-label="Play video: BLUE Missions">
452          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
453          <span class="frnv__name">BLUE Missions</span>
454        </button>
455      </li>
456      <li class="frnv__item">
457        <button class="frnv__card" type="button" data-media="aagaqnuyng" data-title="CARE for AIDs"
458          style="--poster:url('https://embed-ssl.wistia.com/deliveries/535f50e10e968426ae6f73d15913efcd.jpg?image_crop_resized=720x960')"
459          aria-label="Play video: CARE for AIDs">
460          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
461          <span class="frnv__name">CARE for AIDs</span>
462        </button>
463      </li>
464      <li class="frnv__item">
465        <button class="frnv__card" type="button" data-media="mparjo9415" data-title="Gaston County YMCA"
466          style="--poster:url('https://embed-ssl.wistia.com/deliveries/25e5ba100f7a62265b60114a557e1549.jpg?image_crop_resized=720x960')"
467          aria-label="Play video: Gaston County YMCA">
468          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
469          <span class="frnv__name">Gaston County YMCA</span>
470        </button>
471      </li>
472      <li class="frnv__item">
473        <button class="frnv__card" type="button" data-media="6014ksj1xf" data-title="Maria Droste Counseling Center"
474          style="--poster:url('https://embed-ssl.wistia.com/deliveries/c8e4e74d78b09445c8d8cc83f8bc3c1e.jpg?image_crop_resized=720x960')"
475          aria-label="Play video: Maria Droste Counseling Center">
476          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
477          <span class="frnv__name">Maria Droste Counseling Center</span>
478        </button>
479      </li>
480      <li class="frnv__item">
481        <button class="frnv__card" type="button" data-media="1jsrh57u8w" data-title="BeLoved"
482          style="--poster:url('https://embed-ssl.wistia.com/deliveries/aab51eb41ddc727d46d70c1bbc86fb0b.jpg?image_crop_resized=720x960')"
483          aria-label="Play video: BeLoved">
484          <span class="frnv__poster"><span class="frnv__play" aria-hidden="true"></span></span>
485          <span class="frnv__name">BeLoved</span>
486        </button>
487      </li>
488    </ul>
489      <span class="frnv__fade frnv__fade--l" aria-hidden="true"></span>
490      <span class="frnv__fade frnv__fade--r" aria-hidden="true"></span>
491    </div>
492  </div>
493
494  <!-- Lightbox (player injected on first open; moved to <body> on init) -->
495  <div class="frnv__lightbox" id="frnv-lightbox" role="dialog" aria-modal="true" aria-label="Video player" hidden>
496    <button class="frnv__close" type="button" aria-label="Close video">
497      <svg viewBox="0 0 24 24" fill="none"><path d="M6 6l12 12M18 6L6 18" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
498    </button>
499    <div class="frnv__modal">
500      <div class="frnv__player" id="frnv-player"></div>
501    </div>
502  </div>
503</section></div><div class="uc-css-hidden w-embed"><style>
504.frnv{
505  --frnv-dark:#002042; --frnv-blue:#2979ff; --frnv-border:#e1e4e8; --frnv-radius:16px;
506  /* Sized as the LEFT region of the Use Cases flex row (sits next to "Case Studies").
507     width gives the flex child a predictable basis; max-width:100% lets it shrink. */
508  position:relative; width:810px; max-width:100%; padding:0;
509  font-family:inherit; color:var(--frnv-dark);
510  -webkit-font-smoothing:antialiased; box-sizing:border-box; overflow-x:clip;
511}
512.frnv *{box-sizing:border-box;}
513.frnv__inner{width:100%; max-width:810px; margin:0 auto;}
514
515/* ---------- Header ---------- */
516.frnv__head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin:0 0 18px;}
517.frnv__eyebrow{font-weight:600; font-size:12px; letter-spacing:.06em; text-transform:uppercase;
518  color:var(--frnv-blue); margin:0 0 6px;}
519.frnv__title{font-weight:600; font-size:22px; line-height:1.14; letter-spacing:.2px; margin:0;}
520
521.frnv__nav{display:flex; gap:10px; flex:0 0 auto;}
522.frnv__arrow{width:40px; height:40px; border-radius:50%; border:1px solid var(--frnv-border);
523  background:#fff; color:var(--frnv-dark); cursor:pointer; display:flex; align-items:center;
524  justify-content:center; transition:background .2s ease, border-color .2s ease, opacity .2s ease;}
525.frnv__arrow svg{width:20px; height:20px;}
526.frnv__arrow:hover{background:var(--frnv-dark); color:#fff; border-color:var(--frnv-dark);}
527.frnv__arrow:disabled{opacity:.35; cursor:default;}
528.frnv__arrow:disabled:hover{background:#fff; color:var(--frnv-dark); border-color:var(--frnv-border);}
529.frnv__arrow:focus-visible{outline:2px solid var(--frnv-blue); outline-offset:3px;}
530
531/* ---------- Track (scroll-snap carousel) ---------- */
532.frnv__viewport{position:relative;}
533.frnv__track{display:flex; gap:22px; list-style:none; margin:0; padding:6px 0 8px;
534  overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
535  -webkit-overflow-scrolling:touch; scrollbar-width:none; cursor:grab;}
536/* Edge fades — appear only when there is more to scroll on that side (hidden on mobile, see media query) */
537.frnv__fade{position:absolute; top:0; bottom:0; width:56px; pointer-events:none; z-index:3;
538  opacity:0; transition:opacity .25s ease;}
539.frnv__fade--l{left:0; background:linear-gradient(to right, #fff 12%, rgba(255,255,255,0));}
540.frnv__fade--r{right:0; background:linear-gradient(to left, #fff 12%, rgba(255,255,255,0));}
541.frnv__viewport.has-prev .frnv__fade--l{opacity:1;}
542.frnv__viewport.has-next .frnv__fade--r{opacity:1;}
543.frnv__track::-webkit-scrollbar{display:none;}
544.frnv__track.is-dragging{cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto; user-select:none;}
545.frnv__item{flex:0 0 auto; scroll-snap-align:start;}
546
547/* width 200px keeps the whole block <=~400px tall so it isn't clipped when the
548   menu is capped at 440px + overflow:hidden on screens >=1920px. */
549.frnv__card{display:block;
549 width:200px; padding:0; border:0; background:transparent;
550  cursor:pointer; font:inherit; color:inherit; text-align:left;}
551.frnv__track.is-dragging .frnv__card{cursor:grabbing;}
552.frnv__poster{position:relative; display:block; width:100%; aspect-ratio:5/7; border-radius:var(--frnv-radius);
553  overflow:hidden; background:var(--frnv-border) var(--poster) center/cover no-repeat;
554  box-shadow:0 10px 30px rgba(0,32,66,.10); transition:transform .35s cubic-bezier(.16,.84,.34,1), box-shadow .35s ease;}
555.frnv__poster::after{content:""; position:absolute; inset:0;
556  background:linear-gradient(180deg, rgba(0,32,66,0) 55%, rgba(0,32,66,.28) 100%); opacity:.9;}
557.frnv__card:hover .frnv__poster{transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,32,66,.18);}
558.frnv__card:focus-visible{outline:none;}
559.frnv__card:focus-visible .frnv__poster{outline:3px solid var(--frnv-blue); outline-offset:3px;}
560
561/* Play button */
562.frnv__play{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2;
563  width:54px; height:54px; border-radius:50%; background:rgba(255,255,255,.92);
564  box-shadow:0 6px 20px rgba(0,32,66,.25); transition:transform .25s ease, background .25s ease;}
565.frnv__play::before{content:""; position:absolute; top:50%; left:53%; transform:translate(-50%,-50%);
566  border-style:solid; border-width:8px 0 8px 13px; border-color:transparent transparent transparent var(--frnv-blue);}
567.frnv__card:hover .frnv__play{transform:translate(-50%,-50%) scale(1.08); background:#fff;}
568
569.frnv__name{display:block; margin-top:10px; font-weight:600; font-size:14px; line-height:1.35; color:var(--frnv-dark);}
570
571/* ---------- Lightbox ---------- */
572.frnv__lightbox{position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center;
573  padding:24px; background:rgba(0,32,66,.82); opacity:0; transition:opacity .25s ease;}
574.frnv__lightbox.is-open{opacity:1;}
575.frnv__lightbox[hidden]{display:none;}
576.frnv__modal{position:relative; width:100%; max-width:1040px; transform:scale(.97); transition:transform .3s cubic-bezier(.16,.84,.34,1);}
577.frnv__lightbox.is-open .frnv__modal{transform:none;}
578.frnv__player{position:relative; width:100%; aspect-ratio:16/9; background:#001329; border-radius:12px; overflow:hidden;}
579.frnv__player::after{content:""; position:absolute; top:50%; left:50%; width:42px; height:42px; margin:-21px;
580  border:3px solid rgba(255,255,255,.25); border-top-color:#fff; border-radius:50%; animation:frnv-spin 1s linear infinite;}
581.frnv__player.is-ready::after{display:none;}
582@keyframes frnv-spin{to{transform:rotate(360deg);}}
583.frnv__player wistia-player{display:block; width:100%; height:100%;}
584.frnv__close{position:absolute; top:18px; right:18px; z-index:1; width:44px; height:44px; border-radius:50%;
585  border:0; background:rgba(255,255,255,.14); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
586  transition:background .2s ease;}
587.frnv__close:hover{background:rgba(255,255,255,.28);}
588.frnv__close svg{width:24px; height:24px;}
589.frnv__close:focus-visible{outline:2px solid #fff; outline-offset:3px;}
590
591/* ---------- Responsive (nav collapses to vertical mobile menu at <=991px) ---------- */
592@media (max-width:991px){
593  .frnv__inner{max-width:100%;}
594  .frnv__title{font-size:21px;}
595  .frnv__head{margin-bottom:18px;}
596  .frnv__nav{display:none;}                 /* drag / swipe instead */
597  .frnv__card{width:76vw; max-width:300px;}
598}
599@media (max-width:767px){
600  .frnv__fade{display:none;}                 /* no edge fades on mobile */
601}
602@media (max-width:479px){
603  .frnv__title{font-size:19px;}
604  .frnv__card{width:80vw; max-width:300px;}
605  .frnv__name{font-size:14px;}
606}
607
608/* ---------- Reduced motion ---------- */
609@media (prefers-reduced-motion:reduce){
610  .frnv *{transition:none !important; animation:none !important;}
611  .frnv__track{scroll-behavior:auto;}
612  /* the lightbox is moved to <body>, so target it directly too */
613  .frnv__lightbox, .frnv__lightbox *{transition:none !important; animation:none !important;}
614}
615</style></div><div class="uc-js-hidden w-embed w-script">
615<script>
616(function(){
617  var cs = document.currentScript;   // capture now; it's null inside the deferred callback
618  function init(){
619  var root = (cs && cs.closest('section.frnv')) || document.querySelector('section.frnv');
620  if(!root) return;
621
622  var track   = root.querySelector('#frnv-track');
623  var cards   = [].slice.call(root.querySelectorAll('.frnv__card'));
624  var arrows  = [].slice.call(root.querySelectorAll('.frnv__arrow'));
625  var viewport= root.querySelector('.frnv__viewport');
626  var box     = root.querySelector('#frnv-lightbox');
627  var lastFocus = null, wistiaLoading = false;
628  var isDown = false, startX = 0, startScroll = 0, dragged = false;
629
630  /* ---- Move the lightbox to <body> so the nav's CSS transform doesn't clip a position:fixed overlay ---- */
631  if(box && box.parentNode !== document.body){ document.body.appendChild(box); }
632  var player   = box.querySelector('#frnv-player');
633  var closeBtn = box.querySelector('.frnv__close');
634
635  /* Keep the Webflow dropdown OPEN while the lightbox is up. The lightbox lives on
636     <body> (outside the dropdown), so Webflow treats clicks/focus on it as an
637     "outside" interaction and auto-closes the dropdown. Swallow those events so they
638     never bubble up to Webflow's document-level close handlers. */
639  function swallow(e){ e.stopPropagation(); }
640  ['pointerdown','mousedown','mouseup','click'].forEach(function(ev){ box.addEventListener(ev, swallow); });
641
642  /* ---- Carousel arrows ---- */
643  function step(){
644    var first = track.querySelector('.frnv__item');
645    if(!first) return 200;
646    return first.getBoundingClientRect().width + 22; // card + gap
647  }
648  function updateArrows(){
649    var max = track.scrollWidth - track.clientWidth - 1;
650    var atStart = track.scrollLeft <= 1, atEnd = track.scrollLeft >= max;
651    if(viewport){                                   // edge fades: left only after scrolling, right only when more remains
652      viewport.classList.toggle('has-prev', !atStart);
653      viewport.classList.toggle('has-next', !atEnd);
654    }
655    if(arrows.length){ arrows[0].disabled = atStart; arrows[1].disabled = atEnd; }
656  }
657  arrows.forEach(function(a){
658    a.addEventListener('click', function(){
659      track.scrollBy({ left: (+a.dataset.dir) * step() * 2, behavior:'smooth' });
660    });
661  });
662  track.addEventListener('scroll', updateArrows, {passive:true});
663  window.addEventListener('resize', updateArrows);
664  /* The embed loads while the dropdown is display:none, so the track has no
665     layout yet (scrollWidth/clientWidth = 0) and arrows/fades compute wrong.
666     A ResizeObserver fires when the track gains size (dropdown opens) -> recompute. */
667  if(window.ResizeObserver){ new ResizeObserver(function(){ updateArrows(); }).observe(track); }
668
669  /* ---- Drag to scroll (mouse / pen; touch uses native swipe) ---- */
670  track.addEventListener('pointerdown', function(e){
671    if(e.pointerType === 'touch') return;
672    isDown = true; dragged = false; startX = e.clientX; startScroll = track.scrollLeft;
673    track.classList.add('is-dragging');
674  });
675  track.addEventListener('pointermove', function(e){
676    if(!isDown) return;
677    var dx = e.clientX - startX;
678    if(Math.abs(dx) > 4) dragged = true;
679    track.scrollLeft = startScroll - dx;
680  });
681  function endDrag(){ if(!isDown) return; isDown = false; track.classList.remove('is-dragging'); updateArrows(); }
682  track.addEventListener('pointerup', endDrag);
683  track.addEventListener('pointerleave', endDrag);
684  track.addEventListener('pointercancel', endDrag);
685  track.addEventListener('dragstart', function(e){ e.preventDefault(); }); // no native img/text drag
686
687  /* ---- Wistia loader (once; shared-safe with the homepage block) ---- */
688  function ensureWistia(){
689    if(window.customElements && customElements.get('wistia-player')) return;
690    if(wistiaLoading) return;
691    wistiaLoading = true;
692    var s = document.createElement('script');
693    s.src = 'https://fast.wistia.com/player.js'; s.async = true;
694    document.head.appendChild(s);
695  }
696
697  /* ---- Lightbox ---- */
698  function openVideo(card){
699    var id = card.dataset.media;
700    lastFocus = card;
701    ensureWistia();
702    player.classList.remove('is-ready');
703    player.innerHTML = '';
704    var el = document.createElement('wistia-player');
705    el.setAttribute('media-id', id);
706    el.setAttribute('aspect', '1.7777777777777777');
707    el.setAttribute('autoplay', 'true');
708    el.addEventListener('wistia-player-ready', onReady, {once:true});
709    player.appendChild(el);
710    // fallback in case the ready event name varies across versions
711    setTimeout(function(){ player.classList.add('is-ready'); }, 1200);
712
713    box.hidden = false;
714    document.body.style.overflow = 'hidden';
715    requestAnimationFrame(function(){ box.classList.add('is-open'); });
716    closeBtn.focus();
717    /* capture phase + swallow so neither our Esc/focus handling nor Webflow's
718       reaches the dropdown's auto-close logic (focusing the body-level close
719       button moves focus out of the dropdown, which would otherwise close it). */
720    document.addEventListener('keydown', onKey, true);
721    document.addEventListener('focusout', swallow, true);
722  }
723  function onReady(){ player.classList.add('is-ready'); }
724
725  function closeVideo(){
726    box.classList.remove('is-open');
727    document.removeEventListener('keydown', onKey, true);
728    document.removeEventListener('focusout', swallow, true);
729    document.body.style.overflow = '';
730    var done = function(){
731      box.hidden = true;
732      player.innerHTML = '';            // removing the player stops playback
733      box.removeEventListener('transitionend', done);
734    };
735    box.addEventListener('transitionend', done);
736    setTimeout(done, 320);              // safety if transitionend doesn't fire
737    if(lastFocus){ lastFocus.focus(); lastFocus = null; }
738  }
739  function onKey(e){
740    if(e.key === 'Escape'){ e.stopPropagation(); closeVideo(); } // close video, not the dropdown
741    else if(e.key === 'Tab'){ e.preventDefault(); closeBtn.focus(); } // trap focus on close btn
742  }
743
744  cards.forEach(function(c){ c.addEventListener('click', function(){ if(dragged){ dragged=false; return; } openVideo(c); }); });
745  closeBtn.addEventListener('click', closeVideo);
746  box.addEventListener('click', function(e){ if(e.target === box) closeVideo(); });
747
748  updateArrows();
749  }
750
751  /* Defer init until the whole document is parsed. The embed sits high in the nav,
752     so running mid-parse — and moving the lightbox to <body> — disturbs the HTML
753     parser / Webflow's interaction binding, which broke the mobile hamburger button. */
754  if(document.readyState === 'loading'){ document.addEventListener('DOMContentLoaded', init); }
755  else { init(); }
756})();
757</script>
757</div></div><div class="platform-dropdown-nav-wrapper-2-copy sm-hide"><a href="/category/case-studies" class="nav-link-heading">Case Studies</a><div class="div-block-432"><div class="w-dyn-list"><div role="list" class="collection-list-30 w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/blog/links-recurring-program-drives-56-of-their-online-revenue" class="nav-collection-link w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6aac6a4106c1a046c2675390_LINK_CaseStudy_Blog_Header.jpg" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6aac6a4106c1a046c2675390_LINK_CaseStudy_Blog_Header-p-500.jpg 500w, https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6aac6a4106c1a046c2675390_LINK_CaseStudy_Blog_Header-p-800.jpg 800w, https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6aac6a4106c1a046c2675390_LINK_CaseStudy_Blog_Header-p-1080.jpg 1080w, https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6aac6a4106c1a046c2675390_LINK_CaseStudy_Blog_Header.jpg 1600w" class="nav-thumbnail"/><div class="nav-collection-text">LiNK’s Recurring Program Drives 56% of Their Online Revenue</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/bahati-foundation-case-study" class="nav-collection-link w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a9236053f5d212d36731bfa_BahatiFoundationCaseStudy_Blog_Header.jpg" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a9236053f5d212d36731bfa_BahatiFoundationCaseStudy_Blog_Header-p-500.jpg 500w, https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a9236053f5d212d36731bfa_BahatiFoundationCaseStudy_Blog_Header-p-800.jpg 800w, https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a9236053f5d212d36731bfa_BahatiFoundationCaseStudy_Blog_Header-p-1080.jpg 1080w, https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a9236053f5d212d36731bfa_BahatiFoundationCaseStudy_Blog_Header.jpg 1600w" class="nav-thumbnail"/><div class="nav-collection-text">Bahati Foundation Used Funraise to Grow Online Donation Revenue 44% in a Single Year</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/ymca-okc-p2p" class="nav-collection-link w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a752e61205f26561aaaf144_YMCAOKCCaseStudy_Blog_Header.jpg" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a752e61205f26561aaaf144_YMCAOKCCaseStudy_Blog_Header-p-500.jpg 500w, https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a752e61205f26561aaaf144_YMCAOKCCaseStudy_Blog_Header-p-800.jpg 800w, https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a752e61205f26561aaaf144_YMCAOKCCaseStudy_Blog_Header-p-1080.jpg 1080w, https://cdn.prod.website-files.com/5da60733afec9db1fb998273/6a752e61205f26561aaaf144_YMCAOKCCaseStudy_Blog_Header.jpg 1600w" class="nav-thumbnail"/><div class="nav-collection-text">YMCA OKC grew their online donor base 218% in less than a year with Funraise P2P</div></a></div></div></div></div></div></div></nav></div><div data-delay="300" data-hover="false" class="nav-dropdown w-dropdown"><div class="nav-link-2 dopdown-btn v2 w-dropdown-toggle"><div>Resources</div></div><nav class="nav-dropdown-menu w-dropdown-list"><div class="nav-colors-bg-wrapper"><div class="nav-white-bg"></div><div class="nav-grey-bg"></div></div><div class="content-container-4 header-nav v2 p-0 start"><div id="nav-tab-one" class="nav-platform-tab-2 div-block-429-copy-2 padding"><div class="div-block-436"><div class="feature-list-wrapper-2 pl-0 fr-chat-col"><div id="chat-now-nav" class="fr-chat-card"><div class="fr-chat-avatars"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a62115383029517895a8605_T1FJW7S3B-U64DAER5G-17e693fb8b71-512.avif" loading="lazy" alt="" class="fr-chat-avatar"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621152cac723180f9359be_T1FJW7S3B-U03LU5NSSNQ-7d18228019b6-512.avif" loading="lazy" alt="" class="fr-chat-avatar"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621152932e325ca0e05ee5_T1FJW7S3B-U0A1TG2LG4F-6bf307640bfc-512.avif" loading="lazy" alt="" class="fr-chat-avatar"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621151c22620ebba118db1_T1FJW7S3B-U1FJG0NF6-53984e6266ec-512.avif" loading="lazy" alt="" class="fr-chat-avatar"/><span class="fr-chat-status"></span></div><div class="fr-chat-title">We’re here to help!</div><div class="fr-chat-cta">Chat with us</div></div></div><div class="feature-list-wrapper-2 pl-0"><a href="/support" class="nav-link-heading">Support</a><a href="https://help.funraise.io/en/" target="_blank" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6
757702bad89f47b87835c5930f_search.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Knowledge Base</div></div><div class="link-arrow feature"></div></a><a href="https://university.funraise.org/" target="_blank" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c59310_ondemand_video.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Funraise University</div></div><div class="link-arrow feature"></div></a><a href="/for-developers" target="_blank" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5930b_code.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Developer Docs</div></div><div class="link-arrow feature"></div></a><a href="https://funraise.stoplight.io/docs/funraise/44e37c461ba67-funraise-api" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621f68681baf4f21bddad8_nav-icon-api.svg" loading="lazy" alt="Developers icon." class="feature-single-img"/><div class="dropdown-link-text feature-single">Funraise API</div></div><div class="link-arrow feature"></div></a><a href="https://community.funraise.org/" target="_blank" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c59308_forum.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Community Forum</div></div><div class="link-arrow feature"></div></a></div><div class="feature-list-wrapper-2 padding"><h4 class="nav-link-heading">Strategy</h4><a href="/blog" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5930f_search.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Blog!</div></div><div class="link-arrow feature"></div></a><a href="/webinars" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/675956aecbb423cc934f7293_Vector.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Webinars</div></div><div class="link-arrow feature"></div></a><a href="/podcast" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5930e_mic.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Podcast</div></div><div class="link-arrow feature"></div></a><a href="/category/case-studies" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5930c_category-kopia.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Case Studies</div></div><div class="link-arrow feature"></div></a><a href="/downloads" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5930a_Group-kopia%202.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Guides</div></div><div class="link-arrow feature"></div></a><a href="/appealai" target="_blank" class="dropdown-link-3 feature w-inline-block"><div class="feature-link-content"><img alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/671a64991881136502dd27f4_Group.svg" class="feature-single-img"/><div class="dropdown-link-text feature-single">Appeal AI</div></div><div class="link-arrow feature"></div></a></div><div class="feature-list-wrapper-2 padding fr-tools-col"><div class="fr-tools-head"><a href="/tools" class="nav-link-heading">Templates <!-- -->&amp;<!-- --> Calculators</a></div><a href="/tools/online-raffle-generator" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621f64dabdb49836bc9ac0_nav-icon-celebration.svg" loading="lazy" alt="" class="feature-single-img"/><div class="dropdown-link-text feature-single">Raffle Wheel Generator</div></div><div class="link-arrow feature"></div></a><a href="/tools/donation-page-conversion-rate-calculator" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621f65f2b4362dc0a53354_nav-icon-calculate.svg" loading="lazy" alt="" class="feature-single-img"/><div class="dropdown-link-text feature-single">Page Conversion Calculator</div></div><div class="link-arrow feature"></div></a><a href="/tools/gift-range-chart-calculator" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621f652c950f407f8b8ddb_nav-icon-redeem.svg" loading="lazy" alt="" class="feature-single-img"/><div class="dropdown-link-text feature-single">Gift Range Calculator</div></div><div class="link-arrow feature"></div></a><a href="/tools/nonprofit-fundraising-event-planning-template" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621f66175dd9d611806654_nav-icon-calendar-month.svg" loading="lazy" alt="" class="feature-single-img"/><div class="dropdown-link-text feature-single">Event Planning Template</div></div><div class="link-arrow feature"></div></a><a href="/tools/nonprofit-development-plan-template" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621f66cc63bb053520de83_nav-icon-trending-up.svg" loading="lazy" alt="" class="feature-single-img"/><div class="dropdown-link-text feature-single">Development Plan</div></div><div class="link-arrow feature"></div></a><a href="/tools/nonprofit-board-meeting-agenda-minutes-template" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621f67f2b4362dc0a534da_nav-icon-groups.svg" loading="lazy" alt="" class="feature-single-img"/><div class="dropdown-link-text feature-single">Board Meeting Template</div></div><div class="link-arrow feature"></div></a><a href="/tools/donor-stewardship-plan-template" class="dropdown-link-3 feature hover-bg-transparent w-inline-block"><div class="feature-link-content"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a621f67616821f4aa97c747_nav-icon-volunteer-activism.svg" loading="lazy" alt="" class="feature-single-img"/><div class="dropdown-link-text feature-single">Stewardship Plan</div></div><div class="link-arrow feature"></div></a></div></div></div></div></nav></div><a id="pricing" href="/reviews" class="nav-link-2 v2 w-nav-link">Reviews</a><a id="pricing" href="/pricing" aria-current="page" class="nav-link-2 v2 w-nav-link w--current">Pricing</a><div id="fr-notif-src" class="hide w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a id="banner-nav-pill" href="https://www.funraise.org/fundraising-events-event-watch" class="nav-link-2-copy v2-copy w-inline-block"><div class="link-block-40"><div class="text-block-1388">Product Release</div><div class="text-block-1383">The Future of Fundraising Events</div></div></a></div><div role="listitem" class="w-dyn-item"><a id="banner-nav-pill" href="https://www.funraise.org/blog/the-numbers-are-in-heres-how-funraise-customers-grew-online" class="nav-link-2-copy v2-copy w-inline-block"><div class="link-block-40"><div class="text-block-1388">Report</div><div class="text-block-1383">OMG! 26% average growth in 2025</div></div></a></div><div role="listitem" class="w-dyn-item"><a id="banner-nav-pill" href="https://www.funraise.org/blog/blue-missions-p2p" class="nav-link-2-copy v2-copy w-inline-block"><div class="link-block-40"><div class="text-block-1388">Case Study</div><div class="text-block-1383">BLUE Missions&#x27; $2M P2P campaign</div></div></a></div></div></div><div id="fr-notif-def-blog" class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/blog/best-ai-tools-for-nonprofits" class="w-inline-block"><div>34 Best AI Tools for Your Nonprofit’s Every Need (Free and Paid) </div></a></div></div></div><div id="fr-notif-def-webinar" class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/resources/fundraising-dashboards" class="w-inline-block"><div>Four fundraising dashboards that really matter</div></a></div></div></div><div id="fr-notif-def-case" class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/blog/links-recurring-program-drives-56-of-their-online-revenue" class="w-inline-block"><div>LiNK’s Recurring Program Drives 56% of Their Online Revenue</div></a></div></div></div></nav><div class="nav-right v2"><div class="w-embed"><div class="fr-notif" data-seen="false"><button type="button" class="fr-notif-btn" aria-haspopup="true" aria-expanded="false" aria-label="What's new"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.7 21a2 2 0 0 1-3.4 0"/></svg>
757<span class="fr-notif-dot" aria-hidden="true"></span></button><div class="fr-notif-panel" role="region" aria-label="Latest from Funraise"><div class="fr-notif-panel-header"><div class="fr-notif-panel-title">What&rsquo;s new</div></div><div class="fr-notif-items"></div><div class="fr-notif-footer"><a href="/subscribe" class="button-11 nav fr-notif-subscribe w-button">Subscribe to awesome<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m13 6 6 6-6 6"/></svg></a></div></div></div></div><a href="https://platform.funraise.io/" class="nav-link-2 v2 pt-0 w-nav-link">Log in</a><div class="nav-btn-default-nav"><a id="nav_demo" href="/contact-sales" class="button-11 nav nav_contact_sales w-button">Get a Demo</a></div><div class="nav-free-btn-en"><a id="nav_demo_free" href="/free-signup" class="button-11 nav nav_contact_sales w-button">Sign up for Free</a><a id="nav_demo" href="/contact-sales" class="button white cta-secondary nav w-button">Contact Sales</a></div></div></div><div class="mobile-logo-box-2"><div class="nav-logo-wrapper"><a href="/" class="header-nav-logo mobile-logo w-nav-brand"><img width="120" src="https://cdn.prod.website-files.com/6702bad89f47b87835c58955/6702bad89f47b87835c5895c_Funraise_Logo_Dark.svg" alt="" class="mobile-logo-img"/></a><a href="/resources/giving-tuesday-toolkit" class="nav-link-2 v2 mobile center mobile-hide w-inline-block"><div class="link-block-40"><div class="text-block-1388">NEW!</div><div class="text-block-1383">#GivingTuesday 2023 Toolkit</div></div></a><div class="w-embed"><div class="fr-notif fr-notif--mobile" data-seen="false"><button type="button" class="fr-notif-btn" aria-haspopup="true" aria-expanded="false" aria-label="What's new"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.7 21a2 2 0 0 1-3.4 0"/></svg><span class="fr-notif-dot" aria-hidden="true"></span></button><div class="fr-notif-panel" role="region" aria-label="Latest from Funraise"><div class="fr-notif-panel-header"><div class="fr-notif-panel-title">What&rsquo;s new</div></div><div class="fr-notif-items"></div><div class="fr-notif-footer"><a href="/subscribe" class="button-11 nav fr-notif-subscribe w-button">Subscribe to awesome<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m13 6 6 6-6 6"/></svg></a></div></div></div></div><div class="nav-btn-default"><a id="nav_demo" href="/contact-sales" class="button-11 nav nav_contact_sales w-button">Get a Demo<br/></a></div></div></div><div class="funraise-menu-button-v2-open"><div class="text-block-1386"></div></div></div></div></div><div class="w-embed"><style>#fr-notif-src,#fr-notif-def-blog,#fr-notif-def-webinar,#fr-notif-def-case{display:none !important}.fr-notif{position:relative;display:flex;align-items:center;margin:0 4px}.fr-notif-btn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;color:#1a1b1f;transition:background-color .15s ease}.fr-notif-btn:hover{background:rgba(41,121,255,.08)}.fr-notif-btn:focus-visible{outline:2px solid #2979ff;outline-offset:2px}.fr-notif-btn svg{display:block;transform-origin:50% 4px}.fr-notif-btn:hover svg{animation:fr-notif-ring .8s ease-in-out 1}@keyframes fr-notif-ring{0%{transform:rotate(0)}20%{transform:rotate(13deg)}40%{transform:rotate(-11deg)}60%{transform:rotate(7deg)}80%{transform:rotate(-4deg)}100%{transform:rotate(0)}}.fr-notif-dot{position:absolute;top:7px;right:8px;width:8px;height:8px;border-radius:50%;background:#ff3b30;pointer-events:none}.fr-notif-dot::after{content:'';position:absolute;inset:0;border-radius:50%;background:#ff3b30;animation:fr-notif-pulse 2s ease-out infinite}@keyframes fr-notif-pulse{0%{transform:scale(1);opacity:.6}70%,100%{transform:scale(2.2);opacity:0}
757}.fr-notif[data-seen='true'] .fr-notif-dot{display:none}.fr-notif-panel{position:absolute;top:calc(100% + 14px);right:-8px;width:372px;background:#fff;border-radius:16px;border:1px solid rgba(26,27,31,.07);box-shadow:0 24px 48px -12px rgba(1,59,168,.22),0 4px 12px rgba(26,27,31,.06);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.96);transform-origin:top right;transition:opacity .22s ease,visibility .22s,transform .32s cubic-bezier(.34,1.56,.64,1);z-index:999;overflow:hidden}.fr-notif.is-open .fr-notif-panel{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.fr-notif-panel-header{display:flex;align-items:center;gap:8px;padding:18px 18px 14px}.fr-notif-panel-title{font-size:15px;font-weight:700;color:#1a1b1f}.fr-notif-item,.fr-notif-footer{opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1)}.fr-notif.is-open .fr-notif-item,.fr-notif.is-open .fr-notif-footer{opacity:1;transform:translateY(0)}.fr-notif.is-open .fr-notif-item:nth-child(1){transition-delay:.
75708s}.fr-notif.is-open .fr-notif-item:nth-child(2){transition-delay:.16s}.fr-notif.is-open .fr-notif-item:nth-child(3){transition-delay:.24s}.fr-notif.is-open .fr-notif-item:nth-child(4){transition-delay:.32s}.fr-notif.is-open .fr-notif-footer{transition-delay:.38s}.fr-notif-items{display:flex;flex-direction:column;gap:8px;padding:0 14px 16px}.fr-notif-item-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(26,27,31,.1);border-radius:10px;background:#fff;text-decoration:none;color:#1a1b1f;transition:border-color .15s ease,background-color .15s ease}.fr-notif-item-row:hover{border-color:#2979ff;background:#f4f8ff}.fr-notif-item-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.fr-notif-item-title{font-size:14px;line-height:1.45;font-weight:500}.fr-notif-item-row:hover .fr-notif-item-title{color:#2979ff}.fr-notif-item-arrow{margin-left:auto;flex-shrink:0;color:#2979ff;opacity:0;transform:translateX(-6px);transition:opacity .18s ease,transform .18s cubic-bezier(.22,1,.36,1)}.fr-notif-item-row:hover .fr-notif-item-arrow{opacity:1;transform:translateX(0)}.fr-notif-tag{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#2979ff;white-space:nowrap}.fr-notif-footer{padding:14px;margin-top:0;border-top:1px solid rgba(26,27,31,.07)}.fr-notif-subscribe{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;box-sizing:border-box}.fr-notif-subscribe svg{transition:transform .18s cubic-bezier(.22,1,.36,1)}.fr-notif-subscribe:hover svg{transform:translateX(4px)}@media (prefers-reduced-motion:reduce){.fr-notif-dot::after,.fr-notif-btn:hover svg{animation:none}.fr-notif-panel,.fr-notif-item,.fr-notif-footer{transition-duration:.01s}}@media (min-width:992px){.fr-notif--mobile{display:none}}@media (max-width:991px){.nav-logo-wrapper .w-embed:has(.fr-notif--mobile){order:1;margin-left:8px;margin-right:45px}.nav-logo-wrapper .w-embed .fr-notif--mobile{margin:0}.nav-logo-wrapper .nav-btn-default,.nav-logo-wrapper .nav-free-btn{margin-left:auto;margin-right:0}}@media (max-width:767px){.fr-notif-panel{position:fixed;top:70px;left:12px;right:12px;width:auto}}.fr-tools-head{display:flex;align-items:center;margin-bottom:12px}.fr-tools-head .nav-link-heading{margin-bottom:0}.w-dropdown-list:has(.fr-tools-col) .nav-grey-bg{display:none}.w-dropdown-list:has(.fr-tools-col) .nav-white-bg{width:100%}@media (min-width:992px){.w-dropdown-list:has(.fr-chat-col) .nav-platform-tab-2{width:100%;justify-content:center;padding:0 40px}.w-dropdown-list:has(.fr-chat-col) .div-block-436{width:100%;max-width:1280px;margin:0 auto;justify-content:center}.w-dropdown-list:has(.fr-chat-col) .div-block-436>.feature-list-wrapper-2{flex:1 1 0;min-width:0;max-width:300px;padding:24px 28px !important}.w-dropdown-list:has(.fr-chat-col) .div-block-436>.fr-chat-col{padding-left:0 !important}.w-dropdown-list:has(.fr-chat-col) .div-block-436>.feature-list-wrapper-2.padding:not(.fr-tools-col){max-width:260px}.w-dropdown-list:has(.fr-chat-col) .div-block-436>.fr-tools-col{border-right:0;padding-right:0 !important}}.fr-chat-col{display:flex;align-items:stretch}.fr-chat-card{display:flex;flex-direction:column;justify-content:center;gap:14px;width:100%;padding:28px 24px;border-radius:16px;background:#2979ff;cursor:pointer;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s ease}.fr-chat-card:hover{transform:translateY(-2px);box-shadow:0 16px 32px -12px rgba(41,121,255,.55)}.fr-chat-avatars{display:flex;position:relative;width:fit-content}.fr-chat-avatar{width:54px;height:54px;border-radius:50%;object-fit:cover;border:2px solid #fff;background:#fff;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.fr-chat-avatar + .fr-chat-avatar{margin-left:-14px}.fr-chat-card:hover .fr-chat-avatar:nth-child(1){transform:translateY(-4px);transition-delay:0s}.fr-chat-card:hover .fr-chat-avatar:nth-child(2){transform:translateY(-4px);
757transition-delay:.05s}.fr-chat-card:hover .fr-chat-avatar:nth-child(3){transform:translateY(-4px);transition-delay:.1s}.fr-chat-card:hover .fr-chat-avatar:nth-child(4){transform:translateY(-4px);transition-delay:.15s}.fr-chat-status{position:absolute;right:-2px;bottom:2px;width:13px;height:13px;border-radius:50%;background:#2ec66d;border:2.5px solid #2979ff}.fr-chat-title{font-size:18px;font-weight:700;color:#fff;line-height:1.3}.fr-chat-cta{display:flex;align-items:center;gap:9px;color:#fff;font-size:14px;font-weight:700}.fr-chat-cta::after{content:'';width:7px;height:7px;flex-shrink:0;border-top:2px solid #fff;border-right:2px solid #fff;transform:rotate(45deg);transition:transform .18s cubic-bezier(.22,1,.36,1)}.fr-chat-card:hover .fr-chat-cta::after{transform:rotate(45deg) translate(2px,-2px)}</style></div><div class="w-embed"><style>@media (max-width:991px){body.fr-mnav-open{overflow:hidden}.fr-mnav-panel{position:fixed;top:72px;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:998;animation:fr-mnav-in .22s ease}.fr-mnav-panel .nav-menu{display:block !important;position:static !important;width:100% !important;height:auto !important;min-height:0 !important;max-height:none !important;margin:0 !important;transform:none !important;padding:4px 0 32px}@keyframes fr-mnav-in{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}body.fr-mnav-open .nav-menu>.nav-logo{display:none}body.fr-mnav-open .nav-menu .w-dropdown{display:block;width:100%;position:static;margin:0}body.fr-mnav-open .nav-menu .w-dropdown-toggle,body.fr-mnav-open .nav-menu>.nav-link-2{display:flex;width:100%;justify-content:space-between;align-items:center;height:auto !important;min-height:0 !important;padding:15px 24px;margin:0;font-size:18px;line-height:1.4;font-weight:600;color:#1a1b1f;white-space:normal}body.fr-mnav-open .nav-menu>.w-dropdown + .w-dropdown .w-dropdown-toggle,body.fr-mnav-open .nav-menu>.nav-link-2{border-top:1px solid rgba(26,27,31,.06)}body.fr-mnav-open .nav-menu .w-dropdown-toggle::after{content:'';width:8px;height:8px;flex-shrink:0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .2s ease}body.fr-mnav-open .nav-menu .w-dropdown-toggle.w--open{color:#2979ff}body.fr-mnav-open .nav-menu .w-dropdown-toggle.w--open::after{transform:rotate(45deg)}body.fr-mnav-open .nav-menu .nav-dropdown-menu{position:static !important;display:none;width:100%;min-width:0;box-shadow:none;padding:0 0 8px;transform:none !important;opacity:1 !important;height:auto !important;min-height:0 !important}body.fr-mnav-open .nav-menu .nav-dropdown-menu.w--open{display:block}body.fr-mnav-open .nav-dropdown-menu .nav-colors-bg-wrapper{display:none}body.fr-mnav-open .nav-menu .nav-dropdown-menu.w--open{background:transparent;padding-bottom:18px;border-bottom:1px solid rgba(26,27,31,.08)}body.fr-mnav-open .nav-dropdown-menu .content-container-4{display:flex !important;flex-direction:column !important;align-items:stretch !important;justify-content:flex-start !important;width:100%;max-width:none;margin:0;padding:0 24px !important}body.fr-mnav-open .nav-dropdown-menu .div-block-439,body.fr-mnav-open .nav-dropdown-menu .platform-dropdown-nav-wrapper-2,body.fr-mnav-open .nav-dropdown-menu .nav-platform-tab-2,body.fr-mnav-open .nav-dropdown-menu .div-block-436{display:block;width:100%;padding:0;margin:0}body.fr-mnav-open .nav-dropdown-menu .feature-list-wrapper-2{display:block;width:100%;max-width:none;padding:14px 0 0;border:0}body.fr-mnav-open .nav-dropdown-menu .feature-list-wrapper-2.sm-hide{display:block !important}body.fr-mnav-open .fr-tools-head{margin:18px 0 4px}body.fr-mnav-open .nav-dropdown-menu .nav-link-heading{display:block;margin:18px 0 6px;padding:0;border-bottom:0;font-size:11px;font-weight:800;letter-spacing:.08em;line-height:1.6;height:auto;min-height:0;text-transform:uppercase;color:#2979ff;text-decoration:none}body.fr-mnav-open .fr-tools-head .nav-link-heading{font-size:15px;font-weight:700;color:#1a1b1f;text-transform:none;letter-spacing:0;margin:0}body.fr-mnav-open .nav-dropdown-menu .dropdown-link-3{margin:0;padding:12px 0;width:100%}body.fr-mnav-open .nav-dropdown-menu .feature-link-content{padding:0;margin:0}body.fr-mnav-open .nav-dropdown-menu .feature-single-img{width:18px;height:18px}body.fr-mnav-open .nav-dropdown-menu .dropdown-link-text{font-size:15px;line-height:1.4}body.fr-mnav-open .nav-dropdown-menu .link-arrow.feature{display:none !important}body.fr-mnav-open .nav-dropdown-menu .div-block-439{display:flex !important;flex-direction:column !important;align-items:stretch !important;background:transparent;padding:0;margin:0;width:100%}body.fr-mnav-open .nav-dropdown-menu .div-block-439>.platform-dropdown-nav-wrapper-2{order:9;padding-top:8px}body.fr-mnav-open .nav-dropdown-menu .div-block-430 .arrow-link-wrap-3{margin:0 !important}body.fr-mnav-open .nav-dropdown-menu .arrow-link-wrap-3:has(>.link-container-2.hide){display:none}body.fr-mnav-open .nav-dropdown-menu .platform-dropdown-nav-wrapper-2{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:transparent;padding:0;margin:0}body.fr-mnav-open .nav-dropdown-menu .platform-dropdown-nav-wrapper-2 .arrow-link-wrap-3{padding:12px 0}body.fr-mnav-open .nav-dropdown-menu .arrow-link-txt-2{font-size:15px;line-height:1.4;font-weight:600;
757color:#1a1b1f}body.fr-mnav-open .nav-dropdown-menu .div-block-433{display:none}body.fr-mnav-open .nav-dropdown-menu .platform-dropdown-nav-wrapper-2-copy.sm-hide{display:flex !important;flex-direction:column;align-items:flex-start;background:transparent;padding:0;margin:0;width:100%}body.fr-mnav-open .nav-dropdown-menu .nav-collection-link{display:flex;align-items:center;gap:12px;padding:10px 0;width:100%;margin:0}body.fr-mnav-open .nav-dropdown-menu .w-dyn-list,body.fr-mnav-open .nav-dropdown-menu .w-dyn-items,body.fr-mnav-open .nav-dropdown-menu .w-dyn-item,body.fr-mnav-open .nav-dropdown-menu .div-block-432{display:block;height:auto !important;min-height:0 !important;margin:0 !important;padding:0 !important}body.fr-mnav-open .nav-dropdown-menu .nav-collection-link img{width:64px;height:auto;flex-shrink:0;border-radius:6px}body.fr-mnav-open .nav-dropdown-menu .nav-collection-text{font-size:14px;line-height:1.4}body.fr-mnav-open .nav-dropdown-menu .platform-dropdown-nav-wrapper-2{height:auto !important;min-height:0 !important;border:0 !important}body.fr-mnav-open .nav-dropdown-menu .platform-dropdown-nav-wrapper-2-copy{border:0 !important}body.fr-mnav-open .nav-dropdown-menu .div-block-439{height:auto !important;min-height:0 !important;border:0}body.fr-mnav-open .nav-dropdown-menu .div-block-430{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;margin:0}body.fr-mnav-open .fr-chat-card{flex-direction:row;align-items:center;gap:6px 14px;flex-wrap:wrap;justify-content:flex-start;border-radius:14px;padding:16px;margin:4px 0 0}body.fr-mnav-open .fr-chat-avatar{width:38px;height:38px}body.fr-mnav-open .fr-chat-status{width:11px;height:11px;border-width:2px}body.fr-mnav-open .fr-chat-title{font-size:15px;flex:1;min-width:0}body.fr-mnav-open .fr-chat-cta{width:100%;font-size:13px}body.fr-mnav-open .nav-menu .nav-right{display:flex !important;flex-direction:column;align-items:stretch;justify-content:flex-start;height:auto !important;min-height:0;gap:12px;padding:20px 24px 8px;border-top:1px solid rgba(26,27,31,.08);margin-top:12px}body.fr-mnav-open .nav-menu .nav-right,body.fr-mnav-open .nav-menu .nav-right *{position:static !important;transform:none !important;left:auto !important;right:auto !important;top:auto !important;bottom:auto !important}body.fr-mnav-open .nav-menu .nav-right>div{flex-direction:column;gap:12px;margin:0}body.fr-mnav-open .nav-menu .nav-right .w-button{width:100%;text-align:center;padding:12px 16px;font-size:15px}body.fr-mnav-open .nav-menu .nav-right>.nav-link-2{display:flex !important;padding:8px 0;font-size:16px;height:auto !important;min-height:0 !important}body.fr-mnav-open .nav-menu .nav-right .fr-notif{display:none}body.fr-mnav-open .funraise-menu-button-v2-open .text-block-1386{visibility:hidden}body.fr-mnav-open .funraise-menu-button-v2-open::before,body.fr-mnav-open .funraise-menu-button-v2-open::after{content:'';position:absolute;left:50%;top:50%;width:22px;height:2.5px;background:#1a1b1f;border-radius:2px}body.fr-mnav-open .funraise-menu-button-v2-open::before{transform:translate(-50%,-50%) rotate(45deg)}body.fr-mnav-open .funraise-menu-button-v2-open::after{transform:translate(-50%,-50%) rotate(-45deg)}}</style></div><div class="w-embed"><style>/* Mobile bar CTA: always Get a Demo. Wins over site custom code (display:none default + geo script inline styles). 2026-08-31 */@media (max-width:991px){.nav-logo-wrapper .nav-btn-default{display:flex !important}.nav-logo-wrapper .nav-free-btn{display:none !important}}</style></div><div class="w-embed w-script">
757<script>
758(function(){var boot=function(){
759(function () {
760  // ===== ZRODLO TRESCI =====
761  // 1) RECZNY WYBOR marketingu: itemy kolekcji "Notifications Navigations"
762  //    z wlaczonym "Show in bell" — ukryta lista #fr-notif-src (max 4).
763  // 2) DEFAULT (gdy nic nie wybrano): najnowszy blog / webinar / case study
764  //    z ukrytych list #fr-notif-def-blog / -webinar / -case (limit 1).
765  // 3) Fallback awaryjny ponizej — gdy zadna lista nie istnieje w DOM.
766  var NOTIF_ITEMS = [
767    { tag: 'Blog', title: 'Essential Fundraising Dashboards', url: '/resources/fundraising-dashboards' },
768    { tag: 'Webinar', title: 'Fundraising Dashboards — live walkthrough', url: '/webinars/fundraising-dashboards' },
769    { tag: 'New', title: 'The Must-Have Annual Report Manual', url: '/resources/annual-report-manual' }
770  ];
771  // reczny wybor: a > .link-block-40 > .text-block-1388 (tag) + .text-block-1383 (tytul)
772  var manualItems = [].slice.call(document.querySelectorAll('#fr-notif-src a[href]'))
773    .map(function (a) {
774      var tagEl = a.querySelector('.text-block-1388') || a.children[0];
775      var titleEl = a.querySelector('.text-block-1383') || a.children[1];
776      return {
777        tag: tagEl ? tagEl.textContent.trim() : '',
778        title: titleEl ? titleEl.textContent.trim() : '',
779        url: a.getAttribute('href')
780      };
781    })
782    .filter(function (i) { return i.title && i.url; })
783    .slice(0, 4);
784  // defaulty: tytul = caly tekst linku, tag nadaje JS
785  function readDefault(sel, tag) {
786    var a = document.querySelector(sel + ' a[href]');
787    if (!a) return null;
788    var title = a.textContent.replace(/\s+/g, ' ').trim();
789    return title ? { tag: tag, title: title, url: a.getAttribute('href') } : null;
790  }
791  var defaultItems = [
792    readDefault('#fr-notif-def-blog', 'Blog'),
793    readDefault('#fr-notif-def-webinar', 'Webinar'),
794    readDefault('#fr-notif-def-case', 'Case study')
795  ].filter(Boolean);
796  // 1 wybrany item = wskakuje NA POCZATEK przed defaulty (bez duplikatu URL);
797  // 2+ wybrane = zastepuja defaulty w calosci.
798  // Dedupe po pathname: reczne linki sa absolutne, defaulty wzgledne.
799  function urlPath(u) {
800    try { return new URL(u, location.origin).pathname.replace(/\/+$/, ''); } catch (e) { return u; }
801  }
802  if (manualItems.length >= 2) {
803    NOTIF_ITEMS = manualItems;
804  } else if (manualItems.length === 1) {
805    NOTIF_ITEMS = manualItems
806      .concat(defaultItems.filter(function (d) { return urlPath(d.url) !== urlPath(manualItems[0].url); }))
807      .slice(0, 4);
808  } else if (defaultItems.length) {
809    NOTIF_ITEMS = defaultItems;
810  }
811  // =========================
812
813  var roots = [].slice.call(document.querySelectorAll('.fr-notif'));
814  if (!roots.length) return;
815
816  // klucz wersji tresci — kropka wraca TYLKO gdy tresc sie zmieni.
817  // localStorage: odkliniecie trzyma sie w przegladarce usera bezterminowo
818  // (nie per sesja), az contentKey przestanie sie zgadzac.
819  var contentKey = NOTIF_ITEMS.map(function (i) { return i.url + '|' + i.title; }).join('~');
820  var STORAGE_KEY = 'fr-notif-seen';
821  var seen = false;
822  try { seen = localStorage.getItem(STORAGE_KEY) === contentKey; } catch (e) {}
823
824  function markSeen() {
825    roots.forEach(function (r) { r.setAttribute('data-seen', 'true'); });
826    try { localStorage.setItem(STORAGE_KEY, contentKey); } catch (e) {}
827  }
828
829  function renderItems(list) {
830    NOTIF_ITEMS.forEach(function (item) {
831      var a = document.createElement('a');
832      a.href = item.url;
833      a.className = 'fr-notif-item fr-notif-item-row';
834      a.innerHTML =
835        '<span class="fr-notif-item-text">' +
836        '<span class="fr-notif-tag"></span>' +
837        '<span class="fr-notif-item-title"></span>' +
838        '</span>' +
839        '<svg class="fr-notif-item-arrow" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m13 6 6 6-6 6"/></svg>';
840      a.querySelector('.fr-notif-tag').textContent = item.tag;
841      if (!item.tag) a.querySelector('.fr-notif-tag').style.display = 'none';
842      a.querySelector('.fr-notif-item-title').textContent = item.title;
843      list.appendChild(a);
844    });
845  }
846
847  function setOpen(root, open) {
848    root.classList.toggle('is-open', open);
849    var btn = root.querySelector('.fr-notif-btn');
850    if (btn) btn.setAttribute('aria-expanded', open ? 'true' : 'false');
851    // <=767px panel jest fixed pod navbarem; pozycja navbara zalezy od strony
852    // (promo bar) — mierzymy dol .w-nav zamiast sztywnego top z CSS
853    if (open && window.matchMedia('(max-width: 767px)').matches) {
854      var bar = root.closest('.w-nav') || document.querySelector('.w-nav');
855      var panel = root.querySelector('.fr-notif-panel');
856      if (bar && panel) {
857        panel.style.top = Math.max(0, Math.round(bar.getBoundingClientRect().bottom) + 8) + 'px';
858      }
859    }
860    if (open) markSeen();
861  }
862
863  function closeAll() {
864    roots.forEach(function (r) { setOpen(r, false); });
865  }
866
867  roots.forEach(function (root) {
868    root.setAttribute('data-seen', seen ? 'true' : 'false');
869    renderItems(root.querySelector('.fr-notif-items'));
870    var btn = root.querySelector('.fr-notif-btn');
871    btn.addEventListener('click', function (e) {
872      e.stopPropagation();
873      var willOpen = !root.classList.contains('is-open');
874      // otwarty panel mobilny przykrylby dropdown (stacking context navbara)
875      // — najpierw zamknij menu klikiem w hamburger (obsluguje mobile-nav.js)
876      if (willOpen && document.body.classList.contains('fr-mnav-open')) {
877        var burger = document.querySelector('.funraise-menu-button-v2-open');
878        if (burger) burger.click();
879      }
880      closeAll();
881      setOpen(root, willOpen);
882    });
883  });
884
885  document.addEventListener('click', function (e) {
886    var inside = roots.some(function (r) { return r.contains(e.target); });
887    if (!inside) closeAll();
888  });
889  document.addEventListener('keydown', function (e) {
890    if (e.key === 'Escape') closeAll();
891  });
892
893  // podglad do demo: #notif-open otwiera pierwszy widoczny dzwonek
894  if (location.hash === '#notif-open') {
895    var visible = roots.filter(function (r) { return r.offsetParent !== null; })[0] || roots[0];
896    setOpen(visible, true);
897  }
898})();
899
900(function () {
901  // Jedna nawigacja: hamburger otwiera desktopowy .nav-menu jako panel.
902  // Na czas otwarcia menu i nav-right sa przenoszone (ten sam wezel,
903  // zero duplikacji) do <body>/<menu>, po zamknieciu wracaja na miejsce.
904  var mq = window.matchMedia('(max-width: 991px)');
905  var btn = document.querySelector('.funraise-menu-button-v2-open');
906  var menu = document.querySelector('.nav-menu');
907  var navRight = document.querySelector('.nav-right');
908  if (!btn || !menu) return;
909
910  var menuHome = menu.parentElement;
911  var menuNext = menu.nextSibling;
912  var navRightHome = navRight ? navRight.parentElement : null;
913
914  // wlasny fixed kontener — neutralizuje site'owe/webflow style pozycjonowania .w-nav-menu
915  var panel = document.createElement('div');
916  panel.className = 'fr-mnav-panel';
917
918  function isOpen() { return document.body.classList.contains('fr-mnav-open'); }
919
920  function open() {
921    // symetria z dzwonkiem: otwarcie menu domyka otwarty dropdown notyfikacji
922    document.querySelectorAll('.fr-notif.is-open .fr-notif-btn').forEach(function (b) { b.click(); });
923    // panel zaczyna sie pod paskiem nawigacji; jego pozycja rozni sie miedzy
924    // stronami (promo bar nad navbarem), a navbar jest fixed — mierzymy jego dol
925    var bar = btn.closest('.w-nav') || document.querySelector('.promo-navbar-wrapper .w-nav');
926    var top = 72;
927    if (bar) top = Math.max(0, Math.round(bar.getBoundingClientRect().bottom));
928    panel.style.top = top + 'px';
929    document.body.classList.add('fr-mnav-open');
930    document.body.appendChild(panel);
931    panel.appendChild(menu); // portal: ten sam wezel, zero duplikacji
932    if (navRight) menu.appendChild(navRight);
933  }
934
935  function close() {
936    document.body.classList.remove('fr-mnav-open');
937    // zwin otwarte akordeony (webflow trzyma stan w klasach w--open)
938    menu.querySelectorAll('.w--open').forEach(function (el) { el.classList.remove('w--open'); });
939    if (navRight && navRightHome) navRightHome.appendChild(navRight);
940    menuHome.insertBefore(menu, menuNext);
941    if (panel.parentElement) panel.parentElement.removeChild(panel);
942  }
943
944  btn.addEventListener('click', function (e) {
945    e.preventDefault();
946    e.stopPropagation();
947    if (isOpen()) close(); else open();
948  });
949
950  // zachowanie akordeonow w panelu: jeden otwarty naraz + otwarty wjezdza pod
951  // gorna krawedz; tap w link = zamkniecie panelu (istotne dla linkow #kotwica).
952  // Rodzenstwo domykamy zdejmujac w--open wprost (jak w close()) — programowe
953  // klikanie toggli walczy z opoznieniami data-delay Webflowa.
954  menu.addEventListener('click', function (e) {
955    if (!mq.matches || !isOpen()) return;
956    var toggle = e.target.closest('.w-dropdown-toggle');
957    if (toggle) {
958      // Webflow przelacza w--open swoim handlerem — sprawdzamy chwile pozniej
959      setTimeout(function () {
960        if (!toggle.classList.contains('w--open')) return;
961        var dd = toggle.closest('.w-dropdown');
962        panel.querySelectorAll('.w--open').forEach(function (el) {
963          if (dd && !dd.contains(el)) el.classList.remove('w--open');
964        });
965        var y = toggle.getBoundingClientRect().top - panel.getBoundingClientRect().top + panel.scrollTop;
966        panel.scrollTo({ top: Math.max(0, y - 6), behavior: 'smooth' });
967      }, 60);
968      return;
969    }
970    if (e.target.closest('a[href]')) close();
971  });
972
973  document.addEventListener('keydown', function (e) {
974    if (e.key === 'Escape' && isOpen()) close();
975  });
976
977  // powrot na desktop = sprzatanie
978  mq.addEventListener('change', function () { if (!mq.matches && isOpen()) close(); });
979})();
980
981};
982if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",boot);}else{boot();}})();
983</script>
983</div><div class="w-embed w-script"><style>
984.fee-banner:hover .fee-banner-text{text-decoration:underline}
985</style>
986<script>
987document.addEventListener('DOMContentLoaded',function(){
988  var nav=document.querySelector('.promo-navbar-wrapper');
989  var banner=document.querySelector('.fee-banner');
990  if(!nav||!banner)return;
991  var t=false;
992  function apply(){nav.style.marginTop=(-Math.min(banner.offsetHeight,window.pageYOffset||0))+'px'}
993  window.addEventListener('scroll',function(){if(t)return;t=true;requestAnimationFrame(function(){apply();t=false})},{passive:true});
994  window.addEventListener('resize',apply);
995  apply();
996});
997</script>
997</div></div></div><div class="image-bg-section header-section top"><div class="content-container"><div class="centered-content top"><h1 class="big-h1">Pricing<br/></h1><div class="body-text-normal">Funraise powers nonprofits of all sizes.<br/>Our flexible pricing makes that possible.</div></div></div><div class="bg-image-box"><div class="header-corner-shapes"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60945bbd03850a11b633bd7e_header-shape-2.webp" sizes="(max-width: 1000px) 100vw, 1000px" srcset="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60945bbd03850a11b633bd7e_header-shape-2-p-500.webp 500w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60945bbd03850a11b633bd7e_header-shape-2-p-800.webp 800w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60945bbd03850a11b633bd7e_header-shape-2.webp 1000w" alt="Blue shapes in a grid." class="header-image-bg"/></div><div class="header-corner-shapes left"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60945bbd3be43103c2555ee1_header-shape-1.webp" sizes="(max-width: 1000px) 100vw, 1000px" srcset="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60945bbd3be43103c2555ee1_header-shape-1-p-800.webp 800w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60945bbd3be43103c2555ee1_header-shape-1.webp 1000w" alt="Blue shapes in a grid." class="header-image-bg"/></div></div></div><div class="content-section relative z1 mt-1"><div class="content-container rem2"><div><div class="w-embed w-script">
997<script>
998/* GTM: every card click reports its plan; the Custom card additionally
999   reports the V1 entry (V1 itself only fires frq_start on the first
1000   in-form interaction). Guarded. */
1001(function () {
1002  document.addEventListener('click', function (e) {
1003    var card = e.target.closest && e.target.closest('[data-frp-plan]');
1004    if (!card || !window.dataLayer) return;
1005    window.dataLayer.push({ event: 'frp_plan_click', frp_plan: card.getAttribute('data-frp-plan') });
1006    if (card.hasAttribute('data-frq-open')) {
1007      window.dataLayer.push({ event: 'frq_plan_card_open', frq_variant: 'v1' });
1008    }
1009  });
1010})();
1011</script>
1011</div><div class="w-embed"><div class="frp">
1012  <!-- the design's exported check vector, defined once for <use> -->
1013  <svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs><path id="frp-check-p" fill="#00D641" transform="translate(2.87 4.43)" d="M3.87938 7.49729L1.27688 4.93733C0.984375 4.64961 0.511875 4.64961 0.219375 4.93733C-0.073125 5.22505 -0.073125 5.68982 0.219375 5.97754L3.35438 9.0613C3.64688 9.34901 4.11938 9.34901 4.41188 9.0613L12.3469 1.256C12.6394 0.968284 12.6394 0.503508 12.3469 0.215789C12.0544 -0.0719297 11.5819 -0.0719297 11.2894 0.215789L3.87938 7.49729Z"/></defs></svg>
1014  <div class="frp-grid">
1015
1016    <!-- Free: the whole card is the link -->
1017    <a class="frp-card" href="/free-signup" data-frp-plan="free" aria-label="Free plan, create your account">
1018      <div class="frp-head">
1019        <h2 class="frp-title">Free</h2>
1020        <div class="frp-pricetag"><span class="frp-amount">$0</span><span class="frp-per">/month</span></div>
1021      </div>
1022      <p class="frp-desc">Funraise is a free, fee-based, fundraising and donor management platform for organizations raising under $1 million annually.</p>
1023      <span class="frp-cta">Create your account</span>
1024      <ul class="frp-feats">
1025        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Donation Forms</span></li>
1026        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Donation Pages</span></li>
1027        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Recurring Donations</span></li>
1028        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Events &amp; Tickets</span></li>
1029        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Fundraising Websites</span></li>
1030        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Donor Fee Coverage</span></li>
1031        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Donor Management</span></li>
1032        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Donation Management</span></li>
1033        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Automated Tasks</span></li>
1034        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Some integrations</span></li>
1035        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>So much more</span></li>
1036      </ul>
1037    </a>
1038
1039    <!-- Premium Plans: the whole card is the link -->
1040    <a class="frp-card" href="/contact-sales" data-frp-plan="premium" aria-label="Premium plans, talk with sales">
1041      <div class="frp-head">
1042        <h2 class="frp-title">Premium Plans</h2>
1043      </div>
1044      <p class="frp-desc">Need more? Accelerate growth with professional fundraising tools.</p>
1045      <span class="frp-cta">Talk with Sales</span>
1046      <ul class="frp-feats">
1047        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Onboarding &amp; Implementation</span></li>
1048        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Dedicated Success Manager</span></li>
1049        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Peer-to-Peer Fundraising</span></li>
1050        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Fundraising Intelligence</span></li>
1051        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Wealth Screening</span></li>
1052        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>SMS Messaging</span></li>
1053        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Text-to-Give</span></li>
1054        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Auctions</span></li>
1055        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Email Campaigns</span></li>
1056        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>All Integrations</span></li>
1057        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Funraise API</span></li>
1058        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>And more</span></li>
1059      </ul>
1060    </a>
1061
1062    <!-- Get a Quote!: gradient card, opens quote form V1 -->
1063    <a class="frp-card frp-quote" data-frq-open data-frp-plan="custom" href="/contact-sales" aria-label="Get a custom quote">
1064      <div class="frp-head">
1065        <h2 class="frp-title">Get a Quote!</h2>
1066      </div>
1067      <p class="frp-desc">Answer a few quick questions and we’ll put together a custom quote based on your organization’s needs.
1067</p>
1068      <span class="frp-cta">Get a Quote</span>
1069      <ul class="frp-feats">
1070        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>Build your perfect platform</span></li>
1071        <li><svg class="frp-check" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><use href="#frp-check-p"/></svg><span>No commitment or calls required</span></li>
1072      </ul>
1073    </a>
1074
1075  </div>
1076</div></div><div class="w-embed"><style>
1077/* ============================================================
1078   Self-contained plan cards (Figma node 2001:518, 1440 frame:
1079   3 x 420px cards, 32px gaps, 28px card side padding).
1080   Fonts inherit the site's Garnett; colors = Webflow variable set.
1081============================================================ */
1082.frp{font-family:Garnett,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#002042;letter-spacing:.14px}
1083.frp,.frp *{box-sizing:border-box}
1084.frp .frp-grid{
1085  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;
1086  align-items:stretch;max-width:1320px;margin:0 auto;
1087}
1088
1089/* ---- card (Figma "Card": white, #E1E4E8 border, 12px, Level 2 shadow) ---- */
1090.frp .frp-card{
1091  display:flex;flex-direction:column;position:relative;
1092  background:#fff;border:1px solid #E1E4E8;border-radius:12px;
1093  box-shadow:0 4px 12px rgba(0,32,66,.1);
1094  padding:40px 28px;
1095  color:inherit;text-decoration:none;cursor:pointer;
1096  transition:transform .2s ease-in-out,box-shadow .2s ease-in-out;
1097}
1098.frp .frp-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(0,32,66,.16)}
1099.frp .frp-card:focus-visible{outline:3px solid #2979FF;outline-offset:3px}
1100
1101/* ---- head: title left, (Free only) price right on the same line ---- */
1102.frp .frp-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:56px}
1103.frp .frp-title{margin:0;font-size:38px;line-height:56px;font-weight:500;letter-spacing:0;color:#002042}
1104.frp .frp-pricetag{white-space:nowrap}
1105.frp .frp-amount{font-size:38px;line-height:56px;font-weight:500;color:#00B141}
1106.frp .frp-per{font-size:12px;line-height:24px;letter-spacing:.2px;color:#5B6E84;margin-left:3px}
1107
1108/* ---- description (16/30, +.13px) ---- */
1109.frp .frp-desc{margin:11px 0 0;font-size:16px;line-height:30px;letter-spacing:.13px;font-weight:400;color:#002042}
1110@media (min-width:992px){
1111  /* level the CTA row across the three cards (Free's copy runs longest) */
1112  .frp .frp-desc{min-height:120px}
1113}
1114
1115/* ---- CTA (49px, radius 6, 17px Medium; a span — the card is the link) ---- */
1116.frp .frp-cta{
1117  display:flex;align-items:center;justify-content:center;
1118  min-height:49px;margin-top:36px;padding:8px 16px;border-radius:6px;
1119  background:#2979FF;color:#fff;
1120  font-size:17px;font-weight:500;line-height:normal;letter-spacing:.34px;text-align:center;
1121  border:2px solid transparent;
1122  transition:all .2s ease-in-out;
1123}
1124/* hovering anywhere on the card lights the button up (approved pattern) */
1125.frp .frp-card:hover .frp-cta{background-image:linear-gradient(120deg,#53B1FF,#2979FF);box-shadow:0 2px 6px #08162d24}
1126
1127/* ---- divider + feature list (12/24 grey, green checks) ---- */
1128.frp .frp-feats{
1129  list-style:none;margin:38px 0 0;padding:26px 0 0;
1130  border-top:1px solid #E1E4E8;
1131  display:flex;flex-direction:column;gap:5px;
1132}
1133.frp .frp-feats li{display:flex;align-items:flex-start;gap:6px;font-size:12px;line-height:24px;letter-spacing:.2px;color:#5B6E84}
1134.frp .frp-check{flex:0 0 auto;margin-top:3px}
1135
1136/* ---- gradient "Get a Quote!" card ---- */
1137.frp .frp-quote{
1138  background:linear-gradient(118.87deg,#002042 1.2%,#2979FF 98.7%);
1139  border-color:transparent;
1140}
1141.frp .frp-quote .frp-title,
1142.frp .frp-quote .frp-desc,
1143.frp .frp-quote .frp-feats li{color:#fff}
1144.frp .frp-quote .frp-feats{border-top-color:#fff}
1145/* ghost CTA: white fill, blue border/text; fills blue on card hover.
1146   The blue underlay + border-box origin stop the white background-color
1147   peeking out at the edge while the card's hover transform rasterizes. */
1148.frp .frp-quote .frp-cta{background:#fff;color:#2979FF;border-color:#2979FF}
1149.frp .frp-quote:hover .frp-cta{background-color:#2979FF;background-origin:border-box;background-image:linear-gradient(120deg,#53B1FF,#2979FF);color:#fff;border-color:transparent;box-shadow:0 2px 6px #08162d24}
1150.frp .frp-quote:focus-visible{outline:3px solid #64D7FF;outline-offset:3px}
1151
1152@media (prefers-reduced-motion:reduce){
1153  .frp .frp-card{transition:none}
1154  .frp .frp-card:hover{transform:none}
1155}
1156@media (max-width:991px){
1157  .frp .frp-grid{grid-template-columns:1fr;gap:24px}
1158  .frp .frp-card{padding:32px 24px}
1159  .frp .frp-title,.frp .frp-amount{font-size:32px;line-height:44px}
1160  .frp .frp-head{min-height:0}
1161  .frp .frp-cta{margin-top:28px}
1162  .frp .frp-feats{margin-top:30px;padding-top:22px}
1163}
1164</style></div><div class="w-embed">
1164<!-- Funraise "Get a Quote" popup (V1). The 3 embeds below are its markup,
1165     styles, and script. It opens from any element with data-frq-open (the
1166     Custom Quote plan card above) or a link to #get-a-quote. Submission
1167     drives a hidden HubSpot embed (the form has CAPTCHA, which blocks the
1168     public Submission API). Source: repo components/quote-form/ -->
1169<link rel="preconnect" href="https://js.hsforms.net">
1170<link rel="preconnect" href="https://forms.hsforms.com">
1171</div><div class="w-embed"><section class="frq" id="frq-quote">
1172
1173
1174
1175  <!-- Full-screen takeover -->
1176  <div class="frq-overlay" data-frq="overlay" role="dialog" aria-modal="true" aria-label="Get a quote from Funraise" hidden>
1177    <!-- Deco = the page's own textured corner shapes (same assets the /pricing
1178         hero uses). They ship on a WHITE background (no alpha), which is why
1179         the overlay background is white. shape-2 is flipped vertically so its
1180         bleeding edge hugs the bottom-right corner; the close-button corner
1181         (top-right) stays clear. -->
1182    <div class="frq-deco" aria-hidden="true"><img class="frq-d1" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60945bbd3be43103c2555ee1_header-shape-1.webp" alt="" loading="lazy"><img class="frq-d2" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60945bbd03850a11b633bd7e_header-shape-2.webp" alt="" loading="lazy"></div>
1183    <div class="frq-bar" role="progressbar" aria-label="Form progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" data-frq="bar">
1184      <span class="frq-bar-fill" data-frq="fill"></span>
1185    </div>
1186    <button type="button" class="frq-x" data-frq="close" aria-label="Close">
1187      <svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 3l10 10M13 3L3 13" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></svg>
1188    </button>
1189    <div class="frq-body" data-frq="form">
1190      <div class="frq-viewport" data-frq="viewport"><!-- screens injected by JS --></div>
1191    </div>
1192    <p class="frq-sr" aria-live="polite" data-frq="live"></p>
1193  </div>
1194</section></div><div class="w-embed"><style>
1195/* ============================================================
1196   Funraise Quote (frq): full-screen popup wizard.
1197   All selectors scoped under .frq. Brand tokens verified against
1198   the live funraise.org stylesheet (2026-07-21).
1199============================================================ */
1200.frq{
1201  --frq-primary:#2979FF;            /* Funraise blue (site CTA) */
1202  --frq-primary-hover:#013BA8;      /* Webflow var: Primary Dark */
1203  --frq-ink:#002042;                /* Webflow var: Cool Blue */
1204  --frq-muted:#5B6E84;              /* Webflow var: Dark Gray */
1205  --frq-line:#E7EDF2;               /* borders / hairlines (site .text-field border) */
1206  --frq-bg:#FFFFFF;                 /* card background */
1207  --frq-bg-subtle:#EAF2FF;          /* selected-state tint */
1208  --frq-page:#FFFFFF;               /* overlay background. WHITE on purpose: the
1209                                       textured corner shapes (header-shape-*.webp)
1210                                       have a baked-in white background, and the
1211                                       site itself runs on white */
1212  --frq-accent:#FFBD00;             /* Webflow var: Yellow Primary */
1213  --frq-cyan:#43F3F7;               /* Webflow var: Medium Cyan */
1214  --frq-error:#E91E63;              /* Webflow var: Pink Primary */
1215  --frq-radius:10px;                /* cards: site radius-xl */
1216  --frq-radius-md:6px;              /* buttons + inputs: site radius-md */
1217  --frq-shadow:0 10px 40px rgba(0,32,66,.08);
1218  font-family:Garnett,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; /* site font, same stack as other embeds */
1219  letter-spacing:.14px;             /* site body letter-spacing */
1220  line-height:1.6;                  /* the portal sits on <body>: never inherit its 188% */
1221  color:var(--frq-ink);
1222  display:block;width:100%;margin:0;position:relative;
1223}
1224.frq [hidden]{display:none!important}
1225.frq,.frq *,.frq *::before,.frq *::after{box-sizing:border-box}
1226.frq .frq-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
1227.frq .frq-a{color:var(--frq-primary);text-decoration:underline}
1228.frq .frq-a:hover{color:var(--frq-primary-hover)}
1229.frq .frq-launch{margin:0}
1230
1231/* ---- full-screen takeover ---- */
1232.frq .frq-overlay{
1233  position:fixed;inset:0;z-index:9999;background:var(--frq-page);
1234  display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;
1235  scrollbar-gutter:stable both-edges;   /* a real scrollbar never shifts the layout */
1236  animation:frqOverlayIn .28s ease;
1237}
1238@keyframes frqOverlayIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
1239.frq .frq-x{
1240  position:fixed;top:18px;right:20px;z-index:3;width:44px;height:44px;border-radius:50%;
1241  display:flex;align-items:center;justify-content:center;cursor:pointer;
1242  border:1px solid var(--frq-line);background:var(--frq-bg);color:var(--frq-ink);
1243  transition:all .2s ease-in-out;
1244}
1245.frq .frq-x:hover{border-color:var(--frq-ink)}
1246.frq .frq-x:active{transform:scale(.95)}
1247.frq .frq-x:focus-visible{outline:2px solid var(--frq-primary);outline-offset:2px}
1248
1249/* ---- decorative shapes: the page's textured corner clusters
1250       (the exact webp assets the /pricing hero uses; static, like the hero).
1251       shape-1 is built to touch the LEFT edge; shape-2 bleeds to its
1252       top-right edge, so flipped vertically it hugs the bottom-right
1253       corner and the ✕ corner (top-right) stays clear ---- */
1254.frq .frq-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
1255.frq .frq-deco img{position:absolute;display:block;height:auto}
1256.frq .frq-d1{top:0;left:0;width:min(420px,32vw)}
1257.frq .frq-d2{bottom:0;right:0;width:min(420px,32vw);transform:scaleY(-1)}
1258
1259/* ---- progress bar (thin, pinned edge-to-edge at the top of the window;
1260       fixed so neither scrollbar gutters nor overlay padding narrow it) ---- */
1261.frq .frq-bar{position:fixed;top:0;left:0;right:0;z-index:2;height:4px;background:var(--frq-line);overflow:hidden}
1262.frq .frq-bar-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--frq-primary),var(--frq-cyan));transition:width .4s ease}
1263
1264/* ---- screens ---- */
1265.frq .frq-body{display:flex;flex-direction:column;flex:1;min-height:0;position:relative;z-index:1}
1266/* overflow:hidden clips the slide-in transform (translateY 46px) so the
1267   transition never grows the overlay's scroll area = no scrollbar flash */
1268.frq .frq-viewport{flex:1;display:flex;overflow:hidden}
1269.frq .frq-screen{display:none;width:100%}
1270.frq .frq-screen.is-active{display:flex;align-items:center;animation:frqUp .4s cubic-bezier(.2,.7,.3,1) both}
1271.frq [data-dir="back"] .frq-screen.is-active{animation-name:frqDown}
1272@keyframes frqUp{from{opacity:0;transform:translateY(46px)}to{opacity:1;transform:none}}
1273@keyframes frqDown{from{opacity:0;transform:translateY(-46px)}to{opacity:1;transform:none}}
1274.frq .frq-q{width:100%;max-width:780px;margin:0 auto;padding:56px 28px 40px;text-align:center}
1275
1276/* ---- question typography ---- */
1277.frq .frq-eyebrow{
1278  display:inline-block;margin:0 0 16px;padding:6px 14px;border-radius:999px;
1279  font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
1280  background:var(--frq-primary);color:#fff;
1281}
1282/* brand underline: the same vector funraise.org/about uses.
1283   inline-block keeps the arc hugging the text bottom (an inline box
1284   paints its background at the font's tall descent box, which pushed
1285   the arc into the next line) and stops it splitting across wraps */
1286.frq .frq-hl{
1287  display:inline-block;
1288  padding-bottom:.14em;
1289  background:url("https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6723963fd0a11d7b88579ddd_Vector%402x.png") no-repeat 50% 100%/100% .16em;
1290}
1291.frq .frq-qnum{margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--frq-primary)}
1292/* headings match the site: h2/h3 are Garnett Medium (500), line-height ~140% */
1293/* text-wrap:balance keeps headline lines even (no lone "mission");
1294   the underlined phrase is inline-block, so the break can't split it */
1295.frq .frq-qtitle{margin:0 0 16px;font-size:clamp(24px,3vw,32px);line-height:1.35;font-weight:500;color:var(--frq-ink);outline:none;text-wrap:balance}
1296.frq .frq-big{font-size:clamp(32px,4.5vw,46px)}
1297/* body copy matches the site: Garnett Light (300) on ink, airy line-height */
1298.frq .frq-qhelp{margin:0 auto 28px;font-size:clamp(15px,1.7vw,18px);line-height:1.7;font-weight:300;color:var(--frq-ink);max-width:640px;text-wrap:pretty}
1299.frq .frq-qhelp b{font-weight:500}
1300/* wider + slightly smaller than before so the welcome lead fits two lines
1301   at desktop; balance stops a lone "day." on any width in between */
1302.frq .frq-lead{font-size:clamp(16px,1.9vw,18px);max-width:700px;text-wrap:balance}
1303.frq .frq-mini{margin:16px 0 0;font-size:13px;font-weight:300;color:var(--frq-muted)}
1304.frq .frq-legal{margin:18px auto 0;max-width:560px;font-size:12px;line-height:1.6;font-weight:300;color:var(--frq-muted);text-wrap:pretty}
1305.frq .frq-msg{margin:6px 0 0;font-size:13px;color:var(--frq-error)}
1306
1307/* ---- single-choice rows (Typeform-style lettered options) ---- */
1308.frq .frq-choices{display:flex;flex-direction:column;gap:16px;max-width:480px;margin:14px auto 0;text-align:left}
1309.frq .frq-choice{display:block;cursor:pointer}
1310.frq .frq-choice-inner{
1311  position:relative;display:flex;align-items:center;gap:12px;
1312  min-height:52px;padding:11px 14px;
1313  border:1px solid var(--frq-line);border-radius:var(--frq-radius);
1314  background:var(--frq-bg);font-size:17px;font-weight:500;
1315  transition:all .2s ease-in-out;
1316}
1317.frq .frq-choice:hover .frq-choice-inner{border-color:var(--frq-primary);transform:translateY(-1px);box-shadow:var(--frq-shadow)}
1318.frq .frq-choice input:checked+.frq-choice-inner{border-color:var(--frq-primary);background:var(--frq-bg-subtle);font-weight:600}
1319.frq .frq-choice input:focus-visible+.frq-choice-inner{outline:2px solid var(--frq-primary);outline-offset:2px}
1320.frq .frq-radio{
1321  flex:0 0 auto;width:22px;height:22px;border-radius:50%;position:relative;
1322  border:2px solid var(--frq-line);background:var(--frq-bg);
1323  transition:border-color .15s ease,background .15s ease;
1324}
1325.frq .frq-radio::after{
1326  content:"";position:absolute;inset:5px;border-radius:50%;background:#fff;
1327  transform:scale(0);transition:transform .18s cubic-bezier(.34,1.56,.64,1);
1328}
1329.frq .frq-choice:hover .frq-radio{border-color:var(--frq-primary)}
1330.frq .frq-choice input:checked+.frq-choice-inner .frq-radio{background:var(--frq-primary);border-color:var(--frq-primary)}
1331.frq .frq-choice input:checked+.frq-choice-inner .frq-radio::after{transform:scale(1)}
1332
1333/* ---- feature multi-select: compact rows, small icon next to text ---- */
1334.frq .frq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;max-width:700px;margin:0 auto 4px;text-align:left}
1335.frq .frq-card{display:block;cursor:pointer;min-width:0}
1336.frq .frq-card-inner{
1337  position:relative;display:flex;align-items:center;gap:10px;
1338  min-height:54px;padding:12px 38px 12px 14px;border:1px solid var(--frq-line);border-radius:var(--frq-radius);
1339  background:var(--frq-bg);transition:all .2s ease-in-out;
1340}
1341.frq .frq-card:hover .frq-card-inner{border-color:var(--frq-primary);transform:translateY(-1px);box-shadow:var(--frq-shadow)}
1342.frq .frq-card input:checked+.frq-card-inner{border-color:var(--frq-primary);background:var(--frq-bg-subtle)}
1343.frq .frq-card input:focus-visible+.frq-card-inner{outline:2px solid var(--frq-primary);outline-offset:2px}
1344.frq .frq-card img{width:24px;height:24px;object-fit:contain;display:block;flex:0 0 auto}
1345.frq .frq-card-label{font-size:15px;font-weight:500;line-height:1.3;color:var(--frq-ink)}
1346.frq .frq-card-check{
1347  position:absolute;top:50%;right:12px;translate:0 -50%;width:20px;height:20px;border-radius:50%;
1348  display:flex;align-items:center;justify-content:center;
1349  font-size:12px;font-weight:700;color:#fff;background:var(--frq-primary);
1350  opacity:0;transform:scale(.5);transition:opacity .15s ease,transform .2s cubic-bezier(.34,1.56,.64,1);
1351}
1352.frq .frq-card input:checked+.frq-card-inner .frq-card-check{opacity:1;transform:scale(1)}
1353
1354/* ---- actions ---- */
1355.frq .frq-qactions{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:26px}
1356/* Buttons: verified against the live .button-9.button-large.cta rules.
1357   radius-md 6px, text-6 17px, padding space-5/space-10 (12px 24px),
1358   weight-medium 500, shadow 0 8px 28px, transition all .2s ease-in-out.
1359   Hover swaps in the site's gradient and drops to the small shadow. */
1360.frq .frq-btn{
1361  display:inline-flex;align-items:center;justify-content:center;
1362  min-height:52px;padding:12px 24px;border-radius:var(--frq-radius-md);
1362cursor:pointer;
1363  font:inherit;font-size:17px;font-weight:500;line-height:1.6;text-decoration:none;text-align:center;
1364  border:1px solid transparent;transition:all .2s ease-in-out;
1365}
1366.frq .frq-btn:focus-visible{outline:2px solid var(--frq-primary);outline-offset:3px}
1367.frq .frq-ok{background:var(--frq-primary);color:#fff;box-shadow:0 8px 28px rgba(0,0,0,.2)}
1368.frq .frq-ok:hover{background-image:linear-gradient(120deg,#53B1FF,#2979FF);box-shadow:0 2px 6px rgba(8,22,45,.14)}
1369.frq .frq-ok:active{background-image:none}
1370.frq .frq-ok:disabled{opacity:.65;cursor:wait;box-shadow:none;background-image:none}
1371.frq .frq-btn-ghost{background:var(--frq-bg);color:var(--frq-primary);border-color:var(--frq-primary)}
1372.frq .frq-btn-ghost:hover{background-image:linear-gradient(120deg,#53B1FF,#2979FF);color:#fff;border-color:transparent;box-shadow:0 2px 6px rgba(8,22,45,.14)}
1373.frq .frq-btn-ghost:disabled{opacity:.5;cursor:default;background-image:none;color:var(--frq-primary)}
1374
1375/* ---- the real HubSpot form (contact screen) ----
1376   Rendered VISIBLY and typed into by the user: reCAPTCHA v3 then scores
1377   genuine keystrokes and a real submit click (a hidden, programmatically
1378   filled copy was scored as a bot and rejected server-side). create()
1379   passes css:'' so the form arrives unstyled; the rules below restyle
1380   it to the brand. Qualifier fields answered on screens 1-4 are
1381   prefilled from state and kept out of view. */
1382.frq .frq-hs{max-width:640px;margin:0 auto;text-align:left;position:relative}
1383/* min-height ~ the rendered form, so a late mount can't jump the layout
1384   (normally the form pre-mounts on popup open and is ready long before) */
1385.frq .frq-hs[aria-busy="true"]{min-height:420px}
1386.frq .frq-hs[aria-busy="true"]::before{content:"Loading the secure form…";display:block;padding:180px 0;text-align:center;font-size:14px;color:var(--frq-muted)}
1387/* Google's reCAPTCHA anchor iframe lands inside the mount — collapse it
1388   visually but keep it rendered (never display:none: it must execute).
1389   A visible challenge, if any, attaches to <body>, so it still shows. */
1390.frq .frq-hs iframe{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;border:0}
1391.frq .frq-hs fieldset{border:0;margin:0;padding:0;max-width:none!important}
1392.frq .frq-hs .form-columns-2{display:flex;gap:0 20px}
1393.frq .frq-hs .form-columns-2 .hs-form-field{flex:1 1 0;width:auto!important}
1394.frq .frq-hs .hs-form-field{margin:0 0 18px;float:none!important}
1395.frq .frq-hs .hs-form-field>label{display:block;margin:0 0 6px;font-size:15px;font-weight:500;color:var(--frq-ink)}
1396/* the old design marks phone "(optional)" instead of starring the rest */
1397.frq .frq-hs .hs-form-required{display:none}
1398.frq .frq-hs .hs-input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]){
1399  width:100%!important;min-height:50px;padding:12px 16px;
1400  font:inherit;font-size:17px;color:var(--frq-ink);
1401  background:var(--frq-bg);border:1px solid var(--frq-line);border-radius:var(--frq-radius-md);
1402  box-shadow:0 2px 4px rgba(0,0,0,.04);transition:all .2s ease-in-out;appearance:none;
1403}
1404.frq .frq-hs .hs-input::placeholder{color:#B9C6D2}
1405.frq .frq-hs .hs-input:hover{border-color:#B9C6D2}
1406.frq .frq-hs .hs-input:focus,.frq .frq-hs .hs-input:focus-visible{outline:none;border-color:var(--frq-primary);box-shadow:0 0 0 3px var(--frq-bg-subtle)}
1407.frq .frq-hs .hs-input.invalid,.frq .frq-hs .hs-input.error{border-color:var(--frq-error)}
1408.frq .frq-hs .hs-error-msgs{list-style:none;margin:6px 0 0;padding:0}
1409.frq .frq-hs .hs-error-msg,.frq .frq-hs .hs-error-msgs label{color:var(--frq-error);font-size:13px;font-weight:400}
1410.frq .frq-hs .hs_error_rollup{text-align:center;margin-top:8px}
1411/* answered on earlier screens; prefilled programmatically, out of view */
1412.frq .frq-hs .hs_demo_form_platform_goal,
1413.frq .frq-hs .hs_supporter_count_demo_form,
1414.frq .frq-hs .hs_demo_form_raised_online_per_year,
1415.frq .frq-hs .hs_demo_form_features_to_focus_on{display:none}
1416/* the identical approved text is printed by our .frq-legal line below */
1417.frq .frq-hs .legal-consent-container{display:none}
1418/* the reCAPTCHA holder reserves a 60px badge slot (badge is CSS-hidden
1418):
1419   collapse it WITHOUT display:none so the captcha still executes */
1420.frq .frq-hs .hs_recaptcha{position:absolute;width:1px;height:1px;overflow:hidden;margin:0}
1421.frq .frq-hs .hs_submit{margin-top:26px;text-align:center}
1422.frq .frq-hs .hs-button{
1423  display:inline-flex;align-items:center;justify-content:center;
1424  min-height:52px;padding:12px 24px;border-radius:var(--frq-radius-md);cursor:pointer;
1425  font:inherit;font-size:17px;font-weight:500;line-height:1.6;
1426  border:1px solid transparent;transition:all .2s ease-in-out;appearance:none;
1427  background:var(--frq-primary);color:#fff;box-shadow:0 8px 28px rgba(0,0,0,.2);
1428}
1429.frq .frq-hs .hs-button:hover{background-image:linear-gradient(120deg,#53B1FF,#2979FF);box-shadow:0 2px 6px rgba(8,22,45,.14)}
1430.frq .frq-hs .hs-button:active{background-image:none}
1431.frq .frq-hs .hs-button:focus-visible{outline:2px solid var(--frq-primary);outline-offset:3px}
1432/* Back sits LEFT of the HubSpot CTA like every other screen. The two
1433   buttons live in different DOM parents (ours vs the form's), so the
1434   Back row is pulled up over the CTA row and both are nudged from
1435   center (Back -84px, CTA +50px = the usual 14px gap). pointer-events
1436   keeps the overlay row from blocking clicks on the CTA. */
1437.frq .frq-hs .hs-button{position:relative;left:50px}
1438.frq .frq-hs-actions{margin-top:-52px;pointer-events:none}
1439.frq .frq-hs-actions .frq-btn{pointer-events:auto;position:relative;left:-84px}
1440/* Google requires visible reCAPTCHA attribution when the badge is
1441   hidden — the .frq-legal line provides it (this page has no other
1442   captcha-protected forms, so hiding the badge page-wide is safe). */
1443.grecaptcha-badge{visibility:hidden}
1444
1445/* ---- alert / confirmation ---- */
1446.frq .frq-alert{margin:6px auto 14px;padding:14px 16px;border:1px solid var(--frq-error);border-radius:var(--frq-radius);background:#FDF1F5;max-width:640px;text-align:left}
1447.frq .frq-alert-txt{margin:0 0 10px;font-size:14px;line-height:1.5}
1448.frq .frq-qconfirm{text-align:center}
1449.frq .frq-qconfirm .frq-qhelp{margin-left:auto;margin-right:auto}
1450.frq .frq-confirm-badge{line-height:1;margin-bottom:14px}
1451.frq .frq-confirm-badge svg{display:inline-block;vertical-align:top}
1452.frq .frq-choice-msg{margin-top:14px;text-align:center}
1453.frq .frq-btn-link{margin-top:10px}
1454
1455/* ---- confetti (self-contained DOM pieces; sits above the overlay).
1456       Top-level on purpose: the host is appended to <body> so the whole
1457       block copy-pastes onto any page. Class is still frq-prefixed. ---- */
1458.frq-cf{position:fixed;inset:0;z-index:10000;pointer-events:none;overflow:hidden}
1459.frq-cf i{position:absolute;top:-3vh;display:block;animation:frqCf linear forwards}
1460@keyframes frqCf{from{opacity:1;transform:translate(0,0) rotate(0)}70%{opacity:1}to{opacity:0;transform:translate(var(--dx),106vh) rotate(var(--rz))}}
1461
1462/* ---- responsive ---- */
1463@media (max-width:640px){
1464  .frq .frq-q{padding:64px 20px 24px}
1465  .frq .frq-grid{grid-template-columns:1fr;gap:10px}
1466  .frq .frq-card-inner{min-height:48px}
1467  .frq .frq-choices{gap:12px}
1468  .frq .frq-qactions{gap:10px}
1469  .frq .frq-qactions .frq-btn{flex:1}
1470  .frq .frq-hs .form-columns-2{flex-direction:column;gap:0}
1471  /* mobile: CTA full-width, Back stacked under it (no overlap tricks) */
1472  .frq .frq-hs .hs-button{left:0;width:100%}
1473  .frq .frq-hs-actions{margin-top:10px}
1474  .frq .frq-hs-actions .frq-btn{left:0}
1475  /* corner clusters shrink on small screens (same idea as the hero) */
1476  .frq .frq-deco .frq-d1,.frq .frq-deco .frq-d2{width:150px}
1477}
1478@media (prefers-reduced-motion:reduce){
1479  .frq *,.frq *::before,.frq *::after{animation:none!important;transition-duration:.01ms!important}
1480}
1481</style></div><div class="w-embed w-script">
1481<script>
1482(function(){
1483'use strict';
1484/* ============================================================
1485   CONFIG — everything a non-dev needs to wire lives here.
1486============================================================ */
1487var CFG = {
1488  /* --- HubSpot (form: "Quote Request", region na1) --- */
1489  HUBSPOT_PORTAL_ID: '6549460',
1490  HUBSPOT_FORM_GUID: 'e6554718-7443-4803-99f6-be33588b7663',
1491
1492  /* --- Salesforce campaign: sfdcCampaignId is an embed-only parameter;
1493     it overrides the form's own metaData campaign. Verify with a test
1494     lead that contacts join the campaign. */
1495  SF_CAMPAIGN_ID: '701Qo00001aHixxIAC',
1496
1497  /* --- behavior --- */
1498  REDIRECT_URL: '',            // '' = inline confirmation. Set to e.g. '/quote-confirmation'
1499                               // to redirect on success (that page can read ?frq_confetti=1
1500                               // and call a copied frqConfetti(), see README)
1501  QUOTE_TIMEFRAME: 'one business day',
1502  FEATURES_SEPARATOR: ';',     // HubSpot multi-checkbox properties expect ';'
1503  READY_TIMEOUT_MS: 15000,     // max wait for the HubSpot embed to render
1504  STORAGE_KEY: 'frq_state_v2'
1505};
1506
1507/* --- GTM dataLayer event names (GTM-P7XD5SD) --- */
1508var EVENTS = {
1509  start: 'frq_start',
1510  step:  'frq_step_complete',
1511  submit:'frq_submit_success',
1512  error: 'frq_submit_error'
1513};
1514
1515/* --- Option lists ---
1516   value = EXACT HubSpot form option value (payload; do not touch).
1517   label = what the user sees (brand style, matches HS labels/feedback).
1518   Values pulled from the live form definition on 2026-08-14. */
1519var MISSION_OPTIONS = [
1520  { value:'I’m looking for my first real fundraising platform',
1521    label:'I’m looking for my first real fundraising platform' },
1522  { value:'I need fundraising tools that sync with our existing Donor CRM',
1523    label:'I need fundraising tools that sync with our existing Donor CRM' },
1524  { value:'I need to replace my current Donor CRM',   // HS value says "my"
1525    label:'I need to replace our current Donor CRM' } , // HS label says "our"
1526  { value:'I am a consultant here to learn about Funraise',
1527    label:'I am a consultant here to learn about Funraise' }
1528];
1529var DONOR_COUNT_OPTIONS = [        // supporter_count_demo_form
1530  { value:'Under 500',        label:'Under 500' },
1531  { value:'500 - 2,500',      label:'500-2,500' },
1532  { value:'2,500 - 5,000',    label:'2,500-5,000' },
1533  { value:'5,000 - 10,000',   label:'5,000-10,000' },
1534  { value:'More than 10,000', label:'More than 10,000' }
1535];
1536var ANNUAL_ONLINE_OPTIONS = [      // demo_form_raised_online_per_year
1537  { value:'$0 - $100,000',           label:'$0 - $100K' },
1538  { value:'$100,000 - $500,000',     label:'$100K - $500K' },
1539  { value:'$500,000 - $2,000,000',   label:'$500K - $2M' },
1540  { value:'$2,000,000+',             label:'More than $2M' }
1541];
1542
1543/* --- Feature grid (icons already on the Funraise CDN) --- */
1544var CDN = 'https://cdn.prod.website-files.com/6702bad89f47b87835c58955/';
1545/* Labels double as the submitted values — they match the HubSpot form's
1546   demo_form_features_to_focus_on options 1:1 (MULTI checkbox since
1547   2026-08-17, ops converted it; semicolon-joined). HubSpot-side edits
1548   change this contract silently: re-verify options via the JSONP form
1549   definition before every sync. */
1550var FEATURES = [
1551  { label:'Donation Forms',              icon:CDN+'6702bad89f47b87835c58966_donation-forms.svg' },
1552  { label:'Campaign Sites',              icon:CDN+'6702bad89f47b87835c5895a_fundraising-websites.svg' },
1553  { label:'Peer-to-Peer Fundraising',    icon:CDN+'6702bad89f47b87835c58969_peer-to-peer.svg' },
1554  { label:'Recurring Giving',            icon:CDN+'6702bad89f47b87835c5895e_recurring-giving.svg' },
1555  { label:'Custom Reports & Dashboards', icon:CDN+'6702bad89f47b87835c58ecd_donation-analytics.svg' },
1556  { label:'Donor Management',            icon:CDN+'6702bad89f47b87835c58968_supporters.svg' },
1557  { label:'Text Engagement',             icon:CDN+'6702bad89f47b87835c5896b_sms.svg' },
1558  { label:'Events & Ticketing',          icon:CDN+'6702bad89f47b87835c58967_events.svg' },
1559  { label:'Integrations',                icon:CDN+'6702bad89f47b87835c595a5_Integrations%20(1).svg' },
1560  { label:'Other',                       icon:CDN+'6702bad89f47b87835c5930c_category-kopia.svg' }
1561];
1562
1563/* --- HubSpot field map: OUR key -> HubSpot internal property name.
1564   Verified against the live form definition (2026-08-14). --- */
1565var FIELD_MAP = {
1566  firstname:   'firstname',
1567  lastname:    'lastname',
1568  email:       'email',
1569  phone:       'phone',
1570  website:     'website',
1571  mission:     'demo_form_platform_goal',
1572  donorCount:  'supporter_count_demo_form',
1573  annualOnline:'demo_form_raised_online_per_year'
1574};
1575/* Selected features -> ONE property, semicolon-joined (multi checkbox,
1576   confirmed by ops 2026-08-17). */
1577var SELECTED_FEATURES_FIELD = 'demo_form_features_to_focus_on';
1578
1579/* UTM capture -> the form's hidden fields. The form has NO gclid field,
1580   so gclid is not captured or sent (unknown fields fail validation). */
1581var UTM_FIELD_MAP = {
1582  utm_source:'utm_source', utm_medium:'utm_medium', utm_campaign:'utm_campaign',
1583  utm_term:'utm_term', utm_content:'utm_content'
1584};
1585
1586/* --- Screen flow: welcome -> 4 questions + contact -> confirmation ---
1587   The contact screen is the REAL HubSpot form (see header comment);
1588   mission + annual are required on the HubSpot form, so those two
1589   screens cannot be skipped. --- */
1590var SCREENS = [
1591  { id:'welcome', type:'welcome' },
1592  { id:'mission', type:'choice', key:'mission', options:MISSION_OPTIONS, required:true,
1593    title:'How will Funraise support your mission?' },
1594  { id:'features', type:'features',
1595    title:'Select the features most important to you',
1596    help:'Your answers help us build the right package for you.' },
1597  { id:'donors', type:'choice', key:'donorCount', options:DONOR_COUNT_OPTIONS,
1598    title:'How many donors will you manage in Funraise?' },
1599  { id:'raise', type:'choice', key:'annualOnline', options:ANNUAL_ONLINE_OPTIONS, required:true,
1600    title:'How much are you raising online annually?' },
1601  { id:'contact', type:'hsform', submit:true,
1602    title:'Great! Please enter your contact details so we can share your quote',
1603    help:"We'll prepare and send your custom quote via email." },
1604  { id:'confirm', type:'confirm' }
1605];
1606/* ==================== END CONFIG ==================== */
1607
1608var root = document.querySelector('.frq');
1609if (!root) return;
1610var $ = function(sel){ return root.querySelector('[data-frq="'+sel+'"]'); };
1611var el = {
1612  overlay:$('overlay'), close:$('close'), form:$('form'), viewport:$('viewport'),
1613  bar:$('bar'), fill:$('fill'), live:$('live')
1614};
1615
1616var CONFIRM_IDX = SCREENS.length - 1;
1617var QUESTIONS = SCREENS.length - 2;   // welcome + confirm excluded
1618var state = { screen:0, maxReached:0, mission:'', features:[], donorCount:'',
1619  annualOnline:'', firstname:'', lastname:'',
1620  email:'', phone:'', website:'', utm:{} };
1621var submitted = false, started = false, pendingAdvance = null;
1622
1623/* ---------- persistence ---------- */
1624function save(){ try{ sessionStorage.setItem(CFG.STORAGE_KEY, JSON.stringify(state)); }catch(e){} }
1625function restore(){
1626  try{
1627    var raw = sessionStorage.getItem(CFG.STORAGE_KEY);
1628    if (raw){ var s = JSON.parse(raw); for (var k in state) if (k in s) state[k] = s[k]; }
1629  }catch(e){}
1630  state.screen = Math.min(state.screen || 0, CONFIRM_IDX - 1);
1631  state.maxReached = Math.min(Math.max(state.maxReached||0, state.screen), CONFIRM_IDX - 1);
1632  // Drop saved picks that are no longer form options (e.g. old "Subaccounts").
1633  state.features = state.features.filter(function(v){
1634    return FEATURES.some(function(f){ return f.label === v; });
1635  });
1636}
1637function captureUtms(){
1638  try{
1639    var p = new URLSearchParams(location.search);
1640    Object.keys(UTM_FIELD_MAP).forEach(function(k){
1641      if (p.get(k)) state.utm[k] = p.get(k);   // URL wins over stored values
1642    });
1643  }catch(e){}
1644}
1645
1646/* ---------- analytics ---------- */
1647function track(name, data){
1648  if (!window.dataLayer || typeof window.dataLayer.push !== 'function') return;
1649  var evt = { event:name }; for (var k in (data||{})) evt[k] = data[k];
1650  window.dataLayer.push(evt);
1651}
1652function trackStart(){ if (!started){ started = true; track(EVENTS.start); } }
1653
1654/* ---------- screen builders ---------- */
1655function esc(s){ return String(s).replace(/[&<>"']/g, function(c){
1656  return ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'})[c]; }); }
1657function qHead(s, i){
1658  var h = '';
1659  if (i > 0) h += '<p class="frq-qnum">Question '+i+' of '+QUESTIONS+'</p>';
1660  h += '<h3 class="frq-qtitle" tabindex="-1">'+esc(s.title)+'</h3>';
1661  if (s.help) h += '<p class="frq-qhelp">'+esc(s.help)+'</p>';
1662  return h;
1663}
1664function okRow(label, withBack){
1665  return '<div class="frq-qactions">'
1666    + (withBack ? '<button type="button" class="frq-btn frq-btn-ghost" data-frq="backbtn">Back</button>' : '')
1667    + '<button type="button" class="frq-btn frq-ok" data-frq="ok">'+esc(label)+'</button></div>';
1668}
1669function bWelcome(){
1670  return '<p class="frq-eyebrow">Get a quote</p>'
1671    + '<h2 class="frq-qtitle frq-big" tabindex="-1">Let&#39;s find the <span class="frq-hl">right fit</span> for your mission</h2>'
1672    + '<p class="frq-qhelp frq-lead">Answer a few quick questions and a friendly real person on our team '
1673    + 'will email you a custom quote, usually within ' + esc(CFG.QUOTE_TIMEFRAME) + '.</p>'
1674    + okRow('Get started')
1675    + '<p class="frq-mini">Takes about a minute</p>';
1676}
1677function bChoice(s, i){
1678  /* options are {value, label}: value = exact HubSpot option string (payload),
1679     label = brand-styled display */
1680  var h = qHead(s, i) + '<div class="frq-choices">';
1681  s.options.forEach(function(opt){
1682    h += '<label class="frq-choice"><input type="radio" class="frq-sr" name="'+s.key+'" value="'+esc(opt.value)+'"'
1683      + (state[s.key] === opt.value ? ' checked' : '') + '>'
1684      + '<span class="frq-choice-inner"><span class="frq-radio" aria-hidden="true"></span>'
1685      + '<span>'+esc(opt.label)+'</span></span></label>';
1686  });
1687  h += '</div>';
1688  if (s.required){
1689    h += '<p class="frq-msg frq-choice-msg" data-frq="choice-msg" hidden>Please choose an answer to continue.</p>';
1690  }
1691  return h + okRow('Continue', true);
1692}
1693function bFeatures(s, i){
1694  var h = qHead(s, i) + '<div class="frq-grid">';
1695  FEATURES.forEach(function(f){
1696    h += '<label class="frq-card"><input type="checkbox" class="frq-sr" name="features" value="'+esc(f.label)+'"'
1697      + (state.features.indexOf(f.label) > -1 ? ' checked' : '') + '>'
1698      + '<span class="frq-card-inner"><img src="'+f.icon+'" alt="" width="24" height="24" loading="lazy">'
1699      + '<span class="frq-card-label">'+esc(f.label)+'</span>'
1700      + '<span class="frq-card-check" aria-hidden="true">✓</span></span></label>';
1701  });
1702  return h + '</div>' + okRow('Continue', true);
1703}
1704function bHsForm(s, i){
1705  /* The mount is where hbspt.forms.create renders the real form
1706     (pre-mounted on popup open, while this screen is still hidden).
1707     Our own actions row carries only Back — the submit is HubSpot's. */
1708  return qHead(s, i)
1709    + '<div class="frq-alert" data-frq="alert" hidden role="alert"><p class="frq-alert-txt">'
1710    + 'Hmm, we couldn&#39;t load the quote form. Please try again, or reach us at '
1711    + '<a class="frq-a" href="/contact-sales">contact sales</a>.</p>'
1712    + '<button type="button" class="frq-btn frq-btn-ghost" data-frq="retry">Try again</button></div>'
1713    + '<div class="frq-hs" id="frq-hs-mount" data-frq="hsmount" aria-busy="true"></div>'
1714    + '<div class="frq-qactions frq-hs-actions">'
1715    + '<button type="button" class="frq-btn frq-btn-ghost" data-frq="backbtn">Back</button></div>'
1716    /* The HubSpot form's approved legal line (its own copy is hidden to
1717       avoid printing it twice). Required: reCAPTCHA runs on this page
1718       and Google's terms demand visible attribution when the badge is
1719       hidden. */
1720    + '<p class="frq-legal">
1720By clicking, you agree to Funraise&#39;s '
1721    + '<a class="frq-a" href="https://funraise.org/about/terms-and-conditions" target="_blank" rel="noopener">Terms</a> and '
1722    + '<a class="frq-a" href="https://funraise.org/about/privacy-policy" target="_blank" rel="noopener">Privacy Policy</a>. '
1723    + 'Protected by reCAPTCHA (Google '
1724    + '<a class="frq-a" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Privacy</a> and '
1725    + '<a class="frq-a" href="https://policies.google.com/terms" target="_blank" rel="noopener">Terms</a>). Opt out anytime.</p>';
1726}
1727function bConfirm(){
1728  /* Badge = the brand smiley (exact eye/mouth geometry from the official
1729     Funraise_Icon_app.svg) on a blue-gradient CIRCLE, per team feedback. */
1730  return '<div class="frq-confirm-badge" aria-hidden="true">'
1731    + '<svg viewBox="0 0 300 300" width="64" height="64" role="img">'
1732    + '<defs><linearGradient id="frqsm1" x1="0" y1="0" x2="241" y2="241" gradientUnits="userSpaceOnUse">'
1733    + '<stop stop-color="#53B1FF"/><stop offset="1" stop-color="#2979FF"/></linearGradient></defs>'
1734    + '<circle cx="150" cy="150" r="150" fill="url(#frqsm1)"/>'
1735    + '<path fill="#FFFFFF" d="M189.54,151.57 L189.54,165.81 C189.515147,187.647339 171.792339,205.329852 149.955,205.304999 C128.117661,205.280147 110.435148,187.557339 110.46,165.72 L110.46,165.72 L110.46,151.57 L85.08,151.57 L85.08,165.83 L85.08,165.83 C85.08,201.684326 114.145674,230.749999 150,230.749999 C185.854326,230.749999 214.92,201.684326 214.92,165.83 L214.92,165.83 L214.92,151.57 L189.54,151.57 Z"/>'
1736    + '<circle fill="#FFFFFF" cx="189.75" cy="96.32" r="18.37"/>'
1737    + '<circle fill="#FFFFFF" cx="110.25" cy="96.32" r="18.37"/>'
1738    + '</svg></div>'
1739    + '<h3 class="frq-qtitle" tabindex="-1">Your quote is on its way!</h3>'
1740    + '<p class="frq-qhelp">A real person is putting your quote together now. '
1741    + 'We&#39;ll send your quote to <b data-frq="confirm-email">your inbox</b> as soon as it&#39;s ready!</p>'
1742    + '<button type="button" class="frq-btn frq-ok frq-btn-link" data-frq="confirm-close">Back to pricing</button>';
1743}
1744var FALLBACK_ICON = 'data:image/svg+xml;utf8,' + encodeURIComponent(
1745  '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><rect x="3" y="3" width="34" height="34" rx="9" fill="#EAF2FF"/><path d="M12 21l6 6 10-13" stroke="#2979FF" stroke-width="3" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>');
1746function build(){
1747  el.viewport.innerHTML = SCREENS.map(function(s, i){
1748    var inner = s.type==='welcome' ? bWelcome()
1749      : s.type==='choice' ? bChoice(s, i)
1750      : s.type==='features' ? bFeatures(s, i)
1751      : s.type==='hsform' ? bHsForm(s, i)
1752      : bConfirm();
1753    return '<div class="frq-screen" data-screen="'+i+'"><div class="frq-q'
1754      + (s.type==='confirm' ? ' frq-qconfirm' : '') + '">'+inner+'</div></div>';
1755  }).join('');
1756  Array.prototype.forEach.call(el.viewport.querySelectorAll('.frq-card img'), function(img){
1757    img.onerror = function(){
1758      if (img.src !== FALLBACK_ICON){ img.src = FALLBACK_ICON;
1759        console.warn('[frq] feature icon 404, using placeholder'); }
1760    };
1761  });
1762}
1763
1764/* ---------- rendering / navigation ---------- */
1765function activeEl(){ return el.viewport.querySelector('.frq-screen[data-screen="'+state.screen+'"]'); }
1766function render(dir, focus){
1767  el.viewport.dataset.dir = dir || 'fwd';
1768  el.overlay.scrollTop = 0;   // each screen starts at the top
1769  Array.prototype.forEach.call(el.viewport.children, function(sc){
1770    sc.classList.toggle('is-active', +sc.dataset.screen === state.screen);
1771  });
1772  var pct = Math.round(state.screen / CONFIRM_IDX * 100);
1773  el.fill.style.width = pct + '%';
1774  el.bar.setAttribute('aria-valuenow', pct);
1775  if (focus !== false){
1776    var h = activeEl().querySelector('.frq-qtitle');
1777    if (h) h.focus();
1778  }
1779  // The form pre-mounts on popup open; entering the contact screen only
1780  // re-syncs the qualifier answers (mountHsForm is a guarded fallback).
1781  if (isOpen && SCREENS[state.screen].type === 'hsform'){ mountHsForm(); syncHsQualifiers(); }
1782}
1783function go(n, dir, focus){
1784  if (pendingAdvance){ clearTimeout(pendingAdvance); pendingAdvance = null; }
1785  if (n < 0 || n > CONFIRM_IDX) return;
1786  if (n === CONFIRM_IDX && !submitted) return;   // confirmation only via successful submit
1787  state.screen = n;
1788  state.maxReached = Math.max(state.maxReached, n);
1789  save(); render(dir, focus);
1790}
1791function advance(){
1792  if (submitted) return;
1793  var s = SCREENS[state.screen];
1794  if (s.type === 'hsform') return;   // submission belongs to the HubSpot form
1795  if (s.type === 'choice' && s.required && !state[s.key]){
1796    // mission + annual are required on the HubSpot form — no skipping
1797    var m = activeEl().querySelector('[data-frq="choice-msg"]');
1798    if (m) m.hidden = false;
1799    el.live.textContent = 'Please choose an answer to continue.';
1800    var t = activeEl().querySelector('.frq-qtitle'); if (t) t.focus();
1801    return;
1802  }
1803  if (state.screen === 0) trackStart();
1804  else track(EVENTS.step, { frq_step:state.screen, frq_screen:s.id });
1805  go(state.screen + 1, 'fwd');
1806}
1807
1808/* ---------- state <- inputs ---------- */
1809function readInput(t){
1810  if (!t || !t.name) return;
1811  if (t.closest && t.closest('[data-frq="hsmount"]')){
1812    // Mirror the HubSpot contact fields into state (confirm screen +
1813    // prefill after an accidental close). React may re-render the form,
1814    // so also re-assert the branded submit label.
1815    if (t.name in state && typeof state[t.name] === 'string') state[t.name] = t.value;
1816    hsCosmetics();
1817    save();
1818    return;
1819  }
1820  if (t.name === 'features'){
1821    state.features = Array.prototype.map.call(
1822      el.viewport.querySelectorAll('input[name="features"]:checked'), function(c){ return c.value; });
1823  } else if (t.name in state){
1824    state[t.name] = t.value;
1825  }
1826  if (t.type === 'radio'){
1827    var cm = el.viewport.querySelector('[data-frq="choice-msg"]:not([hidden])');
1828    if (cm) cm.hidden = true;
1829    if (pendingAdvance){ clearTimeout(pendingAdvance); pendingAdvance = null; }
1830    // Typeform-style auto-advance shortly after a single-choice answer.
1831    pendingAdvance = setTimeout(function(){ pendingAdvance = null; advance(); }, 550);
1832  }
1833  save();
1834}
1835function normalizeUrl(v){
1836  v = (v||'').trim();
1837  if (v && !/^https?:\/\//i.test(v)) v = 'https://' + v;
1838  return v;
1839}
1840
1841/* ---------- the real HubSpot form (contact screen) ----------
1842   The form has CAPTCHA enabled: the public Submission API rejects it
1843   outright, and a hidden programmatically-driven copy was rejected
1844   server-side ("Failed to validate Captcha" — no human signals). So the
1845   real form renders VISIBLY, restyled; the user types their contact
1846   details and clicks HubSpot's own submit. We prefill the qualifier
1847   fields from screens 1-4 (hidden by CSS) and the stored UTMs, and
1848   listen for onFormSubmitted to show our confirmation. */
1849function loadHsScript(){
1850  return new Promise(function(resolve, reject){
1851    if (window.hbspt && window.hbspt.forms) return resolve();
1852    var s = document.createElement('script');
1853    s.src = 'https://js.hsforms.net/forms/embed/v2.js';
1854    s.async = true;
1855    s.onload = function(){
1856      (window.hbspt && window.hbspt.forms) ? resolve() : reject(new Error('hbspt unavailable after load'));
1857    };
1858    s.onerror = function(){ reject(new Error('HubSpot forms script failed to load')); };
1859    document.head.appendChild(s);
1860  });
1861}
1862/* The form renders INLINE in the mount (class hs-form-private); the
1863   first iframe inside it is Google's cross-origin reCAPTCHA anchor, so
1864   never treat box.querySelector('iframe') as "the form". Same-origin
1865   iframes are still scanned in case HubSpot ever switches rendering. */
1866function hsFormEl(box){
1867  var f = box.querySelector('form');
1868  if (f) return f;
1869  var frames = box.querySelectorAll('iframe');
1870  for (var i = 0; i < frames.length; i++){
1871    try {
1872      var doc = frames[i].contentDocument;   // null for cross-origin (reCAPTCHA)
1873      if (doc){ var g = doc.querySelector('form'); if (g) return g; }
1874    } catch(e){}
1875  }
1876  return null;
1877}
1878/* onFormReady can beat the React DOM commit by a few milliseconds —
1879   wait for the real form + submit button before touching anything. */
1880function whenHsFormReady(box){
1881  return new Promise(function(resolve, reject){
1882    var waited = 0;
1883    (function look(){
1884      var form = hsFormEl(box);
1885      var btn = form && form.querySelector('input[type="submit"], button[type="submit"]');
1886      if (form && btn) return resolve(form);
1887      if (waited >= CFG.READY_TIMEOUT_MS) return reject(new Error('HubSpot form never rendered'));
1888      waited += 150;
1889      setTimeout(look, 150);
1890    })();
1891  });
1892}
1893/* React-controlled inputs ignore plain .value writes: use the native
1894   setter from the element's own realm, then bubble input+change. */
1895function setNative(el, v){
1896  var win = el.ownerDocument.defaultView || window;
1897  var proto = el.tagName === 'SELECT' ? win.HTMLSelectElement : win.HTMLInputElement;
1898  var d = Object.getOwnPropertyDescriptor(proto.prototype, 'value');
1899  if (d && d.set) d.set.call(el, v); else el.value = v;
1900  el.dispatchEvent(new win.Event('input', { bubbles: true }));
1901  el.dispatchEvent(new win.Event('change', { bubbles: true }));
1902}
1903function addField(fields, name, value){
1904  if (name && value !== '' && value != null) fields.push({ name:name, value:value });
1905}
1906/* Contact fields: restored once at mount for retries/reloads; after
1907   that the user's own typing owns them (mirrored back into state). */
1908function hsContactFields(){
1909  var f = [];
1910  addField(f, FIELD_MAP.firstname, state.firstname.trim());
1911  addField(f, FIELD_MAP.lastname,  state.lastname.trim());
1912  addField(f, FIELD_MAP.email,     state.email.trim());
1913  addField(f, FIELD_MAP.phone,     state.phone.trim());
1914  addField(f, FIELD_MAP.website,   state.website ? normalizeUrl(state.website) : '');
1915  return f;
1916}
1917/* Qualifiers from screens 1-4 (their rows are CSS-hidden on the form)
1918   + UTMs. Re-synced every time the contact screen becomes active: the
1919   form pre-mounts on popup open, before these answers exist, and the
1920   user can change them via Back at any point. */
1921function hsQualifierFields(){
1922  var f = [];
1923  addField(f, FIELD_MAP.mission,      state.mission);
1924  addField(f, FIELD_MAP.donorCount,   state.donorCount);
1925  addField(f, FIELD_MAP.annualOnline, state.annualOnline);
1926  f.push({ name:SELECTED_FEATURES_FIELD, value:state.features.join(CFG.FEATURES_SEPARATOR) });
1927  Object.keys(UTM_FIELD_MAP).forEach(function(k){ addField(f, UTM_FIELD_MAP[k], state.utm[k]); });
1928  return f;
1929}
1930function fillHsForm(box, fields){
1931  var form = hsFormEl(box);
1932  if (!form) throw new Error('HubSpot form not found in container');
1933  fields.forEach(function(f){
1934    var els = form.querySelectorAll('[name="' + f.name + '"]');
1935    if (!els.length) return;   // field not rendered on the form — skip
1936    if (els[0].type === 'checkbox'){
1937      var want = String(f.value).split(CFG.FEATURES_SEPARATOR);
1938      Array.prototype.forEach.call(els, function(cb){
1939        var should = want.indexOf(cb.value) > -1;
1940        if (cb.checked !== should) cb.click();   // click = native React-visible toggle
1941      });
1942    } else if (els[0].type === 'radio'){
1943      Array.prototype.forEach.call(els, function(rb){
1944        if (rb.value === f.value && !rb.checked) rb.click();
1945      });
1946    } else {
1947      setNative(els[0], f.value);
1948    }
1949  });
1950}
1951/* Cosmetics matching the pre-HubSpot design: sentence-case labels,
1952   "(optional)" on phone, the old placeholders, and the CTA label
1953   ("Submit" -> "Get my quote"). Labels render as
1954   <span>Text</span><span class="hs-form-required">*</span> (asterisk is
1955   CSS-hidden). React can re-render any of it, so this is idempotent and
1956   re-asserted on input. */
1957var HS_LABELS = { firstname:'First name', lastname:'Last name', email:'Work email',
1958  phone:'Phone (optional)', website:'Organization website' };
1959var HS_PLACEHOLDERS = { firstname:'Jane', lastname:'Goodall', email:'[email protected]',
1960  phone:'(555) 555-1234', website:'yourorg.org' };
1961function hsCosmetics(){
1962  var m = $('hsmount');
1963  if (!m) return;
1964  var b = m.querySelector('input[type="submit"], button[type="submit"]');
1965  if (b){
1966    if (b.tagName === 'INPUT'){ if (b.value !== 'Get my quote') b.value = 'Get my quote'; }
1967    else if (b.textContent !== 'Get my quote') b.textContent = 'Get my quote';
1968  }
1969  Object.keys(HS_LABELS).forEach(function(name){
1970    var s = m.querySelector('.hs_' + name + ' label>span');
1971    if (s && s.textContent !== HS_LABELS[name]) s.textContent = HS_LABELS[name];
1972    var inp = m.querySelector('.hs_' + name + ' input');
1973    if (inp && inp.getAttribute('placeholder') !== HS_PLACEHOLDERS[name]){
1974      inp.setAttribute('placeholder', HS_PLACEHOLDERS[name]);
1975    }
1976  });
1977}
1978/* Re-push the screen 1-4 answers into the (hidden) qualifier fields —
1979   called whenever the contact screen becomes active on a ready form. */
1980function syncHsQualifiers(){
1981  var m = $('hsmount');
1982  if (!m || m.dataset.hsState !== 'ready') return;   // mount chain will sync
1983  fillHsForm(m, hsQualifierFields());
1984  hsCosmetics();
1985}
1986function mountHsForm(){
1987  var mount = $('hsmount');
1988  if (!mount || mount.dataset.hsState) return;   // already loading or ready
1989  mount.dataset.hsState = 'loading';
1990  mount.innerHTML = '';                          // clear leftovers from a failed try
1991  var a = $('alert'); if (a) a.hidden = true;
1992  loadHsScript().then(function(){
1993    return new Promise(function(resolve, reject){
1994      var to = setTimeout(function(){ off(); reject(new Error('HubSpot form ready timeout')); }, CFG.READY_TIMEOUT_MS);
1995      function onMsg(e){
1996        var d = e.data;
1997        if (!d || d.type !== 'hsFormCallback' || d.id !== CFG.HUBSPOT_FORM_GUID) return;
1998        if (d.eventName === 'onFormReady'){ off(); resolve(); }
1999      }
2000      function off(){ clearTimeout(to); window.removeEventListener('message', onMsg); }
2001      window.addEventListener('message', onMsg);
2002      window.hbspt.forms.create({
2003        region: 'na1',
2004        portalId: CFG.HUBSPOT_PORTAL_ID,
2005        formId: CFG.HUBSPOT_FORM_GUID,
2006        sfdcCampaignId: CFG.SF_CAMPAIGN_ID || undefined,
2007        target: '#frq-hs-mount',
2008        css: '',            // strip HubSpot's stylesheet; our CSS restyles the raw form
2009        cssRequired: '',
2010        /* The form's own setting redirects to /success/thanks-demo —
2011           an inlineMessage override keeps the user in the wizard so our
2012           confirmation screen (onFormSubmitted) can take over. */
2013        inlineMessage: 'Thanks! Your quote is on its way.'
2014      });
2015    });
2016  }).then(function(){
2017    return whenHsFormReady(mount);
2018  }).then(function(){
2019    mount.dataset.hsState = 'ready';
2020    mount.setAttribute('aria-busy', 'false');
2021    fillHsForm(mount, hsContactFields().concat(hsQualifierFields()));
2022    hsCosmetics();
2023  }).catch(function(err){
2024    console.error('[frq] HubSpot form failed to load:', err);
2025    track(EVENTS.error);
2026    delete mount.dataset.hsState;                // allow a retry
2027    mount.setAttribute('aria-busy', 'false');    // stop the "Loading…" note
2028    var a2 = $('alert'); if (a2) a2.hidden = false;
2029    el.live.textContent = 'We could not load the quote form. Please try again.';
2030  });
2031}
2032function onHsSubmitted(){
2033  if (submitted) return;
2034  submitted = true;
2035  track(EVENTS.submit);
2036  if (CFG.REDIRECT_URL){
2037    // Target page reads ?frq_confetti=1 and calls frqConfetti() (see README).
2038    location.assign(CFG.REDIRECT_URL + (CFG.REDIRECT_URL.indexOf('?')>-1 ? '&' : '?') + 'frq_confetti=1');
2039    return;
2040  }
2041  var em = $('confirm-email'); if (em && state.email) em.textContent = state.email;
2042  go(CONFIRM_IDX, 'fwd');
2043  try{ sessionStorage.removeItem(CFG.STORAGE_KEY); }catch(e){}
2044  el.live.textContent = 'Request sent! Your quote is on its way.';
2045  frqConfetti();
2046}
2047
2048/* ---------- confetti ----------
2049   Self-contained DOM pieces (no CDN script, so nothing can be blocked
2050   and it stacks ABOVE the popup overlay; canvas-confetti painted at
2051   z-index 100, underneath our z-index 9999 dialog). Reusable:
2052   window.frqConfetti(). To reuse elsewhere, copy this function plus
2053   the .frq-cf CSS rules. */
2054var BRAND_CONFETTI = ['#2979FF','#43F3F7','#64D7FF','#FFBD00','#FF3E8D','#00D641'];
2055function frqConfetti(){
2056  try{ if (matchMedia('(prefers-reduced-motion: reduce)').matches) return; }catch(e){}
2057  var host = document.createElement('div');
2058  host.className = 'frq-cf'; host.setAttribute('aria-hidden','true');
2059  for (var i = 0; i < 80; i++){
2060    var p = document.createElement('i'), square = i % 3 !== 0, size = 6 + Math.random()*6;
2061    p.style.left = (Math.random()*100) + '%';
2062    p.style.width = size + 'px';
2063    p.style.height = (square ? size*.6 : size) + 'px';
2064    p.style.background = BRAND_CONFETTI[i % BRAND_CONFETTI.length];
2065    p.style.borderRadius = square ? '2px' : '50%';
2066    p.style.setProperty('--dx', (Math.random()*160 - 80) + 'px');
2067    p.style.setProperty('--rz', (Math.random()*720 - 360) + 'deg');
2068    p.style.animationDuration = (1.7 + Math.random()*1.4) + 's';
2069    p.style.animationDelay = (Math.random()*.5) + 's';
2070    host.appendChild(p);
2071  }
2072  document.body.appendChild(host);
2073  setTimeout(function(){ if (host.parentNode) host.parentNode.removeChild(host); }, 4200);
2074}
2075window.frqConfetti = frqConfetti;
2076
2077/* ---------- popup open/close ---------- */
2078var isOpen = false, lastFocus = null;
2079function frqOpen(){
2080  if (isOpen) return;
2081  isOpen = true; lastFocus = document.activeElement;
2082  el.overlay.hidden = false;
2083  document.documentElement.style.overflow = 'hidden';   // lock page scroll
2084  render('fwd', true);   // resumes the saved screen; focuses its heading
2085  /* Pre-mount the HubSpot form NOW, inside the (hidden) contact screen:
2086     by the time the user reaches it, the form is rendered and the
2087     slide-in animates a stable layout (probe-verified: the embed
2088     renders fine under display:none and lays out on reveal). Trade-off:
2089     HubSpot counts a form view per popup open. */
2090  mountHsForm();
2091}
2092function frqClose(){
2093  if (!isOpen) return;
2094  isOpen = false; el.overlay.hidden = true;
2095  document.documentElement.style.overflow = '';
2096  if (lastFocus && lastFocus.focus) try{ lastFocus.focus(); }catch(e){}
2097}
2098window.frqOpen = frqOpen; window.frqClose = frqClose;
2099
2100/* ---------- keyboard: Enter advances (outside the HubSpot form), Esc closes ---------- */
2101function keys(e){
2102  if (e.key !== 'Enter') return;
2103  var t = e.target;
2104  if (t && t.closest && (t.closest('button,a') || t.closest('[data-frq="hsmount"]'))) return;
2105  e.preventDefault();   // Enter inside the HubSpot form submits it natively
2106  advance();
2107}
2108
2109/* ---------- events ---------- */
2110function bind(){
2111  el.form.addEventListener('click', function(e){
2112    var o = e.target.closest && e.target.closest('[data-frq="ok"]');
2113    if (o){ e.preventDefault(); advance(); return; }
2114    var b = e.target.closest && e.target.closest('[data-frq="backbtn"]');
2115    if (b && !submitted && state.screen > 0) go(state.screen - 1, 'back');
2116    var c = e.target.closest && e.target.closest('[data-frq="confirm-close"]');
2117    if (c) frqClose();   // confirmation CTA just returns to the page
2118    var r = e.target.closest && e.target.closest('[data-frq="retry"]');
2119    if (r) mountHsForm();
2120  });
2121  root.addEventListener('keydown', keys);
2122  // Esc closes from anywhere (frqClose is a no-op while the popup is closed).
2123  document.addEventListener('keydown', function(e){ if (e.key === 'Escape') frqClose(); });
2124  el.form.addEventListener('input',  function(e){ trackStart(); readInput(e.target); });
2125  el.form.addEventListener('change', function(e){ trackStart(); readInput(e.target); });
2126  el.close.addEventListener('click', frqClose);
2127  // The submit confirmation comes from the HubSpot embed as a message.
2128  window.addEventListener('message', function(e){
2129    var d = e.data;
2130    if (!d || d.type !== 'hsFormCallback' || d.id !== CFG.HUBSPOT_FORM_GUID) return;
2131    if (d.eventName === 'onFormSubmitted') onHsSubmitted();
2132  });
2133  // Any element with data-frq-open (or a link to #get-a-quote) opens the popup.
2134  document.addEventListener('click', function(e){
2135    var t = e.target.closest && e.target.closest('[data-frq-open],a[href="#get-a-quote"]');
2136    if (t){ e.preventDefault(); frqOpen(); }
2137  });
2138  // Minimal focus trap while the dialog is open.
2139  el.overlay.addEventListener('keydown', function(e){
2140    if (e.key !== 'Tab') return;
2141    var list = Array.prototype.filter.call(
2142      el.overlay.querySelectorAll('a[href],button,input,select,textarea'),
2143      function(x){ return !x.disabled && x.offsetParent !== null; });
2144    if (!list.length) return;
2145    var first = list[0], last = list[list.length-1];
2146    if (e.shiftKey && document.activeElement === first){ e.preventDefault(); last.focus(); }
2147    else if (!e.shiftKey && document.activeElement === last){ e.preventDefault(); first.focus(); }
2148  });
2149}
2150
2151/* ---------- boot ---------- */
2152function init(){
2153  /* Portal: move the overlay into a fresh .frq wrapper on <body>.
2154     Inside a Webflow section, an animated ancestor (transform/will-change)
2155     becomes the containing block for position:fixed and insets the whole
2156     popup; at body level, fixed means the real window. The wrapper keeps
2157     every ".frq ..." selector and token working. */
2158  var portal = document.createElement('div');
2159  portal.className = 'frq';
2160  portal.setAttribute('data-frq-portal', '');
2161  portal.appendChild(el.overlay);
2162  document.body.appendChild(portal);
2163  root = portal;   // queries + key handling now target the portal subtree
2164  restore(); captureUtms(); save();
2165  build(); bind();
2166  render('fwd', false);   // prepare the saved screen; overlay stays hidden
2167  if (location.hash === '#get-a-quote') frqOpen();
2168}
2169try{ init(); }
2170catch(err){
2171  // Launcher is a plain link to /contact-sales, so users still have a path.
2172  console.error('[frq] init failed:', err);
2173}
2174})();
2175</script>
2175</div></div></div></div><div class="content-section no-margin-top no-padding-top mb-100"><div class="pricing-bar card my-sm"><div class="content-container narrow no-padding-bottom _100"><div class="pricing-table-box menu mobile"><div class="screen-size-disclaimer"><h5 class="heading-87">FOR MORE DETAILS</h5><div class="text-block-101">Please view this on a larger screen size</div></div><div class="div-block-61"><div class="text-block-47">Need help deciding?<br/></div><a data-w-id="533229d6-fdff-14fa-e543-acdf9300780a" href="/contact-sales" class="arrow-link w-inline-block"><div class="link-container"><div class="arrow-link-text">Contact Sales</div><div class="link-arrow"></div></div></a></div><div class="pricing-menu-block"><h5 class="no-margin-top">Essentials</h5><div class="pricng-column-price mobile-sm minh-auto sm mt-10"><span class="price-green-horizonal">$0</span>/month</div></div><div class="pricing-menu-block"><h5 class="no-margin-top">Premium Plans</h5><a href="/contact-sales" class="button-9 button-large cta w-button">Talk with Sales</a></div></div><div class="w-layout-grid pricing-3-up desktop _3-row"><div id="w-node-_533229d6-fdff-14fa-e543-acdf9300781d-7eea52fb" class="flex"><a data-w-id="533229d6-fdff-14fa-e543-acdf9300781e" href="/contact-sales" class="arrow-link pricing-bar hide w-inline-block"><div class="link-container"><div class="arrow-link-text">Contact Sales</div><div class="link-arrow"></div></div></a><div class="div-block-451"><div class="text-block-1401 bold">Compare plans</div></div></div><div class="pricing-menu-block flex"><h5 class="pricing-header-label"><strong>Free<br/></strong></h5></div><div class="pricing-menu-block flex"><h5 class="pricing-header-label">Premium Plans</h5></div></div></div></div><div class="pricing-bar card hidden"><div class="content-container narrow no-padding-bottom"><div class="pricing-table-box menu mobile"><div class="screen-size-disclaimer"><h5 class="heading-87">FOR MORE DETAILS</h5><div class="text-block-101">Please view this on a larger screen size</div></div><div class="div-block-61"><div class="text-block-47">Need help deciding?<br/></div><a data-w-id="533229d6-fdff-14fa-e543-acdf93007844" href="/contact-sales" class="arrow-link w-inline-block"><div class="link-container"><div class="arrow-link-text">Contact Sales</div><div class="link-arrow"></div></div></a></div><div class="pricing-menu-block hidden"><h5 class="no-margin-top">Free</h5><div class="centered-column-container pricing-plan">Free<br/></div></div><div class="pricing-menu-block"><h5 class="no-margin-top">Enterprise</h5><div class="centered-column-container pricing-plan">Contact Us<br/></div></div></div><div class="w-layout-grid pricing-3-up desktop col-less"><div id="w-node-_533229d6-fdff-14fa-e543-acdf93007857-7eea52fb" class="flex"><a data-w-id="533229d6-fdff-14fa-e543-acdf93007858" href="/contact-sales" class="arrow-link pricing-bar hide w-inline-block"><div class="link-container"><div class="arrow-link-text">Contact Sales</div><div class="link-arrow"></div></div></a></div><div class="pricing-menu-block"><h5 class="pricing-header-label">Standard</h5></div><h5 id="w-node-_533229d6-fdff-14fa-e543-acdf93007861-7eea52fb" class="pricing-header-label">Premium</h5></div></div></div><div class="content-container margin-top narrow _100"><div class="pricing-chart-desktop"><div class="pricing-chart-block first"><div class="div-block-475"><h4 class="pricing-header mb-0">Payment Fees</h4><div class="text-label-light-blue">~90% of donors cover fees 🤗</div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Platform fees<br/></div></div><div class="centered-column-container"><div class="text-block-1267">5%</div></div><div class="centered-column-container"><div class="text-block-1267">0-3%</div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div class="tooltip-wrapper-praicing"><div>Processing fees<br/></div><div data-w-id="533229d6-fdff-14fa-e543-acdf9300787b" class="div-block-476"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/680b9e1786a76ec34a74ef2a_Vector%20(7).svg" loading="lazy" alt="" class="image-249"/><div style="opacity:0;display:none" class="tooltip-item"><div class="text-block-1407">Varies by processor. Shown here are common card processing fees with <a href="/funraise-payments" target="_blank" class="tooltip-item-link">Funraise Payments powered by Stripe</a>.</div><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/680b9f3b35465144d12c9761_down-arrow-svgrepo-com.svg" loading="lazy" alt="" class="image-250"/></div></div></div><div class="centered-column-container"><div class="text-block-1267">2.9% + 60¢</div></div><div class="centered-column-container"><div class="text-block-1267">2.9% + 60¢</div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Donor Fee Coverage<br/></div></div><div class="centered-column-container">
2175<div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col highlight hide"><div><div class="tooltip-wrapper-praicing"><div class="text-block-1408"><strong>Estimated </strong><span class="text-span-35"><strong>Total</strong></span><strong> Payment Costs</strong><br/></div><div data-w-id="533229d6-fdff-14fa-e543-acdf930078a1" class="div-block-476"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/680b9e1786a76ec34a74ef2a_Vector%20(7).svg" loading="lazy" alt="" class="image-249"/><div style="opacity:0;display:none" class="tooltip-item"><div class="text-block-1407 mb-5">Because ~90% of donors cover fees, these are the average total payment costs for Funraise customers — and our best estimate of your costs.<br/></div><div class="text-block-1407">Calculations do not include the 60¢ per transaction fee or transactions that were ineligible for standard fee coverage models.</div><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/680b9f3b35465144d12c9761_down-arrow-svgrepo-com.svg" loading="lazy" alt="" class="image-250"/></div></div></div></div><div class="centered-column-container"><div class="text-block-1267 bold">2.5%</div></div><div class="centered-column-container"><div class="text-block-1267 bold">0.8%</div></div></div></div><div class="pricing-chart-block"><h4 class="pricing-header">Features</h4><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Donation Forms<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Donation Pages<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Recurring Donations<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Events &amp; Ticketing<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Donor Management<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Donation Management<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Subscription Management<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Household Management<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Commitments &amp; Pledge Management<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Automated Tasks<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container">
2175<div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Funraise App<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Donor Portal<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Fundraising Websites<br/></div></div><div class="centered-column-container"><div class="text-block-1267">1</div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Auctions</div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Email Messaging</div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Peer-to-Peer Fundraising<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Attachments<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Funraise API<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Webhooks<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Permissions<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Subaccounts<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Inbound Email Parsing (BCC)<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Wealth Screening<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Fundraising Intelligence<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon green-plus"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Text Engagement</div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon green-plus"></div></div></div></div><div class="pricing-chart-block"><h4 class="pricing-header">Integrations</h4><div class="w-layout-grid plan-chart-row _3-col gray"><div><div>Double the Donation<br/></div></div><div class="centered-column-container">
2175<div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Springboard<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col gray"><div><div>Google Maps (Address Auto-Complete)<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Shopify<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col gray"><div><div>Twitch<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Streamlabs<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col gray"><div><div>Klaviyo<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Daxko<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col gray"><div><div>Mailchimp<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Constant Contact<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col gray"><div><div>Salesforce<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>HubSpot<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Raiser’s Edge<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Virtuous<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col gray"><div><div>QuickBooks Online<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Facebook<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div></div><div class="pricing-chart-block"><h4 class="pricing-header">Payment Methods</h4><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Cards<br/></div></div><div class="centered-column-container">
2175<div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>ACH (eCheck)<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>PayPal<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Venmo<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Apple Pay<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>DAFpay<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Stock (DonateStock)<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Crypto (BitPay)<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div></div><div class="pricing-chart-block"><h4 class="pricing-header">Support &amp; Services</h4><div class="w-layout-grid plan-chart-row _3-col"><div><div>Knowledge Base<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Funraise University<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Developer Docs<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Chat &amp; Ticketing Support<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Onboarding Training<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray _3-col"><div><div>Custom Domains<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon green-plus"></div></div></div><div class="w-layout-grid plan-chart-row _3-col"><div><div>Recurring Subscription Migration<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon green-plus"></div></div></div></div></div><div class="pricing-chart-desktop hidden"><div class="pricing-chart-block"><h4 class="pricing-header">Features</h4><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Donation Forms<br/></div></div><div class="centered-column-container">
2175<div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Donation Pages<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Supporters<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Recurring Donations<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Events &amp; Ticketing<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Supporter Management<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Donation Management<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Recurring Subscription Management<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Household Management<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Donation Tasks<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Automated Emails<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Funraise App<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Donor Portal App<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Bulk Imports<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Fundraising Websites<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Peer-to-Peer Fundraising<br/></div></div><div class="centered-column-container">
2175<div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Webhooks<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Attachments<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Text Engagement<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Reports &amp; Dashboards<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Funraise API<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon green-plus"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Subaccounts<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon green-plus"></div></div></div></div><div class="pricing-chart-block"><h4 class="pricing-header">Integrations</h4><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Double the Donation<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Mailchimp<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Constant Contact<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Klaviyo<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Google Maps (Address Auto-complete)<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Raiser&#x27;s Edge<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>HubSpot<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Virtuous<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Salesforce<br/></div></div><div class="centered-column-container">
2175<div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Shopify<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Quickbooks Online<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Twitch<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Streamlabs<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Facebook<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div></div><div class="pricing-chart-block"><h4 class="pricing-header">Support &amp; Services</h4><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Knowledge base<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Funraise University<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Developer docs<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Chat support<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Onboarding training<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Custom domains<br/></div></div><div class="centered-column-container"><div class="icon green-plus"></div></div><div class="centered-column-container"><div class="icon green-plus"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Recurring subscription migration<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Dedicated Success Manager<br/></div></div><div class="centered-column-container"><div class="icon chart-x"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div></div><div class="pricing-chart-block"><h4 class="pricing-header">Payments</h4><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Card<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>PayPal<br/></div></div><div class="centered-column-container">
2175<div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Venmo<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>e-Check (ACH)<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row gray col-less"><div><div>Stock (DonateStock)<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Apple Pay<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div><div class="w-layout-grid plan-chart-row col-less"><div><div>Crypto<br/></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div><div class="centered-column-container"><div class="icon chart-check"></div></div></div></div></div></div></div><section class="key-points white-bg"><div class="w-layout-blockcontainer container-main w-container"><div class="h2-short-wrapper"><div class="label blue-primary">Nonprofit-friendly pricing</div><h2 class="body-headline-5">Go big on fundraising features, not cost.</h2></div><div><div class="w-layout-grid grid-46"><div id="w-node-_533229d6-fdff-14fa-e543-acdf93007d53-7eea52fb" class="key-poin-signle-wrapper"><img width="18" height="18" alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67cf0b9ea09cdb09afd4ce6a_visibility.svg" loading="lazy" class="key-points-icone"/><div class="key-point-single-headline-4">Transparent pricing</div><div class="key-points-single-text-4">Avoid surprise costs and long-term contracts  with clear and transparent usage-based pricing.</div></div><div id="w-node-_533229d6-fdff-14fa-e543-acdf93007d59-7eea52fb" class="key-poin-signle-wrapper"><img width="12" height="12" alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67cf0b9e3f22ba00243de464_open_in_full.svg" loading="lazy" class="key-points-icone"/><div class="key-point-single-headline-4">Fee-based costs</div><div class="key-points-single-text-4">Our risk-free fee-based model enables your organization’s expenses to scale hand-in-hand with your fundraising success.</div></div><div id="w-node-_533229d6-fdff-14fa-e543-acdf93007d5f-7eea52fb" class="key-poin-signle-wrapper"><img width="18" height="18" alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67cf0b9e69c58743869e8064_groups.svg" loading="lazy" class="key-points-icone"/><div class="key-point-single-headline-4">We’re in this together</div><div class="key-points-single-text-4">We only win when you win. Funraise is inspired to provide technology and support that helps you raise more.</div></div><div id="w-node-_533229d6-fdff-14fa-e543-acdf93007d65-7eea52fb" class="key-poin-signle-wrapper"><img width="15" height="15" alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67cf0b9e4eb6537cb1cd1bef_favorite_border.svg" loading="lazy" class="key-points-icone"/><div class="key-point-single-headline-4">Donor fee coverage</div><div class="key-points-single-text-4">Donors can cover your fees and reduce your costs even further.  With Funraise,  about 90% of donors cover fees.</div></div></div><div class="w-layout-grid grid-46"><div id="w-node-_533229d6-fdff-14fa-e543-acdf93007d6c-7eea52fb" class="key-poin-signle-wrapper"><img width="18" height="18" alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67cf0b9e0999ecff2f3dbe7b_account_balance.svg" loading="lazy" class="key-points-icone"/><div class="key-point-single-headline-4">Volume pricing</div><div class="key-points-single-text-4">Raising a lot online? Let’s build a custom plan to maximize your impact.</div></div><div id="w-node-_533229d6-fdff-14fa-e543-acdf93007d72-7eea52fb" class="key-poin-signle-wrapper"><img width="12" height="12" alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67cf0b9e2204fa06344b7b28_sentiment_very_satisfied.svg" loading="lazy" class="key-points-icone"/><div class="key-point-single-headline-4">
2175We’re nonprofit people</div><div class="key-points-single-text-4">Funraise&#x27;s platform and pricing model were built by nonprofit people. We’ve been in your shoes and we know what it takes.</div></div><div id="w-node-_533229d6-fdff-14fa-e543-acdf93007d78-7eea52fb" class="key-poin-signle-wrapper"><img width="18" height="18" alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67cf0b9e9ba394633380181b_school.svg" loading="lazy" class="key-points-icone"/><div class="key-point-single-headline-4">Onboarding &amp; Training</div><div class="key-points-single-text-4">Get started fast with onboarding training from a friendly Funraise expert—at no cost.</div></div><div id="w-node-_533229d6-fdff-14fa-e543-acdf93007d7e-7eea52fb" class="key-poin-signle-wrapper"><img width="15" height="15" alt="" src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67cf0b9ef02ba32eeb7ef3d4_input.svg" loading="lazy" class="key-points-icone"/><div class="key-point-single-headline-4">Bring your data</div><div class="key-points-single-text-4">No need to start from scratch. Import your historic donation and donor data. Even bring your existing recurring subscriptions.</div></div></div></div></div></section><section id="faq" class="faq"><div class="content-container margin-bottom large mb-109"><div class="cta-light my-l"><div class="cta-bg-pattern hide"></div><div class="cta-left-content lighter"><h2 class="body-headline-3">Ready to learn more?</h2><div class="bold-text">We’re here to answer your questions.</div><ul role="list" class="sbs-list mt-sm left-align-mobile"><li class="sbs-list-item">Meet with a Funraise expert</li><li class="sbs-list-item">Explore use cases based on your fundraising strategy</li><li class="sbs-list-item">Learn how Funraise can help you raise more</li></ul><div class="cta-wrap"><a href="/contact-sales" class="button button-large cta w-button">Schedule your Demo</a></div></div><div class="cta-right-content"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67a0d7094ff9a57b58c691bd_Group%2011931%20(2)%20(1).webp" loading="lazy" sizes="100vw" height="Auto" alt="" srcset="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67a0d7094ff9a57b58c691bd_Group%2011931%20(2)%20(1)-p-500.webp 500w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67a0d7094ff9a57b58c691bd_Group%2011931%20(2)%20(1)-p-800.webp 800w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67a0d7094ff9a57b58c691bd_Group%2011931%20(2)%20(1)-p-1080.webp 1080w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/67a0d7094ff9a57b58c691bd_Group%2011931%20(2)%20(1).webp 1175w" class="cta-image"/></div></div></div><div class="w-layout-blockcontainer container-narrow w-container"><div class="h2-short-wrapper"><h2 class="body-headline-5">Frequently Asked</h2></div><div class="accordion-wrapper"><div class="accordion-item"><div id="q1" class="accordion-item-trigger"><h4 class="accordion-heading">Is there a Donors Cover Fees option?</h4><div class="arrow-faq accordion-icon">keyboard_arrow_down</div></div><div class="accordion-item-content"><p class="paragraph-5">Yes! Donors can opt in to cover fees. When donors cover fees, the additional amount covers both Funraise&#x27;s platform fee and a portion of processing fees. With Funraise, about 90% of donors cover fees!</p></div></div><div class="accordion-item"><div id="q1" class="accordion-item-trigger"><h4 class="accordion-heading">Can I migrate my data?</h4><div class="arrow-faq accordion-icon">keyboard_arrow_down</div></div><div class="accordion-item-content"><p class="paragraph-5">Yes. All organizations have access to Funraise&#x27;s data import tool. You&#x27;ll be able to import donors and donations into Funraise.</p></div></div><div class="accordion-item"><div id="q1" class="accordion-item-trigger"><h4 class="accordion-heading">Can I migrate my recurring subscriptions?</h4><div class="arrow-faq accordion-icon">keyboard_arrow_down</div></div><div class="accordion-item-content"><p class="paragraph-5">Yes. In most cases, we can migrate recurring donation subscriptions to Funraise. This is dependent on your current gateway; <a href="#" whenClicked="Intercom(&#x27;show&#x27;);" class="text-link normal">contact us</a> to see if we can migrate your subscriptions.</p></div></div><div class="accordion-item"><div id="q1" class="accordion-item-trigger"><h4 class="accordion-heading">How flexible are these plans?</h4><div class="arrow-faq accordion-icon">keyboard_arrow_down</div></div><div class="accordion-item-content"><p class="paragraph-5">We’re on your side, which means we’re here to help your organization succeed. If a feature you need isn’t included in your ideal plan, let’s talk.<br/>‍<br/>Free plans are standard and cannot be customized.</p></div></div><div class="accordion-item"><div id="q1" class="accordion-item-trigger"><h4 class="accordion-heading">Is Funraise only for nonprofit organizations?</h4><div class="arrow-faq accordion-icon">keyboard_arrow_down</div></div><div class="accordion-item-content"><p class="paragraph-5">Yes. Your organization must be registered as a nonprofit or NGO. Organizations around the globe can use Funraise, but a national organization identification number is required. As with most things in life, there are exceptions; <a href="#" whenClicked="Intercom(&#x27;show&#x27;);" class="text-link normal">contact us</a> with questions.</p></div></div><div class="accordion-item"><div id="q1" class="accordion-item-trigger"><h4 class="accordion-heading">Is Funraise for all nonprofit organizations?</h4><div class="arrow-faq accordion-icon">keyboard_arrow_down</div></div><div class="accordion-item-content"><p class="paragraph-5">Yes; however, Funraise does not work with organizations that promote hate or discrimination of any kind. We use the <a href="https://www.splcenter.org/fighting-hate/extremist-files/groups" target="_blank" class="text-link normal">
2175Southern Poverty Law Center’s extremist groups list</a> as a guide, then as a team, we make our own informed decisions. We have refused service to organizations that are not aligned with a safe, equitable, and free future for all, and we will continue to do so.</p></div></div><div class="accordion-item"><div id="q1" class="accordion-item-trigger"><h4 class="accordion-heading">Are there setup fees?</h4><div class="arrow-faq accordion-icon">keyboard_arrow_down</div></div><div class="accordion-item-content"><p class="paragraph-5">Nope. <a href="/pricing-plans" class="text-link normal">Here&#x27;s our full pricing breakdown.</a></p></div></div></div><div class="div-block-115"><div class="centered"><h4 class="heading-79">Still have questions?<br/></h4><div class="text-block-90">We’re here for you! Click the button to chat with the team.<strong><br/></strong></div><div><a id="intercom-show" whenClicked="Intercom(&#x27;show&#x27;);" href="#" class="button button-large w-button">Chat with Funraise</a></div></div></div></div></section><div class="content-section"><div class="content-container margin-top"><div class="centered-container"><h5 class="gray-label">Trusted by Industry Leaders<br/></h5></div><div class="customer-logo-grid home"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5dd852008263e2619353799e_customer-logo-action-against-hunger.webp" alt="Action Against Hunger Logo" class="customer-logo-grid-logo"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5e6bf404521250d2c5112aaf_logo-usa-basketball.webp" alt="USA Basketball Logo" class="customer-logo-grid-logo"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5e6bf40475d1ae25ea94a1a3_logo-innocence-project.webp" alt="Innocence Project Logo" class="customer-logo-grid-logo"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5db9f2f2eb8c487387298ec4_customer-logo-national-wildlife-federation.webp" alt="National Wildlife Federation Logo" class="customer-logo-grid-logo"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5e6bf40563acc86e2c311faf_logo-invisible-children.webp" alt="Invisible Children Logo" class="customer-logo-grid-logo"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60a2ea43e0c34c322f320d51_food-for-soul-logo.webp" alt="Boys &amp; Girls Club Logo" class="customer-logo-grid-logo"/></div></div></div><div class="content-section left-content-section cta-hero"><div class="content-container left-content-block cta"><div class="content-left-row w-row"><div class="content-left-column cta w-col w-col-4 w-col-stack"><div class="left-content home cta"><h5 class="gray-label">GET STARTED<br/></h5><h2 class="heading-45">Not quite sure what your nonprofit needs?</h2><a href="/contact-sales" class="button button-large cta w-button">Contact Us</a></div></div><div class="image-right-column w-col w-col-8 w-col-stack"></div></div></div><div class="cta-hero-box"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60807cba3c84ea04d6befa82_home-cta-platform.webp" sizes="(max-width: 1620px) 100vw, 1620px" srcset="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60807cba3c84ea04d6befa82_home-cta-platform-p-500.webp 500w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60807cba3c84ea04d6befa82_home-cta-platform-p-800.webp 800w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60807cba3c84ea04d6befa82_home-cta-platform-p-1080.webp 1080w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60807cba3c84ea04d6befa82_home-cta-platform-p-1600.webp 1600w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/60807cba3c84ea04d6befa82_home-cta-platform.webp 1620w" alt="Funraise nonprofit software displays recent transactions and donation amounts." class="cta-hero"/></div></div><div class="content-section footer"><div class="content-container"><div class="border-block-copy"><div><div class="div-block-291"><a href="/" class="footer-logo-copy w-inline-block"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5d6ecfcf7788c43958f8df80_Funraise_Logo_Dark.svg" width="150" height="30" alt="Funraise Logo" class="image-164-copy"/></a><a href="/subscribe" class="button ft w-button">Subscribe for Updates</a></div></div></div><div class="w-layout-grid footer-columns light"><div class="badges"><div class="w-layout-grid small-badge-grid"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99636760dff4dbe33d0a43_G2_MomentumLeader_Fall2026.svg" loading="lazy" alt="G2 Momentum Leader badge, Fall 2026" class="image-108-copy"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99635dc9ea6343f386022b_G2_BestSupport_SmallBusiness_Fall2026.svg" loading="lazy" id="w-node-_1b16efad-378e-8e47-1080-94cb5b7a143c-764e0c20" alt="G2 Best Support Small Business badge, Fall 2026" class="image-108-copy"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99635f5b5bf1cd0c117ae4_G2_EasiestToUse_Fall2026.svg" loading="lazy" id="w-node-_1b16efad-378e-8e47-1080-94cb5b7a143d-764e0c20" alt="G2 Easiest To Use badge, Fall 2026" class="image-108-copy"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99635904bc77028de06d16_G2_HighPerformer_Fall2026.svg" loading="lazy" id="w-node-_1b16efad-378e-8e47-1080-94cb5b7a143e-764e0c20" alt="G2 High Performer badge, Fall 2026" class="image-108-copy"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99636446e443ddec7f4681_G2_EasiestSetup_Fall2026.svg" loading="lazy" alt="G2 Easiest Setup badge, Fall 2026" class="image-108-copy"/><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99668e84056e9ed3a78106_Capterra_Shortlist_2026-tight.png" loading="lazy" id="w-node-_1b16efad-378e-8e47-1080-94cb5b7a1438-764e0c20" sizes="(max-width: 479px) 54vw, (max-width: 991px) 15vw, 16vw" alt="Capterra Shortlist 2026 badge" srcset="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99668e84056e9ed3a78106_Capterra_Shortlist_2026-tight-p-500.png 500w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99668e84056e9ed3a78106_Capterra_Shortlist_2026-tight-p-800.png 800w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99668e84056e9ed3a78106_Capterra_Shortlist_2026-tight-p-1080.png 1080w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6a99668e84056e9ed3a78106_Capterra_Shortlist_2026-tight.png 1450w" class="image-108"/></div></div><div><div class="title-label-bold">Platform</div><ul role="list" class="footer-links"><li class="footer-link pricing-link"><a href="/features" class="link-text footer-link">All Features</a></li><li class="footer-link"><a href="/features/donation-forms" class="link-text footer-link">Donation Forms</a></li><li class="footer-link"><a href="/features/donation-pages" class="link-text footer-link">Donation Pages</a></li><li class="footer-link"><a href="/features/donor-crm" class="link-text footer-link">Donor CRM</a></li><li class="footer-link"><a href="/features/fundraising-websites" class="link-text footer-link">Fundraising Websites</a></li><li class="footer-link"><a href="/features/peer-to-peer-fundraising" class="link-text footer-link">Peer-to-Peer Fundraising</a></li><li class="footer-link"><a href="/features/recurring-giving" class="link-text footer-link">Recurring Giving</a></li><li class="footer-link"><a href="/features/events-and-ticketing" class="link-text footer-link">Events &amp; Ticketing</a></li><li class="footer-link"><a href="/features/fundraising-auctions" class="link-text footer-link">Nonprofit Auctions</a></li><li class="footer-link"><a href="/features/text-engagement" class="link-text footer-link">Text-to-Give</a></li><li class="footer-link"><a href="/features/fundraising-intelligence" class="link-text footer-link">Reports &amp; Dashboards</a></li><li class="footer-link"><a href="/roadmap" target="_blank" class="link-text footer-link">Product Roadmap</a></li></ul></div><div><div class="title-label-bold">Support</div><ul role="list" class="footer-links"><li class="footer-link"></li><li class="footer-link"><a href="/support" class="link-text footer-link">Support</a></li><li class="footer-link"><a href="https://help.funraise.io/" class="link-text footer-link">Knowledge Base</a></li><li class="footer-link"><a href="https://university.funraise.org/" class="link-text footer-link">Funraise University</a></li><li class="footer-link"><a href="https://community.funraise.org/" target="_blank" class="link-text footer-link">Community Forum</a></li><li class="footer-link"><a href="https://funraise.statuspage.io/" target="_blank" class="link-text footer-link">Status</a></li></ul></div><div><div class="title-label-bold">Strategy</div><ul role="list" class="footer-links light"><li class="footer-link"><a href="/category/case-studies" class="link-text footer-link">Case Studies</a></li><li class="footer-link"><a href="/growth-statistics" class="link-text footer-link">Growth Stats</a></li><li class="footer-link"><a href="/causes" class="link-text footer-link">Nonprofit Causes</a></li><li class="footer-link"><a href="/podcast" class="link-text footer-link">Nonprofit Podcast</a></li><li class="footer-link"><a href="/blog" class="link-text footer-link">Nonprofit News</a></li><li class="footer-link"><a href="/downloads" class="link-text footer-link">Downloads &amp; Webinars</a></li><li class="footer-link"><a href="/fundraising-ideas" class="link-text footer-link">Nonprofit Fundraising Ideas</a></li><li class="footer-link"><a href="/giving-tuesday-resources" class="link-text footer-link">Giving Tuesday Resources</a></li><li class="footer-link"><a href="/appealai" class="link-text footer-link">Free Nonprofit AI Tools</a></li></ul></div><div><div class="title-label-bold">Company</div><ul role="list" class="footer-links"><li class="footer-link"></li><li class="footer-link"><a href="/reviews" class="link-text footer-link">Reviews</a></li><li class="footer-link"><a href="/about" class="link-text footer-link">About</a></li><li class="footer-link"><a href="/team" class="link-text footer-link">Team</a></li><li class="footer-link"><a href="/contact" class="link-text footer-link">Contact</a></li><li class="footer-link"><a href="/partners" class="link-text footer-link">Partners</a></li><li class="footer-link"><a href="/refer-a-friend" class="link-text footer-link">Refer a Friend</a></li></ul></div></div><div class="border-block bottom"><div class="columns-13 w-row"><div class="w-col w-col-3"><div class="left-half"><ul role="list" class="social-links dark"><li class="social-link-list dark"><a href="https://www.facebook.com/funraiseplatform" target="_blank" class="social-link dark w-inline-block"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6080786df5ea7f22b5449ffe_facebook_dark.svg" width="24" height="24" alt="Facebook icon"/></a></li><li class="social-link-list dark"><a href="https://x.com/funraise" target="_blank" class="social-link dark w-inline-block"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/65fd3f0c7b9e3fcf29f146fc_icons8-twitterx-60.svg" width="24" height="24" alt="Twitter icon" class="image-167"/></a></li><li class="social-link-list dark"><a href="https://www.linkedin.com/company/funraise" target="_blank" class="social-link dark w-inline-block"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6080786f61ce4072d5d6bdcd_linkedin_dark.svg" width="22" height="22" alt="Linkedin icon"/></a></li><li class="social-link-list dark"><a href="https://www.instagram.com/funraise/" target="_blank" class="social-link dark w-inline-block"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/6080786e3907c7bfa310835d_instagram_dark.svg" width="24" height="24" alt="instagram icon"/></a></li><li class="social-link-list dark"><a href="https://www.youtube.com/channel/UCexHcj-hA3W91OtezjSnnew?sub_confirmation=1" target="_blank" class="social-link dark w-inline-block"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/664c72609abdb2098fdba74c_youtube-svgrepo-com%20(5).svg" width="30" height="30" alt="instagram icon" class="image-175"/></a></li></ul></div></div><div class="footer-column-11 w-col w-col-9"><div class="right-half"><div class="legal-block"><a href="/about/privacy-policy" class="link-text footer-link inline">Privacy Policy</a><div class="link-text footer-link inline divider">|</div><a href="/about/terms-and-conditions" class="link-text footer-link inline">Terms &amp; Conditions</a></div><div class="app-links small"><a href="https://apps.apple.com/us/app/funraise/id1441342210?mt=8" target="_blank" class="card app-store-button small w-inline-block"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5de8386b8b74dc7a90691a1d_app-store-badge-transparent-nomargin.webp" width="250" height="100" loading="lazy" alt="Download at the appstore button" class="app-badge"/></a><a href="https://play.google.com/store/apps/details?id=io.funraise.omni&amp;utm_source=funraise_website&amp;utm_campaign=footer&amp;pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1" target="_blank" class="card app-store-button small last w-inline-block"><img src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5de8387585533806317a279b_en_badge_web_generic-nomargin.webp" width="282" height="100" loading="lazy" alt="Get it on google play button" srcset="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5de8387585533806317a279b_en_badge_web_generic-nomargin-
2175p-500.webp 500w, https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/5de8387585533806317a279b_en_badge_web_generic-nomargin.webp 564w" sizes="(max-width: 479px) 92vw, 282px" class="app-badge"/></a></div></div></div></div></div></div></div></div>
2175<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=5d6eb414117b673d211598f2" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
2175<script src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/js/funraise-dev.schunk.181a2070a530b302.js" type="text/javascript" integrity="sha384-JWdgqTXFub/8eKOkMquT9MN7nnkFfqj2IsxHNIv8W+n3NdpIA3X+EZEx+ykmtOKR" crossorigin="anonymous"></script>
2175<script src="https://cdn.prod.website-files.com/5d6eb414117b673d211598f2/js/funraise-dev.b567cd25.fd06d3ad479a50cc.js" type="text/javascript" integrity="sha384-C5pHvVZe5VEM/LmkpoVVfH6dpYnMtmgDODzg3kaN6GGdiy4gbgp1HWMNiEZJ4NHq" crossorigin="anonymous"></script>
2175<!-- GTM noscript -->
vendor: 71 bytes, lines 2175-2177
2175
2176<noscript>
2177  <iframe src="https://www.googletagmanager.com/ns.html?id=
2177GTM-P7XD5SD
vendor: 96 bytes, lines 2177-2181
2177"
2178          height="0" width="0" style="display:none;visibility:hidden"></iframe>
2179</noscript>
2180
2181
2182<!-- =========================================================
2183     BUTTONS OUTSIDE THE NAV: always nav-btn-default, never nav-free-btn
2184     ========================================================= -->
2185<script defer>
2186  document.addEventListener('DOMContentLoaded', () => {
2187    document.querySelectorAll('.nav-btn-default').forEach(btn => btn.style.display = 'flex');
2188    document.querySelectorAll('.nav-free-btn').forEach(btn => btn.style.display = 'none');
2189  });
2190</script>
2190
2191
2192
2193<!-- NAV BUTTONS (geo): US → Sign up for Free, everyone else → Get a Demo.
2194     Both pairs: desktop (.nav-free-btn-en/.nav-btn-default-nav)
2195     and the mobile bar (.nav-free-btn/.nav-btn-default).
2196     Mida A/B tests still override this via CSS with !important. -->
2197<script defer>
2198  async function isUserFromUS() {
2199    const cached = sessionStorage.getItem('isUSUser');
2200    if (cached !== null) return cached === 'true';
2201    try {
2202      const response = await fetch('https://ipapi.co/json/');
2203      const data = await response.json();
2204      const isUS = data.country_code === 'US';
2205      sessionStorage.setItem('isUSUser', String(isUS));
2206      return isUS;
2207    } catch (e) {
2208      console.error('Geolocation check failed:', e);
2209      return false; // no response = safe default: Get a Demo
2210    }
2211  }
2212
2213  document.addEventListener('DOMContentLoaded', async () => {
2214    const free = document.querySelectorAll('.nav-free-btn-en, .nav-free-btn');
2215    const demo = document.querySelectorAll('.nav-btn-default-nav, .nav-btn-default');
2216    if (!free.length && !demo.length) return;
2217    const isUS = await isUserFromUS();
2218    (isUS ? free : demo).forEach(btn => (btn.style.display = 'flex'));
2219    (isUS ? demo : free).forEach(btn => (btn.style.display = 'none'));
2220  });
2221</script>
2221
2222
2223
2224<!-- NAVBAR + banner margin fix on scroll (throttled via requestAnimationFrame) -->
2225<script defer>
2226  document.addEventListener("DOMContentLoaded", () => {
2227    const bar = document.querySelector(".promo-bar");
2228    const header = document.querySelector(".header-section");
2229    if (!bar || !header) return;
2230
2231    function applyState(atTop) {
2232      if (atTop) {
2233        bar.style.display = "block";
2234        header.style.marginTop = "45px";
2235      } else {
2236        bar.style.display = "none";
2237        header.style.marginTop = "0px";
2238      }
2239    }
2240
2241    let ticking = false;
2242    window.addEventListener("scroll", () => {
2243      if (ticking) return;
2244      ticking = true;
2245      requestAnimationFrame(() => {
2246        applyState(window.pageYOffset === 0);
2247        ticking = false;
2248      });
2249    }, { passive: true });
2250
2251    window.addEventListener("resize", () => applyState(window.pageYOffset === 0));
2252    applyState(true);
2253  });
2254</script>
2254
2255
2256
2257<!-- Webflow: remove hidden conditional elements -->
2258<script defer>
2259  document.addEventListener("DOMContentLoaded", () => {
2260    document.querySelectorAll('.w-condition-invisible').forEach(el => el.remove());
2261  });
2262</script>
2262
2263
2264<!-- ALT fallback: derive alt text from file names for images missing alt -->
2265<script defer>
2266  document.addEventListener("DOMContentLoaded", () => {
2267    document.querySelectorAll("img").forEach(img => {
2268      if (!img.alt) {
2269        const src = img.src;
2270        const fileName = src.substring(src.lastIndexOf("/") + 1, src.lastIndexOf("."));
2271        const underscore = fileName.lastIndexOf("_");
2272        if (underscore !== -1) {
2273          img.alt = fileName.substring(underscore + 1);
2274        }
2275      }
2276    });
2277  });
2278</script>
2278
2279
2280<!-- INTERCOM: open the chat on click -->
2281<script defer>
2282  document.addEventListener("DOMContentLoaded", () => {
2283    document.querySelectorAll("#chat-now-nav").forEach(button => {
2284      button.addEventListener("click", () => {
2285        if (typeof Intercom === "function") {
2286          Intercom("show");
2287        }
2288      });
2289    });
2290  });
2291</script>
2291
2292
2293<!-- HUBSPOT: delayed loader (2026-07-31) — loads on first user interaction
2294     or after 4 s, whichever comes first. Replaces the old direct
2295     hs-script-loader line; visit tracking still fires, just later. -->
2296<script>
2297  (function () {
2298    var loaded = false;
2299    function loadHubSpot() {
2300      if (loaded) return;
2301      loaded = true;
2302      var s = document.createElement('script');
2303      s.id = 'hs-script-loader';
2304      s.async = true;
2305      s.defer = true;
2306      s.src = '//js.hs-scripts.com/6549460.js';
2307      document.body.appendChild(s);
2308      ['pointerdown', 'keydown', 'touchstart', 'scroll'].forEach(function (e) {
2309        window.removeEventListener(e, loadHubSpot, { passive: true });
2310      });
2311    }
2312    ['pointerdown', 'keydown', 'touchstart', 'scroll'].forEach(function (e) {
2313      window.addEventListener(e, loadHubSpot, { passive: true, once: true });
2314    });
2315    setTimeout(loadHubSpot, 4000);
2316  })();
2317</script>
2317
2318
2319<!-- FIRST INTERACTION event (2026-07-31) — GTM Custom Event trigger for
2320     delaying Intercom/Clarity/FB Pixel (see gtm-render-path-spec.md).
2321     Fires on first interaction or after 5 s, whichever comes first. -->
2322<script>
2323  (function () {
2324    var fired = false;
2325    function fire() {
2326      if (fired) return; fired = true;
2327      window.dataLayer = window.dataLayer || [];
2328      window.dataLayer.push({ event: 'first_interaction' });
2329    }
2330    ['pointerdown', 'keydown', 'touchstart', 'scroll'].forEach(function (e) {
2331      window.addEventListener(e, fire, { passive: true, once: true });
2332    });
2333    setTimeout(fire, 5000);
2334  })();
2335</script>
2335
2336
2337<!-- MATERIAL ICONS: replace ligature names (e.g. keyboard_arrow_down) with Unicode codepoints -->
2338<!-- Reason: subsetted fonts have no ligature tables — swapping to codepoints lets glyphs render -->
2339<script>
2340(function() {
2341  'use strict';
2342  // Material Icons codepoints as \u-escapes so they survive copy-paste
2343  // (Private Use Area characters often get lost in clipboards/editors)
2344  var map = {
2345    "keyboard_arrow_down": "\uE313",
2346    "chevron_right":       "\uE5CC",
2347    "check":               "\uE5CA",
2348    "check_circle":        "\uE86C",
2349    "favorite":            "\uE87D",
2350    "lock":                "\uE897",
2351    "code":                "\uE86F",
2352    "payment":             "\uE8A1",
2353    "attach_money":        "\uE227",
2354    "group":               "\uE7EF",
2355    "share":               "\uE80D",
2356    "content_copy":        "\uE14D"
2357  };
2358  // Classes using Materialicons / MATERIAL ICONE in CSS
2359  var sel = '.arrow-faq,.accordion-icon,.icon-10,.text-span-33,.text-span-36,' +
2360            '.link-arrow,.arrow,.icon,.cta-icon,.api-arrow,.pricing-icon,.search-icon,' +
2361            '.material-icon,.search-button,.compare-icon,.icon-compare-page,.service-icon,' +
2362            '.eoy22-google-icon,.payments-tooltip-link,.tooltip-icone-green,' +
2363            '.text-block-18,.text-block-21,.text-block-24,.text-block-26,.text-block-37,' +
2364            '.text-block-40,.text-block-42,.text-block-1318,.text-block-1385,.text-block-1386';
2365  function fix(root) {
2366    (root || document).querySelectorAll(sel).forEach(function(el) {
2367      var t = el.textContent.trim();
2368      if (map[t]) el.textContent = map[t];
2369    });
2370  }
2371  if (document.readyState === 'loading') {
2372    document.addEventListener('DOMContentLoaded', function(){ fix(); });
2373  } else {
2374    fix();
2375  }
2376  // Also after window.load for CMS rich text that loads later
2377  window.addEventListener('load', function(){ fix(); });
2378})();
2379</script>
2379
2380
2381<!-- YEAR REPLACEMENT: {current.year} → current year (one script instead of two, one MutationObserver instead of 13) -->
2382<script>
2383(function() {
2384  'use strict';
2385
2386  const YEAR_PLACEHOLDERS = ['{current.year}', '{current_year}'];
2387  const year = new Date().getFullYear().toString();
2388
2389  function containsPlaceholder(text) {
2390    if (!text) return false;
2391    return YEAR_PLACEHOLDERS.some(p => text.includes(p));
2392  }
2393
2394  function replaceInText(text) {
2395    let r = text;
2396    for (const p of YEAR_PLACEHOLDERS) r = r.split(p).join(year);
2397    return r;
2398  }
2399
2400  function shouldSkipElement(element) {
2401    if (!element) return true;
2402    const tag = element.tagName?.toLowerCase();
2403    if (tag === 'script' || tag === 'style' || tag === 'noscript') return true;
2404    if (element.closest && element.closest('[data-initialized],[data-reactroot]')) return true;
2405    return false;
2406  }
2407
2408  function replaceInSubtree(root) {
2409    if (!root) return;
2410    const walker = document.createTreeWalker(
2411      root,
2412      NodeFilter.SHOW_TEXT,
2413      {
2414        acceptNode(node) {
2415          if (shouldSkipElement(node.parentElement)) return NodeFilter.FILTER_REJECT;
2416          return containsPlaceholder(node.textContent)
2417            ? NodeFilter.FILTER_ACCEPT
2418            : NodeFilter.FILTER_REJECT;
2419        }
2420      }
2421    );
2422    const nodes = [];
2423    let n;
2424    while ((n = walker.nextNode())) nodes.push(n);
2425    nodes.forEach(node => { node.textContent = replaceInText(node.textContent); });
2426  }
2427
2428  function debounce(fn, wait) {
2429    let t;
2430    return (...args) => {
2431      clearTimeout(t);
2432      t = setTimeout(() => fn(...args), wait);
2433    };
2434  }
2435
2436  let observerStarted = false;
2437  function start() {
2438    replaceInSubtree(document.body);
2439    if (observerStarted) return;
2440    observerStarted = true;
2441
2442    const observer = new MutationObserver(debounce((mutations) => {
2443      for (const m of mutations) {
2444        if (m.type === 'childList') {
2445          m.addedNodes.forEach(node => {
2446            if (node.nodeType === Node.ELEMENT_NODE && !shouldSkipElement(node)) {
2447              replaceInSubtree(node);
2448            } else if (node.nodeType === Node.TEXT_NODE && !shouldSkipElement(node.parentElement)) {
2449              if (containsPlaceholder(node.textContent)) {
2450                node.textContent = replaceInText(node.textContent);
2451              }
2452            }
2453          });
2454        } else if (m.type === 'characterData') {
2455          if (m.target.nodeType === Node.TEXT_NODE && !shouldSkipElement(m.target.parentElement)) {
2456            if (containsPlaceholder(m.target.textContent)) {
2457              m.target.textContent = replaceInText(m.target.textContent);
2458            }
2459          }
2460        }
2461      }
2462    }, 100));
2463
2464    observer.observe(document.body, {
2465      childList: true,
2466      subtree: true,
2467      characterData: true
2468    });
2469  }
2470
2471  if (document.readyState === 'loading') {
2472    document.addEventListener('DOMContentLoaded', start);
2473  } else {
2474    start();
2475  }
2476  // Single late retry for CMS Rich Text on blog posts that load via window.load
2477  window.addEventListener('load', () => replaceInSubtree(document.body));
2478})();
2479</script>
2479
2480</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.