*{
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}

html{
    scroll-behavior: smooth;
    scroll-margin-top: 20rem;
}

body{
    font-family: 'Bitter', 'Poppins', Georgia, 'Times New Roman', Times, serif;
    width: 100%;
    background: whitesmoke;
    position: relative;
}

#brand_name{
    width: 40%;
    font-family: 'Rock Salt', cursive;
    font-weight: bold;
    font-size: 0.75rem;
    text-shadow: 1px 2px 3px white;
}

#brand_name i{
    color: black;
    text-shadow: none;
}

a{
    color: black;
}

main{
    position: absolute;
}

nav{
    position: fixed;
    top: 0;
    z-index: 7;
    background: whitesmoke;
    display: flex;
    justify-content: space-between;
    width: 100%;
    align-items: center;
    padding: 0 0 0 3rem;
    box-shadow: 0 1px 15px rgba(0,0,0,0.12), 0 1px 2px whitesmoke;
    height: 4rem;
    font-family: 'Poppins', Georgia, 'Times New Roman', Times, serif;
}

nav a{
    user-select: none;
    text-decoration: none;
    color: black;
}

nav a:hover, .full_review a:hover{
    color: red;
}

nav > div{
    display: flex;
    width: 100%;
    justify-content: space-around;
    border: none;
    align-items: flex-end;
    text-align: right;
}  

#side-nav{
    display: none;
}

section{
    width: 94%;
    margin: 0 auto;
}

#mobile-nav-btn{
    display: none;
}

#intro{
    padding-top: 6rem;
    font-size: 1.1rem;
}

#intro a:hover{
    color: orange;
}

#intro p:not(.drop){
    text-indent: 1rem;
}

#intro p.drop::first-letter{
    float: left;
    margin: 0 0.1em 0 0;
    font-size: 2.8rem;
    line-height: .7em;
    display: block;
    padding: .1em;
    color: black;
    text-shadow: 0 4px 5px rgba(0,0,0,0.4);
}

#close_review{
    position: absolute;
    top: -1.5rem;
    right: 0;
    cursor: pointer;
}

#close_review i{
    color: black;
}

#intro_restaurants{
    margin-top: 1rem;
}

#intro_restaurants p{
    margin-top: 0.25rem;
    font-size: 1.1rem;
}

#restaurants{
    position: relative;
    display: flex;
    width: 90%;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    margin: 2rem auto;
    row-gap: 2rem;
}

.restaurant{
    text-align: center;
    display: flex;
    flex-direction: column;
    row-gap: 1rem;
    cursor: pointer;
    position: relative;
    margin: 0 auto;
    opacity: 0.1;
    transform: translateX(-200px);
    transition: all ease 700ms;
}

.restaurant.show-restaurant{
    transform: translateX(0);
    opacity: 1;
}

.restaurant:nth-child(1), .restaurant:nth-child(5){
    transition-delay: 300ms;
}

.restaurant:nth-child(2), .restaurant:nth-child(6){
    transition-delay: 200ms;
}

.restaurant:nth-child(3), .restaurant:nth-child(7){
    transition-delay: 100ms;
}

.restaurant .info{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    display: none;
}

.info i{
    color: white;
    text-shadow: 1px 2px 3px black;
    margin-right: 0.25rem;
    transition: all ease 500ms;
}

.restaurant .name, .full_review .name{
    font-weight: bold;
    text-align: center;
}

a#view_menu{
    background: black;
    text-decoration: none;
    color: white;
    font-weight: bold;
    cursor: pointer;
    font-family: 'Bitter', 'Poppins', Georgia, 'Times New Roman', Times, serif;
    border: none;
    margin-top: 0.5rem;
    padding: 0.5rem 0.5rem;
    text-align: center;
    border-radius: 0.5rem;
    transition: all ease 100ms;
}

a#view_menu:hover{
    background: #222;
}

.restaurant img:hover{
    filter: blur(1px) grayscale(45%);
}

.restaurant.hovered img{
    filter: blur(1px) grayscale(45%);
}

.restaurant img{
    width: 240px;
    height: 320px;
    border-radius: 0.25rem;
    border: solid 2px black;
}

.review_list li{
    display: flex;
    align-items: center;
}

li i{
    color: black;
    text-shadow: none;
    margin-right: 0.5rem;
}

