/* ===================================== */
/* =               HEADER              = */
/* ===================================== */
/* Header: fixed at the top of the page, white background */
header {
    /* Display */
    box-sizing: border-box;
    display: flex;
    /* overflow: hidden; */
    /* Alignment */
    justify-content: space-between;
    align-items: center;
    /* Position */
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    /* Dimension */
    width: 100%;
    height: 100px;
    /* Padding */
    padding: 10px 30px;
    /* Colour */
    background-color: var(--bg-colour-1);
    color: var(--text-colour-1);
}

.header-left {
    display: flex;
    align-items: center;
    max-width: 100%;
}

/* ===================================== */
/* =           HEADER: LEFT            = */
/* ===================================== */
/* Header Left Section with Name and Title */
.blue-box, .invisible-box {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 10px;
}

.blue-box {
    background-color: var(--highlight-colour-1);
}

.invisible-box {
    background-color: transparent;
}

.header-grid {
    display: grid;
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    gap: 0px 0px;
    grid-template-areas:
        "header-grid-blue-box header-grid-name"
        "header-grid-invisible-box header-grid-title";
    /* Alignment */
    grid-auto-flow: row;
    justify-content: start;
    justify-items: start;
    align-items: center;
    /* Padding */
    padding: 0;
    padding-right: 0;
    margin: 0;
    /* padding-left: ; */
}

.header-grid-blue-box {
    grid-area: header-grid-blue-box;
}

.header-grid-invisible-box {
    grid-area: header-grid-invisible-box;
}

.header-grid-name {
    grid-area: header-grid-name;
    /* display: flex; */
}
.header-grid-name h1 {
    /* Font */
    font-size: 25px;
    margin: 0;
    font-family: Poppins-Semi-Bold;
}

.header-grid-title {
    grid-area: header-grid-title;
    /* display: flex; */
}
.header-grid-title p {
    letter-spacing: 2.5px;
    font-family: Figtree-Light;
    font-size: 17px;
    /* line-height: 0; */
}

/* CSS for the clickable header link */
.header-link {
    display: block;
    text-decoration: none;
    /* Remove underline from link */
    color: inherit;
    /* Inherit the current color (black in this case) */
}

.header-link:hover {
    opacity: 0.5;
    /* Optional: Add hover effect */
}

/* ===================================== */
/* =           NAVIGATION BAR          = */
/* ===================================== */
/* Navigation */
nav ul {
    list-style: none;
    display: flex;
    gap: 15px;
}

/* nav ul li a {
    color: var(--text-colour-1);
    text-decoration: none;
    font-size: 1rem;
}

nav ul li a:hover {
    color: var(--highlight-colour-1);
} */

.nav-link {
    color: var(--text-colour-1);
    text-decoration: none;
    font-size: 1rem;
}

.nav-link:hover {
    color: var(--highlight-colour-1);
}

.nav-link-current {
    color: var(--highlight-colour-1);
    text-decoration: none;
    font-size: 1rem;
}

/* ======================================================== */
/* =                    MOBILE STYLING                    = */
/* ======================================================== */
.hamburger {
    display: none;
    /* Hidden on desktop */
    cursor: pointer;
    width: 45px;
    height: 30px;
    padding-right: 0;
    margin-right: 20px;
    position: relative;
    z-index: 1001;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .5s ease-in-out;
    -moz-transition: .5s ease-in-out;
    -o-transition: .5s ease-in-out;
    transition: .5s ease-in-out;
}

.hamburger span {
    display: block;
    position: absolute;
    height: 4px;
    width: 100%;
    background: var(--text-colour-1);
    border-radius: 9px;
    opacity: 1;
    left: 0;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .25s ease-in-out;
    -moz-transition: .25s ease-in-out;
    -o-transition: .25s ease-in-out;
    transition: .25s ease-in-out;
}

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

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

.hamburger span:nth-child(4) {
    top: 100%;
}

.hamburger.open span:nth-child(1) {
    top: 18px;
    width: 0%;
    left: 50%;
}

.hamburger.open span:nth-child(2) {
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
}

.hamburger.open span:nth-child(3) {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.hamburger.open span:nth-child(4) {
    top: 18px;
    width: 0%;
    left: 50%;
}

/* Mobile styling */
@media (max-width: 768px) {
    header {
        padding: 10px 5px;
        /* Reduce padding on mobile to prevent overflow */
        width: 100%;
    }

    /* Show hamburger icon on mobile */
    .hamburger {
        display: block;
    }

    /* ===================================== */
    /* =           HEADER: LEFT            = */
    /* ===================================== */
    .header-link:hover {
        opacity: 1.0;
        /* Optional: Add hover effect */
    }

    .header-grid-name h1 {
        font-size: 25px;
    }

    .header-grid-title p {
        font-size: 17px;
    }


    /* ===================================== */
    /* =           NAVIGATION BAR          = */
    /* ===================================== */
    /* Navigation menu setup */
    nav {
        /* Position */
        position: absolute;
        display: none;
        /* Hidden initially */
        top: 100px;
        /* Positioned just below the header */
        left: 0;
        z-index: 999;
        /* Dimension */
        width: 100%;
        /* Colour */
        background-color: rgba(255, 255, 255, 0.95);
        opacity: 0;
        transition: opacity 0.5s ease-in-out;
        /* Smooth fade transition */
    }

    /* Show the nav menu with a fade-in effect */
    .nav-visible {
        display: block;
        opacity: 1;
    }

    /* Mobile nav links styled vertically */
    nav ul {
        display: flex;
        flex-direction: column;
        padding: 0;
        text-align: center;
        width: 100%;
        margin: 0;
        gap: 0;
    }

    nav ul li {
        margin: 10px 0;
        width: 100%;
    }

    nav ul li a {
        display: block;
        padding: 10px;
        width: 100%;
        text-decoration: none;
        color: var(--text-colour-1);
    }
}