body {
	display: flex;
	flex-direction: column;
}

.wbs-logo {
    height: 80px;
}

#header {
    display: flex;
    box-shadow: var(--box-shadow-sm) var(--wbs-neutral-black);
    padding: var(--padding-md);
    position: sticky;
    top: 0;
    background: var(--wbs-neutral-grey5);
    z-index: 2;

    .right-content {
        --transition-speed: .1s;

        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;

        .nav-menu-icon {
            display: none;
            font-size: 1.5em;
        }

        .nav-area {
            margin-left: auto;
       
            nav {
                ul {
                    list-style: none;
                    padding: 0;
                    display: flex;
                    justify-content: right;
                
                    li {
                        border-right: 1px solid var(--border-color-divider);
                        padding: var(--padding-sm) var(--padding-md);

                        &:last-child {
                            border: none;
                        }

                        span {
                            cursor: default;
                        }
                    }

                    li:has(.nav-dropdown) {
                        position: relative;

                        &:hover, &:focus {
                            .nav-dropdown {
                                display: block;
                                opacity: 1;
                                animation: fadeIn .2s linear;
                            }
                        }

                        .nav-dropdown:hover, .nav-dropdown:focus {
                            display: block;
                            opacity: 1;
                            animation: fadeIn .2s linear;
                        }
                    }
                }

                .nav-dropdown {
                    --dropdown-bg: var(--wbs-neutral-grey4);
                    --dropdown-width: 250px;

                    animation: fadeOut .2s linear;
                    opacity: 0;
                    display: none;
                    position: absolute;
                    top: 100%;
                    left: calc(((var(--dropdown-width) / 2) * -1) + 50%);
                    width: var(--dropdown-width);
                    background: var(--dropdown-bg);
                    border-radius: var(--border-radius-sm);
                    box-shadow: var(--box-shadow-xs) var(--wbs-neutral-black);
                    padding: var(--padding-sm);

                    &::before {
                        --size: 16px;

                        content: "";
                        border: var(--size) solid;
                        border-color: transparent transparent var(--dropdown-bg) transparent;
                        position: absolute;
                        top: calc(0px - var(--padding-sm) - var(--size));
                        left: calc(50% - var(--padding-sm) - (var(--size) / 2));
                    }

                    ul {
                        flex-direction: column;

                        li {
                            border: none;
                            padding: var(--padding-xs);
                        }
                    }
                }
            }
        }
        
        .details-row {
            display: flex;
            align-items: center;
            gap: 1em;

            & > span:first-child {
                flex: 1;
                text-align: right;
            }

            @media (min-width: 769px){
                a > span::before {
                    content: " - ";
                }
            }
        }

        @media (max-width: 768px){
            .nav-menu-icon {
                display: block;
                position: relative;
                top: .5em;
                left: -2.5em;
                transition: left var(--transition-speed) linear;
                

                input[type="checkbox"] {
                    display: none;
                }

                .fa-bars {
                    display: inline;
                }

                .fa-times {
                    display: none;
                }

            }

            &:has(.menu-toggle:checked)
            {
                .nav-menu-icon {
                    left: 0;
                    transition: left var(--transition-speed) linear;
                }

                .nav-menu-icon .fa-bars {
                    display: none;
                }

                .nav-menu-icon .fa-times {
                    display: inline;
                }

                .nav-area {
                    right: 0;
                    transition: right var(--transition-speed) linear;
                }
            }

            .nav-area {
                position: absolute;
                top: 0;
                right: -300px;
                display: flex;
                flex-direction: column-reverse;
                height: 100vh;
                transition: right var(--transition-speed) linear;
                justify-content: start;
                background: var(--wbs-neutral-grey4);
                padding: var(--padding-lg);
                width: 300px;
                box-shadow: var(--box-shadow-sm) var(--wbs-neutral-black);

                .details-row {
                    flex-direction: column;
                    gap: .5em;

                    padding-top: 2em;
                }

                nav {
                    margin-top: var(--margin-lg);

                    ul {
                        flex-direction: column;

                        li {
                            border: none;
                            border-bottom: 1px solid var(--border-color-divider);
                            padding: var(--padding-md);
                            text-align: center;
                            order: 2;

                            &:last-child {
                                order: 1;
                                border-top: 1px solid var(--border-color-divider);
                                border-bottom: 1px solid var(--border-color-divider);
                            }

                            &:has(.nav-dropdown){
                                position: static;

                                .nav-dropdown {
                                    --dropdown-transition-speed: .1s;
                                    display: block;
                                    position: static;
                                    opacity: 1;
                                    animation: none;
                                    box-shadow: none;
                                    background: var(--wbs-neutral-grey3);
                                    margin: 0 auto;
                                    height: 0;
                                    overflow: hidden;
                                    padding: 0;
                                    transition: height var(--dropdown-transition-speed) linear;

                                    ul {
                                        li {
                                            border: none;
                                        }
                                    }
                                }

                                &:hover, &:focus {
                                    .nav-dropdown {
                                        height: 160px; /* Based on largest expected dropdown for smooth transition */
                                        transition: height var(--dropdown-transition-speed) linear;
                                        align-content: center;
                                    }
                                }
                            }
                        }
                    }
                }

                .details-row a {
                    text-align: center;
                }
            }
        }

        @media (max-width: 425px){
            .nav-area {
                width: 100vw;
                right: -100vw;
            }
        }
    }
}

