patx/rcraft_const

const siteNav = document.querySelector('.site-nav');
const toggle = siteNav.querySelector('.nav-toggle');
const cta = document.querySelector('.mobile-cta');
const hero = document.getElementById('hero');
const mobile = window.matchMedia('(max-width: 600px)');
function setMenu(open) {
  siteNav.classList.toggle('is-open', open);
  toggle.setAttribute('aria-expanded', String(open));
  toggle.setAttribute('aria-label', open ? 'Close navigation' : 'Open navigation');
}
toggle.addEventListener('click', () => setMenu(toggle.getAttribute('aria-expanded') !== 'true'));
siteNav.querySelectorAll('a').forEach(link => link.addEventListener('click', () => setMenu(false)));
document.addEventListener('keydown', event => {
  if (event.key === 'Escape' && siteNav.classList.contains('is-open')) {
    setMenu(false);
    toggle.focus();
  }
});
function updateCta() {
  const visible = mobile.matches && hero.getBoundingClientRect().bottom <= 0;
  cta.classList.toggle('is-visible', visible);
  cta.inert = !visible;
  cta.setAttribute('aria-hidden', String(!visible));
}
window.addEventListener('scroll', updateCta, { passive: true });
window.addEventListener('resize', updateCta);
window.addEventListener('load', updateCta);
updateCta();