@font-face {
	font-family: 'Cinzel';
	src: url('assets/fonts/Cinzel-Regular.woff');
	font-weight: normal;
}
@font-face {
	font-family: 'Sarkowik';
	src: url('assets/fonts/Sarkowik.woff');
	font-weight: normal;
}
@font-face {
	font-family: 'CaviarDreams';
	src: url('assets/fonts/CaviarDreams.woff');
	font-weight: normal;
}
@font-face {
	font-family: 'Poppins';
	src: url('assets/fonts/Poppins-Medium.woff');
	font-weight: normal;
}

* {
	--main: #028E87;
	--secondary: #FFD700;
	--tertiary: #FF4500;


	--body-font: 'CaviarDreams', Arial;
	--body-color: #000;
	--title-font: 'Cinzel', Arial;
}

html {
	scroll-behavior: smooth;

	scrollbar-color: var(--main) #fff;
	scrollbar-width: auto;
}

*::-webkit-scrollbar {
	width: .5em;
}
*::-webkit-scrollbar-thumb {
	background-color: var(--main);
	border-radius: .25em;
}
*::-webkit-scrollbar-track {
	background: #EEEEEE;
	width: 1em;
}

body {
	margin: 0;

	color: var(--body-color);
	font-family: var(--body-font);
}

p {
	font-family: Poppins, Arial;
}

a {
	text-decoration: none;
}

a.button {
	display: inline-block;
	display: block;
	width: fit-content;
	font-family: Poppins, Arial;
	padding: .5em 1em;
	border-radius: 2em;
	transition: background-color .25s ease-in-out, color .25s ease-in-out;
	margin: 1em auto;
}

a.button.white {
	color: #fff;
	background-color: transparent;
	border: 2px solid #fff;
}
a.button.white:hover {
	background-color: #fff;
	color: var(--main);
}

a.button.black {
	color: #000;
	background-color: transparent;
	border: 2px solid #000;
}
a.button.black:hover {
	background-color: #000;
	color: #fff;
}

a.button.main {
	color: #fff;
	background-color: var(--main);
	border: 2px solid var(--main);
}
a.button.main:hover {
	background-color: #fff;
	color: var(--main);
}

a.button::after {
	border-style: solid;
	border-width: .18em .18em 0 0;
	content: '';
	display: inline-block;
	height: .55em;
	left: .15em;
	position: relative;
	top: .4em;
	transform: rotate(45deg);
	vertical-align: top;
	width: .55em;
}


/* hr {
	border: none;
	height: 1rem;
	background-image: url("assets/waves.svg");
	background-size: contain;
	background-repeat: repeat-x;
	width: 50%;
} */

/* --------------------------------- Header --------------------------------- */

header {
	position: fixed;
	top: 0; left: 0;
	z-index: 10;
	padding: 1rem 2rem;
	width: calc(100vw - 4rem + .5rem);

	background-color: #fff;
	box-shadow: 0 0 5px 0 #696969;
	display: flex;
	justify-content: space-between;
	align-items: center;
	
	transition: top .5s ease-in-out;

	&.hidden {
		top: -6.5rem;
	}
}

header a.title {
	font-family: 'Sarkowik';
	font-weight: normal;
	margin: 0;
	text-align: center;
	color: var(--body-color);
	transform: translateY(.3rem);
}

header a .logo {
	width: 4rem; height: 4rem;
}

@media (max-width: 768px) {
	header nav {
		height: 1.5rem; width: 1.5rem;
		background-image: url("./assets/hamburger-menu.svg");
		background-size: contain;
		background-repeat: no-repeat;
		cursor: pointer;

		&.open {
			background-image: url("./assets/cross.svg");
		}
	}
}

header nav ul {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	margin: 0; padding: 0;
	cursor: initial;

	@media (max-width: 768px) {
		flex-direction: column;
		gap: 1rem;
		position: absolute;
		top: 100%;
		right: 0;
		background-color: #fff;
		width: 100%;
		height: calc(100dvh - 6rem);
		padding: calc(100dvh - 100vh);
		overflow: hidden;
		box-shadow: 0 0 5px 0 #696969;

		transition: right .5s ease-in-out;

		&.hidden {
			right: -100%;
		}
	}
}

header nav ul li {
	list-style: none;
	margin: 0 10px;
}

header nav ul li a {
	font-family: var(--body-font);
	font-size: 1.2em;
	color: #000;
	transition: color .25s;
	@media (max-width: 768px) {
		font-size: 2em;
	}
}

header nav ul li a:hover {
	color: var(--main);
}

header nav ul li a::after {
	content: '';
	display: block;
	width: 0;
	height: 2px;
	background: var(--main);
	transition: width .3s;
	border-radius: 2px;
}
header nav ul li a:hover::after {
	width: 100%;
	transition: width .3s;
}

/* ----------------------------------- Nav ---------------------------------- */

nav.floating-nav {
	position: fixed; top: 0; right: 0;
	z-index: 10;
	width: 15rem; height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-end;

	pointer-events: none;
}

nav.floating-nav ul {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-end;
	list-style: none;
	margin: 0; padding: 0;
	margin-right: 5px;
	width: 100%;
}

nav.floating-nav li {
	width: 100%;
	display: flex; flex-direction: row;
	justify-content: flex-end;
}

