@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap');

/* Color and style variables */
:root {
    /* Colors */
    /* brand color per email */
    --brand-primary: #79553D;

    --brand-400: hsl(25, 20%, 40%);
    --brand-600: hsl(25, 20%, 60%);
    --brand-800: hsl(25, 30%, 80%);
    --brand-900: hsl(25, 40%, 90%);
    --brand-950: hsl(25, 40%, 95%);
    --brand-980: hsl(25, 45%, 98%);

    --green-950: hsl(100, 50%, 95%);
    --green-300: hsl(100, 55%, 30%);

    --teal-150: hsl(170, 98%, 15%);
    --teal-230: hsl(170, 95%, 23%);
    --teal-250: hsl(170, 100%, 25%);
    --teal-350: hsl(170, 95%, 35%);
    --teal-700: hsl(170, 50%, 70%);
    --teal-800: hsl(170, 45%, 80%);
    --teal-900: hsl(170, 50%, 90%);

    --text-250: hsl(250, 25%, 25%);
    --text-450: hsl(250, 10%, 45%);
    --text-850: hsl(250, 25%, 85%);
    --text-950: hsl(250, 25%, 95%);


    /* Font sizes */
    --fontsize-h1: 2.6rem;
    --fontsize-h2: 1.6rem;
    --fontsize-h3: 1.4rem;
    --fontsize-lrg: 1.2rem;
    --fontsize-med: 1.13rem;
    --fontsize-reg: 1rem;
    --fontsize-sml: 0.9rem;

    --font-stack: Outfit, Raleway, -apple-system, sans-serif;
}

.brown-primary{
    color: var(--brand-primary);
}
.text-250{
    color: var(--text-250);
}
.text-450{
    color: var(--text-450);
}

body{
    margin: 0;
    font-family: var(--font-stack);
    font-size: var(--fontsize-reg);

    background-color: var(--brand-980);
}

strong{
    font-weight: 700;
}

h1{
    margin: 0;

    font-size: var(--fontsize-h1);
    font-weight: 800;
}

h2{
    margin: 0;

    font-size: var(--fontsize-h2);
    font-weight: 600;
}

h3{
    font-size: var(--fontsize-h3);
}

button{
    font-family: var(--font-stack);

    transition: 200ms ease;
}
button:hover{
    cursor: pointer;
}

/* General components */
.button-primary{
    padding: 10px 2.5rem;
    height: 2.5rem;

    border-radius: 100px;
    border-style: none;
    overflow: hidden;
    background-color: var(--teal-250);

    font-size: var(--fontsize-med);
    font-weight: 600;
    color: white;

    display: flex;
    align-items: center;
    align-content: center;
}
.button-primary:hover{
    background-color: var(--teal-150);
}

.button-secondary{
    padding: 10px 2.5rem;
    height: 2.5rem;

    border-radius: 100px;
    border-style: none;
    overflow: hidden;
    background-color: var(--teal-900);

    font-size: var(--fontsize-med);
    font-weight: 500;
    color: var(--teal-230);

    display: flex;
    align-items: center;
    align-content: center;
}
.button-secondary:hover{
    background-color: var(--teal-800);
}

.button-tertiary{
    padding: 0 2rem;
    height: 2.5rem;

    border-radius: 100px;
    overflow: hidden;
    border: 2px solid;
    border-color: var(--teal-350);
    background-color: transparent;

    font-size: var(--fontsize-med);
    color: var(--teal-230);
    font-weight: 500;

    display: flex;
    align-items: center;
    align-content: center;
}
.button-tertiary:hover{
    background-color: var(--teal-900);
}


/* Nav styles */
.header{
    width: 100%;
    height: 4rem;
    top: 0;

    background-color: var(--brand-950);
    border-bottom-width: 4px;
    border-bottom-style: solid;
    border-color: var(--brand-900);

    font-size: var(--fontsize-reg);

    display: flex;
    align-items: center;
}

