* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  font-family: sans-serif;
  display: flex;
  flex-direction: column;
}

/* Title bar */
.title-bar {
	position: relative;
	background-color: #333;
	color: white;
	padding: 1rem;
	text-align: center;
}
.back-btn {
	position: fixed;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	left: 3vh;
	color: white;
	text-decoration: none;
	font-size: 1.3rem;
	font-weight: bold;
	padding: 0.5rem 1rem;
	background-color: #555;
	border-radius: 7px;
}
.back-btn:hover {
	background-color: #777;
}
.back-btn:active {
	background-color: #888;
}

/* Footer */
.footer {
  background-color: #333;
  color: white;
  padding: 1rem;
  text-align: center;
  position: fixed;
  bottom: 0;
  width: 100%;
  height: 3rem;
}


@media (max-width: 700px) {
	.round {
		width: 40px;
		height: 40px;
		font-size: 1.3rem;
		padding: 0;
		border-radius: 50%;
	}

	.back-btn.round .text {
		display: none;
	}
}

@media (min-width: 2900px) {
	.title-bar {
		padding: 2rem;
	}
	.title-bar h1 {
		font-size: 5em;
	}
	.back-btn {
		font-size: 4rem;
	}
	.footer {
		height: 4em;
	}
	.footer p {
		font-size: 1.7em;
	}
}

/* Content fills between header and footer */
.content {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2em 2em 5rem 2em;
}

/* Grid stretches to fill content */
.grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 2em;
  width: 100%;
  height: 100%;
}

/* Box styling */
.box {
  position: relative;
  display: grid;
  justify-content: center;
  align-items: center;
}

.item {
	text-decoration: none;
	color: #666;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: grid;
	place-content: center;
	font-weight: normal;
	border: 1px solid #ccc;
	border-radius: 10px;
	box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.3);
	font-size: 1.6rem;
	background-color: #eee;
}
.item:hover {
	background-color: #f3f3f3;
}
.item:active {
	box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
}

@media (max-width: 359px) {
	.content {
		padding: 2em;
		padding-bottom: 5rem;
	}
	.grid {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(6, 1fr);
		gap: 0.5em;
	}
	.item {
		font-size: 1.2rem;
	}
}
@media (min-width: 360px) and (max-width: 700px) {
	.content {
		padding: 1em;
		padding-bottom: 4rem;
	}
	.grid {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(6, 1fr);
		gap: 0.8em;
	}
	.item {
		font-size: 1.2rem;
	}
}
@media (min-width: 701px) and (max-width: 1024px) {
	.content {
		padding: 1em;
		padding-bottom: 4rem;
	}
	.grid {
		grid-template-columns: repeat(3, 1fr);
		grid-template-rows: repeat(4, 1fr);
		gap: 0.8em;
	}
	.item {
		font-size: 1.2rem;
	}
}

/*
@media (min-width: 1030px) {
	.item {
		aspect-ratio: 1 / 1;
		width: 200px;

		font-size: 2rem;
	}
}
*/

@media (min-width: 2900px) {
	.content {
		padding: 5em 5em 9em 5em;
	}
	.grid {
		gap: 5em;
	}
	.item {
		width: 100%;
		font-size: 4rem;
	}
}

