:root {
	--accent-color-orange: #ff9a67;
	--bg-color: #f5f5f6;
	--text-color: #000;
	--spacer: 1rem;
	--card-width: 22rem;
	--content-width: calc(4 * var(--card-width));
	--events-width: 50vw;
	--nav-width: 16rem;
	--form-width: var(--nav-width);
	--clam-width: 13rem;
	--clam-index-width: 30%;
	--page-margin: 1.5rem;
	--page-padding: 2rem;
	--button-height: 1.25rem;
	--button-box-shadow: var(--text-color) 2px 2px;
	font-size: 16px;
}

@font-face {
	font-family: PPMori;
	font-weight: normal;
	font-style: normal;
	src: url(/assets/PPMori-Regular.otf);
}

@keyframes slideup {
	from {
		top: 0;
		opacity: 0;
	}
	to {
		top: calc(-2 * var(--spacer));
		opacity: 1;
	}
}

body {
	background-color: var(--bg-color);
	font-family: PPMori, sans;
	font-weight: 500;
	position: relative;
	margin: var(--page-margin);
	border: 1px solid var(--text-color);
	min-height: calc(100vh - 2 * var(--page-margin));
}

a {
	text-decoration: none;
	color: var(--text-color);
}

a:hover {
	text-decoration: underline;
}

button {
	border: 1px solid var(--text-color);
	border-radius: 0;
	background-color: var(--bg-color);
	color: var(--text-color);
	font-family: PPMori;
	font-size: 1rem;
	box-shadow: var(--button-box-shadow);
}

button:hover {
	background-color: var(--text-color);
	color: #fff;
}

input {
	border: 1px solid var(--text-color);
	border-radius: 0;
	background-color: var(--bg-color);
	color: var(--text-color);
	font-family: PPMori;
	font-size: 1rem;
	text-align: center;
}

ul {
	padding-left: 0;
	margin: 0;
}

li {
	list-style-type: none;
}

#clam {
	position: fixed;
	width: var(--clam-width);
	padding: var(--page-padding);
	top: var(--page-margin);
	left: var(--page-margin);
}

#clam.index {
	position: fixed;
	width: var(--clam-index-width);
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#clam img {
	width: 100%;
}

#nav {
	position: fixed;
	width: var(--nav-width);
	padding: var(--page-padding);
	bottom: var(--page-margin);
	left: var(--page-margin);
}

#nav img {
	width: 100%;
	margin-bottom: 1rem;
}

#nav ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	row-gap: 1rem;
	column-gap: var(--button-height);
}

#nav li a {
	display: block;
	border: 1px solid var(--text-color);
	width: calc(var(--nav-width) / 2 - var(--spacer));
	height: var(--button-height);
	line-height: var(--button-height);
	box-shadow: var(--button-box-shadow);
	text-align: center;
	background-color: var(--bg-color);
}

#nav li a:hover,
#nav li a.current {
	text-decoration: none;
	background-color: var(--accent-color-orange);
}

#footer {
	position: fixed;
	padding: var(--page-padding);
	bottom: var(--page-margin);
	right: var(--page-margin);
	display: flex;
	flex-direction: column;
	align-items: end;
}

#footer ul {
	display: flex;
}

#footer p {
	font-weight: bold;
	margin: var(--spacer) 0;
}

#footer li:not(:last-of-type)::after {
	content: "\a0•\a0";
	width: 1rem;
}

#subscribe {
	display: none;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--spacer);
	margin-bottom: var(--spacer);
	animation: slideup 0.2s ease-in forwards;
}

#subscribe input,
#subscribe button {
	display: block;
	width: var(--form-width);
	height: var(--button-height);
	box-sizing: border-box;
}

.listing {
	display: flex;
	flex-direction: row;
	justify-content: end;
	flex-wrap: wrap;
	width: calc(var(--content-width) + 1px);
}

.events {
	width: var(--events-width);
}

.events img {
	width: 100%;
	object-fit: cover;
}

