button > * {
    pointer-events: none;
}

/* Hamburger Button */
.hamburger-button.active .line-1,
.hamburger-button[aria-expanded="true"] .line-1 {
    --tw-translate-y: 0px;
    --tw-rotate: 45deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hamburger-button.active .line-2,
.hamburger-button[aria-expanded="true"] .line-2 {
    --tw-translate-x: 0.75rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    opacity: 0;
}

.hamburger-button.active .line-3,
.hamburger-button[aria-expanded="true"] .line-3 {
    --tw-translate-y: 0px;
    --tw-rotate: -45deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

ul.accessible-menu.menu-is-open {
    display: block;
    padding: 0;
    margin: 0;
    /* Consider adjusting height behavior */
    /*max-height: calc(100vh - [menu-button-height]);*/
    max-height: calc(100vh);
    overflow-y: auto;
    box-sizing: border-box; /* Ensures padding and border are included in the width and height */
}

@media (min-width: 1200px) {
    ul.accessible-menu.menu-is-open {
        display: flex;
    }

    ul.accessible-menu > li {
        display: flex;
    }
}

ul.accessible-menu li {
    margin: 0px;
}

@media (max-width: 1199px) {
    ul.accessible-menu li button {
        width: 100%;
        border-bottom: 1px solid;
        border-radius: 2px;
        border-collapse: collapse;
        border-color: rgba(247, 248, 250, 0.2);
        padding-top: 1rem;
        padding-bottom: 1rem;
        padding-left: 3rem;
        padding-right: 1rem;
        font-size: 1rem;
        font-weight: 500;
        background-color: #021C51;
        color: white;
        background-position: 1rem 50%;
    }

    /* Ensures all buttons have the same styling within the ul */
    ul.accessible-menu li {
        margin: 0;
        padding: 0; /* Clear out default padding */
    }

    ul.accessible-menu li:last-child button {
        border-bottom: none; /* Ensuring no extra border for the last item */
    }    
}

@media (min-width: 1200px) {
    ul.accessible-menu li button {
        margin-left: 1rem;
        margin-right: 1rem;
        font-size: 1rem;
        font-weight: 500;
        color: #F7F8FA;
    }

    ul.accessible-menu li button {
        width: auto;
        border-bottom-width: 0px;
        padding-top: 0rem;
        padding-bottom: 0rem;
    }
}

ul.accessible-menu button:hover {
    color: rgb(95 147 252 / var(--tw-text-opacity));
}

ul.accessible-menu button[aria-expanded="true"] {
    color: rgb(39 128 247 / var(--tw-text-opacity));
}

ul.accessible-menu button[aria-expanded="true"] svg {
    --tw-rotate: 180deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

ul.accessible-menu ul li a:hover {
    color: rgb(30 58 138 / var(--tw-text-opacity));
    text-decoration-line: underline;
}

/* Submenu */
ul.accessible-menu ul.accessible-menu__sub-menu {
    top: 0px;
    visibility: hidden;
    margin: 0px;
    display: none;
    list-style-type: none;
    background-color: #F7F8FA;
    padding: 1rem;
    box-shadow: var(--tw-shadow);
    height: 80px; /* Height when displayed normally */    
}

ul.accessible-menu ul.accessible-menu__sub-menu > :not([hidden]) ~ :not([hidden]) {
    margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

@media (min-width: 1200px) {
    ul.accessible-menu ul.accessible-menu__sub-menu {
        position: absolute;
        top: 57px;
        right: 0px;
        padding: 1.5rem;
        width: 100vw;
        max-width: 1440px;
        right: -112px;
        text-align: right;
    }

    ul.accessible-menu ul.accessible-menu__sub-menu > :not([hidden]) ~ :not([hidden]) {
        margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
        margin-bottom: calc(1rem * var(--tw-space-y-reverse));
    }
}

ul.accessible-menu ul.accessible-menu__sub-menu--mega button:hover {
    color: #021C51;
}

@media (min-width: 1024px) {
    ul.accessible-menu ul.accessible-menu__sub-menu--mega {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2rem;
    }
}

ul.accessible-menu ul.accessible-menu__sub-menu--mega span {
    margin-bottom: 0.5rem;
    display: block;
    font-size: 1rem;
    font-weight: 500;
    color: rgb(75 85 99 / var(--tw-text-opacity));
}

@media (min-width: 1024px) {
    ul.accessible-menu ul.accessible-menu__sub-menu--mega span {
        margin-bottom: 1.5rem;
        font-size: 1rem;
    }
}

ul.accessible-menu ul.accessible-menu__sub-menu--mega ul {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.75rem;
}

@media (max-width: 1199px) {
    ul.accessible-menu {
        min-height: 75vh;
        max-height: 100vh;
        overflow-y: auto;
        margin: 0;
        padding: 0;
    }
}

ul.accessible-menu ul.accessible-menu__sub-menu.visible {
    visibility: visible;
    display: block;
}

/* Remove conflicting static height settings */
#main-menu {
    height: auto;
    min-height: 55px;
    max-height: 100vh;
    overflow-y: auto;
}

body.menu-is-open {
    overflow: hidden; /* Locks body scroll when menu is open */
}

/* CSS for when the menu is opened in mobile view */
#main-menu.menu-is-open {
    display: block;
    flex-direction: column;
    align-items: flex-start;
    width: calc(100% - 2px); /* Subtracts 30px to accommodate for 15px border on both sides */
    position: absolute;
    top: 55px; /* Replace with your specific value */
    left: 0;
    background-color: transparent;
    z-index: 1000;
    padding: 0;
    max-height: calc(100vh - 57px); /* Adjust height to fit border within viewport height */
    overflow-y: auto;
    border: 1px solid #021C51; /* Adds a 15px border with the specified color */
    box-sizing: border-box; /* To ensure padding and border are included within the menu's width and height */
}

#main-menu.menu-is-open li {
    width: 100%;
}

#main-menu.menu-is-open button {
    width: 100%;
    text-align: left;
    padding: 1rem;
    background-position: 140px 6px;
}

