* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-size: 16px;
	line-height: normal;
}

html {
	color: #473020;
	font-family: Helvetica, Arial, sans-serif;
}

#wrapper {
	/* main grid */
	display: grid;
	grid-template-areas:
		"header"
		"main"
		"footer";
	grid-template-columns: 1fr;
	grid-template-rows: 50px minmax(80vh, auto) minmax(300px, auto);
}

/* ******* HEADER ******* */
header {
	grid-area: header;
	height: 50px;
	width: 100%;
	padding: 0 2%;
	background-color: rgba(38, 138, 72, 0.97);
	box-shadow: 0 1px 10px rgba(0, 0, 0, 0.5);

	/* sub-grid */
  display: grid;
  grid-template-areas:
		"logo menu";
	grid-template-columns: 1fr 3fr;
	grid-template-rows: 1fr;
	align-items: center;
}

#logo {
	grid-area: logo;
}

#main-menu {
	grid-area: menu;
	width: 100%;
	height: 100%;
}

li {
	list-style: none;
}

a {
	text-decoration: none;
}

.button-link, button {
	border-radius: 4px;
	padding: 7px 15px;
	border: 2px solid #f07535;
	background-color: #f07535;
	color: #ffffff;
	display: inline-block;
}

a.button-link:hover {
	background-color: #ffffff;
	border-color: #ffffff;
}

.button-link:active, button:active {
	transform: translateY(2px);
}

#main-menu ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	height: 100%;
}

#main-menu li {
	margin: 0 1%;
}

#main-menu a {
	color: #ffffff;
	padding: 7px 15px;
}

#main-menu a:hover {
	border-bottom: 3px solid #f07535;
}

#main-menu .button-link:hover {
	border-color: #ffffff;
	color: #268a48;
}

/* ******* MAIN CONTENT ******* */
main {
	grid-area: main;
	padding: 5%;
	min-height: 80vh;
}

main > section {
  display: flex;
	flex-wrap: wrap;
}

#home-main {
	padding: 0;

	/* sub-grid */
	display: grid;
	grid-template-areas:
		"hero"
		"features";
	grid-template-columns: 1fr;
	grid-template-rows: minmax(90vh, auto) minmax(400px, auto);
}

#home-main section {
	padding: 5%;
	flex-direction: column;
  align-items: flex-start;
	justify-content: center;
}

h1 {
	font-size: 4rem;
	font-family: 'Trebuchet MS', 'Lucida Sans', Arial, sans-serif;
	text-transform: capitalize;
}

/* ******* HOME PAGE ******* */
#hero {
	grid-area: hero;
	min-height: 90vh;

	background: url("../images/hero.webp");
	background-size: cover ;
	background-position: right;
}

#hero h1 {
	color: #ffffff;
	margin-bottom: 5px;
}

#hero p {
	width: 55%;
	color: #ffffff;
	font-size: 1.3rem;
	line-height: 2rem;
	margin-bottom: 30px;
}

#hero .button-link {
	background-color: transparent;
	border-color: #ffffff;
}

#hero .button-link:hover {
	border-color: #f07535;
	background-color: #f07535;
}

section#features {
	grid-area: features;
	min-height: 500px;

	justify-content: flex-start;
	align-items: center;
	text-align: center;
	background-color: #ffffff;
}

#features p {
	line-height: 1.5rem;
	margin-bottom: 10px;
}

#features strong {
	font-size: 1.3rem;
	color: #268a48;
}

#features ul {
	margin: 50px 0;
	width: 100%;
	display: flex;
	justify-content: center;
	gap: 5%;
}

#features ul li {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	width: 152px;
}

#features h2 {
	font-size: 2rem;
	margin-bottom: 30px;
	color: #efede7;
}

#features .button-link {
	background-color: #268a48;
	border-color: #268a48;
	margin-bottom: 30px;
}

#features .button-link:hover {
	border-color: #f07535;
	background-color: #f07535;
}

.page h2 {
	color: #268a48;
	font-size: 2rem;
	margin: 30px 0 10px 0;
}

.page h2:first-of-type {
	margin-top: 0;
}

.page ul {
	margin-left: 5%;
}

.page li {
	list-style: disc;
	line-height: 1.3rem;
	margin-bottom: 7px;
}

.page p {
	line-height: 1.3rem;
	margin-left: 5%;
}

/* ***** ONE COL PAGES ****** */
.page {
	/* sub-grid (1 column) */
	display: grid;
	grid-template-areas:
		"heading"
		"contents";
	grid-template-columns: 1fr;
	grid-template-rows: minmax(80px, auto) minmax(400px, auto);
	gap: 20px;
}

