/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* end of CSS Reset */
@media screen and (min-width: 641px){
    html{
        font-size: calc(112.5% + 0.25vw);
    }

    body{
        display: flex;
        flex-direction: column;
        min-height: 100vh;
        width: 100%;
        font-family: 'Varela Round', sans-serif;
    }

    header{
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        background-color: black;
        position: sticky;
        top: 0;
        z-index: 1;
    }

    #title{
        display: flex;
        margin: 5px 10px;
    }

    #logo{
        width: 10vw;
    }

    /* Main menu */
    #icon{
        display: none;
    }

    #menu{
        margin: 5px 10px;
    }

    #menu ul{
        display: flex;
        list-style: none;
        justify-content: space-evenly;
        align-items: center;
    }

    #menu li{
        text-align: center;
        margin: 0 15px;
    }

    #menu a{
        color: white;
        text-decoration: none;
        overflow: hidden;
        position: relative;
        display: block;
    }

    #menu a::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 0.1em;
		background-color: white;
		opacity: 0;
  		transition: opacity 300ms, transform 300ms;
		transform: translate3d(-100%, 0, 0);
	}

	#menu a:hover::after, #menu a:focus::after {
  		opacity: 1;
  		transform: translate3d(0, 0, 0);
	}
    
    /* Banner */
    #banner{
        width: 100%;
        position: relative;
    }

    @keyframes fadeIn {
		0% { opacity: 0; }
		100% { opacity: 1; }
	}

    #banner h1{
		text-align: center;
		font-size: 5em;
		font-weight: bold;
		color: white;
		position: absolute;
		width: 100%;
		top: 35%;
        animation: fadeIn 2s;
	}

    #banner img{
        width: 100%;
    }

    #banner #media{
		position: absolute;
		bottom: 10%;
        width: 100%;
        display: flex;
        justify-content: center;
    }

    #banner #media a{
        font-size: 3em;
		color: white;
    }
    
    /* Home page */
    #mainHome{
        display: flex;
        flex-direction: column;
    }

    #intro{
        display: flex; 
        flex-direction: column;
    }

    #intro h2{
        text-align: center;
        font-weight: bold;
        font-size: 2em;
        margin: 5px 0;
    }

    #intro .box{
        display: flex;
        justify-content: space-evenly;
        margin: 10px 0;
    }

    #intro .item{
        display: flex;
        justify-content: center;
    }

    #intro img{
        width: 30vw;
    } 

    #intro #map{
        width: 30vw;
        height: 30vw;
    }

    #intro p{
        width: 50vw;
        line-height: 1.25;
    }

    /* Menu Page */
    .cook{
        display: flex; 
        flex-direction: column;
    }

    .cook h2{
        text-align: center;
        font-weight: bold;
        font-size: 2em;
        margin: 5px 0;
    }

    .cook h3{
        text-align: center;
        font-weight: bold;
        font-size: 1.5em;
        margin: 5px 0;
    }

    .cook .box{
        display: flex;
        justify-content: space-evenly;
        margin: 10px 0;
    }

    .cook .item{
        display: flex;
        align-items: center;
        flex-direction: column;
    }

    .cook img{
        width: 30vw;
    } 

    .cook p{
        width: 50vw;
        line-height: 1.25;
    }

    /* Menu */
    #images{
        display: grid;
        grid-template: 1fr 1fr 1fr 1fr / 50% 50%;
        margin: 0 10px;
    }

    #breakfast{
        grid-row: 1 / 2;
        grid-column: 1 / 2;
        margin: 5px auto;
        width: 40vw;
    }

    #lunch{
        grid-row: 1 / 2;
        grid-column: 2 / 3;
        margin: 5px auto;
        width: 40vw;
    }

    #sandwich{
        grid-row: 2 / 3;
        grid-column: 1 / 2;
        margin: 5px auto;
        width: 40vw;
    }

    #special{
        grid-row: 2 / 3;
        grid-column: 2 / 3;
        margin: 5px auto;
        width: 40vw;
    }

    #dinner{
        grid-row: 3 / 4;
        grid-column: 1 / 2;
        margin: 5px auto;
        width: 40vw;
    }

    #pizza{
        grid-row: 3 / 4;
        grid-column: 2 / 3;
        margin: 5px auto;
        width: 40vw;
    }

    #half{
        display: flex;
        justify-content: center;
        grid-row: 4 / 5;
        grid-column: 1 / span 3;
    }

    #half img{
        margin: 5px auto;
        width: 20vw;
    }

    /* Attractions Page */
    #attractions{
        display: flex; 
        flex-direction: column;
    }

    #attractions h2{
        text-align: center;
        font-weight: bold;
        font-size: 2em;
        margin: 5px 0;
    }

    #attractions h3{
        text-align: center;
        font-weight: bold;
        font-size: 1.5em;
        margin: 5px 0;
    }

    #attractions .box{
        display: flex;
        justify-content: space-evenly;
        margin: 10px 0;
    }

    #attractions .item{
        display: flex;
        justify-content: center;
    }

    #attractions img{
        width: 30vw;
    } 

    #attractions p, #attractions ul{
        width: 50vw;
        line-height: 1.25;
    }

    #attractions #rates{
        text-align: right;
    }

    /* Events */
    #events{
        display: flex; 
        flex-direction: column;
    }

    #events h2{
        text-align: center;
        font-weight: bold;
        font-size: 2em;
        margin: 5px 0;
    }

    #events .box{
        display: flex;
        justify-content: space-evenly;
        margin: 10px 0;
    }

    #events .item{
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    #events img{
        width: 30vw;
    } 

    #events p{
        width: 50vw;
        line-height: 1.25;
    }

    #events a{
        font-size: 1.5em;
        text-align: center;
        background-color: black;
        border-radius: 25px;
        color: white;
        text-decoration: none;
        margin: 20px 0;
        padding: 10px;
    }

    /* Contact Page */
	#mainContact{
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		width: 100%;
		line-height: 1.25;
	}

	#form{
		width: 35vw;
		background-color: whitesmoke;
		margin: 10px 0 5px 0;
		display: flex;
		flex-direction: column;
	}

	#form h2{
		width: 100%;
		text-align: center;
		font-size: 3em;
		padding: 10px 0;
		background-color: black; 
		color: white;
	}

	#form p{
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		margin: 10px 0;
	}

	#form label{
		font-size: 1.5em;
		margin: 0 10px;
	}

	#form textarea, #form input{
		width: 100%;
		max-height: 45px;
		font-size: 1.25em;
		margin: 0 10px;
	}

	#form #address{
        display: none;
	}

	#form #submitButton input{
		background-color: black;
		color: white;
	}
	
	#form span{
		color: darkred;
	}

    /* PHP Submission Page */
	#mainSubmit{
		display: flex;
		justify-content: center;
		flex-direction: column;
		width: 100%;
		font-family: Arial, Helvetica, sans-serif;
		line-height: 1.25;
	}

	#mainSubmit h2{
		text-align: center;
		font-size: 2em;
		margin: 20px 0;
	}

    /* Footer */
    footer{
        width: 100%;
        background-color: black;
        color: white;
        margin-top: auto;
    }

    footer ul{
        list-style: none;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    footer li{
        text-align: center;
        margin: 5px 0;
    }
}