.submenu {
    display: none;
}

.submenu.open {
    display: block;
}

.main-menu {
    display: none;
}

.menu-is-open .main-menu {
    display: block;
}

.submenu.visible {
    display: block;
}

/* Light blue on hover and focus */
ul.accessible-menu button:hover,
ul.accessible-menu button:focus,
ul.accessible-menu ul li a:hover,
ul.accessible-menu ul li a:focus {
    --tw-text-opacity: 1;
    color: rgb(173, 216, 230 / var(--tw-text-opacity)); /* Light blue */
    text-decoration-line: underline;
}

/* Darker blue when main menu has submenu open */
ul.accessible-menu button[aria-expanded="true"] {
    --tw-text-opacity: 1;
    color: rgb(39, 128, 247 / var(--tw-text-opacity)); /* Darker blue */
}

ul.accessible-menu ul.accessible-menu__sub-menu.visible {
    visibility: visible;
    display: block;
}

/* Light blue on hover and focus for text */
ul.accessible-menu button:hover,
ul.accessible-menu button:focus,
ul.accessible-menu ul li a:hover,
ul.accessible-menu ul li a:focus {
    --tw-text-opacity: 1;
    color: rgb(95, 147, 252); /* Light blue */
    text-decoration: none; /* Disable underline */
}

/* Darker blue when main menu has submenu open */
ul.accessible-menu button[aria-expanded="true"] {
    --tw-text-opacity: 1;
    color: rgb(39, 128, 247); /* Darker blue */
}

@media (max-width: 1199px) {
    ul.accessible-menu ul.accessible-menu__sub-menu {
        height: auto; /* Regular height for each submenu item when displayed via hamburger menu */
    }
}

ul.accessible-menu ul.accessible-menu__sub-menu.visible {
    visibility: visible;
    display: block;
}

/* Gray lines between submenu items in hamburger mode */
@media (max-width: 1199px) {
    ul.accessible-menu ul.accessible-menu__sub-menu li {
        border-bottom: 1px solid rgba(128, 128, 128, 0.5); /* Gray line */
    }

    ul.accessible-menu ul.accessible-menu__sub-menu li:last-child {
        border-bottom: none; /* No border on the last item */
    }
}

/* Ensure the avatar text color stays the same, but background color changes */
.avatar:hover,
.avatar:focus {
    background-color: rgb(95, 147, 252); /* Light blue background */
    color: inherit;
}

/*.no-scroll {
    overflow: hidden;
    height: 100%;
}*/

ul.accessible-menu {
    max-height: 100%;
    overflow-y: auto;
}