.page h1 {
	grid-area: heading;
	min-height: 80px;
	color: #f07535;
}

.contents  {
	grid-area: contents;
	min-height: 400px;
	width: 100%;
}

/* ***** TWO COL PAGES ****** */
.twocols {
	/* sub-grid (2 columns) */
	grid-template-areas:
		"heading heading"
		"main-left main-right";
	grid-template-columns: 2fr 1fr;
	column-gap: 5%;
}

.twocols .contents {
	grid-area: main-left;
}

aside {
	grid-area: main-right;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

aside img {
	width: 333px;
	height: auto;
}

/* ***** ABOUT PAGE ****** */
#about-main.page ul {
	width: 100%;
}

/* ***** ROOMS PAGE ****** */
#rooms-main .contents {
	flex-direction: column;
	gap: 50px;
}

table, tbody, thead, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
	line-height: inherit;
  font: inherit;
  vertical-align: middle;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
	text-align: center;
	width: 100%;
}

th, td {
	border: 1px solid #332216;
	padding: 10px 3px;
}

thead th {
	padding: 25px 15px;
	font-weight: bold;
	background-color: #268a48;
	color: #ffffff;
}

tbody th {
	width: 65%;
	word-wrap: break-word;
}

tr:nth-child(even) {
	background-color: rgba(38, 138, 71, 0.20);
}

/* ***** CONTACT PAGE ****** */
#contact-main.twocols {
	grid-template-columns: 1fr 1fr;
	column-gap: 0;
}

#contact-main form p {
	margin-left: 0;
	margin-bottom: 30px;
	padding: 0;
}

form {
	padding: 40px 5%;
	width: 100%;
	background-color: #efede7;
}

label {
	text-transform: uppercase;
	font-weight: bold;
	display: block;
	margin-bottom: 10px;
}

input, textarea {
	border: none;
	border-radius: 0;
	padding: 10px;
	width: 100%;
	resize: vertical;
	font-size: 1rem;
	margin-bottom: 30px;
}

textarea {
	min-height: 100px;
	height: 200px;
}

input:focus, textarea:focus {
	outline: none;
	border: 2px solid #f07535;
}

form button {
	width: 100%;
}

form button:hover {
	background-color: #473020;
	border-color: #473020;
	cursor: pointer;
}

#contact-main aside {
	padding: 40px 20%;
	background-color: #268a48;
	text-align: center;
	gap: 0;
}

#contact-main aside img {
	max-width: 100px;
	height: auto;
	margin-bottom: 20px;
}

#contact-main .button-link:hover {
	color: #268a48;
}

#contact-main aside span,
#contact-main aside p,
#contact-main aside a:not(.button-link) {
	line-height: 1.7rem;
	color: #ffffff;
}

#contact-main aside span {
	font-weight: bold;
}

#contact-main aside p {
	margin: 0 0 20px 0;
	text-align: center;
}

#contact-main address p:last-child {
	margin: 0;
}


#contact-main address a {
	display: block;
}

#contact-main aside a:hover {
	color: #473020;
}

/* ***** PHOTO GALLERY PAGE ****** */
#gallery-main .contents {
	row-gap: 30px;
	column-gap: 2%;
}

#gallery-main img {
	max-width: 32%;
	flex-grow: 1;
	height: auto;
	display: block;
	background-color: #efede7;
}

/* ******* FOOTER ******* */
footer {
	grid-area: footer;

	/* sub-grid */
	display: grid;
	grid-template-areas:
		"footercol1 footercol2 footercol3"
		"copyright copyright copyright";
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: auto 65px;
	gap: 10px;

	background-color: #473020;
	padding: 5% 5% 0 5%;
}

footer li {
	padding: 5px 0;
}

footer h2 {
	font-size: 2rem;
	margin-bottom: 10px;
	font-family: 'Trebuchet MS', 'Lucida Sans', Arial, sans-serif;
}

footer p {
	line-height: 1.7rem;
}

footer h2, footer p, footer a {
	color: #ffffff;
}

footer a:hover {
	color: #f07535;
}

address {
	font-style: normal;
}

footer img {
	margin: 10px 0 30px 0;
	width: 100px;
	height: 100px;
}

#footercol1 {
	grid-area: footercol1;
	padding-right: 10%;
	border-right: 1px solid #332216;
}

#footercol1 p {
	max-width: 330px;
}

