/**
Theme Name: default
Text Domain: default
Description:
Tags:
*/
:root {
	/* COLORS */
	--black: #0C0F14;
	--grey: #2B3036;
	--grey-lite: #A3AAB4;
	--white: #DCDEE0;
	--off-white: #F1FFE7;
	--yellow: #daa520;
	--orange: #F46036;
	--dark-red: #90323D;
	--red: #A51D2D;
	--red-lite: #EE4266;
	--blue-lite: #52aaD3;
	--blue-x-lite: #B1E5F2;
	--blue: #0B5563;
	--blue-alt: #51A3A3;
	--purple: #5B5F97;
	--dark-blue: #101C2C;

	/* SEMANTIC COLOURS */
	--bg-color: var(--dark-blue);
	--text-color: var(--white);
	--button-bg-color: var(--grey);
	--cta-color: var(--blue);
	
	/* FONTS AND SIZES */
	--base-font:
		"libertinus-sans", Trebuchet, "MS Trebuchet", Helvetica,
		"Noto", "Open Sans", sans-serif;
	--text-font:
		"libertinus-serif", Georgia, Times, serif;
	--header-font: "boldonse", Trebuchet, "MS Trebuchet", sans-serif;
	--heading-font: "dm-serif", Georgia, Times, serif;
	
	/* PADDING/SPACING */
	--space-x-small: 5pt;
	--space-small: 10pt;
	--space: 20pt;
	--space-large: 40pt;
	--space-x-large: 60pt;
}

html {
	box-sizing: border-box;
	margin:0;
}

*,
*:before,
*:after {
	box-sizing: inherit;
	outline: none;
}

body {
	background-color: var(--bg-color);
	color: var(--text-color);
	
	font-family: var(--base-font);
	font-size: 16pt;
	
	max-width: calc(1020px + 2 * var(--space));
	margin: 0 auto;
	padding: var(--space);
}

h1, h2, h3, h4, h5, h6 {
	color: var(--yellow);
	font-family: var(--heading-font);
	font-style: italic;
	margin: 1.5em 0 1em;
}

h1 {
	font-size: clamp(1.75em, 8vw, 2em);
}

h2 {
	font-size: clamp(1.25em, 6vw, 1.8125em);
}

h3 {
	font-size: clamp(1.125em, 5vw, 1.75em);
}

h4 {
	font-size: clamp(1.06125em, 4vw, 1.5em);
}

h5 {
	font-size: clamp(1em, 3.5vw, 1.25em);
}

h6 {
	font-size: clamp(1em, 3vw, 1.125em);
}

img {
	max-width: 100%;
}

p, blockquote, address, ol, ul {
	margin: var(--space) 0;
	line-height: 1.5;
}

ol, ul {
	padding: 0 var(--space) 0 var(--space-x-large);
}

blockquote {
	font-family: var(--text-font);
	font-size: 1.25em;
}

em {
	font-weight: bold;
	font-style: italic;
}

button,
a.button {
	position: relative;
	cursor: pointer;
	color: var(--dark-blue);
	
	border: none;
	border-radius: 7pt;
	background-color: var(--yellow);
		
	font-family: var(--base-font);
	font-size: 1em;
	font-weight: bold;

	text-decoration: none;
	text-transform: uppercase;
	
	padding: 12px 15px 12px calc(15px + 1.25em + var(--space-small));
}

button:hover,
a.button:hover {
	background-color: var(--off-white);
}

button::before,
a.button::before {
	position: absolute;
	top: 12px;
	left: 15px;
	display: block;
	
	content: "";
	color: var(--dark-blue);

	background-repeat: no-repeat;
	background-position: top left;
	background-size: contain;

	filter: invert(1);

	width: 1.25em;
	aspect-ratio: 1;
}

button.email::before,
a.button.email::before {
	background-image: url("/wp-content/themes/default/assets/icons/envelope.svg");
}

button.phone::before,
a.button.phone::before {
	background-image: url("/wp-content/themes/default/assets/icons/phone.svg");
}

table {
	border-collapse: separate;
	border-spacing: var(--space-small);
}

table, th, tr, td {
	border: none;
}

tr > td {
	text-align: center;
}

header {
	order: 0;
}

header h1 {
	color: var(--yellow);
	font-family: var(--header-font);
	font-size: clamp(2em, 10vw, 3em);
	font-weight: bolder;
	font-style: normal;
	line-height: 1.6125;
	margin-bottom: 0;
	text-transform: uppercase;
}

header h2 {
	color: var(--grey-lite);
	margin-top: 0;
}

body > div {
	display: flex;
	flex-flow: column nowrap;
	justify-content: flex-start;
	align-items: stretch;
	gap: var(--space-large);
}

main {
	order: 2;
}

main > section {
	margin: var(--space-x-large) 0;
}

main > section:first-child {
	margin: 0 0 var(--space);
}

main + aside {
	order: 1;
}

main + aside > div {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-evenly;
	gap: var(--space);
}

main + aside table.hours {
	flex: 0 2 calc(25% - var(--space));
}

section > footer.actions {
	display: flex;
	flex-flow: row nowrap;
	justify-content: flex-start;
	gap: var(--space);
}

table.hours {
	margin: 0 0 0;
}

table.hours > thead > tr > th:first-child {
	visibility: hidden;
}

