// Open Zendesk widget on click of elements with class 'zendesk-open'
    // or a CTA link using href="#zendesk" or data-zendesk="open"
    $(document).on('click', '.zendesk-open, a[href="#zendesk"], [data-zendesk="open"]', function (e) {
        e.preventDefault();
        console.log('[Zendesk] trigger clicked', this);

        function openZendesk() {
            if (typeof zE === 'function') {
                console.log('[Zendesk] zE available, opening widget');
                zE('webWidget', 'open');
            }
        }

        if (typeof zE === 'function') {
            openZendesk();
        } else {
            console.log('[Zendesk] zE not yet available; polling...');
            var tries = 0;
            var iv = setInterval(function () {
                tries++;
                if (typeof zE === 'function') {
                    clearInterval(iv);
                    console.log('[Zendesk] zE ready after', tries, 'tries; opening');
                    openZendesk();
                }
                if (tries > 20) {
                    clearInterval(iv);
                    console.warn('[Zendesk] zE not available after timeout');
                }
            }, 250);
        }
    });

    console.log('[Zendesk] handler attached');