* {
    box-sizing: border-box;
}
@font-face {
    font-family: Instrument Sans;
    src: url("assets/Instrument_Sans/InstrumentSans-VariableFont_wdth\,wght.ttf");
}
body {
    background-color: #101010;
    color: white;
    font-family: Instrument Sans;
    background-image: url("assets/halftone_2.png");
    background-size: 100% auto;
    background-position: top center;
    margin: 0;
}
a {
    text-decoration: none;
}
.halftone-bg {
    background-color: #101010;
    color: white;
    padding: 100px 60px;
    text-align: left;
    font-family: 'Instrument Sans', sans-serif;
    background-image: url(../css/assets/halftone_2.png);
    background-size: 100% auto;
}

/* nav bar */
#navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 40px;
    width: 100%;
}
.navlinks {
    display: flex;
    align-items: center;
    gap: 30px;
}
.navbutton {
    font-size: 8pt;
    color: rgba(255, 255, 255, 0.5);
    padding: 10px;
    transition: color 0.3s ease;
}
.navbutton:hover {
    color: white;
}
.icon {
    width: 40px;
    transition: transform 0.3s ease;
}
.icon:hover {
    transform: rotate(5deg);
}
.iconbutton, .menubutton {
    width: 20px;
    opacity: 0.5;
    transition: opacity 0.3s ease;
}
.iconbutton:hover, .menubutton:hover {
    opacity: 1;
    cursor: pointer;
}
.menubutton {
    display: none;
}
.navcart {
    position: relative;
}
.navcart > .cart-number {
    background-color: #0F67A9;
    text-align: center;
    border-radius: 20px;
    line-height: 5pt;
    padding: 6px;
    position: absolute;
    top: -13px;
    right: -13px;
    font-size: 8pt !important;
}
.mobile-nav {
    display: none;
}
.mobile-links {
    display: none;
    position: fixed;
    top: 110px;
    left: 0;
    width: 100%;
    height: calc(100vh - 110px);
    background-color: #1B1B1B;
    z-index: 100;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 25px;
}

/* cart sidebar */
#cart-sidebar {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background-color: rgb(14, 14, 14);
    position: fixed;
    height: 100vh;
    padding: 40px 40px;
    right: -500px;
    width: 500px;
    z-index: 100;
    border-radius: 10px;
    opacity: 0;
    transition: all 0.4s ease-in-out;
}
#cart-sidebar.open {
    right: 0;
    opacity: 1;
}
#cart-sidebar, #cart-sidebar p {
    font-size: 12pt;
}
.cart-top {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}
.cart-top p {
    margin: 0;
}
.x-icon {
    width: 20px;
    height: 20px;
    opacity: 0.5;
    transition: all 0.3s ease;
}
.x-icon:hover {
    cursor: pointer;
    opacity: 0.8;
}
.cart-subtotal {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.checkout-link {
    display: block;
    width: 100%;
    padding: 20px;
    background-color: #0F67A9;
    color: white;
    font-weight: 500;
    text-align: center;
    border-radius: 5px;
}
.cart-items {
    display: flex;
    flex-direction: column;
    gap: 15px;
    flex: 3;
    margin: 30px 0;
}
.cart-items .button {
    cursor: pointer;
}
.cart-item {
    display: flex;
    flex-direction: row;
    align-items: start;
    width: 100%;
    height: auto;
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.042);
    border-radius: 10px;
}
.cart-item-desc {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex: 1;
    padding: 0 15px;
    height: 70px;
}
    .cart-item-type {
        opacity: 0.6;
    }
    .remove-btn {
        opacity: 0.7;
        text-decoration: underline;
        font-size: 10pt !important;
        transition: all 0.3s ease;
    }
    .remove-btn:hover {
        cursor: pointer;
        opacity: 0.9;
    }
.cart-item-attr {
    display: flex;
    flex-direction: column;
    align-items: end;
    justify-content: space-between;
    width: 70px;
    height: 70px;
}
.cart-item p {
    margin: 0;
}
.cart-item-image {
    width: 70px;
    height: 70px;
    object-fit: cover;
}
.cart-qty-select {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    gap: 10px;
    background-color: rgba(255, 255, 255, 0.119);
    color: rgb(255, 255, 255);
    padding: 5px 10px;
    border-radius: 10px;
    width: 100%;
}
.cart-total {
    margin-bottom: 10px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.cart-subtitle {
    color: grey;
    margin: 10px 0;
    font-size: 10pt !important;
}

/* main content */
.section {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 100px 60px;
}
#container {
    display:flex;
    flex-direction: column;
}
.header {
    text-align: center;
}
.header h1 {
    font-size: 80pt;
    text-align: center;
    font-weight: 600;
    margin: 0;
    margin-top: -30px;
}
.tagline {
    font-size: 20pt;
    z-index: 1;
    position: relative;
    color: rgb(255, 255, 255, .5);
}
.title {
    margin-top: -50px;
    font-weight: 600;
    font-size: 110pt;
    position: relative;
    z-index: 1;
    margin-bottom: 0;
}
h2 {
    font-size: 30pt;
}
p {
    font-size: 16pt;
}

/* footer */
#footer {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    background-color: #101010;
    color: white;
    padding: 90px 60px;
    text-align: left;
    font-family: 'Instrument Sans', sans-serif;
}
.footerimg {
    width: 300px;
    height: auto;
}
#footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
.footer-link {
    font-size: 9pt;
    color: rgb(255, 255, 255, 0.5);
}
.footer-link:hover {
    color: rgb(255, 255, 255);
    transition: 300ms;
}
.rights {
    font-size: 9pt;
    color:rgb(255, 255, 255, 0.5);
    margin: 0px;
}

.no-scroll {
    overflow: hidden;
    height: 100vh;
}


@media (max-width: 767px) {
    .title {
        margin-top: -30px;
        font-weight: 600;
        font-size: 50pt !important;
    }
    h1 {
        font-size: 30pt !important;
    }
    h2 {
        font-size: 20pt;
    }
    p {
        font-size: 14pt;
    }
        #navbar {
            padding: 30px 30px;
            gap: 8px;
        }
        .mobile-nav {
            display: block;
        }
        .mobile-links.show {
            display: flex;
        }
        .navbutton {
            color: rgba(255, 255, 255, 0.671);
            font-size: 20px;
            text-decoration: none;
        }
        .navlinks {
            display: none;
        }
        .icon {
            width: 175px;
            height: auto;
        }
        .iconbutton {
            width: 25px;
            height: auto;
        }  
        .navcart {
            display: flex;
            align-items: center;
            gap: 5px;
        } 
        .cart-number {
            font-size: 12px;
            padding: 2px 6px;
        }
        
    .quote-bottom p {
        font-size: 40pt !important;
    }
    #footer {
        flex-direction: column;
        flex-wrap: wrap;
    }
    .footerimg {
        width: 100%;
    }
    #footer-brand, #footer-links {
        width: 100%;
    }
    #cart-sidebar {
        width: 350px; 
        right: -350px;
    }
    .cart-item-desc p {
        font-size: 8pt !important; 
    }
}