.full_review{
    text-align: left;
    position: absolute;
    left: 0;
    top: 5rem;
    border: solid 2px black;
    width: 100%;
    height: fit-content;
    z-index: 3;
    background: rgba(255, 228, 196, 0.98);
    display: none;
    column-gap: 2rem;
    padding: 3rem 1rem 3rem 1rem;
    cursor: auto;
    transition: opacity ease 1s;
    border-radius: 0.5rem;
}

.full_review i{
    display: absolute;
    top: 0;
    right: 0;
}

.full_review .name{
    font-size: 1.25rem;
}

.full_review div:first-of-type{
    display: flex;
    flex-direction: column;
    row-gap: 0.5rem;
}

.full_review div:first-of-type{
    display: flex;
    flex-direction: column;
    row-gap: 0.5rem;
}

.full_review img{
    width: 150px;
    height: 150px;
    border-radius: 0.25rem;
}

.full_review .review{
    position: relative;
    display: flex;
    flex-direction: column;
    row-gap: 1.5rem;
}

.full_review .review div{
    display: flex;
    flex-direction: column;
    row-gap: 0.75rem;
}

.full_review h4{
    font-size: 1.1rem;
}

.rating{
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 0.25rem;
    flex-wrap: wrap;
}

.bad{
    color: red;
    font-weight: bold;
}

.good{
    color: green;
    font-weight: bold;
}

.average{
    color: #ff6517;
    font-weight: bold;
}

.box.bad{
    background-color: red;
}

.box.good{
    background-color: green;
}

.box.average{
    background-color: #ff6517;
}

i{
    color: #ffef00;
    text-shadow: 1px 2px 3px black;
}

#color-coding span{
    width: 15px;
    height: 15px;
}

#color-coding div{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 2rem;
    align-items: center;
}

#color-coding div div{
    display: flex;
    column-gap: 1rem;
}

footer{
    display: flex;
    flex-direction: column;
    row-gap: 1rem;
    justify-content: center;
    position: relative;
    background: rgba(255, 228, 196, 0.5);
    padding: 2rem 2rem 0.5rem 2rem;
    text-align: right;
    margin: 5rem 0 0 0;
    border-top: 2px solid black;
}

footer .content-container{
    display: flex;
    flex-wrap: wrap;
    row-gap: 2rem;
    justify-content: space-between;
    padding-bottom: 3rem;
}

.content-container div{
    text-align: left;
}

.content-container > div:nth-of-type(1){
    order: 1;
}

.content-container > div:nth-of-type(2){
    order: 3;
}

.content-container > div:nth-of-type(3){
    order: 2;
}

.blog-posts{
    display: flex;
    flex-direction: column;
    align-items: start;
    row-gap: 1rem;
}

.blog-posts img{
    width: 75px;
    border-radius: 0.2rem;
}

.blog-posts a{
    display: flex;
    column-gap: 1rem;
    text-align: left;
    margin: 0 0 0 0.25rem;
    transition: all ease 0.1s;
}

.blog-posts a:hover img{
    filter: grayscale(35%);
}

.blog-posts a h4{
    margin: 0.25rem 0 0.5rem 0;
}

footer h3{
    font-family: 'Poppins', Georgia, 'Times New Roman', Times, serif;
    text-decoration: underline;
    text-underline-offset: 0.2rem;
    user-select: none;
}

footer #name{
    margin-right: 2rem;
}

footer .links{
    display: flex;
    row-gap: 0.25rem;
    flex-direction: column;
}

footer .links h3{
    margin-bottom: 0.5rem;
}
footer .links a:hover{
    color: red;
}

footer .socials{
    display: flex;
    flex-direction: column;
    row-gap: 0.5rem;
}

footer i{
    color: black;
    text-shadow: none;
    margin-left: 1rem;
}

footer a:hover, footer a:hover i{
    color: #ff6517;
}

footer a{
    font-family: 'Poppins', Georgia, 'Times New Roman', Times, serif;
    text-decoration: none;
    font-size: 0.85rem;
    cursor: pointer;
    padding: 0 0 0 0.25rem;
}

#to_top{
    text-align: center;
    text-decoration: underline;
}

#to_top:hover i{
    color: #ff6517;
}

small{
    text-align: center;
    font-size: 0.70rem;
    font-family: 'Poppins', Georgia, 'Times New Roman', Times, serif;
    user-select: none;
}