@media screen and (min-width: 1px) and (max-width: 641px){
    html{
        font-size: calc(100% + 0.25vw);
    }

    body{
        display: flex;
        flex-direction: column;
        min-height: 100vh;
        width: 100%;
        font-family: 'Varela Round', sans-serif;
    }

    header{
        display: flex;
        flex-direction: column;
        width: 100%;
        background-color: black;
        position: sticky;
        top: 0;
        z-index: 1;
    }

    #title{
        display: flex;
        justify-content: space-between;
        margin: 5px 10px;
    }

    #logo{
        width: 20vw;
    }

    /* Main Menu */
    #icon{
        display: flex;
        justify-content: center;
        align-items: center;
        color: white;
        font-size: 3em;
        text-decoration: none;
    }

    #menu{
        background-color: white;
        width: 100%;
        display: none;
    }

    #menu ul{
        width: 100%;
        display: flex;
        flex-direction: column;
        list-style: none;
        justify-content: space-evenly;
        align-items: center;
    }

    #menu li{
        text-align: center;
        margin: 0 15px;
        margin: 5px 0;
    }

    #menu a{
        color: black;
        text-decoration: none;
        overflow: hidden;
        position: relative;
        display: block;
    }

    #menu a::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 0.1em;
		background-color: white;
		opacity: 0;
  		transition: opacity 300ms, transform 300ms;
		transform: translate3d(-100%, 0, 0);
	}

	#menu a:hover::after, #menu a:focus::after {
  		opacity: 1;
  		transform: translate3d(0, 0, 0);
	}

    /* Banner */
    #banner{
        width: 100%;
        position: relative;
    }

    @keyframes fadeIn {
		0% { opacity: 0; }
		100% { opacity: 1; }
	}

    #banner h1{
		text-align: center;
		font-size: 4em;
		font-weight: bold;
		color: white;
		position: absolute;
		width: 100%;
		top: 35%;
        animation: fadeIn 2s;
	}

    #banner img{
        width: 100%;
    }

    #banner #media{
		position: absolute;
		bottom: 10%;
        width: 100%;
        display: flex;
        justify-content: center;
    }

    #banner #media a{
        font-size: 2em;
		color: white;
    }

    /* Home page */
    #mainHome{
        display: flex;
        flex-direction: column;
    }

    #intro{
        display: flex; 
        flex-direction: column;
    }

    #intro h2{
        text-align: center;
        font-weight: bold;
        font-size: 2em;
        margin: 5px 0;
    }

    #intro .box{
        display: flex;
        flex-direction: column;
        margin: 10px 0;
    }

    #intro .item{
        display: flex;
        justify-content: center;
    }

    #intro img{
        width: 60vw;
    } 

    #intro #map{
        width: 60vw;
        height: 60vw;
    }

    #intro p{
        width: 60vw;
        line-height: 1.25;
        margin: 5px 0;
    }

    #intro #restaurant{
        flex-direction: column-reverse;
    }

    /* Menu Page */
    .cook{
        display: flex; 
        flex-direction: column;
    }

    .cook h2{
        text-align: center;
        font-weight: bold;
        font-size: 2em;
        margin: 5px 0;
    }

    .cook h3{
        text-align: center;
        font-weight: bold;
        font-size: 1.5em;
        margin: 5px 0;
    }

    .cook .box{
        display: flex;
        flex-direction: column;
        align-items: center;
        margin: 10px 5px;
    }

    .cook .item{
        display: flex;
        align-items: center;
        flex-direction: column;
    }

    .cook img{
        width: 60vw;
    } 

    .cook p{
        width: 60vw;
        line-height: 1.25;
    }
    
    /* Menu */
    #images{
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    #images img{
        width: 70vw;
        margin: 5px 0;
    }

    #half img{
        display: flex;
        width: 40vw;
        margin: 5px;
    }

    /* Attractions Page */
    #attractions{
        display: flex; 
        flex-direction: column;
    }

    #attractions h2{
        text-align: center;
        font-weight: bold;
        font-size: 2em;
        margin: 5px 0;
    }

    #attractions h3{
        text-align: center;
        font-weight: bold;
        font-size: 1.5em;
        margin: 5px 0;
    }

    #attractions .box{
        display: flex;
        flex-direction: column;
        align-items: center;
        margin: 10px 0;
    }

    #attractions .item{
        display: flex;
        justify-content: center;
    }

    #attractions img{
        width: 60vw;
    } 

    #attractions p, #attractions ul{
        width: 60vw;
        line-height: 1.25;
    }

    /* Events */
    #events{
        display: flex; 
        flex-direction: column;
    }

    #events h2{
        text-align: center;
        font-weight: bold;
        font-size: 2em;
        margin: 5px 0;
    }

    #events .box{
        display: flex;
        flex-direction: column-reverse;
        margin: 10px 0;
    }

    #events .item{
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    #events img{
        width: 60vw;
    } 

    #events p{
        width: 60vw;
        line-height: 1.25;
        margin: 5px 0;
    }

    #events a{
        font-size: 1.5em;
        text-align: center;
        background-color: black;
        border-radius: 25px;
        color: white;
        text-decoration: none;
        margin: 20px 0;
        padding: 10px;
    }

    /* Contact Page */
	#mainContact{
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		width: 100%;
		line-height: 1.25;
	}

	#form{
		width: 60vw;
		background-color: whitesmoke;
		margin: 10px 0 5px 0;
		display: flex;
		flex-direction: column;
	}

	#form h2{
		width: 100%;
		text-align: center;
		font-size: 3em;
		padding: 10px 0;
		background-color: black; 
		color: white;
	}

	#form p{
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		margin: 10px 0;
	}

	#form label{
		font-size: 1.5em;
		margin: 0 10px;
	}

	#form textarea, #form input{
		width: 100%;
		max-height: 45px;
		font-size: 1.25em;
		margin: 0 10px;
	}

	#form #address{
		display: none;
	}

	#form #submitButton input{
		background-color: black;
		color: white;
	}
	
	#form span{
		color: darkred;
	}

    /* PHP Submission Page */
	#mainSubmit{
		display: flex;
		justify-content: center;
		flex-direction: column;
		width: 100%;
		font-family: Arial, Helvetica, sans-serif;
		line-height: 1.25;
	}

	#mainSubmit h2{
		text-align: center;
		font-size: 3em;
		margin: 20px 0;
	}

    /* Footer */
    footer{
        width: 100%;
        background-color: black;
        color: white;
        margin-top: auto;
    }

    footer ul{
        list-style: none;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    footer li{
        text-align: center;
        margin: 5px 0;
    }
}

