*{
    list-style-type: none;
    padding: 0;
}
:root{
    --color-grey:rgb(65, 62, 62);
}
.material-icons{
    font-size: 1.8em;
}
.bottom-border{
    border-bottom: .05em solid rgb(180, 177, 177);
}
body{
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 0.7em;
}
.red-color{
    color: rgb(202, 28, 28);
}
.green-color{
    color:green;
}
.grey-color{
    color: grey;
}
.gold-color{
    color:goldenrod;
}
.align-right{
    text-align: right;
}
.align-left{
    text-align: left;
}
.margin-vertical{
    margin: 1em 0;
}
.margin-horizontal{
    margin: 0 1em;
}
.margin-left{
    margin-left: 1em;
}
.margin-right{
    margin-right: 1em;
}
.margin-top{
    margin-top: 1em;
}
.margin-bottom{
    margin-bottom: 1em;
}
.space-even{
    display: flex;
    justify-content: space-evenly;
}
.header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
    background-color: white;
}

.header.extended .header-menu {
    display: block;
}

.header-nav{
    box-sizing: border-box;
    box-shadow: .1em .1em 1em .1em grey;
    padding: 0.5em 0;
}
.header-nav-top-row{
    display: flex;
    /* grid-template-columns: repeat(3, 1fr); */
    justify-content: space-between;
    align-items: center;
    margin: 0 0 0 .5em;
    column-gap: 2em;
    
}
.smartphone-tab-container{
    display: none;
}
.laptop-tab-container{
    display: none;
}
.header-nav-form{
    margin-left: 1em;
    text-align: right;
}
.header-nav-form > ul{
    display: flex;
}
.header-nav-form > ul > li{
    margin: 0 1em;
}
.logo{
    margin: 0 0 0 10em;
    text-align: center;
}
.logo img{
    height: 2em;
}
.main-header{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    text-align: center;
    border-bottom: .1em solid grey;
    align-items: center;
    margin: .5em -1em;
    box-shadow: .1em .1em 1em .1em grey;
}
.filter-panel{
    position: absolute;
    z-index: 5;
    left:0;
    transform: translateX(-100%);
    transition: transform 0.3s;
    background-color: var(--color-grey);
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    row-gap: 1em;
    padding: 1em;
    color: white;
    width: 50%;
}
.filter-panel.open {
    transform: translateX(0em);
}
.main{
    margin: 3em 1.2em 1em 1.2em;
}

.header.extended + .main {
    margin-top: 15em;
}

.header-menu {
    color: white;
    background-color: var(--color-grey);
    padding: .5em;
    margin: 0;
    position: fixed;
    left: 0;
    width: 10em;
    transform: translateX(-10em);
    transition: transform 0.3s;
}
.header-menu li {
    padding: .5em 0;
    line-height: 1.5em;
}
.header-menu a {
    color: white;
    text-decoration: none;
}
.header-menu.open {
    transform: translateX(0em);
}

.search-container{
    display: grid;
    grid-template-columns: 3fr 1fr;
    column-gap: 1em;
    background-color: var(--color-grey);
    padding: .5em;
    margin-top: .2em;
    position: fixed;
    right: 0;
    width: 100%;
    transform: translateX(100%);
    transition: transform 0.3s;
    font-size: 1.3em;
}

.search-container.open{
    transform: translateX(0em);
}
  
.product{
    display: grid;
    text-align: left;
    align-items: center;
    row-gap: .5em;
    border-bottom: .1em solid grey;
    margin: .5em 0;
}
.product-image-container{
    text-align:center;
}
.product-image{
    max-height: 20vh;
    max-width: 100%;
    margin: .5em;
    
}
.product-gallery{
    display: flex;
    justify-content: space-between;
    overflow: scroll;
    margin: 1em 0;
    text-align: center;
    padding: .5em;
    box-shadow: .1em .1em 0.1em .1em grey;
}
.product-alt-image{
    max-height: 10vh;
}
.product h3{
    font-size: 1.8em;
    font-weight: bold;
    margin: .2em;
}
.product-footer-form li{
    display: inline-block;
}

.transparent-button{
    background-color: white;
    border-width: 0;
    /* box-shadow: .1em .1em 2rem .1rem rgb(223, 219, 219); */
}
.transparent-button-grid{
    border-width: 0;
    background-color: white;
    display: flex;
    justify-content: space-evenly;
    text-align: center;
    align-items: center;
}

.product-header-grid{
    display: flex;
    justify-content: space-between;
    text-align: left;
    align-items: center;
    margin-bottom: .5em;
}

.product-colors-block{
    display: grid;
    text-align: right;
    /* grid-gap: 1em; */
}

