:root {
    --small-font: clamp(11px, 0.8vw, 14px);
    --team-font: clamp(12px, 0.9vw, 15px);
    --body: clamp(12px, 1vw, 24px);
    --large-font: clamp(16px, 1.4vw, 25px);
    --menu-font: clamp(20px, 3.5vw, 45px);

    --max-width: 1800px;

    --margin: clamp(0px, 4.375vw, 87px);
    --margin-bottom: clamp(0px, 5.5%, 90px);
    --margin-top: clamp(0px, 5.5%, 80px);


    --blue: #2D50A5;
    --red: #B41412;
}


body {
    max-width: var(--max-width);
    margin: 0 auto;
}

p,
a,
li {
    font-family: Beausite;
    color: black;
    text-decoration: none;
    margin: 0;
    line-height: 1.3;
}

strong,
em {
    font-weight: normal;
    font-style: normal;
}


/*---------------------------------------*/
/* Loading screen  */
/*---------------------------------------*/
#slideshow {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
}

.slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 1s ease;
    opacity: 0;
    z-index: 1;
}

.slide:first-child {
    z-index: 2;
}

#Layer_2 {
    position: fixed;
    top: 45%;
    transform: translate(0, -45%);
    z-index: 3;
    width: 60vw;
    max-width: 1007px;
    margin-left: clamp(0px, 4.375vw, 87.5px);
}

#click-prompt {
    font-size: var(--menu-font);
    font-family: Beausite;
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 18px;
    color: #fff;
    opacity: 0;
    transition: opacity 1s ease;
    z-index: 4;
    display: block;
}

.pswp__button--zoom {
    display: none !important;
}

/*---------------------------------------*/
/* Header */
/*---------------------------------------*/
header {
    position: sticky;
    top: 0;
    z-index: 10001;
    padding: 30px 0;
    margin: 0 clamp(0px, 4.375vw, 87.5px);
    max-height: 95px;

    .menu {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;

        .home {
            width: 40%;

            a {
                display: block;
                max-width: 600px;

                svg {
                    height: 100%;
                }
            }
        }

        .hamburger-icon {
            width: 40px;
            height: 24px;
            position: relative;
            cursor: pointer;
            z-index: 10001;

            .line {
                position: absolute;
                left: 0;
                width: 100%;
                height: 3px;
                background-color: var(--blue);
                transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
                top: 50%;
                transform: translateY(-50%);
            }

            .line1 {
                transform: translateY(-10px);
            }

            .line2 {
                transform: translateY(0);
            }

            .line3 {
                transform: translateY(10px);
            }

            &.open {
                .line {
                    background-color: white;
                }

                .line1 {
                    transform: rotate(45deg);
                }

                .line2 {
                    opacity: 0;
                }

                .line3 {
                    transform: rotate(-45deg);
                }
            }
        }


        .overlay-menu {
            width: 100%;
            height: 100vh;
            position: fixed;
            top: 0;
            left: 0;
            background-color: #7c979f;
            overflow: hidden;
            opacity: 0;
            display: none;
            transition: opacity 0.5s ease, visibility 0.5s ease;
            z-index: 9999;

            &.open {
                display: block;
                opacity: 1;
                visibility: visible;
            }

            &.closing {
                opacity: 0;
                visibility: hidden;
            }

            .menuWrapper {
                width: 100vw;
                height: 100vh;
                max-width: var(--max-width);
                margin: auto;
            }

            .overlay-content {
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                text-align: center;

                ul {
                    list-style-type: none;
                    padding: 0;

                    li {
                        margin: 50% 0;

                        a {
                            color: #fff;
                            font-size: var(--menu-font);
                            text-decoration: none;
                            transition: color 0.3s;
                            font-weight: normal;

                            &:hover {
                                color: #ccc;
                            }
                        }
                    }
                }
            }
        }
    }
}



/*---------------------------------------*/
/* Projects page */
/*---------------------------------------*/
.projectsWrapper {
    min-height: 70vh;
    margin: 0 clamp(0px, 4.375vw, 87.5px);
    margin-top: 4.5%;

    .projects {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5%;
        list-style-type: none;
        padding: 0;
        margin: 0;

        li {
            margin-bottom: 5%;

            .project img {
                width: 100%;
                height: 20%;
                margin-bottom: 1%;
                object-fit: cover;
            }

            p {
                color: var(--blue);
                font-size: var(--large-font);
            }
        }
    }
}

/*---------------------------------------*/
/* Lightbox overlay */
/*---------------------------------------*/
.pswp__bg {
    background-color: #ffffff;
    opacity: 1;
}

