
/* Main variables */
:root {
    --color-text: #010101;
    --color-background: #ffffff;
    --color-background-secondary: #ececec;
    --color-secondary: #0444fc;
    
    --text-small: 12pt;
    --text-medium: 16pt;
    --text-large: 20pt;
    
    --font-serif: Georgia, serif;
    --font-sans-serif: 'Avant Garde Gothic Book', sans-serif;
    
    --page-width: 1200px;
    --radius: 4px;
	--padding: 2rem;
    --border-width: 1px;
}

/* Fonts */
    @font-face {
        font-family: "Ready ActiveBold";
        src: url("assets/FONTS/Ready/Ready-ActiveBold.otf");
    }
    @font-face {
        font-family: "Ready ActiveLight";
        src: url("assets/FONTS/Ready/Ready-ActiveLight.otf");
    }
    @font-face {
        font-family: "Ready ActiveRegular";
        src: url("assets/FONTS/Ready/Ready-ActiveRegular.otf");
    }
    @font-face {
        font-family: "Avant Garde Gothic Book";
        src: url("assets/FONTS/Avant Garde Gothic/ITC Avant Garde Gothic LT Book.ttf");
    }

/* Helpers */
.page-width {
    width: var(--page-width);
}
.center {
    margin: auto;
}
.visually-hidden {
  position: absolute !important;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  word-wrap: normal !important;
}
.spread {
    justify-content: space-between;
    align-items: center;
}
.text-small {
    font-size: var(--text-small);
}
.text-medium {
    font-size: var(--text-medium);
}
.text-large {
    font-size: var(--text-large);
}

body {
    color: var(--color-text);
    background-color: var(--color-background);
    font-family: var(--font-sans-serif);
    margin: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
}
h1,
h2,
h3 {
    font-family: var(--font-sans-serif-bold);
    font-weight: 400;
}

a {
    color: var(--color-secondary);
    /* transition: ease-out 200ms; */
}
a:hover {
    color: color-mix(in srgb, var(--color-secondary), var(--color-text) 30%);
}
a.external:not(a:has(img)):after {
	content: '↗';
	font-family: 'Fira code', sans-serif, monospace !important;
	color: var(--colour-text);
	padding-left: 4px;
	font-size: 10pt;
	vertical-align: top;
	opacity: 0.5;
}

header, footer, main {
    display: flex;
    background-color: var(--color-background);
    padding: 2rem;
    margin: auto;
    width: var(--page-width);
    font-weight: 300;
    line-height: 1.6;
    font-size: var(--text-medium);
    /* border-left: .25rem solid var(--color-secondary); */
}
header {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding-top: 2rem;
    padding-bottom: 0 !important;
    margin-bottom: 0.5rem;
}
header #header-title {
    text-decoration: none;
    font-size: var(--text-small);
    color: var(--color-text);
    display: block;
}
#header-title h1 {
    font-family: var(--font-blocky);
    font-weight: 400;
}
header .logo {
    max-width: 218px;
	transition: .1s;
	&:hover {
		opacity: .6;
	}
}

main {
    flex-direction: column;
    flex-grow: 1;
	color: var(--color-secondary); /* Need to differentiate links better */
}
footer {
    justify-content: space-between;
    align-items: center;
    padding-top: 0 !important;
	color: var(--color-secondary);
}
menu {
	padding-left: 0;
}
footer .menu-item:last-child {
    margin: 0;
}

img {
    width: 100%;
}

hr {
    height: calc(var(--border-width) * 2);
    background-color: var(--color-secondary);
    border: none;
    width: 100%;
}

.splash {
    margin: auto;
}

iframe[title="YouTube video player"],
iframe[src*="bandcamp.com"] {
  display: block;
  margin: 0 auto;
  width: 100%;
  height: 650px;
  border-radius: var(--radius);
  box-shadow: 0px 4px 8px var(--colour-background);
}

/* Components */
.image-with-text {
	display: flex;
	gap: calc(var(--padding));
	width: 100%;
	margin-bottom: calc(var(--padding) * 2);
}
.image-with-text__image {
	flex-basis: 50%;
	flex-grow: 1;
}
.image-with-text__text {
	display: flex;
	flex-basis: 50%;
	gap: 0;
	flex-direction: column;
	justify-content: center;
}
/* End components */

header > nav > ul {
    list-style: none;
    display: block;
    padding: 0;
}
.menu-item {
    display: inline;
    margin-right: 1rem;
}
.menu-item:last-child {
    margin-right: 0;
}
.menu-item a:not(.menu-item a:hover) {
    text-decoration: none;
}

