/* ==========================================================
STABILIZED MEGA-MENU INITIALIZER
Waits for Squarespace header to exist before enabling
========================================================== */
(function(){
function bindMegaMenu(){
const navReady = document.querySelectorAll('a[href^="mm-link-"]').length > 0;
if (!navReady) return false;
// Re-bind hover/tap behavior safely
document.querySelectorAll('a[href^="mm-link-"]').forEach(link=>{
const folder = link.closest('.header-menu-nav-item--folder, .header-nav-item--folder');
if (!folder) return;
// Prevent duplicate listeners
folder.replaceWith(folder.cloneNode(true));
});
document.querySelectorAll('a[href^="mm-link-"]').forEach(link=>{
const folder = link.closest('.header-menu-nav-item--folder, .header-nav-item--folder');
if (!folder) return;
folder.addEventListener('mouseenter', ()=> link.click(), {passive:true});
folder.addEventListener('click', e=>{
if(!folder.classList.contains('mm-open')){
e.preventDefault();
link.click();
}
});
});
return true;
}
// Try until nav exists, then stop
const check = setInterval(()=>{
if(bindMegaMenu()) clearInterval(check);
}, 500);
// Re-bind on scroll or resize (Squarespace often re-renders header)
window.addEventListener('resize', bindMegaMenu);
window.addEventListener('scroll', bindMegaMenu);
})();