.pswp__button--close {
    position: fixed;
    bottom: 5px;
    right: 20px;
    z-index: 1000;
}

.custom-arrow {
    position: fixed;
    bottom: 20px;
    z-index: 1001;
    cursor: pointer;
    width: 50px;
    height: 50px;
}

.pswp__custom-caption {
    color: black;
    font-size: 14px;
    padding: 8px 12px;
    border-radius: 4px;
    /* position: absolute; */
    bottom: 20px;
    left: 20px;
    max-width: 30vw;
    line-height: 1.4;
    z-index: 1002;
    font-family: helveticaMonospaced;
}

.hidden-caption-content {
    font-family: helveticaMonospaced;
    font-size: var(--small-font);
    margin-bottom: 6%;
}

.pswp--zoom-allowed .pswp__img {
    cursor: default !important;
}

.pswp__img {
    object-fit: contain;
    width: 100%;
    max-height: 90vh;
    top: 0;
}

.pswp__custom-controls {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: space-between;
    max-width: var(--max-width);
    width: 100vw;
    z-index: 1003;
}

.pswp__custom-caption {
    max-width: 800px;
    flex: 1;
    margin-left: clamp(0px, 4.375vw, 87.5px);
    padding-left: 0;
}

.pswp__control-group {
    display: flex;
    align-items: center;
    justify-content: end;
    width: 50%;
    margin-right: clamp(0px, 4.375vw, 87.5px);
}

.custom-arrow {
    margin-right: 100px;
}

.pswp__button--close {
    width: 17.5px;
    height: 17.5px;
    margin: 0;

    svg {
        transform: translateY(5px);
    }
}

.custom-arrow,
.pswp__button--close {
    position: static;
    display: flex;
    justify-content: center;
    align-items: center;

    svg {
        display: flex;
        justify-content: center;
        align-items: center;
    }
}

.pswp__icn {
    top: unset;
    left: unset;
}

/*---------------------------------------*/
/* Project page */
/*---------------------------------------*/
.projectWrapper {
    min-height: 100vh;
    margin-top: var(--margin-top);

    .topSection {
        margin: 0 var(--margin);

        .intro {
            display: flex;
            margin-bottom: var(--margin-bottom);

            .left {
                color: var(--blue);
                width: 30%;
                padding-right: 20%;
            }

            p {
                width: 50%;
                font-size: var(--large-font);
            }
        }

        .project-images {
            width: 100%;

            img,
            video {
                width: 100%;
                max-height: 912px;
                margin-bottom: 10px;
            }

            p {
                font-size: var(--small-font);
                font-family: helveticaMonospaced;
                margin-bottom: var(--margin-bottom);
                max-width: 75%;
            }
        }
    }

    .bottomSection {
        display: flex;
        flex-wrap: wrap;
        margin: 0 var(--margin);



        .detailsLeft {
            width: 50%;
            max-width: 812.5px;

            p {
                font-size: var(--large-font);
            }

            a {
                color: var(--blue);
            }

            .red {
                margin-top: 11%;

                ul {
                    padding: 0;
                }

                p {
                    font-size: var(--large-font);
                    color: var(--blue);
                    list-style-type: none;
                }
            }
        }

        .detailsRight {
            width: 40%;
            max-width: 812.5px;
            padding-left: 10%;

            img {
                width: 100%;
                margin-bottom: 1;
            }

            .hidden-caption-content {
                margin-bottom: 9%;
            }

            p {
                font-size: var(--small-font);
                font-family: helveticaMonospaced;
                max-width: 50%;
                margin-bottom: 5%;
            }
        }
    }
}

/*---------------------------------------*/
/* Practice page */
/*---------------------------------------*/
.practiceWrapper {
    margin-top: var(--margin-top);
    min-height: 73vh;

    .topSection {
        display: flex;
        flex-wrap: wrap;
        margin-bottom: 10%;
        margin: 0 var(--margin);
        margin-bottom: 90px;

        .left {
            width: 35%;
            padding-right: 15%;

            img {
                width: 100%;
                object-fit: cover;
                aspect-ratio: 13 / 18;
                margin-bottom: 1%;
            }

            p {
                font-family: helveticaMonospaced;
                font-size: var(--small-font);
                margin-bottom: 5.5%;
                width: 75%;
            }
        }

        .right {
            width: 50%;

            p {
                font-size: var(--large-font);
            }
        }
    }

    .bottomSection {
        margin: 0 var(--margin);

        .team-members {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 2%;
            list-style-type: none;
            padding: 0;
            margin: 0;

            .team-member {
                cursor: pointer;
                margin-bottom: 20px;

                .details {
                    margin-bottom: 1.5%;

                    img {
                        width: 100%;
                        margin-bottom: 1%;
                    }

                    p {
                        font-size: var(--medium-font);
                    }

                    .toggle-icon {
                        font-size: 24px;
                        cursor: pointer;
                        margin-top: 5px;
                        display: inline-block;
                    }
                }

                .reveal {
                    display: none;
                    transition: all 0.3s ease;

                    p {
                        font-size: var(--team-font);
                    }
                }

                /* Fade-in effect when .visible class is added */
                &.visible .reveal {
                    display: block;
                }
            }
        }
    }
}