@media screen and (max-width: 550px) {

    #brand_name{
        width: 60%;
    }

    #desktop-nav{
        display: none;
    }

    #side-nav{
        position: fixed;
        top: 0;
        bottom: 0;
        width: 70%;
        display: flex;
        flex-direction: column;
        background: bisque;
        border-right: solid 2px black;
        border-top-right-radius: 0.25rem;
        border-top: solid 2px black;
        z-index: 17 !important;
        padding: 3rem 0 0 0;
        transition: all ease 0.5s;
        box-shadow: 0 1px 15px rgba(0,0,0,0.12), 0 1px 2px whitesmoke;
    }

    #side-nav a{
        font-family: 'Poppins', sans-serif;
        text-decoration: none;
        font-weight: bold;
        padding: 0.75rem 2rem;
        border-bottom: solid 1px black;
    }

    #side-nav a:hover{
        background: rgb(214, 191, 164);
    }

    #side-nav i{
        position: absolute;
        top: 1.5rem;
        color: black;
        right: 1rem;
        cursor: pointer;
    }

    #side-nav.hide{
        width: 0;
        border: none;
    }

    #side-nav.hide a{
        display: none;
    }

    #mobile-nav-btn{
        display: unset;
    }

    #mobile-nav-btn i{
        color: black;
        cursor: pointer;
        text-shadow: none;
    }
    
    nav{
        padding: 0 0.5rem 0 1rem;
    }

    nav > div{
        column-gap: 0.75rem;
    }

    .full_review{
        column-gap: 1.5rem;
    }

    .restaurant{
        transform: translateY(150px);
        transition-delay: 0s !important;
    }

    .restaurant.restaurant.show-restaurant{
        translate: translateY(0);
    }

    .rating{
        flex-direction: column;
        row-gap: 0.5rem;
    }

    .rating_stars{
        display: flex;
    }

    .full_review div:first-of-type{
        display: flex;
        align-items: center;
    }

    .full_review img{
        width: 100%;
        height: 90px;
    }

    .content-container > div:nth-of-type(2){
        order: 2;
    }
    
    .content-container > div:nth-of-type(3){
        order: 3;
    }

    footer a{
        padding: 0;
    }
}

@media screen and (max-width: 300px) {
    #brand_name{
        width: 95%;
    }

    .full_review{
        column-gap: 0.75rem;
    }
}


/* About Page */

#intro h1{
    margin-bottom: 0.75rem;
}

#intro #my-image-container{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 0.5rem;
    justify-content: center;
    margin: 4rem auto 2rem auto;
}

#intro #my-image-container img{
    width: 60%;
    overflow: hidden;
    transition: all ease 0.5s;
    border-radius: 1rem;
    box-shadow: 4px 5px 5px rgba(0,0,0,0.12), 0 1px 2px gray;
}

#intro #my-image-container i{
    color: #ff6517;
    text-shadow: none;
    margin-right: 0.25rem;
}

#intro #my-image-container span{
    font-size: 0.9rem;
}

.about p{
    margin-bottom: 0.5rem;
}

.contact > div{
    padding: 1.5rem 1rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    row-gap: 1.25rem;
}

.contact p{
    margin-top: 1rem;
    text-indent: 0.5rem;
}

.contact > div > div{
    display: flex;
    align-items: center;
    column-gap: 1rem;
}

.contact span{
    font-size: 1.05rem;
}

.contact i{
    color: black;
    text-shadow: none;
}

@media screen and (max-width: 550px) {
    #intro #my-image-container img{
        width: 90%;
    }
}



/* Gallery Page */

#places{
    margin-top: 2rem;
    padding: 2rem 0;
    box-shadow: 5px 7px 15px #d3d3d3;
    border-radius: 0.5rem;
}

.places-container{
    display: flex;
    padding: 0 1.5rem;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
}

.place{
    position: relative;
    text-align: center;
    flex: 25%;
    height: auto;
}

.places-container img{
    width: 100%;
    height: auto;
    border: solid 2px black;
    border-radius: 0.25rem;
}

.place.check_rating img{
    filter: grayscale(50%);
}

.place.eating, .place.chinese{
    flex-grow: 2;
}

.place.final{
    flex-grow: 0;
}

.place > div{
    text-align: center;
}

.place div span{
    font-size: 0.9rem;
}

.place div span i{
    color: #ff6517;
    text-shadow: none;
}

.place .my_rating{
    display: none;
}

