@import url('https://fonts.googleapis.com/css2?family=Oldenburg&family=Quintessential&display=swap');

/*applicable to the whole site*/
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body{
    width: 100%;
    overflow-x: hidden;
}
h2, h3, h4, h5, li, p, label, input, textarea, button{
    font-family: Oldenburg, 'Times New Roman', Arial;
}
li{
    list-style: none;
}
a{
    color: black;
    text-decoration: none;
}
a:hover{
    text-shadow: -1px -1px 0 white, 1px -1px 0 white, -1px 1px 0 white, 1px 1px 0 white;
}
main{
    background-color: #f0ebe4;
}
html{
    background-color: #f0ebe4;
}
.sales h4, .sales p, #products p{
    display: flex;
    justify-content: center;
}

/*header*/

header{
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #9e5652;
}
header h1{
    font-size: clamp(1.25rem, 2vw, 3rem);
    padding: 1rem;
    font-family: Quintessential, 'Times New Roman', Arial;
}
header nav ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: right;
    align-items: center;
}
header nav ul li{
    padding: 0rem 2rem 0rem 1rem;
    font-size: clamp(0.5rem, 3vw, 1.56rem);
}
.off-screen-menu, #small-screen {
    display: none;
}

/*footer*/

footer{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    background-color: #9CA6D5;
    padding-top: 20px;
    padding-bottom: 20px;
}
#footernav ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
#footernav ul li{
    padding-left: 25px;
    padding-top: 15px;
}
footer p{
    padding-top: 18px;
    font-size: 15px;
    color: #3a3e4f;
}

/*applicable to the home page*/

#home{
    position: relative;
    background-color: transparent;
}
#home h1{
    position: absolute;
	top: 40%;
	left: 5%;
    padding: 0px;
    font-size: clamp(2rem, 8vw, 6.25rem);
    color: white;
    font-family: Quintessential, 'Times New Roman', Arial;
    text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}
#home nav{
    position: absolute;
    top: 4%;
    right: 0%;
    margin-top: 0rem;
}
#home nav ul li{
    text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
    padding: 0rem 2rem 0rem 1rem;
    font-size: clamp(0.5rem, 3vw, 1.56rem);
}
#home nav ul li a{
    color: white;
}
#home nav ul li a:hover{
    color: black;
}
#home img{
    opacity: 80%;
    width: 100%;
}
#home h2{
    position: absolute;
    bottom: 8%;
    right: 2%;
    color: white;
    font-size: clamp(1rem, 4vw, 2.5rem);
    text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}
#welcome{
    display: flex;
    justify-content: center;
    padding: 35px;
}
#welcome div{
    max-width: 900px;
    text-align: center;
}
#welcome h3{
    padding-bottom: 10px;
    font-size: 35px;
    font-style: italic;
}
#welcome p{
    display: flex;
    justify-content: center;
    font-style: italic;
    font-size: 16px;
}
.sales{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    padding: 1rem;
    padding-bottom: 40px;
}
#padding{
    padding-bottom: 80px;
}
.sales div{
    background: #c4b7a3;
    border-radius: 20px;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    flex-direction: column;
    text-align: center;
}
.sales img{
    width: 100%;
    max-width: 200px;
    margin-bottom: 1rem;
}
.italic{
    font-style: italic;
    margin: auto;
    font-size: 1.5rem;
}
.strike{
    text-decoration: line-through;
}

/*applicable to the products page */

#selection{
    display: flex;
    justify-content: center;
    font-size: 30px;
    font-style: italic;
    padding: 20px;
    text-align: center;
}
#products{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, calc(100% / 4 - 2rem)));
    justify-content: space-around;
    gap: 2rem;
    place-items: center;
}
.filter_container{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, calc(100% / 3 - 2rem)));
    justify-content: space-around;
    place-items: center;
}
.filter
{
    padding: 0px;
    background-color: transparent;
    border: 0px;
    border-radius: 0px;
    margin: 0px;
    width: 100%;
}
#products div{
    padding: 20px;
    margin: 10px 0px 40px 0px;
    background: #c4b7a3;
    border-radius: 20px;
    align-items: center;
    flex-direction: column;
    text-align: center;
    max-width: 300px;
}
#products img{
    padding-bottom: 10px;
    width: 100%;
}
#small{
    display: none;
}