/*---------------------------------------*/
/* News */
/*---------------------------------------*/
.newsWrapper {
    margin-top: 8vw;
    margin: 8% clamp(0px, 4.375vw, 87.5px) 0 clamp(0px, 4.375vw, 87.5px);
    min-height: 70vh;

    .newsCards {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2%;
        list-style-type: none;
        padding: 0;
        margin: 0;
        margin-bottom: 7%;

        img {
            width: 100%;
            max-height: 100%;
            margin-bottom: 1%;
            object-fit: cover;
            aspect-ratio: 4/3;
        }

        p {
            font-family: helveticaMonospaced;
            font-size: var(--small-font);
            margin-bottom: 20%;

            a {
                font-family: helveticaMonospaced;
                font-size: var(--small-font);
                margin-bottom: 20%;
                color: var(--blue);
            }
        }
    }
}

/*---------------------------------------*/
/* Contact */
/*---------------------------------------*/
.contactWrapper {
    margin: 5% clamp(0px, 4.375vw, 87.5px) 0 clamp(0px, 4.375vw, 87.5px);
    display: flex;
    min-height: 60vh;

    .contactLeft {
        width: 35%;
        padding-right: 5%;
        order: 1;

        a {
            font-size: var(--large-font);
            color: var(--blue);
        }

        span {
            color: black;
        }

        p {
            font-size: var(--large-font);
            margin-bottom: 8vw;
        }

        .red {
            color: var(--red);
        }
    }

    .contactRight {
        width: 60%;
        order: 2;

        img {
            width: 100%;
        }
    }
}

/*---------------------------------------*/
/* Footer */
/*---------------------------------------*/
.footerWrapper {
    margin: 8.5% clamp(0px, 4.375vw, 87.5px) 7% clamp(0px, 4.375vw, 87.5px);

    .buttonWrapper {
        display: flex;
        justify-content: end;
        margin-bottom: 20px;

        #scrollToTopButton {
            cursor: pointer;
        }
    }

    button {
        all: unset;
    }

    .columnsMobile {
        display: none;
    }

    .columns {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2%;
        list-style-type: none;
        padding: 0;
        margin: 0;

        .padding {
            border-top: solid 1px black;
            padding-top: 10px;
        }

        p,
        a {
            font-family: helveticaMonospaced;
            font-size: var(--small-font);
        }
    }
}