.swatches {
    display: inline-block;
}
  
.swatches li {  /* Lineup the list in a single row */
    display: inline-block;
    vertical-align: middle;
}
  
.product-color {  /* Ensure labels take up the whole element space */
    display: block;
    position: relative;
}
.product-color span { /* Style the squares using the span element */
    display: block;
    border: .05em solid grey;
    color: transparent;
    height: 2em;
    width: 2em;
    cursor: pointer;
}
  
.product-color input {  /* Hide the radio buttons. TRY COMMENTING THESE PROPERTIES! */
    position: absolute;
    opacity: 0;
    /* display: none; */
}
.product-color input:checked + span {  /* When <input> within .product-color is :checked, put a border on the <span> that IMMEDIATELY follows it (+) */
    border: .15em solid #222; 
}
      /* Note: This becomes a less obvious managed dependancy. The <span> now
      must always come immediately after the <input> in the HTML document. The
      "+" is used to express "the sibling that immediately follows" */
  
  /* Add the colours */
.product-color.red { background-color: rgb(163, 33, 10); }
.product-color.blue { background-color: rgba(3, 54, 104, 0.863); }
.product-color.white { background-color: white; }
.product-color.black{ background-color: black; }

.product-footer-form{
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    text-align: left;
    margin: 1em 0;
    column-gap: .5em;
}
.price{
    display: grid;
    font-size: 1.2em;
    align-items: center;
    text-align: left;
}

.offer-price{
    color: green;
    font-size: 1.6em;
    text-decoration: none;
}
.add-cart{
    font-size: 3em;
    color: green;
}
.product-description-list > li{
    font-size: 1.2em;
    margin-bottom: .5em;
    list-style-position: inside;
    list-style-type: disc;
}
.buy-button{
    background-image: linear-gradient(to top, green, rgb(77, 212, 77));
    color: white;
    border-width: 0;
    font-size: 1.5em;
    border-radius: 2em;
}
.pagination-section{
    text-align: center;
}
.page-listing{
    display: inline-block;
     padding: 0;
    /* text-align: center; */
}
.page-listing li{
    display: inline-block;
    padding: 0 .5em;
}
.dark-themed{
    background-color: var(--color-grey);
    color: white;
}
.footer{
    display: grid;
    row-gap: .5em;
    color: white;
    background-image: linear-gradient(to top, rgb(17, 17, 151), rgb(14, 14, 110));
    text-align: center;
    font-size: 1.5em;
    padding: 1em;
}
.footer a{
    color: white;
}
.footer-legals li{
    margin: 1em;
}
.footer-icons{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    font-size: 2em;
    row-gap: .5em;
    margin: 0 2em;
}
.products-section{
    display: grid;
    row-gap: 2em;
}
.disabled-button{
    background-image:linear-gradient(to top, grey, rgb(48, 46, 46));
}
.disabled-icon{
    color: grey;
}
.filter-button{
    display: block;
}
@media(min-width:48em){
    body{
        font-size: .8em;
    }
    .products-section{
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        row-gap: 1em;
        column-gap: 1em;
        
    }
    .product{
        padding: 1em;
        box-shadow: .01em .01em 0.1em .01em grey;
    }
    .search-container{
        width: 50%;
    }

    .filter-panel{
        width: 50%;
    }

    .footer-style{
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-legals li{
        display: inline-flex;
        justify-content: space-between;
    }

    .header-nav-top-row{
        column-gap: 15em;
    }
}

@media(min-width:75em){
    .products-section{
        grid-template-columns: repeat(3, 1fr);

    }
    body{
        font-size: 1em;
    }

    .filter-panel{
        position: fixed;
        top: 4em;
        z-index: 5;
        width: 15em;
        transform: translateX(0em);
        /* height: 100%; */
    }

    .main{
        margin-left: 16em;
    }

    .main-header{
        grid-template-columns: 1fr;
        margin-left: 0em;
        text-align: left;
    }

    .filter-button{
        display: none;
    }

    .footer-legals{
        font-size: .8em;
    }

    .product{
        font-size: .8em;
    }

    .header-nav-top-row{
        /* grid-template-columns: 0fr 1fr 1fr 1fr 1fr; */
        display: flex;
        column-gap: 1em;
    }
    .menu-button{
        display: none;
    }
    .smartphone-tab-container{
        display: inline-block;
    }
    .laptop-tab-container{
        display: inline-block;
        margin: 0;
    }
    .logo{
        margin: 0 15em 0 0;
        text-align: left;
    }
    .header-menu.open {
        transform: translateX(-100%);
    }
}