/* applicable to the display page */

#book-container{
    margin: 0 auto;
    max-width: 75%;
}
#book{
    display: flex;
    flex-wrap: wrap;
    margin: auto;
    margin-top: 2%;
}
#display-image{
    margin: auto;
}
#information{
    margin: auto;
    max-width: 60%;
}
#information h2, #information p{
    padding: 10px;
}
#buttons-display{
    display: flex;
}
#buttons-display button{
    padding: 8px 20px 8px 20px;
    font-size: 14px;
    margin-top: 15px;
}
#create-comment{
    margin: 2% 5% 0% 5%;
}
.comment-form{
    margin: auto;
}
.comment-form textarea{
    margin: auto;
    width: 100%;
}
.comment-form input{
    max-width: 50%;
    display: table;
    margin: auto;
}
.comment-form button{
    display: flex;
    margin: auto;
    padding: 8px 20px 8px 20px;
    font-size: 14px;
}
.comment-form a:hover{
    text-shadow: none;
}
#comments{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, calc(100% / 2 - 2rem)));
    justify-content: space-around;
    place-items: center;
    margin-top: 3%;
    margin-bottom: 3%;
}
.comment{
    border-left: 1px solid black;
    border-right: 1px solid black;
    width: 85%;
    padding: 2%;
}
.counter-form{
    padding: 0px;
    background-color: transparent;
    border: 0px;
    border-radius: 0px;
    margin: 0px;
    max-width: 580px;
}
.button-display{
    padding: 0.5vh;
    margin-top: 1%;
    font-size: 15px;
}

/* applicable to the contact page */

#contact{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    padding: 20px 0px 20px 0px;
}
#contact_info{
    max-width: 600px;
}
#contact_info h2{
    font-size: clamp(2.5rem, 15vw, 5rem);
    padding: 10px 0px 10px 0px;
}
#contact_info p{
    padding: 25px 20px 35px 0px;
    font-size: 25px;
}
form{
    padding: 20px;
    background-color: #c4b7a3;
    border: 1px solid black;
    border-radius: 20px;
    margin: 40px 0px 40px 0px;
    max-width: 580px;
}
form h2{
    display: flex;
    justify-content: center;
}
#checkbox-container {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
#checkbox-container div{
    display: flex;
    align-items: center;
    min-width: 250px;
    flex: 1;
}
form input[type="checkbox"]{
    max-width: 15px;
    min-height: 30px;
    margin: 5px 5px 5px 25px;
}
form h3{
   padding-left: 20px;
   font-size: clamp(1rem, 1vw, 4rem);
}
#buttons{
    display: flex;
    justify-content: center;
    justify-content: space-between;
    padding: 0px 20px 0px 20px;
}
#buttons button{
    padding: 8px 20px 8px 20px;
    font-size: 14px;
    margin-top: 15px;
}
form input{
    margin: 10px 20px 10px 20px;
    min-height: 40px;
    width: 90%;

}
form textarea{
    margin: 10px 20px 10px 20px;
    width: 90%;
}
.error{
    color: #691F1B;
    font-style: italic;
    margin: 5px 20px 5px 20px;
}

/* appplicable to the login page */

#logsign{
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
#credentials-page{
    display: flex;
    justify-content: space-around;
    flex: 1;
}
.signup{
    font-family: Oldenburg, 'Times New Roman', Arial;
    display: flex;
    justify-content: center;
    margin-top: 2%;
}
#credentials{
    display: flex;
    justify-content: space-between;
    width: 100%;
    align-items: center;
}
#credentials form{
    margin-left: 5%;
    margin-right: 5%;
}
#img-left{
    height: 100%;
    display: flex;
    flex: auto;
}
#img-right{
    height: 100%;
    display: flex;
    flex: auto;
}
#img-left img, #img-right img {
    width: 100%;
}

