:root {
    --menu-transition: 350ms cubic-bezier(0.8, 0.5, 0.2, 1.4);
}

.hamburger {
    position: relative;
    width: 2.4rem;
    height: 2.4rem;
}

.hamburger span {
    position: absolute;
    width: 100%;
    height: 0.3rem;
    background: var(--bs-dark);
    border-radius: 10px;
    transition: var(--menu-transition);
}

.hamburger span:nth-child(1) {
    top: 15%;
    left: 0;
}

.hamburger span:nth-child(2) {
    top: 50%;
    left: 0;
}

.hamburger span:nth-child(3) {
    top: 85%;
    left: 0;
}

.hamburger.active span:nth-child(1) {
    transform: rotate(45deg);
    top: 50%;
    left: 0;
}

.hamburger.active span:nth-child(2) {
    top: 50%;
    left: 0;
    opacity: 0;
}

.hamburger.active span:nth-child(3) {
    transform: rotate(-45deg);
    top: 50%;
    left: 0;
}

.mega-menu {
    position: fixed;
    overflow: hidden;
    width: 100vw;
    height: 100vh;
    max-height: 0;
    transition: var(--menu-transition);
    clip-path: inset(0 0 0 0);
    z-index: 100;
}

.mega-menu .mega-menu-menu {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    visibility: hidden;
}

.mega-menu .mega-menu-menu li {
    opacity: 0;
    transform: translateX(-4rem);
    transition: 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transition-delay: var(--delay);
}

.mega-menu .mega-menu-menu li a {
    pointer-events: none;
}

.mega-menu.expand {
    max-height: 100vh;
}

.mega-menu.expand .mega-menu-menu {
    visibility: visible;
}

.mega-menu.expand .mega-menu-menu li {
    opacity: 1;
    transform: translateX(0);
}

.mega-menu.expand .mega-menu-menu li a {
    pointer-events: auto;
}

.stop-scrolling {
    height: 100%;
    overflow: hidden;
}

.frozen {
    background-color: rgba(var(--bs-light-rgb), .6);
    backdrop-filter: blur(5px);
}