/* ----------------------------------------------------------------------------------------------------
GENERAL
---------------------------------------------------------------------------------------------------- */

@font-face {
	font-family: "SuisseIntl";
	src: url("/assets/fonts/SuisseIntl-Book-WebXL.woff") format("woff");
	font-display: swap;
}

@font-face {
	font-family: "SuisseIntl";
	src: url("/assets/fonts/SuisseIntl-BookItalic-WebXL.woff") format("woff");
	font-style: italic;
}

body {
	font-family: "SuisseIntl", "Helvetica", "Arial";
	font-feature-settings: "ss01" 1;
	font-size: 1.25rem;
	line-height: 1.25;
	color: black;
	text-decoration: none;
	background-color: white;
	margin-left: auto;
	margin-right: auto;
	padding: 0;
	display: flex;
	overflow-x: hidden;
	transition: 0.5s;
}

em,
i {
	font-style: italic;
}

strong,
b {
	font-weight: 400;
}

a {
	color: black;
	text-decoration: none;
	transition: 0.5s;
	display: inline-block;
}

a:hover {
	transition: 0.5s;
}

u {
	text-underline-offset: 4px;
	text-decoration-thickness: 2px;
}

::selection {
	background: black;
	color: white;
}

/* ----------------------------------------------------------------------------------------------------
ORIENTATION NOTICE
---------------------------------------------------------------------------------------------------- */

.orientationNotice {
	display: none;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 2000;
	width: 100%;
	height: 100%;
	background-color: black;
	color: white;
}

/* ----------------------------------------------------------------------------------------------------
TRANSITION
---------------------------------------------------------------------------------------------------- */

.pageTransitionElement {
	position: fixed;
	left: 0;
	bottom: 0;
	z-index: 2000;
	width: 100%;
	height: 100%;
	background-color: black;
	transition: bottom 0.3s ease-in-out;
}

/* ----------------------------------------------------------------------------------------------------
MENU
---------------------------------------------------------------------------------------------------- */

.menuContainer {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
	position: fixed;
	top: calc(-100vh - 2px);
	left: 0;
	width: 100dvw;
	height: calc(100dvh + 2px);
	background-color: white;
	z-index: 15;
	margin: 0 auto 0;
	padding: 1.5rem 6rem;
	border-bottom: solid 2px black;
	transition: top 0.3s ease-in-out;
}

.menuActive {
	top: 0;
}

.menuWrapper {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.menuItem {
	margin-top: 0.75rem;
	border: solid 2px black;
	padding: 11px 15px 9px;
	background-color: white;
	text-transform: uppercase;
	text-wrap: balance;
	transition: 0.5s;
}

.menuItem:hover {
	color: white;
	background-color: black;
	transition: 0.5s;
	cursor: pointer;
}

.menuIn,
.menuOut {
	transition: 0.5s;
}

.menuOut {
	margin-top: 0;
}
.menuOut:hover {
	color: white;
	background-color: black;
	transition: 0.5s;
	cursor: pointer;
}

/* ----------------------------------------------------------------------------------------------------
HEADER
---------------------------------------------------------------------------------------------------- */

.headerContainer {
	display: flex;
	justify-content: space-between;
	margin-top: 1.5rem;
	position: fixed;
	padding: 0 6rem;
	width: 100vw;
	z-index: 5;
}

.headerItem {
	border: solid 2px black;
	padding: 11px 15px 9px;
	background-color: white;
	transition: 0.5s;
}

.headerItem:hover {
	color: white;
	background-color: black;
	transition: 0.5s;
	cursor: pointer;
}

/* ----------------------------------------------------------------------------------------------------
MAIN CONTENT
---------------------------------------------------------------------------------------------------- */

.main {
	margin: 97px auto 0;
	padding: 0rem 6rem 1.5rem;
	width: 100%;
	transition: 0.3s;
}

/* ----------------------------------------------------------------------------------------------------
RESPONSIVE BEHAVIOR
---------------------------------------------------------------------------------------------------- */

@media (max-width: 1200px) {
	.menuContainer,
	.headerContainer,
	.main {
		padding-left: 3rem;
		padding-right: 3rem;
	}
}

@media (max-width: 1050px) {
	.menuContainer,
	.headerContainer,
	.main {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}

@media (max-width: 450px) {
	body {
		font-size: 1rem;
		letter-spacing: 0.1px;
	}
	u {
		text-underline-offset: 3px;
		text-decoration-thickness: 1px;
	}
	.main {
		margin-top: 92px;
	}
}

@media (max-height: 561px) {
	.orientationNotice {
		display: flex;
		justify-content: center;
		align-items: center;
	}
}