#content-container {
    --header-height: 120px;
    min-height: calc(100vh - var(--header-height));
    display: flex;
    flex-direction: column;
    overflow: auto;
}

#content-wrapper {
    padding: var(--padding-xl) 0 calc(var(--padding-xl) * 4) 0;
    flex: 1;
}

#footer {
    background: hsl(from var(--wbs-neutral-grey1) h s calc(l * 0.5));
    margin-top: var(--margin-xl);
    padding: var(--padding-xl);
    padding-top: calc(var(--padding-xl) * 2);
    display: flex;
    justify-content: space-around;
    box-shadow: var(--box-shadow-sm) var(--wbs-neutral-black);
    max-width: 100vw;

    h1, h3, span, p {
        color: var(--wbs-neutral-white);
    }

    a {
        color: var(--wbs-neutral-white);

        &:not([href^="tel"], [href^="mailto"]) {
            text-transform: uppercase;
        }
    }

    & > div {
        display: flex;
        flex-direction: column;
        gap: 2em;
    }

    .left-content {
        & > div {
            display: flex;
            flex-direction: column;
        }

        & > div:first-child a {
            width: max-content;
        }

        & > div:nth-child(3) {
            flex-direction: row;

            span {
                margin: 0 var(--margin-sm);
            }
        }

        & > div:last-child {
            color: hsl(from var(--wbs-neutral-white) h s calc(l * 0.5));
            font-size: calc(1em * 0.8);
        }
    }

    .right-content {
        .wbs-cube {
            --cube-colour: var(--wbs-wbs-light);
            --c: .5em;
            --b: 1px;
            width: max-content;
        }

        .social-links {
            display: flex;
            gap: 1em;
            align-items: center;
            
            h1 {
                display: inline;
                margin: 0;
                margin-right: var(--margin-md);
            }

            i {
                margin: 4px 2px;
                color: var(--wbs-neutral-white);
                font-size: 28px;
            }
        }

        & > div:last-child {
            display: flex;
            gap: 4em;

            .footer-section {
                display: flex;
                flex-direction: column;
                font-size: 12px;
                font-weight: bold;

                a {
                    margin: var(--margin-xs);
                }

                &:not(:first-child) {
                    margin-top: 2em;
                }

                h3 {
                    text-transform: uppercase;
                    color: hsl(from var(--wbs-neutral-white) h s calc(l * 0.7));
                }
            }
        }
    }
}

/* Alert close button styles */
.alert-dismissible .btn-close {
    padding: 0.5rem !important;
    width: 1em;
    height: 1em;
    opacity: 0.5;
}

.alert-dismissible .btn-close:hover {
    opacity: 0.75;
}