footer .button-link {
	background-color: #f07535;
	border-color: #f07535;
	margin-top: 10px;
}

footer .button-link:hover {
	background-color: #efede7;
	border-color: #efede7;
}

footer .button-link:hover {
	color: #473020;
}

#footercol2 {
	grid-area: footercol2;
	padding: 0 10%;
	text-align: center;
	border-right: 1px solid #332216;
}

#footercol3 {
	grid-area: footercol3;
	padding-left: 10%;
	text-align: right;
}

#copyright {
	grid-area: copyright;
	height: 65px;
	border-top: 1px solid #332216;
	

	/* sub-grid */
	display: grid;
	grid-template-areas:
		"copyright1 copyright2";
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: 1fr;
	align-items: center;
}

#copyright section {
	grid-area: copyright1;
}

#copyright > p {
	grid-area: copyright2;
	text-align: right;
}

#copyright p, #copyright a {
	margin: 0;
	font-size: 0.85rem;
	line-height: 1.3rem;
}

#mobile-menu {
	display: none;
	position: fixed;
	bottom: 0;
	width: 100%;
	height: 75px;
	border-top: 1px solid #ffffff;
}

#mobile-menu ul {
	display: flex;
	background-color: #473020;
	width: 100%;
	height: 75px;
	padding: 0 5%;
	justify-content: stretch;
}

#mobile-menu li {
	width: 20%;
	border-left: 1px solid #332216;
}

#mobile-menu li:last-of-type {
	border-right: 1px solid #332216;
}

#mobile-menu a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	color: #f07535;
	text-transform: uppercase;
}

#mobile-menu figure {
	display: flex;
	flex-direction: column;
	align-items: center;
}

#mobile-menu a img {
	margin-bottom: 5px;
}

#mobile-menu a figcaption {
	font-size: 0.8rem;
}


#mobile-menu li:active {
  box-shadow: 7px 0 8px -4px #332216, -7px 0 8px -4px #332216;
	transform: translateY(2px);
}


/* ***** MEDIA QUERIES ***** */
@media screen and (max-width: 1000px) {
	body {
		overflow-x: hidden;
	}

	#gallery-main img {
		max-width: 48%;
	}

	.twocols.wide {
		grid-template-areas:
			"heading"
			"main-left"
			"main-right";
		grid-template-columns: 1fr;
		grid-template-rows: minmax(55px, auto) minmax(400px, auto) minmax(500px, auto);
		gap: 30px;
	}

	aside img {
		width: 100%;
		height: auto;
	}
}

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

	main {
		margin-top: -50px;
	}

	h1 {
		font-size: 2.8rem;
	}

	#hero {
		background: url("../images/hero-mobile.webp");
		background-size: cover ;
		background-position: right;
	}

	#features ul {
		margin: 20px 0 35px 0;
		flex-wrap: wrap;
		row-gap: 40px;
	}

	#features ul li {
		width: 40%;
	}

	.page {
		grid-template-rows: minmax(55px, auto) minmax(400px, auto);
	}

	.page h1 {
		min-height: 55px;
	}

	.page h2 {
		font-size: 1.8rem;
	}

	.twocols {
		grid-template-areas:
			"heading"
			"main-left"
			"main-right";
		grid-template-columns: 1fr;
		grid-template-rows: minmax(55px, auto) minmax(400px, auto) minmax(500px, auto);
		gap: 30px;
	}

	#contact-main.twocols {
		grid-template-columns: unset;
	}

	#gallery-main img {
		max-width: 100%;
	}

	footer {
		grid-template-areas:
			"footercol1"
			"footercol3"
			"footercol2"
			"copyright";
		grid-template-columns: 1fr;
		grid-template-rows: repeat(3, auto) 160px;
		gap: 30px;
	}

	footer img {
		margin: 0;
		margin-top: 10px;
	}

	#footercol1, #footercol2, #footercol3 {
		text-align: center;
		border: none;
		padding: 0;
	}

	#footercol1 p {
		max-width: 100%;
	}

	#copyright {
		height: 160px;
		padding: 10px 0 85px 0;
		text-align: center;
		
		/* sub-grid */
		grid-template-areas:
			"copyright1"
			"copyright2";
		grid-template-columns: 1fr;
		grid-template-rows: 1fr 3fr;
		justify-items: center;
	}

	/* ***** HIDE TOP MENU, DISPLAY MOBILE MENU ***** */
	header {
		display: none;
	}

	#mobile-menu {
		display: block;
	}
}