/* @group FONTS */

@font-face {
	font-family: 'Libre Baskerville';
	src: url('../fonts/LibreBaskerville-Regular.woff2') format('woff2');
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: 'Libre Baskerville';
	src: url('../fonts/LibreBaskerville-Italic.woff2') format('woff2');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

@font-face {
  font-family: 'League Spartan';
  src: url('../fonts/LeagueSpartan-VariableFont_wght.woff2') format('woff2 supports variations'),
       url('../fonts/LeagueSpartan-VariableFont_wght.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-display: swap;
}

/* @end */

/* @group ROOT */

:root {
	
	--max-width: 1400px;
	
	--color-black: #000000;
	--color-white: #FFFFFF;
	--color-red: #EC1C24;
	--color-grey: #717171;
	
	--font-family: 'Libre Baskerville', Times, serif;
	--font-family-headings: 'League Spartan', Helvetica, Arial, sans-serif;
	
	--font: 			400 clamp(16px, 1.6vw, 18px)/1.6rem var(--font-family);
	--font-bold:		550 1.2rem/1.6rem var(--font-family-headings);
	--font-lg: 		italic 400 1.5rem/1.4em var(--font-family);
	--font-h1: 		600 3rem/1em var(--font-family-headings);
	--font-h2: 		600 1.9rem/1em var(--font-family-headings);
	--font-h3: 		580 1.5rem/1.3em var(--font-family-headings);
	
	--spacing-sm: 	.8rem;
	--spacing:			1.6rem;
	--spacing-lg: 		clamp(2.4rem, 6vw, 3.2rem);
	--spacing-xl: 		clamp(3.6rem, 12vw, 6rem);
	--spacing-xxl: 	clamp(5.2rem, 18vw, 9rem);
	
	--spacing-inline	: clamp(1.6rem, 6vw, 3.2rem);
	
	--gutter-width: var(--spacing-inline);
	
	--text-max-width: 21rem;
	
}

/* @end */

/* @group BASE */

html {
	scroll-behavior: smooth;
}

html,
body {
	min-width: 320px;
	font: var(--font);
}

h1 {
	font: var(--font-h1);
}

h1:has(+ *) {
	margin-bottom: .25em;
}

h2 {
	font: var(--font-h2);
}

h2:has(+ *) {
	margin-bottom: .5em;
}

h3 {
	font: var(--font-h3);
}

h3:has(+ *) {
	margin-bottom: .25em;
}

h4 {
	font: var(--font-bold);
}

h4:has(+ *) {
	margin-bottom: .8rem;
}

p:has(+ *) {
	margin-bottom: 1.6em;
}

blockquote {
	font: var(--font-lg);
}

blockquote:has(+ *) {
	margin-bottom: .6em;
}

strong {
	font: var(--font-bold);
}

/* @group Links & Buttons */

.section a {
		text-decoration: underline;
		text-decoration-color: var(--color-red);
		text-decoration-thickness: 1px;
		text-underline-offset: .2em;
		transition: all .15s ease-in-out 0s;
	}

	.section a:hover {
		text-decoration-color: var(--color-black);
	}
	
	.section .buttons {
		line-height: 3em;
	}
	
	.section a.button,
	.section .buttons a {
		display: inline-flex;
		flex-wrap: wrap;
		align-content: center;
		height: 3em;
		padding-inline: 2em;
		border: .1em solid currentColor;
		border-radius: 1.5em;
		text-decoration: none;
	}
	
	.section a.button:hover,
	.section .buttons a:hover {
		color: var(--color-red);
	}
	
	.section .buttons a {
		margin-bottom: var(--spacing-sm);
	}
	
	.section .buttons a:has(+ *) {
		margin-right: .4em;
	}


/* @end */

/* @group Figures */

figure {
	position: relative;
	z-index: 1;
}
	
	figure .copyright {
		position: absolute;
		right: 0;
		bottom: 0;
		padding-block: .3em;
		padding-inline: .6em;
		color: var(--color-white);
		font: var(--font-bold);
		text-shadow: .1em 0 0 rgba(0,0,0,.1),
             		 0 .1em 0 rgba(0,0,0,.1),
						 		 -.1em 0 0 rgba(0,0,0,.1),
						 		 0 -.1em 0 rgba(0,0,0,.1);
	}

/* @end */

/* @end */

/* @group Menu */

.menu {
	position: fixed;
	z-index: 10;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	aspect-ratio: 1/1;
	border-radius: 50%;
	color: var(--color-white);
	background-color: var(--color-red);
	font: var(--font-h3);
	transition: all .2s ease-in-out 0s;
}

	.menu__items {
		position: absolute;
		top: 0;
		bottom: 0;
		right: 0;
		left: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		transition: scale .2s ease-in-out 0s;
	}
	
		.menu__items > * {
			text-decoration: underline;
			text-decoration-color: transparent;
			text-decoration-thickness: .08em;
			text-underline-offset: .1em;
			transition: text-decoration .2s ease-in-out 0s;
		}
	
		.menu__items > *:hover,
		.menu__items > *.active {
			text-decoration-color: currentColor;
		}
		
	.menu__toggle {
		position: absolute;
		top: 0;
		bottom: 0;
		right: 12%;
		left: 12%;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		row-gap: 12%;
		padding: .5rem;
		transform: scale(1);
		transition: scale .2s ease-in-out 0s;
	}
	
		.menu__toggle > * {
			display: block;
			width: 100%;
			height: .1em;
			background-color: currentColor;
		}

	@media (max-width: 999px) {
		
		.menu {
			top: 1rem;
			right: 1rem;
			width: 3.5rem;
		}
		
			.menu__items {
				transform: scale(0);
			}
		
		.menu--open {
			top: 12rem;
			right: 50%;
			width: 8em;
			font: var(--font-h2);
			line-height: 1.3em;
			transform: translateX(50%);
		}
		
			.menu--open .menu__toggle {
				transform: scale(0);
			}
			
				.menu--open .menu__toggle > * {
					height: 3%;
				}
			
			.menu--open .menu__items {
				transform: scale(1);
			}
		
	}
	
	@media (min-width: 1000px) {
		
		.menu {
			top: var(--spacing-xl);
			right: calc(.5 * var(--spacing-inline));
			width: 8em;
		}
		
			.menu__toggle {
				display: none;
			}
		
	}
	
	@media (min-width: 1400px) {
		
		.menu {
			right: calc(50% - .5 * var(--max-width));
		}
		
	}

/* @end */

/* @group Overlay */

.overlay {
	pointer-events: none;
	position: fixed;
	z-index: 5;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(0,0,0,.5);
	opacity: 0;
	transition: opacity .2s ease-in-out 0s;
}

.overlay--open {
	pointer-events: auto;
	opacity: 1;
}

	@media (min-width: 1000px) {
		
		.overlay {
			display: none;
		}
		
	}
		
/* @end */

/* @group Header */

.header {
	max-width: var(--max-width);
	margin-top: clamp(2.5rem, 8vw, 4rem);
	margin-bottom: var(--spacing-xl);
	margin-inline: auto;
	padding-inline: var(--spacing-inline);
	text-align: center;
}

	.header__logo {
		display: inline-block;
		width: clamp(12rem, 75%, 24rem);
	}
	
		.header__logo img {
			width: 100%;
			height: auto;
		}

/* @end */

/* @group Main */

.main {
	max-width: var(--max-width);
	margin-inline: auto;
	padding-inline: var(--spacing-inline);
}

/* @end */

/* @group Section */

.section {
	display: grid;
	column-gap: var(--gutter-width);
	row-gap: 2rem;
	margin-bottom: var(--spacing-xl);
}

.section:has(.section__column h1:only-child) {
	margin-bottom: var(--spacing-lg);
}

	.section img {
		width: 100%;
		height: auto;
	}
	
	.section figure:not([class]):has(+ *) {
		margin-bottom: var(--spacing);
	}

	.section ul:not([class]):has(+ *) {
		margin-bottom: var(--spacing);
	}
	
		.section ul:not([class]) li {
	    display: flex;
		}
		
		.section ul:not([class]) li:has(+ li) {
	    margin-bottom: var(--spacing-sm);
		}
	
			section ul:not([class]) li::before {
		    content: "•";
		    flex: 0 0 1em;
			}
			
	.section__column--span-6 {
		text-align: center;
	}
			
	@media (max-width: 799px) {
		
		.section:first-child .section__column figure {
			margin-inline: calc(-1 * var(--spacing-inline));
		}
		
	}
	
	@media (max-width: 1199px) {
		
			.section__column:has(> figure:only-child) {
				order: -1;
			}
		
			.section:first-child .section__column--span-4 figure {
				margin-inline: calc(-1 * var(--spacing-inline));
			}
	
	}
	
	@media (min-width: 800px) {
		
		.section {
			grid-template-columns: repeat(6, 1fr);
		}
		
			.section--center {
				align-items: center;
			}
			
			.section__column--span-6 {
				grid-column: span 6;
			}
		
	}
	
	@media (min-width: 800px) and (max-width: 1199px) {
		
			.section__column--span-4 {
				grid-column: span 6;
			}
			
			.section__column--span-3 {
				grid-column: span 3;
			}
			
			.section__column--span-2 {
				grid-column: 2 / span 4;
			}
			
			.section__column--span-4:not(:has(figure)) {
				display: grid;
				grid-template-columns: repeat(6, 1fr);
				column-gap: var(--gutter-width);
			}
			
				.section__column--span-4:not(:has(figure)) > *{
					grid-column: 2 / span 4;
				}
		
	}
	
	@media (min-width: 1200px) {
		
			.section__column--span-4 {
				grid-column: span 4;
			}
			
			.section__column--span-3 {
				grid-column: span 3;
			}
			
			.section__column--span-2 {
				grid-column: span 2;
			}
			
			.section__column--span-3 > *:not(figure) {
				width: calc(66% - var(--gutter-width));
			}
		
	}


/* @end */

/* @group Teasers & Teaser */

.teasers {
	
}

	.teasers__text {
		width: 100%;
		margin-bottom: var(--spacing-lg);
		text-align: center;
	}

	.teasers__items {
		display: flex;
		flex-wrap: wrap;
		gap: var(--spacing);
		justify-content: center;
		width: 100%;
		max-width: calc(2 * 19.5rem + var(--spacing));
		margin-inline: auto;
	}

	.teasers__items > *:first-child {
		color: var(--color-red);
	}

.teaser {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-block: 2.6rem;
	padding-inline: 1rem;
	width: 100%;
	max-width: 19.5rem;
	aspect-ratio: 1/1;
	overflow-y: hidden;
	border: .15em solid currentColor;
	border-radius: 50%;
	text-align: center;
}

	.teaser > svg {
		width: 3rem;
		height: auto;
		margin-bottom: 1rem;
	}

/* @end */

/* @group Gallery */

.gallery {
	display: flex;
	gap: calc(.5 * var(--gutter-width));
}

	.gallery__item {
		
	}

		.gallery__item img {
			width: 100%;
			height: auto;
			border-radius: 50%;
		}

/* @end */

/* @group Footer & Colophon */

.footer {
	margin-top: var(--spacing-xxl);
	color: var(--color-white);
	background-color: var(--color-grey);
}

.colophon {
	max-width: var(--max-width);
	margin-inline: auto;
	padding-top: clamp(1.5rem, 6vw, 3rem);
	padding-bottom: 3rem;
	padding-inline: var(--spacing-inline);
}

	.colophon__social {
		display: flex;
		column-gap: 1.5rem;
		justify-content: end;
		margin-bottom: 1.6rem;
	}
	
		.colophon__social svg {
			width: 40px;
			height: auto;
		}

	.colophon__logo {
		display: inline-block;
		width: 7.5em;
		height: auto;
		margin-bottom: 2em;
	}
	
		.colophon__logo img {
			width: 100%;
			height: auto;
		}
		
	.colophon__text {
		max-width: var(--text-max-width);
		margin-bottom: clamp(4rem, 12vw, 6rem);
	}
	
	.colophon__links {
		display: flex;
		flex-wrap: wrap;
		column-gap: clamp(1em, 4vw, 1.5em);
		row-gap: 1rem;
		font: var(--font-h3);
	}
	
	@media (min-width: 600px) {
		
		.colophon__social {
			float: right;
		}
	}

/* @end */