(function () { var modal = document.getElementById('bb-donate-modal'); if (!modal) return; var lastFocus = null; function openModal(e) { if (e) e.preventDefault(); lastFocus = document.activeElement; modal.setAttribute('aria-hidden', 'false'); document.body.classList.add('bb-modal-open'); var c = modal.querySelector('[data-bb-close]'); if (c) c.focus(); } function closeModal() { modal.setAttribute('aria-hidden', 'true'); document.body.classList.remove('bb-modal-open'); if (lastFocus) lastFocus.focus(); } document.addEventListener('click', function (e) { if (!e.target || !e.target.closest) return; if (e.target.closest('.js-donate, a[href*="host.nxt.blackbaud.com"]')) { openModal(e); return; } if (e.target.closest('[data-bb-close]') || e.target === modal) closeModal(); }); document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && modal.getAttribute('aria-hidden') === 'false') closeModal(); }); })();