nav.floating-nav li a {
	pointer-events: none;
	font-family: var(--title-font);
	color: white;
	text-decoration: none;
	display: flex; flex-direction: row;
	justify-content: flex-end;
	align-items: center;
	display: flex;
	height: 1.5rem;
	padding: .25rem .5rem;
	border-radius: 2em;
	background-color: transparent;
	transition: background-color .25s ease-in-out;
}
nav.floating-nav li a:hover {
	background-color: rgba(0,177,169,.7);
	pointer-events: all;
}

nav.floating-nav li a span {
	font-size: 1.5rem;
	margin-right: 10px;
	transform: translateY(-.15rem);
	opacity: 0;
	transition: opacity .25s ease-in-out;
}
nav.floating-nav li a:hover span {
	opacity: 1;
}

nav.floating-nav li:not(.goto-top) a::after {
	content: '';
	display: block;
	width: 1rem; height: 1rem;
	border-radius: 50%;
	border: 4px solid var(--main);
	opacity: 1;
	pointer-events: all;
	box-shadow: 0 0 2rem 0 #fff;
	transition: border .25s ease-in-out, background-color .25s ease-in-out;
}
nav.floating-nav li a:hover::after {
	border: 4px solid #fff;
}

nav.floating-nav li.current a::after {
	background-color: var(--main);
}
nav.floating-nav li.current a:hover::after {
	background-color: #fff;
}

nav.floating-nav li.goto-top a {
	pointer-events: all;
	font-size: 1.5rem;
	color: var(--main);
	transition: font-size .25s ease-in-out, background-color .25s ease-in-out, color .25s ease-in-out;
	width: 1.5rem; height: auto;
	display: flex;
	justify-content: center; align-items: center;
}
nav.floating-nav li.goto-top a i::before {
	display: block;
	background-color: rgba(255,255,255, .2);
	border-radius: 50%;
	border: none;
	margin: 0; padding: 0;
	box-shadow: 0 0 2rem #fff;
	width: 1.5rem; text-align: center;
}
body.top nav.floating-nav li.goto-top a {
	font-size: 0;
	pointer-events: none;
	padding: 0 .5rem;
}

nav.floating-nav li.goto-top a:hover {
	color: #fff;
}

/* -------------------------------- Animation ------------------------------- */

.apparition-anim.zoomopa {
	transform: scale(0);
	opacity: 0;
	transition: opacity .5s ease-in-out, transform .5s ease-in-out;
/* }
.apparition-anim.zoomopa.visible { */
	opacity: 1;
	transform: scale(1);
}

section h2 {
	text-align: center;
	font-family: var(--title-font);
	font-size: 3em;
	font-weight: normal;
	margin: 0; margin-bottom: 1rem;
}

section p {
	margin: 0;
	font-family: var(--body-font);
	font-size: 1em;
}

.center {
	text-align: center;
}


/* --------------------------------- Videos --------------------------------- */

.vid-container {
	position: fixed;
	top: 0; left: 0;
	width: 100vw; height: 100vh;
	z-index: 100;

	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;

	background-color: rgba(0,0,0,.8);
	cursor: url('assets/close.svg') 12.5 12.5, pointer;
}

.vid-container iframe, .vid-container video {
	border: none;
	max-height: 95vh;
	object-fit: contain;
}

@media screen and (max-width: 768px) {
	.vid-container iframe, .vid-container video {
		width: 95vw;
		aspect-ratio: 16/9;
		border-radius: 1rem;
	}
}
@media screen and (min-width: 768px) {
	.vid-container iframe, .vid-container video {
		width: 80vw;
		aspect-ratio: 16/9;
		border-radius: 1rem;
	}
}

/* --------------------------------- Contact -------------------------------- */

#contact {
	
}

#contact table.aliases {
	width: 20rem;
	margin-left: auto; margin-right: auto; margin-top: 20px;
	font-family: var(--body-font);
	border-collapse: collapse;
}

#contact table.aliases tr + tr {
	border-top: .5px solid #acacac;
}

#contact table.aliases td {
	padding: 10px;
	text-align: center;
}

#contact .socials {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	margin: 0; padding: 0;
}

#contact .socials a {
	text-decoration: none;
	display: flex;
	height: 3em; width: 4em;
	margin: 5px 0;
}

#contact .socials a i {
	margin:auto;
	font-size: 2em;
	color: var(--body-color);
	transition: color .25s;
}

#contact .socials a:hover i.fa-youtube {
	color: #ff0000;
}
#contact .socials a:hover i.fa-facebook {
	color: #3b5998;
}
#contact .socials a:hover i.fa-instagram {
	color: #e1306c;
}

#contact_form {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;

	font-family: var(--body-font);
}

#contact_form input, #contact_form select, #contact_form textarea {
	width: 100%;
	padding: 10px 10px 5px;
	margin: 5px 0;
	border: none;
	border-bottom: 2px solid;
	border-color: #acacac;
	font-family: var(--body-font);
	transition: border-color .5s;
}

#contact_form select {
	width: calc(100% + 20px);
}

#contact_form textarea {
	border: 2px solid;
	border-color: #acacac;
}

#contact_form input:focus, #contact_form textarea:focus, #contact_form select:focus {
	outline: none;
	border-color: var(--main);
}


/* Footer */

footer {
	background-color: #fff;
	padding: 20px 0;
	margin-top: 30px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	box-shadow: 0 0 5px 0 #696969;
}

footer p {
	margin: 0;
	font-family: var(--body-font);
	font-size: 1em;
}

footer p a {
	color: var(--body-color);
	text-decoration: underline;
	text-decoration-thickness: from-font;
}