/*applicable to the profile page */

#profile-info{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
}
#profile-info h2{
    padding-top: 10%;
    display: flex;
    justify-content: center;
}
#profile-info h3{
    text-align: center;
    padding-bottom: 5%;
}
#profile-info button{
    margin-bottom: 5%;
}
#email-info{
    text-align: center;
    padding: 5%;
}
#reduce{
   width: 25%;
}
.profile-comments{
    padding-top: 5%;
    padding-bottom: 3%;
}

/* applicable to the inventory page */

#inventory{
    padding-left: 10px;
}
.book{  
    padding-bottom: 30px;
}
.nav{
    display: flex;
}
.appeal{
    padding: 5px;
}

/*applicable to the mystery pages */

.mystery{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

@media(max-width: 1145px){
    header nav ul li{
        padding-top: 0.5rem;
    }
    #head nav ul li, #home nav ul li{
        padding: 0rem 1rem 1rem 0rem;
    }
    #head nav, #home nav{
        margin-top: 1.5rem;
    }
    #home h1{
        top: 40%;
    }
    #home nav{
        top: 2%;
    }
    #welcome h3{
        font-size: 25px;
    }
    #small{
        display: block;
    }
    #information{
        text-align: center;
        max-width: 100%;
    }
    #buttons-display{
        justify-content: center;
        align-items: center;
    }
    #large{
       display: none;
    }
    #padding{
        padding-bottom: 25px;
    }
    .italic{
        grid-column: 1 / -1;
        text-align: center;
    }
    #contact_info h2, #contact_info p, form{
        padding-left: 5%;
        padding-right: 5%;
        margin-left: 5%;
        margin-right: 5%;
    }
    #contact_info h2{
        font-size: 30px;
    }
    #contact_info p{
        font-size: 20px;
        padding-top: 0px;
    }
    #img-left img, #img-right img {
        display: none;
    }
    #reduce{
        width: 100%;
    }
    .center-comments{
        text-align: center;
        margin: auto;
    }
    .profile-buttons{
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        padding-bottom: 3%;
    }
    #profile-info h2{
        padding-top: 2%;
    }
    #profile-info h3{
        padding-bottom: 2%;
    }
    #profile-info button{
        margin-bottom: 2%;
    }
    #email-info{
        padding: 2%;
    }
    .profile-comments{
        padding-top: 2%;
        padding-bottom: 1%;
    }
    #border{
        padding-left: 10px;
    }
}
@media(max-width: 750px){
    .off-screen-menu {
        display: unset;
        background-color: #9e5652;
        height: 100vh;
        width: 75%;
        max-width: 450px;
        position: fixed;
        top: 0;
        right: -450px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        font-size: clamp(1rem, 2rem, 4rem);
        transition: .3s ease;
    }
    .off-screen-menu.active {
       right: 0;
    }
    #large-screen{
        display: none;
    }
    #small-screen{
        display: unset;
        padding: 1rem;
        display: flex;
    }
    .ham-menu {
       height: 50px;
       width: 40px;
       margin-left: auto;
       position: relative;
    }
    .ham-menu span {
       height: 5px;
       width: 100%;
       background-color: black;
       border-radius: 25px;
       position: absolute;
       left: 50%;
       top: 50%;
       transform: translate(-50%, -50%);
       transition: .3s ease;
    }
    .ham-menu span:nth-child(1) {
       top: 25%;
    }
    .ham-menu span:nth-child(3) {
       top: 75%;
    }
    .ham-menu.active span {
       background-color: black;
    }
    .ham-menu.active span:nth-child(1) {
       top: 50%;
       transform: translate(-50%, -50%) rotate(45deg);
    }
    .ham-menu.active span:nth-child(2) {
       opacity: 0;
    }
    .ham-menu.active span:nth-child(3) {
       top: 50%;
       transform: translate(-50%, -50%) rotate(-45deg);
    }
}