.place.check_rating .my_rating{
    position: absolute;
    display: unset;
    transition: all ease 300ms;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.my_rating_mobile{
    display: none;
}

@media screen and (max-width: 1000px){
    .places-container{
        gap: 1rem;
    }

    .place{
        flex: 45%;
    }
}

@media screen and (max-width: 550px){
    .my_rating_mobile{
        display: unset
    }

    .place.check_rating .my_rating{
        display: none;
    }

    .place.check_rating img{
        filter: none;
    }

    .places-container{
        gap: 1rem;
    }

    .place{
        flex: 90%;
    }

    .place.eating, .place.chinese{
        flex-grow: calc(1/4);
    }

    .place.final{
        flex: 1/2;
    }
}

/* Contact Section */

#contact-info{
    margin-top: 2rem;
    width: 90%;
    background-color: transparent;
    display: flex;
    flex-wrap: wrap;
    border: solid 2px black;
}

.my-info{
    width: 40%;
    background: bisque;
    padding: 3rem 1.5rem 5rem 2.5rem;
    display: flex;
    flex-direction: column;
    row-gap: 1rem;
}

.my-info i{
    color: black;
    text-shadow: none;
}

.contact-objects{
    display: flex;
    flex-direction: column;
    row-gap: 1.5rem;
    margin-top: 1rem;
}

.contact-objects a{
    text-decoration: none;
}

.contact-obj i{
    border: solid 1px #ff6517;
    border-radius: 50%;
    padding: 1.5rem 0.8rem;
}

.contact-obj.address i{
    border-radius: 50%;
    padding: 1.5rem 1rem;
}

.contact-obj{
    display: flex;
    column-gap: 0.5rem;
    align-items: center;
}

#message_form{
    padding: 3rem 1.5rem 5rem 2.5rem;
    display: flex;
    flex-direction: column;
    row-gap: 2rem;
    width: 60%;
    background-color: white;
    border-left: solid 2px black;
}

.inputs{
    display: flex;
    flex-direction: column;
    row-gap: 1.5rem;
}

.inputs div{
    display: flex;
    flex-direction: column;
    row-gap: 1rem;
}

.inputs label{
    font-size: 0.80rem;
    font-weight: bold;
    font-family: sans-serif;
}

.inputs > span, .inputs div{
    width: 100%;
}

.inputs span{
    display: flex;
    column-gap: 2rem;
}

input, textarea{
    padding: 0.25rem 0;
    font-family: sans-serif;
    border-bottom: solid 1px #d0d0d0;
    background: white;
    border-top: 0;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
}

textarea{
    resize: none;
}

input:focus, textarea:focus{
    outline: none;
    background: rgba(255, 228, 196, 0.5);
    border-bottom: solid 2px black ;
}

input::placeholder, textarea::placeholder{
    font-size: 0.9rem;
}

form{
    display: flex;
    flex-direction: column;
    row-gap: 1rem;
}

#send_btn{
    background: rgba(255, 228, 196, 0.75);
    border: none;
    width: fit-content;
    color: black;
    padding:  0.9rem 1rem;
    border: solid 1.5px black;
    border-radius: 0.25rem;
    font-size: 0.9rem;
    font-weight: bold;
    font-family: sans-serif;
    text-decoration: none;
    cursor: pointer;
    transition: all ease 500ms;
}

#send_btn:hover{
    background: rgb(255, 228, 196);
}

@media screen and (max-width: 1000px) {
    #contact-info{
        row-gap: 2rem;
        flex-direction: column-reverse;
        border: none;
    }
    
    .my-info{
        padding: 3rem 1.5rem 5rem 1.5rem;
        width: 100%;
        border-radius: 0.25rem;
    }

    #message_form{
        width: 100%;
        padding: 3rem 1.5rem 5rem 1.5rem;
        border: solid 2px black;
        border-radius: 0.25rem;
    }

    .inputs span{
        flex-direction: column;
        row-gap: 1.5rem;
    }
}

@media screen and (max-width: 300px) {

    .contact-obj > span{
        font-size: 0.8rem;
    }

    .my-info{
        padding: 3rem 0.5rem 5rem 0.5rem;
        width: 100%;
        border-radius: 0.25rem;
    }

    #message_form{
        width: 100%;
        padding: 3rem 0.5rem 5rem 0.5rem;
        border: solid 2px black;
        border-radius: 0.25rem;
    }
}