{"id":18,"date":"2026-05-01T20:28:32","date_gmt":"2026-05-01T20:28:32","guid":{"rendered":"https:\/\/websitesmockup.com\/projectsafeplay\/?page_id=18"},"modified":"2026-05-21T17:56:00","modified_gmt":"2026-05-21T17:56:00","slug":"donations","status":"publish","type":"page","link":"https:\/\/websitesmockup.com\/projectsafeplay\/donations\/","title":{"rendered":"Donations"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"18\" class=\"elementor elementor-18\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ace15fc e-con-full e-flex e-con e-parent\" data-id=\"ace15fc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e817554 elementor-widget elementor-widget-html\" data-id=\"e817554\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- HERO -->\r\n<div class=\"donate-hero\" id=\"donate\">\r\n  <div class=\"hero-grid-lines\"><\/div>\r\n  <div class=\"donate-hero-inner\">\r\n    <div>\r\n      <div class=\"hero-eyebrow\">Make An Impact<\/div>\r\n      <h1>Fund a<em>Q-Collar.<\/em><\/h1>\r\n      <div class=\"hero-impact-pill\">\r\n        <span class=\"dot\"><\/span>\r\n        $199 = One Player. One Season. Full Protection.\r\n      <\/div>\r\n    <\/div>\r\n    <p class=\"donate-hero-desc\">Every dollar goes directly to providing Q-Collars to youth athletes from families who can't afford the $199 retail price. Zero overhead. 100% to players.<\/p>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- MAIN DONATE AREA -->\r\n<div class=\"donate-main\">\r\n\r\n  <!-- FORM COLUMN -->\r\n  <div class=\"donate-form-col\">\r\n    <h2 class=\"form-section-title\">Choose Your <em>Impact<\/em><\/h2>\r\n    <p class=\"form-section-sub\">Select an amount below \u2014 or enter your own. Every dollar goes directly toward putting Q-Collars on athletes who need them. Project Safe Play Inc. is a 501(c)<span style=\"margin-left: 6px;\">(3)<\/span> tax exempt organization and your donation is tax deductible within the guidelines of U.S. law.  We will email your receipt upon successful completion of your donation. Please keep your receipt as your official record of your donation. Thank you!<\/p>\r\n    <!-- ONE-TIME \/ MONTHLY -->\r\n    <div class=\"donation-type\">\r\n      <button class=\"type-btn active\" onclick=\"setType(this, 'one-time')\">One-Time<\/button>\r\n      <button class=\"type-btn\" onclick=\"setType(this, 'monthly')\">Monthly<\/button>\r\n    <\/div>\r\n\r\n    <!-- AMOUNT GRID -->\r\n    <div class=\"amount-label\">Select Amount<\/div>\r\n    <div class=\"amount-grid\" id=\"amountGrid\">\r\n      <button class=\"amount-btn\" onclick=\"selectAmount(this, 25)\">$25<span class=\"collar-count\">Partial collar<\/span><\/button>\r\n      <button class=\"amount-btn\" onclick=\"selectAmount(this, 50)\">$50<span class=\"collar-count\">\u00bc collar<\/span><\/button>\r\n      <button class=\"amount-btn active\" onclick=\"selectAmount(this, 100)\">$100<span class=\"collar-count\">\u00bd collar<\/span><\/button>\r\n      <button class=\"amount-btn\" onclick=\"selectAmount(this, 199)\">$199<span class=\"collar-count\">1 full collar<\/span><\/button>\r\n      <button class=\"amount-btn\" onclick=\"selectAmount(this, 500)\">$500<span class=\"collar-count\">2.5 collars<\/span><\/button>\r\n      <button class=\"amount-btn\" onclick=\"selectAmount(this, 1000)\">$1,000<span class=\"collar-count\">5 collars<\/span><\/button>\r\n    <\/div>\r\n\r\n    <!-- CUSTOM AMOUNT -->\r\n    <div class=\"custom-amount-wrap\" style=\"position: relative; display: flex; align-items: center;\">\r\n      <span class=\"currency-sign\" style=\"position: absolute; left: 12px; pointer-events: none;\">$<\/span>\r\n      <input type=\"number\" class=\"custom-amount-input\" id=\"customAmount\" placeholder=\"Enter custom amount\" min=\"1\" oninput=\"onCustomAmount(this)\" style=\"padding-left: 28px; width: 100%;\">\r\n    <\/div>\r\n\r\n    <div class=\"form-divider\"><span>Your Information<\/span><\/div>\r\n\r\n    <div class=\"form-row\">\r\n      <div class=\"form-group\">\r\n        <label>First Name<\/label>\r\n        <input type=\"text\" placeholder=\"Gabe\" id=\"firstName\">\r\n      <\/div>\r\n      <div class=\"form-group\">\r\n        <label>Last Name<\/label>\r\n        <input type=\"text\" placeholder=\"Ornstein\" id=\"lastName\">\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"form-group\">\r\n      <label>Email Address<\/label>\r\n      <input type=\"email\" placeholder=\"you@example.com\" id=\"email\">\r\n    <\/div>\r\n    <div class=\"form-group\">\r\n      <label>I Am A...<\/label>\r\n      <select id=\"role\">\r\n        <option value=\"\">Select your role<\/option>\r\n        <option>Parent \/ Guardian<\/option>\r\n        <option>Team Coach \/ Manager<\/option>\r\n        <option>League Administrator<\/option>\r\n        <option>Corporate Sponsor<\/option>\r\n        <option>NFL \/ Q-Collar Representative<\/option>\r\n        <option>Community Member<\/option>\r\n        <option>Other<\/option>\r\n      <\/select>\r\n    <\/div>\r\n\r\n    <div class=\"form-divider\"><span>Payment Details<\/span><\/div>\r\n\r\n    <div class=\"payment-methods\">\r\n      <button class=\"pay-method-btn active\" onclick=\"setPayMethod(this, 'card')\"><span class=\"method-icon\">\ud83d\udcb3<\/span> Card<\/button>\r\n      <button class=\"pay-method-btn\" onclick=\"setPayMethod(this, 'paypal')\"><span class=\"method-icon\">\ud83c\udd7f<\/span> PayPal<\/button>\r\n      <button class=\"pay-method-btn\" onclick=\"setPayMethod(this, 'apple')\"><span class=\"method-icon\">\ud83c\udf4e<\/span> Apple Pay<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"card-fields\" id=\"cardFields\">\r\n      <div class=\"form-group\">\r\n        <label>Card Number<\/label>\r\n        <div class=\"card-number-wrap\">\r\n          <input type=\"text\" placeholder=\"1234 5678 9012 3456\" maxlength=\"19\" id=\"cardNum\" oninput=\"formatCard(this)\">\r\n          <div class=\"card-icons\">\r\n            <span class=\"card-icon-badge\">VISA<\/span>\r\n            <span class=\"card-icon-badge\">MC<\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"form-row\">\r\n        <div class=\"form-group\">\r\n          <label>Expiry<\/label>\r\n          <input type=\"text\" placeholder=\"MM \/ YY\" maxlength=\"7\" id=\"expiry\" oninput=\"formatExpiry(this)\">\r\n        <\/div>\r\n        <div class=\"form-group\">\r\n          <label>CVC<\/label>\r\n          <input type=\"text\" placeholder=\"123\" maxlength=\"4\">\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"form-group\">\r\n        <label>Name on Card<\/label>\r\n        <input type=\"text\" placeholder=\"Gabe Ornstein\">\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"form-divider\"><span>Optional<\/span><\/div>\r\n\r\n    <!-- DEDICATE -->\r\n    <div class=\"dedicate-toggle\" id=\"dedicateToggle\" onclick=\"toggleDedicate()\">\r\n      <div class=\"toggle-switch\"><\/div>\r\n      <span class=\"dedicate-label\">Dedicate this donation in someone's honor<\/span>\r\n    <\/div>\r\n    <div class=\"dedicate-fields\" id=\"dedicateFields\">\r\n      <div class=\"form-group\" style=\"margin-bottom:0\">\r\n        <label>Honoree Name<\/label>\r\n        <input type=\"text\" placeholder=\"In memory or honor of...\">\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <button class=\"donate-submit\" onclick=\"submitDonation()\">\r\n      \ud83d\udee1\ufe0f &nbsp;Donate Now \u2014 Protect a Player\r\n    <\/button>\r\n    <div class=\"secure-note\"><span class=\"lock\">\ud83d\udd12<\/span> Encrypted & Secure \u00b7 100% Goes to Players<\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- QUOTE STRIP -->\r\n<div class=\"donate-quote\">\r\n  <blockquote>\"A player's family income should never determine whether their brain gets protected on the field.\"<\/blockquote>\r\n  <div class=\"donate-quote-attr\">\u2014 Gabe Ornstein, Founder of Project SafePlay<\/div>\r\n<\/div>\r\n\r\n<!-- OTHER WAYS -->\r\n<section class=\"other-ways\">\r\n  <div class=\"other-ways-inner\">\r\n    <div class=\"section-eyebrow\">More Ways To Help<\/div>\r\n    <h2 class=\"section-title\">Beyond The <em>Donation<\/em><\/h2>\r\n    <div class=\"ways-grid\">\r\n      <div class=\"way-card reveal\">\r\n        <div class=\"way-card-icon\">\ud83c\udfc6<\/div>\r\n        <h3>Start a Fundraiser<\/h3>\r\n        <p>Create your own team fundraising page and turn competitive spirit into collective impact. Challenge your league, your school, your community.<\/p>\r\n        <a href=\"#contact\" class=\"way-card-link\">Get Started \u2192<\/a>\r\n      <\/div>\r\n      <div class=\"way-card reveal\">\r\n        <div class=\"way-card-icon\">\ud83d\udce3<\/div>\r\n        <h3>Spread the Word<\/h3>\r\n        <p>Share Project SafePlay with coaches, parents, and leagues in your network. Awareness is the first step to closing the safety gap.<\/p>\r\n        <a href=\"#contact\" class=\"way-card-link\">Share Now \u2192<\/a>\r\n      <\/div>\r\n      <div class=\"way-card reveal\">\r\n        <div class=\"way-card-icon\">\ud83e\udd1d<\/div>\r\n        <h3>Corporate Sponsorship<\/h3>\r\n        <p>Align your brand with youth safety. Corporate sponsorships fuel large-scale collar distributions and generate powerful media coverage.<\/p>\r\n        <a href=\"#contact\" class=\"way-card-link\">Learn More \u2192<\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n  \/\/ \u2500\u2500 SCROLL REVEAL \u2500\u2500\r\n  const reveals = document.querySelectorAll('.reveal');\r\n  const observer = new IntersectionObserver((entries) => {\r\n    entries.forEach((entry, i) => {\r\n      if (entry.isIntersecting) {\r\n        setTimeout(() => entry.target.classList.add('visible'), i * 100);\r\n      }\r\n    });\r\n  }, { threshold: 0.1 });\r\n  reveals.forEach(el => observer.observe(el));\r\n\r\n  \/\/ \u2500\u2500 PROGRESS BAR \u2500\u2500\r\n  setTimeout(() => {\r\n    const progressFill = document.getElementById('progressFill');\r\n    if (progressFill) progressFill.style.width = '28%';\r\n  }, 600);\r\n\r\n  \/\/ \u2500\u2500 COUNTERS \u2500\u2500\r\n  function animateCounter(el, target, prefix = '', suffix = '', duration = 1800) {\r\n    if (!el) return;\r\n    let start = 0;\r\n    const step = target \/ (duration \/ 16);\r\n    const timer = setInterval(() => {\r\n      start += step;\r\n      if (start >= target) { start = target; clearInterval(timer); }\r\n      const val = prefix + Math.floor(start).toLocaleString() + suffix;\r\n      el.textContent = val;\r\n    }, 16);\r\n  }\r\n  setTimeout(() => {\r\n    animateCounter(document.getElementById('counterCollars'), 47, '', '');\r\n    animateCounter(document.getElementById('counterDonors'), 72, '', '');\r\n    animateCounter(document.getElementById('counterRaised'), 14380, '$', '');\r\n  }, 400);\r\n\r\n  \/\/ \u2500\u2500 DONATION TYPE \u2500\u2500\r\n  function setType(btn, type) {\r\n    document.querySelectorAll('.type-btn').forEach(b => b.classList.remove('active'));\r\n    btn.classList.add('active');\r\n  }\r\n\r\n  \/\/ \u2500\u2500 AMOUNT SELECTION \u2500\u2500\r\n  let selectedAmount = 100;\r\n  function selectAmount(btn, amount) {\r\n    document.querySelectorAll('.amount-btn').forEach(b => b.classList.remove('active'));\r\n    btn.classList.add('active');\r\n    selectedAmount = amount;\r\n    \r\n    \/\/ FETCH AMOUNT INTO CUSTOM AMOUNT FIELD\r\n    document.getElementById('customAmount').value = amount;\r\n    \r\n    \/\/ Sync slider\r\n    const calcSlider = document.getElementById('calcSlider');\r\n    if (calcSlider) {\r\n      calcSlider.value = Math.min(amount, 2000);\r\n      updateCalc(Math.min(amount, 2000));\r\n    }\r\n  }\r\n  \r\n  function onCustomAmount(input) {\r\n    document.querySelectorAll('.amount-btn').forEach(b => b.classList.remove('active'));\r\n    selectedAmount = parseFloat(input.value) || 0;\r\n    \r\n    const calcSlider = document.getElementById('calcSlider');\r\n    if (calcSlider) {\r\n      calcSlider.value = Math.min(selectedAmount, 2000);\r\n      updateCalc(Math.min(selectedAmount, 2000));\r\n    }\r\n  }\r\n\r\n  \/\/ \u2500\u2500 IMPACT CALC \u2500\u2500\r\n  function updateCalc(val) {\r\n    val = parseFloat(val);\r\n    const calcDisplay = document.getElementById('calcDisplay');\r\n    const calcCollars = document.getElementById('calcCollars');\r\n    const calcDesc = document.getElementById('calcDesc');\r\n\r\n    if (calcDisplay) calcDisplay.textContent = '$' + val.toLocaleString();\r\n    if (calcCollars) calcCollars.textContent = (val \/ 199).toFixed(1);\r\n    \r\n    if (calcDesc) {\r\n      let desc = '';\r\n      if (val < 50) desc = 'A meaningful contribution to a player\\'s protection.';\r\n      else if (val < 199) desc = 'You\\'re well on your way to funding a full collar for a season.';\r\n      else if (val < 400) desc = `That's ${Math.floor(val \/ 199)} full collar${Math.floor(val\/199)>1?'s':''} \u2014 one or more players fully protected.`;\r\n      else desc = `Incredible \u2014 that's ${Math.floor(val \/ 199)} players protected for a full season.`;\r\n      calcDesc.textContent = desc;\r\n    }\r\n    \r\n    selectedAmount = val;\r\n  }\r\n\r\n  \/\/ \u2500\u2500 PAYMENT METHOD \u2500\u2500\r\n  function setPayMethod(btn, method) {\r\n    document.querySelectorAll('.pay-method-btn').forEach(b => b.classList.remove('active'));\r\n    btn.classList.add('active');\r\n    document.getElementById('cardFields').style.display = method === 'card' ? 'flex' : 'none';\r\n  }\r\n\r\n  \/\/ \u2500\u2500 DEDICATE \u2500\u2500\r\n  function toggleDedicate() {\r\n    const toggle = document.getElementById('dedicateToggle');\r\n    const fields = document.getElementById('dedicateFields');\r\n    toggle.classList.toggle('on');\r\n    fields.classList.toggle('visible');\r\n  }\r\n\r\n  \/\/ \u2500\u2500 CARD FORMAT \u2500\u2500\r\n  function formatCard(input) {\r\n    let v = input.value.replace(\/\\D\/g, '').substring(0, 16);\r\n    input.value = v.replace(\/(.{4})\/g, '$1 ').trim();\r\n  }\r\n  function formatExpiry(input) {\r\n    let v = input.value.replace(\/\\D\/g, '').substring(0, 4);\r\n    if (v.length >= 2) v = v.substring(0,2) + ' \/ ' + v.substring(2);\r\n    input.value = v;\r\n  }\r\n\r\n  \/\/ \u2500\u2500 SUBMIT \u2500\u2500\r\n  function submitDonation() {\r\n    const firstName = document.getElementById('firstName').value.trim();\r\n    const email = document.getElementById('email').value.trim();\r\n    if (!firstName || !email) {\r\n      alert('Please fill in your name and email to continue.');\r\n      return;\r\n    }\r\n    const successOverlay = document.getElementById('successOverlay');\r\n    if (successOverlay) successOverlay.classList.add('show');\r\n  }\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Make An Impact Fund aQ-Collar. $199 = One Player. One Season. Full Protection. Every dollar goes directly to providing Q-Collars to youth athletes from families who can&#8217;t afford the $199 retail price. Zero overhead. 100% to players. Choose Your Impact Select an amount below \u2014 or enter your own. Every dollar goes directly toward putting [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-18","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/websitesmockup.com\/projectsafeplay\/wp-json\/wp\/v2\/pages\/18","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/websitesmockup.com\/projectsafeplay\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/websitesmockup.com\/projectsafeplay\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/websitesmockup.com\/projectsafeplay\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/websitesmockup.com\/projectsafeplay\/wp-json\/wp\/v2\/comments?post=18"}],"version-history":[{"count":55,"href":"https:\/\/websitesmockup.com\/projectsafeplay\/wp-json\/wp\/v2\/pages\/18\/revisions"}],"predecessor-version":[{"id":631,"href":"https:\/\/websitesmockup.com\/projectsafeplay\/wp-json\/wp\/v2\/pages\/18\/revisions\/631"}],"wp:attachment":[{"href":"https:\/\/websitesmockup.com\/projectsafeplay\/wp-json\/wp\/v2\/media?parent=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}