burgerexpandmenu

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
(function($) {
  $(document).ready(function() {
    var $originalNav = $('nav.header-menu-nav-list');
    if (!$originalNav.length) return;
    var megaMenuHTML = '<section class="mega-menu"><div class="mega-menu__inner">';
    megaMenuHTML += '<div class="mega-menu__row mega-menu__row--home"></div>';
    megaMenuHTML += '<div class="mega-menu__row mega-menu__row--columns">';
    megaMenuHTML += '<div class="mega-menu__col mega-menu__col--1"></div>';
    megaMenuHTML += '<div class="mega-menu__col mega-menu__col--2"></div>';
    megaMenuHTML += '</div></div></section>';
    var $megaMenu = $(megaMenuHTML);
    var $homeRow = $megaMenu.find('.mega-menu__row--home');
    var $col1 = $megaMenu.find('.mega-menu__col--1');
    var $col2 = $megaMenu.find('.mega-menu__col--2');
    var menuItems = [];
    $originalNav.find('[data-folder="root"] > .header-menu-nav-folder-content > .header-menu-nav-wrapper > .header-menu-nav-item').each(function() {
      var $item = $(this);
      var $link = $item.find('> a');
      var href = $link.attr('href');
      var folderId = $link.attr('data-folder-id');
      var isActive = $item.hasClass('header-menu-nav-item--active');
      var $content = $link.find('.header-menu-nav-item-content').clone();
      $content.find('.header-dropdown-icon, .visually-hidden').remove();
      var text = $content.text().trim();
      var $folderTitle = $link.find('.header-nav-folder-title-text');
      if ($folderTitle.length) {
        text = $folderTitle.text().trim();
      }
      
      var menuItem = {
        level: 1,
        text: text,
        href: href,
        isActive: isActive,
        children: []
      };
      if (folderId) {
        $originalNav.find('[data-folder="' + folderId + '"] .header-menu-nav-item').not('.header-menu-controls').each(function() {
          var $subItem = $(this);
          var $subLink = $subItem.find('> a');
          var subHref = $subLink.attr('href');
          var subText = $subLink.find('.header-menu-nav-item-content').text().trim();
          
          menuItem.children.push({
            level: 2,
            text: subText,
            href: subHref,
            isActive: false
          });
        });
      }
      
      menuItems.push(menuItem);
    });
    
    // Create menu item helper
    function createMenuItem(item) {
      var activeClass = item.isActive ? ' header-menu-nav-item--active' : '';
      var ariaCurrent = item.isActive ? ' aria-current="page"' : '';
      return '<div class="container header-menu-nav-item level-' + item.level + activeClass + '">' +
             '<a href="' + item.href + '"' + ariaCurrent + '>' +
             '<div class="header-menu-nav-item-content">' + item.text + '</div>' +
             '</a></div>';
    }
    
    // Add items
    // Index 0: Home 
    // Column 1: About Us (+ children), Program (+ children), Contact Us
    // Column 2: Application (+ children), Get Involved (+ children)
    menuItems.forEach(function(item, index) {
      var itemHTML = createMenuItem(item);
      
      if (index === 0) {
        // Home
        $homeRow.append(itemHTML);
      } else if (index === 1 || index === 2 || index === 5) {
        // Column 1: About Us, Program, Contact Us
        $col1.append(itemHTML);
        item.children.forEach(function(child) {
          $col1.append(createMenuItem(child));
        });
      } else {
        // Column 2: Application, Get Involved
        $col2.append(itemHTML);
        item.children.forEach(function(child) {
          $col2.append(createMenuItem(child));
        });
      }
    });
    $originalNav.replaceWith($megaMenu);
    
  });
})(jQuery);
</script>
<style>
:root {
  /* Layout */
  --mega-menu-max-width: 1200px;
  --mega-menu-responsive-width: 92vw;
  --mega-menu-col-gap: 80px;
  --mega-menu-col-gap-tablet: 80px;
  --mega-menu-row-gap-home: 28px;
  --mega-menu-row-gap-columns-tablet: 18px;
  --mega-menu-row-gap-columns-mobile: 48px;
  --mega-menu-item-gap: 28px;
  --mega-menu-item-gap-tablet: 5px;
  
  /* Typography */
  --mega-menu-font-size-l1: 40px;
  --mega-menu-font-size-l1-tablet: 36px;
  --mega-menu-font-size-l2: 32px;
  --mega-menu-font-size-l2-tablet: 28px;
  --mega-menu-font-size-mobile: 14px;
  --mega-menu-line-height: 1.15;
  
  /* Spacing */
  --mega-menu-indent-l2: 64px;
  --mega-menu-indent-l2-tablet: 40px;
  --mega-menu-padding-l2: 20px;
  
  /* Colors */
  --mega-menu-color: #000;
}

.mega-menu {
  color: var(--mega-menu-color);
}

.mega-menu a {
  color: inherit;
  text-decoration: none;
  margin: 0 !important;
}

.mega-menu__inner {
  max-width: min(var(--mega-menu-max-width), var(--mega-menu-responsive-width));
  margin: 0 auto;
}

.mega-menu__row--home {
  margin-bottom: var(--mega-menu-row-gap-home);
}

.mega-menu__row--columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: var(--mega-menu-col-gap);
  row-gap: 0;
}

.mega-menu__col {
  display: flex;
  flex-direction: column;
  gap: var(--mega-menu-item-gap);
}

.header-menu-nav-item {
  padding: 0 !important;
}

.header-menu-nav-item-content {
  line-height: var(--mega-menu-line-height);
}

.header-menu-nav-item.level-1 .header-menu-nav-item-content {
  font-size: var(--mega-menu-font-size-l1);
}

.header-menu-nav-item.level-2 {
  padding-left: var(--mega-menu-indent-l2);
}

.header-menu-nav-item.level-2 .header-menu-nav-item-content {
  font-size: var(--mega-menu-font-size-l2);
  padding-left: var(--mega-menu-padding-l2) !important;
}

.header-menu-nav-item a:focus-visible .header-menu-nav-item-content,
.header-menu-nav-item a:hover .header-menu-nav-item-content {
  text-decoration: underline;
}

/* Tablet & Mobile */
@media screen and (max-width: 991px) {
  .mega-menu__row--columns {
    grid-template-columns: 1fr 1fr !important;
    row-gap: var(--mega-menu-row-gap-columns-tablet);
  }
  
  .mega-menu__col {
    gap: var(--mega-menu-item-gap-tablet);
  }
}

@media screen and (max-width: 900px) {
  .mega-menu__row--columns {
    grid-template-columns: 1fr;
    row-gap: var(--mega-menu-row-gap-columns-mobile);
  }
  
  .header-menu-nav-item.level-1 .header-menu-nav-item-content {
    font-size: var(--mega-menu-font-size-l1-tablet);
  }
  
  .header-menu-nav-item.level-2 {
    padding-left: var(--mega-menu-indent-l2-tablet);
  }
  
  .header-menu-nav-item.level-2 .header-menu-nav-item-content {
    font-size: var(--mega-menu-font-size-l2-tablet);
  }
}

/* Mobile */
@media screen and (max-width: 767px) {
  .header-menu-nav-item-content {
    font-size: var(--mega-menu-font-size-mobile) !important;
  }
}
</style>

 

Buy me a coffee