.header-wrapper{
    position: relative;

    margin: 0 auto;
    width: 70%;
    max-width: 1500px;

    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header-heading{
    color: var(--brand-primary);
}

.header-search{
    height: 45px;
    display: flex;
    padding: 0 0.3rem;

    background-color: #fcfcfc;
    border-radius: 15px;

    align-items: center;
}
.search-icon{
    transform: scale(0.9);
    padding: 0 0.5rem;

    opacity: 50%;
}
.search-input{
    padding: 0 0.5rem;
    width: 20rem;

    border-style: none;

    font-size: var(--fontsize-med);
    font-family: var(--font-stack);
    font-weight: 400;
}
.search-button{
    height: 32px;
    margin-right: 2px;
    padding: 0 1.3rem;

    border-radius: 8px;
    border-style: none;

    font-size: var(--fontsize-med);
    font-family: var(--font-stack);
    font-weight: 500;
}

.nav-wrapper{
    display: flex;
    align-items: center;
    gap: 50px;
}

.nav-links{
    display: flex;
    align-items: center;
    gap: 30px;

    font-weight: 500;
    color: var(--brand-primary);
}


/* Main section styles */
.content{
    width: 70%;
    max-width: 1500px;
    margin: 40px auto;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2.5rem;
}

.hero-section{
    position: relative;
    width: 100%;
    height: 25rem;

    display: flex;
    gap: 2.5rem;
}

.hero-box{
    width: 60%;

    border-radius: 15px 65px 15px 65px;
    overflow: hidden;
    border: 4px solid;
    border-color: var(--brand-900);
}
.hero-contents{
    margin-top: 50px;
    margin-left: 70px;

    max-width: 500px;

    display: flex;
    flex-direction: column;
}
.hero-headline{
    color: var(--brand-primary);
    & p{
        margin: 0;
    }
}
.hero-subheading{
    font-size: var(--fontsize-h3);
    font-weight: 500;
    color: var(--brand-400);
}

.hero-buttons{
    margin-top: 10px;
    display: flex;
    gap: 20px;
}

.hero-image{
    width: 40%;

    border-radius: 65px 15px 65px 15px;
}

.hero-button-secondary{
    border: 2px solid;
    border-color: var(--teal-350);
}


/* Item list section styles */

.item-list{
    width: 100%;
    height: 22rem;

    background-color: var(--brand-900);
    border-radius: 35px;

    position: relative;
    overflow: hidden;
}

.item-list-contents{
    margin: 45px 40px;

    display: flex;
    flex-direction: column;
    gap: 30px;
}

.item-list-top{
    margin: 0 30px;

    display: flex;
    justify-content: space-between;
}

.section-heading{
    color: var(--brand-primary);
}

.item-sort{
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 10px;
}

.sort-text{
    margin: 0;
    color: var(--teal-230);
    font-weight: 500;
}
.sort-button{
    height: 30px;
    padding: 0 20px;

    font-size: var(--fontsize-reg);
    font-weight: 500;

    background-color: transparent;
}

.list{
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
}

.item-primary{
    width: 280px;
    height: 200px;
    background-color: var(--teal-250);
    border-radius: 10px;

    transition: 400ms ease-in-out;
}
.item-primary:hover{
    transform: scale(102%);
    cursor: pointer;

    transition: 200ms ease-in-out;
}

.list-primary-image{
    height: 120px;
    width: 280px;

    border-radius: 10px 10px 0 0;
}

.list-primary-text{
    margin-left: 25px;
    margin-bottom: 0;
    margin-top: 15px;

    font-weight: 600;
    color: #ffffff;
    font-size: var(--fontsize-med);
}

.list-primary-subtitle{
    margin-left: 25px;
    margin-top: 0;
    margin-bottom: 0;

    font-weight: 500;
    color: var(--green-950);
    font-size: var(--fontsize-sml);
}

.list-featured{
    float: right;
    margin-right: 20px;
    margin-bottom: 20px;
}

.item-secondary{
    width: 220px;
    flex-grow: 1;
    height: 200px;
    background-color: var(--teal-900);
    border-radius: 10px;
    border: 2px solid;
    border-color: var(--teal-250);
    transition: 400ms ease-in-out;
}
.item-secondary:hover{
    transform: scale(102%);
    cursor: pointer;

    transition: 200ms ease-in-out;
}

.list-secondary-image{
    width: 100%;
    object-fit: cover;
    height: 120px;

    border-radius: 10px 10px 0 0;
}

.list-secondary-text{
    margin-left: 25px;
    margin-bottom: 0;
    margin-top: 15px;

    font-weight: 600;
    color: var(--teal-230);
    font-size: var(--fontsize-med);
}

.list-secondary-subtitle{
    margin-left: 25px;
    margin-top: 0;
    margin-bottom: 0;

    font-weight: 500;
    color: var(--green-300);
    font-size: var(--fontsize-sml);
}


/* Footer text */
.footer-desc{
    margin: 0 auto;
    width: 75%;
}

.footer-text{
    font-size: var(--fontsize-lrg);
    text-align: center;
    color: var(--brand-primary);
}


/* Form styles */
.form-modal-wrapper{
    display: none;
    position: fixed;
    z-index: 5;

    height: 100vh;
    width: 100vw;
    background-color: hsl(250, 10%, 0%, 0.15);

    align-items: center;
    justify-content: center;
}

.form-box{
    display: none;
    position: fixed;

    width: 45rem;
    max-width: 950px;
    z-index: 10;

    background-color: var(--brand-980);
    border-radius: 15px;
    box-shadow: 8px 8px 15px 3px rgba(81.63, 47.08, 39.49, 0.15);
}

.form-wrapper{
    display: flex;
    flex-direction: column;
    gap: 30px;

    width: 70%;
    padding: 40px 60px;
}

.form-heading{
    font-weight: 700;
    color: var(--brand-primary);
}

.form-side{
    border-radius: 15px 0 0 15px;
    background-color: var(--brand-800);
    width: 30%;
}

.form{
    display: flex;
    flex-direction: column;
    gap: 2.5rem;

    margin-bottom: 10px;
}

.form-section{
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.form-element{
    display: block;
    width: 100%;
}

.form-text{
    display: block;
    margin-bottom: 4px;
    color: var(--text-250);

    font-size: var(--fontsize-reg);
    font-weight: 400;
}

.form-input{
    box-sizing: border-box;
    width: 100%;
    padding: 10px 15px;
    background-color: var(--text-950);

    border: 2px solid;
    border-color: var(--text-850);
    border-radius: 15px;

    font-size: var(--fontsize-sml);
    font-family: var(--font-stack);
    color: var(--text-450);
}

.form-confirm{
    padding: 0 118px;
    text-align: center;
    margin: 0 auto;
}

.form-cancel{
    padding: 0 120px;
    text-align: center;
    margin: 0 auto;

    font-size: var(--fontsize-lrg);
}

@media(max-width: 1760px){
    .content{
        width: 85%;
    }
    .header-wrapper{
        width: 85%;
    }
}


@media(max-width: 1460px){
    .content{
        width: 95%;
    }
    .header-wrapper{
        width: 95%;
    }
}



