⚙️ For the site owner: The “Pay by Card” button is wired to a PayFast hosted checkout via a Cloudflare Function (functions/api/pay.js) — couples pay on PayFast's own secure page and card details never touch this site. To go live, add your PAYFAST_MERCHANT_ID, PAYFAST_MERCHANT_KEY and PAYFAST_PASSPHRASE as environment variables (test in the PayFast sandbox first). Until then, the button shows a demo message. Full steps in README.md.