.events img:not(:last-child) {
	margin-bottom: var(--page-padding);
}

.listing, .events {
	padding: var(--page-padding);
	margin: 0 0 0 auto;
}

.card {
	padding: var(--spacer);
	width: var(--card-width);
	box-sizing: border-box;
	border-bottom: 1px solid var(--text-color);
	border-right: 1px solid var(--text-color);
}

.card:nth-child(-n+4) {
	border-top: 1px solid var(--text-color);
}

.card:nth-child(4n+1) {
	border-left: 1px solid var(--text-color);
	width: calc(var(--card-width) + 1px);
}

.card > * {
	width: calc(var(--card-width) - 2 * var(--spacer));
}

.card img {
	width: calc(var(--card-width) - 2 * var(--spacer));
	height: calc(var(--card-width) - 2 * var(--spacer));
	object-fit: cover;
}

.card h3 {
	margin: var(--spacer) 0;
}

.card p {
	margin: 0;
}

.card ul {
	margin: var(--spacer) 0 0 0;
}

.card.artist header {
	border-bottom: 2px dotted var(--text-color);
}

.card.release a {
	font-style: italic;
}

.card.release h3 {
	margin-bottom: calc(var(--spacer) / 2);
}

.tag {
	font-size: 0.75rem;
}

.random-clam {
	/* Will be made visible once logo is chosen via js. */
	display: none;
}

.invisible {
	/* visually hidden but will be heard by screen readers */
	position: absolute !important;
	height: 1px; width: 1px; 
	overflow: hidden;
	clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
	clip: rect(1px, 1px, 1px, 1px);
}

@media only screen and (max-width: 1630px) {
	:root {
		--card-width: 16rem;
	}
}

@media only screen and (max-width: 1400px) {
	:root {
		--card-width: 16rem;
		font-size: 14px;
	}
}

@media only screen and (max-width: 1200px) {
	:root {
		--card-width: 14rem;
	}
}

@media only screen and (max-width: 992px) {
	:root {
		--card-width: 16rem;
		--content-width: calc(2 * var(--card-width));
	}

	.card:nth-child(-n+4) {
		border-top: 0;
	}

	.card:nth-child(4n+1) {
		border-left: 0;
	}

	.card:nth-child(-n+2) {
		border-top: 1px solid var(--text-color);
	}

	.card:nth-child(2n+1) {
		border-left: 1px solid var(--text-color);
		width: calc(var(--card-width) + 1px);
	}
}

@media only screen and (max-width: 576px) {
	:root {
		--card-width: calc(100vw - 2 * var(--page-padding));
		--content-width: var(--card-width);
		--events-width: var(--card-width);
		--nav-width: var(--card-width);
		--form-width: var(--card-width);
		--clam-width: 10rem;
		--clam-index-width: 60vw;
	}

	body {
		border: 0;
		margin: 0;
	}

	#clam {
		position: initial;
		margin: auto;
	}

	#clam.index {
		top: 0;
		transform: translate(-50%, 0);
	}

	#nav {
		position: initial;
	}

	#nav.index {
		position: fixed;
		left: 0;
		bottom: 6rem; /* Space for footer */
	}

	#footer {
		left: 0;
		bottom: 0;
		align-items: center;
		width: 100vw;
		box-sizing: border-box;
	}

	#subscribe {
		background-color: var(--bg-color);
		padding: 12rem 12rem 1rem 12rem; /* Hack to hide nav when visible */
	}

	.listing {
		width: var(--content-width);
	}

	.listing, .events {
		margin-top: calc(-1 * var(--page-padding));
	}

	.card:nth-child(-n+2) {
		border-top: 0;
	}

	.card:nth-child(2n+1) {
		border-left: 1px solid var(--text-color);
		width: var(--card-width);
	}

	.card:first-child {
		border-top: 1px solid var(--text-color);
	}

	.card {
		border-left: 1px solid var(--text-color);
	}
}