/*---------------------------------------*/
/* Mobile */
/*---------------------------------------*/
@media only screen and (max-width: 780px) {

    :root {
        --small-font: clamp(1px, 2vw, 1000px);
        --footer: clamp(1px, 3vw, 1000px);
        --body: clamp(12px, 4vw, 1000px);
        --medium-font: clamp(14px, 4.5vw, 1000px);
        --large-font: clamp(16px, 5vw, 1000px);
        --menu-font: clamp(24px, 8vw, 1000px);
    }

    /*---------------------------------------*/
    /* Header */
    /*---------------------------------------*/
    header {
        .menu {
            align-items: unset;

            .home {
                a {
                    width: 60vw;

                    svg {
                        height: 6vw;
                    }
                }
            }

            .hamburger-icon {
                width: 8.5vw;
                height: 6vw;
                position: relative;
                cursor: pointer;
                z-index: 10001;

                .line {
                    position: absolute;
                    left: 0;
                    width: 100%;
                    height: 0.7vw;
                    background-color: var(--blue);
                    transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
                    top: 50%;
                    transform: translateY(-50%);
                }

                .line1 {
                    transform: translateY(-2vw);
                }

                .line2 {
                    transform: translateY(0);
                }

                .line3 {
                    transform: translateY(2vw);
                }

                &.open {
                    .line {
                        background-color: white;
                    }

                    .line1 {
                        transform: rotate(45deg);
                    }

                    .line2 {
                        opacity: 0;
                    }

                    .line3 {
                        transform: rotate(-45deg);
                    }
                }
            }

            .overlay-menu .close {
                cursor: pointer;
                z-index: 10000;

                svg {
                    max-width: 6vw;
                }
            }
        }
    }


    /*---------------------------------------*/
    /* Loading screen */
    /*---------------------------------------*/
    #Layer_2 {
        width: 80vw;
        left: 50%;
        transform: translateX(-50%);
        margin-left: 0;
    }

    /*---------------------------------------*/
    /* Projects Page */
    /*---------------------------------------*/
    .projectsWrapper {
        .projects {
            grid-template-columns: repeat(1, 1fr);
            gap: 6vw;

            li a .project {
                img {
                    height: 100%;
                }
            }
        }
    }

    /*---------------------------------------*/
    /* project Page */
    /*---------------------------------------*/
    .projectWrapper {
        .topSection {
            margin-bottom: 15vw;

            .intro {
                flex-wrap: wrap;
                margin-bottom: 12vw;

                .left {
                    width: 100%;
                    padding: 0 0 1vw 0;
                    font-size: var(--large-font);
                }

                p {
                    width: 100%;
                    font-size: var(--body);
                }
            }

            .project-images p {
                max-width: 100%;
                margin-bottom: 9vw;
            }
        }

        .bottomSection {
            max-height: none;

            .detailsLeft {
                width: 100%;
                margin-bottom: 10vw;

                p {
                    font-size: var(--body);
                }

                .red {
                    margin-top: 15vw;

                    p {
                        font-size: var(--body);
                        width: 100%;
                        max-width: 100%;
                    }

                    ul li {
                        width: 100%;
                        max-width: 100%;
                        font-size: var(--body);
                    }
                }
            }

            .detailsRight {
                padding-left: 0;
                width: 100%;

                .hidden-caption-content {
                    margin-bottom: 9vw;
                }


            }
        }
    }

    /*---------------------------------------*/
    /* Lightbox */
    /*---------------------------------------*/
    .pswp__custom-controls {
        display: flex;
        flex-wrap: wrap;
        left: 0;
        transform: translateX(0);
        height: 15vh;

    }

    .pswp__control-group {
        width: 100%;
        height: 7.5vh;
        justify-content: center;
    }

    .pswp__button--close {
        /* position: fixed;
        bottom: 0;
        right: 0;
        top: 15px; */
        z-index: 1000;
    }

    .left-arrow {
        left: 30vw;
        bottom: 30vw;
    }

    .right-arrow {
        right: 30vw;
        bottom: 30vw;
    }

    .pswp__custom-caption {
        color: black;
        font-size: 14px;
        padding: 0;
        border-radius: 4px;
        position: absolute;
        width: 100%;
        max-width: 80vw;
        line-height: 1.4;
        z-index: 1002;
        font-family: helveticaMonospaced;
        font-size: var(--small-font);
    }

    /*---------------------------------------*/
    /* News Page */
    /*---------------------------------------*/
    .newsWrapper {
        .newsCards {
            grid-template-columns: repeat(1, 1fr);
            gap: 16vw;

            .newsCard img {
                height: 100%;
                max-height: 68vw;
            }
        }
    }

    /*---------------------------------------*/
    /* Practice Page */
    /*---------------------------------------*/
    .practiceWrapper {
        .topSection {
            margin-bottom: 16vw;

            .left {
                padding: 0;
                width: 100%;

                p {
                    width: 100%;
                }
            }

            .right {
                width: 100%;

                p {
                    font-size: var(--body);
                }
            }
        }

        .bottomSection {
            .team-members {
                grid-template-columns: repeat(1, 1fr);
                gap: 4vw;

                .team-member {

                    .details p,
                    .reveal p {
                        font-size: var(--body)
                    }
                }
            }
        }
    }

    /*---------------------------------------*/
    /* Contact Page */
    /*---------------------------------------*/
    .contactWrapper {
        flex-wrap: wrap;

        .contactLeft {
            width: 100%;
            padding: 0;
            margin-top: 16vw;
            order: 2;

            .contact p,
            .contact a {
                font-size: var(--body);
            }
        }

        .contactRight {
            width: 100%;
            order: 1;
        }
    }

    /*---------------------------------------*/
    /* Footer Page */
    /*---------------------------------------*/
    .footerWrapper {
        .buttonWrapper {
            margin-bottom: 10px;

            #scrollToTopButton svg {
                width: 8.5vw;
            }
        }

        .columns {
            display: none;
        }

        .columnsMobile {
            display: flex;
            list-style-type: none;
            padding: 0;
            margin: 0 0 5vw 0;
            border-top: solid 1px black;

            .left {
                padding-top: 15px;
                width: 80%;
                font-size: var(--footer);
            }

            .right {
                padding-top: 15px;
                text-align: end;
                width: 20%;
            }

            p,
            a {
                font-family: helveticaMonospaced;
                font-size: var(--footer);
            }
        }

    }
}