main + aside address {
	flex: 0 3 calc(20% - var(--space));
	min-width: 96pt;
}

main + aside div#map {
	flex: 1 0 calc(40% - var(--space));
}

address {
	margin: var(--space-small) 0;
	text-align: right;
	line-height: 1.5;
}

footer {
	order:3;
	margin: var(--space-large) 0 0;
}

#map {
	aspect-ratio: 1.5;
}

section.announcement {
	display: flex;
	flex-flow: row nowrap;
	justify-content: flex-start;
	align-items: flex-start;
	gap: var(--space);
}

section.announcement > h3 {
	/* flex: 0 1; */
	font-style: normal;
	margin: 0;
}

section.announcement > h3 > img {
	width: 52px;
}

section.announcement > blockquote {
	flex: 3 0;
	margin: 0;
}

section.whats-on > ol,
section.club-news > ul {
	list-style: none;
	margin: 0;
}

section.whats-on > ol {
	padding: 0 var(--space-small);
}

section.club-news > ul {
	padding: 0;
}

section.whats-on > ol > li,
section.club-news > ul > li {
	margin: 0 0 var(--space-large);
}

section.whats-on article > header {
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-start;
	gap: var(--space);
}

section.whats-on article > header > img {
	width: calc(100% - 64px - var(--space));
	margin: 0 0 0 calc(64px + var(--space));
	flex: 1 0;
}

section article > header > h1 {
	margin-top: 0;
}

section.whats-on article > header > h1 {
	font-size: clamp(1.5em, 7vw, 2em);
	flex: 1 1 calc(100% - 64px - var(--space));
}

section.club-news article > header > h1 {
	font-size: 1.5em;
}

section article > header > h2 {
	font-size: 1.25em;
}

section.whats-on article > p,
section.whats-on article > footer {
	padding: 0 0 0 calc(64px + var(--space));
}

section article > footer {
	margin: 0;
}

section.whats-on article > header > time {
	flex: 0 0 64px;
	display: block;
	/* margin: 1em 0 0; */
	aspect-ratio: 1.25;
}

section.whats-on article > header > time > span {
	display: block;
	text-align: center;
	padding: var(--space-x-small) 7pt;
}

section.whats-on article > header > time > span.month {
	border-top-left-radius: 3pt;
	border-top-right-radius: 3pt;
	background-color: var(--red);
	font-size: 0.8125em;
	font-weight: bold;
	text-transform: uppercase;
}

section.whats-on article > header > time > span.day {
	border-bottom-left-radius: 3pt;
	border-bottom-right-radius: 3pt;
	background-color: var(--white);
	color: var(--black);
	font-family: var(--text-font);
	font-size: 1.25em;
}

section.whats-on article > footer > time {
	display: block;
	font-size: 1.5em;
	margin: 0 0 var(--space-small);
}

section.whats-on article > footer > span.fee {
	display: block;
	font-size: 1.25em;
}

section.book-a-function > header > ul.gallery {
	display: flex;
	flex-flow: row nowrap;
	gap: var(--space-small);

	list-style: none;
	padding: 0;
	margin: 0;
}

section.book-a-function > header > ul.gallery > li {
	flex: 1 1 50%;
}

#stars {
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;
	height: 200vh;
	z-index: -10;
	filter: blur(1px);
}

#stars .star {
	position: absolute;
	top: var(--top);
	left: var(--left);

	font-size: calc(var(--mass) * 0.75em);
	text-shadow: 0 0 calc(var(--mass) * 3px);
	opacity: var(--brightness);
}

/* GO BIGGER */
@media (min-width: 880px) {
	body {
		padding: var(--space-large);
	}

	body > div {
		display: flex;
		flex-flow: row wrap;
	}

	body > div > header,
	body > div > footer {
		flex: 10 0 100%;
	}

	body > div > main {
		order: 1;
		flex: 1 0 60%;
	}
	
	main + aside > div {
		order: 2;
		flex-flow: column nowrap;
		justify-content: flex-start;
		align-items: stretch;
		min-height: 100vh;
	}

	main + aside table.hours {
		flex: unset;
		text-align: end;
		margin: 0 calc(-1 * var(--space-small)) 0 var(--space);
	}
	
	main + aside table.hours > tbody > tr > td {
		text-align: end;
	}

	main + aside address {
		flex: unset;
	}

	main + aside div#map {
		flex: unset;
		aspect-ratio: 1;
	}

	body > div > aside {
		flex: 0 1 33%;
	}

}

/* GO SMALLER */
@media (max-width: 652px) {
	section.whats-on > ol {
		padding: 0;
	}

	section.whats-on article > header {
		gap: var(--space-small);
	}

	section.whats-on article > header > img {
		width: calc(100% - 64px - var(--space-small));
		margin: 0 0 0 calc(64px + var(--space-small));
	}

	main + aside address {
		flex: 0 2 30%;
	}
	main + aside div#map {
		margin: 0 clamp(var(--space-small), 20%, var(--space));
	}
}

@media (max-width: 520px) {
	body {
		padding: var(--space-small);
	}
	
	main + aside table {
		border-spacing: var(--space-x-small);
	}

	main + aside div#map {
		margin: 0 clamp(var(--space-x-small), 10%, var(--space-small));
	}
}
