@import url('https://fonts.googleapis.com/css2?family=Funnel+Sans:ital,wght@0,300..800;1,300..800&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');

:root {
    --primary: #281F6B;
    --secondary: #006F87;
    --tertiary: #DBC15B;
    --grey: #6A7887;
    --fontcolor: #1C1C1C;
    --light-background: #ECF4F5;
}

/* skiplinks */
.a-skiplink {
    background-color: #fff;
    border: 2px solid #999;
    display: block;
    left: -1000em;
    padding: .5em;
    position: absolute;
    z-index: 10;
    transition: none;
}

.a-skiplink:focus-visible {
    left: 1em;
    top: 126px;
    z-index: 1000;
}

#container_menu_top,
.b_header-wrapper,
#footer {
    font-family: "Open Sans", calibri, arial, sans-serif;
    font-weight: 400;
    line-height: 28px;
}

.b_header-wrapper {
    font-family: "Karbon", calibri, arial, sans-serif;
}

#apptitle {
    display: none;
}

#container_menu_top {
    display: none;
    background: #F8F8FA;

    &.role_SysAdmin {
        display: block;
    }

    ul {
        display: flex;
        gap: 4px;
        justify-content: right;
        max-width: 1488px;
        width: 100%;
        padding: 0px clamp(16px, 5vw, 24px);
        margin: 0 auto;


        li {
            display: none;

            a {
                display: block;
                padding: 12px 8px;
                text-decoration: none;
                color: var(--primary);
                font-weight: 400;
                font-size: 14px;
                line-height: 20px;
            }
        }

        .mnu_beheer {
            display: block;
        }
    }
}

#pull,
#header_top {
    display: none;
}

#innercontainer header {
    position: relative;
    z-index: 77;
    border-bottom: 1px solid #E6E6E6;
    background: #FFF;
}

.b_menu-search-wrapper {
    position: static;
}

.b_header-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1488px;
    padding: 0 clamp(16px, 5vw, 24px);
    margin: 0 auto;

    p,
    a,
    button {
        font-size: 20px;
        line-height: 28px;
        font-family: "Karbon", calibri, arial, sans-serif;
        font-weight: 400;
    }
}

#innerheader {
    p {
        display: flex;
        align-items: center;
        gap: 40px;
        margin: 0;

        a {
            display: flex;

            img {
                width: auto;
                height: 57px;
                height: clamp(36px, 4vw, 57px);
            }
        }

        span {
            font-size: 24px;
            color: var(--primary);
            font-weight: 500;
        }
    }
}

#container_menu {
    overflow: visible;
}

.menu {
    display: flex;
    padding: 24px 0;
    gap: 12px;
    margin: 0;
    list-style: none;

    .mobile-menu-item {
        display: none;
    }

    li {

        a,
        button {
            display: flex;
            align-items: center;
            gap: 16px;
            padding: 12px 4px 10px 4px;
            border-bottom: 2px solid transparent;
            background: transparent;
            text-decoration: none;
            font-size: 20px;
            font-weight: 500;
            color: #5D5D5D;
            transition: .25s ease-in-out all;

            &[aria-current="page"] {
                border-bottom: 2px solid var(--primary);
                color: var(--primary);
            }

            &:hover {
                border-bottom: 2px solid var(--primary);
            }
        }
    }

    #p107 {
        display: flex;
    }
}

#p107 a,
#p108 a,
.b_btn {
    padding: 12px 20px 12px 20px;
    border: none;
    border-radius: 100px;
    background: var(--primary);
    color: #FFF;
    cursor: pointer;
    text-decoration: none;

    &:focus,
    &:focus-visible {
        outline-offset: 3px;
    }
}

#p107,
#p108 {
    a {

        &:after {
            content: "\e4b2";
            font-family: "Font Awesome 6 Pro";
            font-size: 16px;
            font-weight: 400;
        }
    }
}

.b_btn.secondary {
    width: auto;
    border: 2px solid var(--primary);
    background: #FFF;
    color: var(--fontcolor);
}

#p108 a:after {
    content: "\f2f5";
}

#p108,
.authenticated_True #p107 {
    display: none;
}

.authenticated_True {
    #p107 {
        display: none;
    }

    #p108 {
        display: flex;
    }
}

#footer {
    margin-top: auto;
    border-top: 1px solid var(--grey);
    background: #FFF;

    #innerfooter {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        max-width: 1488px;
        width: 100%;
        padding: clamp(32px, 6vw, 80px) clamp(16px, 5vw, 24px);
        margin: 0 auto;
        color: var(--fontcolor);

        .footer-column {
            .footer-block {
                display: flex;
                gap: 24px;
            }

            ul {
                display: flex;
                flex-direction: column;
                gap: 4px;
                list-style: none;
                padding: 0;
                margin: 0;

                li {
                    a {
                        font-size: clamp(16px, 3vw, 17px);
                        color: var(--primary);
                    }

                    .link-with-icon {

                        &:before {
                            content: "\f061";
                            display: inline-block;
                            margin-right: 8px;
                            text-decoration: none;
                            font-family: "Font Awesome 6 Pro";
                            font-size: 16px;
                            font-weight: 400;
                        }
                    }

                    .external {
                        &:before {
                            content: "\f08e";
                        }
                    }

                    .mailto {
                        &:before {
                            content: "\f0e0";
                        }
                    }
                }
            }

            h2 {
                margin-top: 0;
                margin-bottom: clamp(8px, 1.8vw, 16px);
                font-size: clamp(18px, 2.6vw, 20px);
            }

            p {
                max-width: 100%;
                margin: 0;
            }
        }
    }
}

@media screen and (max-width: 1400px) {
    #pull {
        display: flex;
        padding: 16px 0;
        text-decoration: none;
        color: var(--primary);
        font-size: 22px;

        .menu-button {
            display: flex;
            align-items: center;
            gap: 16px;

            &:after {
                content: "\f0c9";
                font-family: "Font Awesome 6 Pro";
                font-size: 23px;
            }
        }

        &[aria-expanded="true"] {
            .menu-button {
                &:after {
                    content: "\f00d";
                }
            }
        }
    }

    #container_menu .menu {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        margin-top: 1px;
        background: #FFF;
        width: 100%;
        z-index: 999;
        overflow: auto;
        box-shadow: 0 7px 7px -6px rgba(101, 101, 101, 0.5);

        li {

            a,
            button {
                justify-content: space-between;
                width: 100%;
                padding: 16px 16px;
            }
        }

        #p108, #p107 {
            margin: 0 16px;
        }
    }

    #container_menu .b_menu-open {
        display: block;
    }

    #footer {
        #innerfooter {
            grid-template-columns: 1fr 1fr;
            row-gap: 24px;

            .footer-column:last-child {
                grid-column: 1 / -1;
                text-align: center;

                p {
                    text-align: center;
                }
            }
        }
    }
}

@media screen and (max-width: 1050px) {
    #footer {
        #innerfooter {
            padding-right: 24px;
            padding-left: 24px;
        }
    }
}

@media screen and (max-width: 880px) {
    #footer {
        #innerfooter {
            grid-template-columns: 1fr;
            text-align: center;

            .footer-column {
                .footer-block {
                    flex-direction: column;
                }
            }
        }
    }
}