.blog-list__container {
    /* border: var(--border-width) solid var(--color-text); */
    flex-grow: 1;
}
.blog-list {
    padding: 0 1.5rem 0 2rem;
}
.blog-list__item {
    /* background-color: color-mix(in srgb, var(--color-secondary), var(--color-background) 30%); */
    /* border: var(--border-width) solid var(--color-secondary); */
    background-color: var(--color-background);
    color: var(--color-text);
    list-style-type: square;
    padding: 1rem;
    margin: 0.8rem 0;
    font-weight: 400;
    transition: 200ms ease-out;
    border-radius: 0 2rem 2rem 0;
}
.blog-list > a {
    text-decoration: none;
}
a > .blog-list__item:hover {
    box-shadow: inset var(--page-width) 0px 0px var(--color-background-secondary);
    color: var(--color-secondary);
}
.blog-list__item::marker {
    transition: 100ms ease-out;
    color: var(--color-secondary);
}
.blog-list__item:hover::marker {
    color: var(--color-text);
}

.button {
    padding: .5rem;
    border: calc(var(--border-width) * 2) solid var(--color-secondary);
    background-color: var(--color-background);
    border-radius: var(--radius);
    color: var(--color-text);
    font-family: var(--font-sans-serif);
    font-size: var(--text-medium);
    cursor: pointer;
}
.button:hover {
    border-color: color-mix(in srgb, var(--color-secondary), white 20%);
}

.icon {
    max-width: 3rem;
    /* margin: 1rem; */
}

svg {
    vertical-align: middle;
}

/* Contact form */
section:has(.contact) {
    margin: auto;
}
.contact {
  max-width: 60%;
}
.contact h2 {
  margin: 1rem 0;
}
form.contact {
  max-width: 64rem;
  min-width: 48rem;
  margin: 2rem 0;
}

.contact p label {
  margin: 1rem 0;
}

.contact p label {
  display: flex;
  flex-direction: column;
}
.contact p input:focus, .contact textarea:focus {
  border-color: var(--color-secondary);
  box-shadow: 0px 0px 0px calc(var(--border-width) * 2) var(--color-secondary);
}
.contact p input, .contact textarea {
  width: 100%;
  padding: 8px 12px;
  margin: 8px 0;
  box-sizing: border-box;
  font-family: var(--font-sans-serif);
  font-size: var(--text-small);
  background-color: var(--color-background);
  color: var(--color-text);
  border: 2px solid color-mix(in srgb, var(--color-text), var(--color-background) 60%);
  border-radius: var(--radius);
  transition: ease-out .2s;
}
.contact textarea {
  margin: 8px 0;
  min-height: 15rem;
  resize: none;
}
.contact button {
  margin-top: 1rem;
}
@media screen and (max-width: 749px) {
  section:has(.contact) {
    max-width: 100%;
    margin: 0;
  }
  form.contact {
    min-width: auto;
  }
}
/* End contact form */

/* Grant logos on homepage */
.grant-logos {
	margin: var(--padding) auto;
	display: flex;
	justify-content: space-evenly;
	align-items: center;
	& img {
		max-width: 25%;
		max-height: auto;
	}
}
/* end grant logos */

/* Desktop-only styling */
@media screen and (min-width: 1200px) {
	:root {
		--page-width: calc(1200px - calc(var(--padding) * 2));
	}
	header,
	main,
	footer {
		width: var(--page-width);
		margin: 0 auto;
	}
	.image-with-text__image {
		min-width: 60%;
		border-radius: var(--radius);
		display: flex;
		justify-content: center;
		align-items: center;
		overflow: hidden;
	}
}
/* Tablet styling */
@media screen and (min-width: 636px) and (max-width: 1199px) {
	:root {
		--page-width: calc(100% - calc(var(--padding) * 2));
	}
	.image-with-text {
		display: flex;
		gap: calc(var(--padding) * 2);
		width: 100%;
	}
	.image-with-text__image {
		flex-grow: 1;
	}
	.image-with-text__text {
		gap: 0;
	}
}
/* Mobile styling */
@media screen and (max-width: 635px) {
    header, footer, main {
        width: calc(100% - 3rem);
        padding: 2rem 1.5rem;
    }
    header {
        flex-direction: column;
    }
    header nav {
        text-align: center
    };
    header #header-title {
        font-size: calc(var(--text-small) - 25%);
    }
    #header-title h1 {
        font-family: var(--font-hyperbold);
    }

    footer {
        flex-direction: column;
        align-items: center;
    }
    footer menu {
        padding-left: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
    }
    #copyright {
        font-size: var(--text-small);
    }

	iframe[title="YouTube video player"],
	iframe[src*="bandcamp.com"] {
		height: 350px;
	}

    .blog-list__item {
        font-size: var(--text-small);
    }

    footer .menu-item {
        margin: 0 1rem 1rem 0;
    }

	.image-with-text {
		flex-direction: column;
	}
	.image-with-text__image {
		min-width: 100%;
		flex-basis: 100%;
		flex-grow: 1;
		& > img {
			 min-width: 100%;
		}
	}
	.image-with-text__text {
		display: flex;
		flex-grow: 0;
		flex-shrink: 1;
		flex-basis: 0;
		text-align: center;
	}
}