#projects {
    margin-bottom: 15vh;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

#projects-href {
    position: relative;
    bottom: 4rem;
}

#projects-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

#projects-header > div {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: calc(100% - 1rem); 
}

.horizontal-line {
    background-color: white;
    width: 100%;
    height: 1px;
}

#vertical-box {
    position: absolute;
    right: 4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    width: 1rem;
}

.vertical-line {
    background-color: white;
    width: 1px;
    height: 30vh;
}

#project-showcase {
    margin-top: 1rem;
    margin-bottom: calc(1rem + 20px);
    height: 60vh;
    position: relative;
    right: 4rem;
}

#gray-box {
    height: 60vh;
    background-color: #DBDBDB;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2rem 1rem 0px 1rem;
}

#white-box {
    background-color: white;
    height: inherit;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    padding: 2rem;
    box-shadow: 8px 8px 12px 0px rgba(0, 0, 0, 0.25);
}

#gallery {
    display: grid;
    grid-template-columns: repeat(5, 100%);
    gap: 2rem;
    position: relative;
    height: 100%;
    overflow: hidden;
    scroll-snap-type: x mandatory;
    width: 100%;
    scroll-behavior: smooth;
}

#gallery.dragging {
    scroll-behavior: auto;
    scroll-snap-type: none;
}

#gallery.dragging * {
    cursor: grab;
}

#arrow-left {
    position: absolute;
    left: 0;
    z-index: 100;
    cursor: pointer;
}

#arrow-left > img {
    width: 6rem;
}

#arrow-right {
    position: absolute;
    right: 0;
    z-index: 100;
    cursor: pointer;
}

#arrow-right > img {
    width: 6rem;
}

#github-button {
    display: flex;
    justify-content: center;
}

.cart {
    height: 100%;
    width: 100%;
    scroll-snap-align: start;
}

.cart > img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    box-shadow: 8px 8px 12px 0px rgba(0, 0, 0, 0.25);
}

.cart div {
    position: absolute;
    bottom: 2rem;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem;
    cursor: pointer;
}

.cart div > h1 {
    font-size: 1.5rem;
}

.cart div > p {
    font-size: 1rem;
}

@media only screen and (min-width: 800px) {
    #gallery {
        grid-template-columns: repeat(5, 66.6666%);
    }

    .cart div {
        width: 66.6666%;
    }
}

@media only screen and (min-width: 1100px) {
    #gallery {
        grid-template-columns: repeat(5, 33.3333%);
    }

    .cart div {
        width: 33.3333%;
    }
}