(function() {
const toggle = document.querySelector('.mobile-menu-toggle');
const menu = document.querySelector('.mobile-menu');
const overlay = document.querySelector('.mobile-menu-overlay');
if (!toggle || !menu || !overlay) return;
function openMenu() {
toggle.setAttribute('aria-expanded', 'true');
toggle.setAttribute('aria-label', 'Close menu');
menu.classList.add('active');
menu.setAttribute('aria-hidden', 'false');
overlay.classList.add('active');
overlay.setAttribute('aria-hidden', 'false');
document.body.classList.add('mobile-menu-open');
var firstLink = menu.querySelector('a');
if (firstLink) firstLink.focus();
}
function closeMenu() {
toggle.setAttribute('aria-expanded', 'false');
toggle.setAttribute('aria-label', 'Open menu');
menu.classList.remove('active');
menu.setAttribute('aria-hidden', 'true');
overlay.classList.remove('active');
overlay.setAttribute('aria-hidden', 'true');
document.body.classList.remove('mobile-menu-open');
}
function toggleMenu() {
var isOpen = toggle.getAttribute('aria-expanded') === 'true';
if (isOpen) {
closeMenu();
} else {
openMenu();
}
}
toggle.addEventListener('click', toggleMenu);
overlay.addEventListener('click', closeMenu);
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape' && toggle.getAttribute('aria-expanded') === 'true') {
closeMenu();
toggle.focus();
}
});
menu.addEventListener('click', function(e) {
if (e.target.tagName === 'A') {
closeMenu();
}
});
var resizeTimer;
window.addEventListener('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function() {
if (window.innerWidth > 768 && toggle.getAttribute('aria-expanded') === 'true') {
closeMenu();
}
}, 100);
});
})();