@font-face {
	font-family: 'Raleway';
	src: url('/assets/fonts/Raleway-VariableFont_wght.woff2') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Roboto';
	src: url('/assets/fonts/Roboto-VariableFont_wdth\,wght.woff2') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Roboto Slab';
	src: url('/assets/fonts/RobotoSlab-VariableFont_wght.woff2') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Tilt Neon';
	src: url('/assets/fonts/TiltNeon-Regular-VariableFont_XROT\,YROT.woff2') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

:root {
    --primary-color:            hsl(0, 100%, 64%);
    --secondary-color:          hsl(40, 63%, 63%);
    --background-color:         hsl(0, 0%, 85%);
    --accent-color:             hsl(168, 33%, 29%);
    --link-color:               hsl(0, 0%, 100%);
    --text-color:               #eee;
    --highlight-color:          hsl(0, 0%, 88%);
    --success-color:            hsl(120, 39%, 60%);
    --danger-color:             hsl(0, 63%, 60%);
    --warning-color:            hsl(35, 85%, 61%);
    --info-color:               hsl(195, 60%, 63%);
	--clr-red:                  #ff4747;
	--clr-red-subtle:           #eb9191;
	--clr-yellow:               #dcb465;
	--clr-yellow-subtle:        #dcb465;
	--clr-black:                #0d0d0d;
	--clr-gray:                 #263238;
	--clr-bluegray:             #455a64;
	--clr-bluegray-rgb:           70, 90, 100;
	--clr-green:                #326259;
}

body {
  font-family: 'Raleway', var(--ls-font-stack);
  font-size: 16px;
  font-weight: 400;
  color: var(--text-color);
  /* position: relative; */
  overflow: auto;
}
body.mobile-menu-open {
	overflow: hidden;
}

.clr-accent-red {
	color: var(--clr-red);
}
.clr-accent-yellow {
	color: var(--clr-yellow);
}

html {
	text-rendering: optimizelegibility;
	font-family: "Raleway";
}
html,
body {
	padding: 0;
	margin: 0;
	height: 100%;
	background-color: var(--clr-black);
    overflow: visible;
}

a {
	text-decoration: none;
	color: var(--clr-yellow);
	transition: all 0.5s;
	border: none;
	border-bottom: 1px solid var(--clr-yellow);
}
a:hover {
	color: var(--clr-red);
	border-bottom: 1px solid var(--clr-red);
}

header {
	height: 100%;
	position: relative;
	background: url("/assets/images/img-intro-003.webp");
	background-size: cover;
}
header .content {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
}
header .overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(50, 50, 50, 0.4);
	background-size: cover;
	z-index: 1;
	opacity: 1;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(3px);
	pointer-events: none;
}

header hgroup {
	transform: translate(-50%, -50%);
	display: inline-block;
	text-align: center;
	color: #fff;
	position: absolute;
	top: 50%;
	left: 50%;
	border: 5px solid #fff;
	border-radius: 0.2em;
	padding: 1em 3em;
	background-color: rgba(0, 0, 0, 0.375);
	display: flex;
	flex-direction: column;
	gap: 1em;
	align-items: center;
}
header hgroup img {
	width: 200px;
	height: auto;
	filter: drop-shadow(4px 4px 12px #000);
}
header hgroup h1 {
	font-family: "Roboto Slab";
	font-weight: 400;
	font-size: 5em;
}
header hgroup h2 {
	font-family: "Tilt Neon";
	margin-top: 0.75em;
	text-transform: uppercase;
	font-size: 2em;
}

.fade-on-scroll-hero {
	z-index: 4;
}
.scroll-down-link {
	position: absolute;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 5;
	display: flex;
	flex-direction: column;
	align-items: center;
	transition: all 2s;
	opacity: 1;
	visibility: visible;
	border: none;
	transition: none;
}
.scroll-down-link:hover {
	border: none;
}

.scroll-down-link[hidden] {
	transition: none;
	opacity: 0.01;
	visibility: hidden;
}

.scroll-down-link:not([hidden]) {
	transition: none;
	opacity: 1;
	visibility: visible;
}

.scroll-down-mouse {
	width: 2.5rem;
	height: 4.5rem;
	border: 2px solid #aaa;
	border-radius: 2rem;
	margin-bottom: 0.5rem;
	display: flex;
	justify-content: center;
	align-items: center;
}

.scroll-down-mouse span {
	width: 1rem;
	height: 1rem;
	background-color: rgba(128, 128, 128, 0.75);
	display: block;
	border-radius: 50%;
	animation: scroll-down 1.5s linear infinite;
}

.scroll-down-arrow span {
	display: block;
	width: 1rem;
	height: 1rem;
	border: 2px solid transparent;
	border-right-color: #aaa;
	border-bottom-color: #aaa;
	transform: rotate(45deg);
	animation: arrow-animate 1.5s linear infinite;
}

@keyframes scroll-down {
	0% {
		opacity: 0.01;
		transform: translateY(-1rem);
	}
	100% {
		opacity: 1;
		transform: translateY(1rem);
	}
}

main {
	margin: auto 2em;
	display: flex;
	flex-direction: column;
	align-items: center;
	z-index: 0;
}

h3 {
	display: inline;
	font-family: "Roboto Slab";
	font-weight: 900;
	position: relative;
	font-size: 6rem;
	padding: 0 0.75rem 0.25rem 0.75rem;
	border-width: 1px;
	border-style: solid;
	border-image: linear-gradient(to left, transparent, #fff) 1 100%;
	border-image-slice: 1;
	border-top: 0;
	border-left: 0;
	border-right: 0;
}
h3.section-title {
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.5);
	z-index: 4;
}
h3.section-title::after {
	content: attr(data-label);
	color: #fff;
	position: absolute;
	top: 0.125em;
	left: 0.175em;
}
section h4 {
	font-family: 'Roboto Slab';
	font-weight: 300;
	font-size: 1.5em;
	text-transform: uppercase;
}

section { 
	margin-top: 3em;
	max-width: 1280px;
	width: 100%;
}
section article {
	color: #eee;
	margin-top: 3em;
}
section article p, section p {
	text-indent: 1em;
}
section article .gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(2, 1fr);
	gap: 1em;
}
section article .gallery-grid img {
	max-width: 100%;
	height: auto;
	border-radius: 0.25em;
	filter: sepia(1);
	transition: all 0.5s;
	cursor: pointer;
}
section article .gallery-grid img:hover {
	filter: sepia(0);
}

footer {
	margin-top: 5em;
	padding: 2em 8em 0 8em;
	color: #eee;
	background-color: var(--clr-gray);
	border-top-left-radius: .25em;
	border-top-right-radius: .25em;
	display: flex;
	flex-direction: row;
	justify-content: center;
}
footer .wrapper {
	max-width: 1280px;
	
}
footer .entrance {
	width: 100%;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}
footer .entrance .left,
footer .entrance .center,
footer .entrance .right {
	font-size: 3em;
}
footer .entrance h5 {
	font-size: 0.5em !important;
	font-weight: 700 !important;
	line-height: 1.2;
}
footer .entrance h6 {
	line-height: 1;
}
footer .entrance h6 a {
    font-size: 0.875em !important;
}

footer .content {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	font-size: 0.75em;
}
footer .content .left {
	width: 33.3%;
}
footer .content .left p {
	text-indent: 0.75em;
}
footer .content .right {
	text-align: right;
	width: 33.3%;
}
footer .content .center img {
	max-width: 250px;
}
footer .content .right h5 {
	text-transform: uppercase;
	font-size: 1.125em;
}

footer .bottom {
	text-align: center;
	margin-top: 2em;
	background-color: var(--clr-bluegray);
	font-size: 0.75em;
	padding: 0.5em 0 0.25em 0;
	border-top-left-radius: 0.25rem;
	border-top-right-radius: 0.25rem;
	color: #bbb;
}

.bottom-nav-link {
	display: block;
	font-size: 1.5em !important;
	transition: all .5s;
	transform: translateX(0);
}
.bottom-nav-link:hover {
	transform: translateX(-5px);
	border: none;
}

.muted-link {
	color: var(--clr-green);
}
.bottom-link {
	color: var(--clr-yellow-subtle);
}
.subtle-link {
	border: none;
}

nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background-color: rgba(var(--clr-bluegray-rgb), 1);
	height: 6em;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	color: #ccc;
	padding: 0.5em 6em;
	z-index: 990;
	opacity: 1;
	transition: all .5s;
}
nav.scrolled {
    opacity: .875;
	height: 4.5em;
}
nav .left {
	width: 33.3%;
}
nav .left i {
	font-size: 0.375em;
	margin: 0 0.5em;
}
nav .right {
	text-align: right;
	width: 33.3%;
}
nav .center img {
	max-width: 6em;
}
nav .right a,
nav .left a {
	border: none;
	white-space: nowrap;
}
nav .right a i {
	border: none;
	color: rgba(128, 170, 190, 0.625);
	margin-left: 0.75em;
	font-size: 1.5em;
	transform: scale(1);
	transition: all 0.5s ease;
	filter: drop-shadow(2px 2px 6px rgba(0, 0, 0, 0.5));
}
nav.scrolled .right a i {
	color: rgba(240,240,240,.625);
}
nav .left a {
	font-size: 1.25em;
}
nav.scrolled .right a i, nav.scrolled .left a {
	font-size: 1em;
}
nav .right a i:hover {
	transform: scale(1.2);
	color: rgba(240,240,240,.825);
}
nav .nav-logo {
	opacity: 0;
	max-height: 4rem;
	transition: opacity .5s ease-in-out;
}

.image-view {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.75);
    z-index: 1001;
    transition: opacity .5s ease-in-out;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.image-view-content {
    position: absolute;
    top: 3em;
    bottom: 3em;
    left: 3em;
    right: 3em;
    border-radius: .5em;
}
.image-view-pic {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-image: var(--bg);
    background-size: cover;
    background-position: center;
	border-radius: inherit;
}
.close-button {
	position: absolute;
	top: .5em;
	right: .5em;
	border-radius: 50%;
	font-size: 2em;
	color: #fff;
	transition: all .5s;
	filter: drop-shadow(2px 2px 8px rgba(0,0,0,.5));
}
.close-button:hover, .close-button:active {
	color: #aaa;
	border: none;
}
.close-button:active {
	transform: translateY(3px);
}


#map {
	width: 25em;
	height: 25em;
	border-radius: .5em;
	z-index: 1;
}


input[type=text], input[type=email], input[type=tel], textarea {
	border: 1px solid var(--text-color);
	border-radius: .25em;
	margin-bottom: .5em;
	padding: .5em;
	width: 100%;
}
label {
	font-size: .75em;
}

img.lowered {
	max-height: 200px;
	width: auto;
}

.text-small {
	font-size: 85%;
}

.partners-grid img {
	max-height: 100px;
	width: auto;
}

.no-indent {
	text-indent: 0;
}

.button-mobile-menu {
	margin: 0;
	padding: 0;
}

.mobile-menu-view {
	display: none;
	visibility: hidden;
	opacity: 0;
	position: sticky;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: rgba(var(--clr-bluegray-rgb), 1);
	z-index: 980;
	padding: 1.5em;
	overflow: hidden;
	align-content: center;
	transition: all .5s;
	height: 100%;
}
.mobile-menu-view img {
	max-width: 175px;
}
.mobile-menu-view h3 {
	font-size: 2.5em;
	border: none;
	text-transform: uppercase;
}
.mobile-menu-view h3 a {
	border: none;
	display: block;
	transform: translateX(0);
	transition: all .5s;
}
.mobile-menu-view h3 a:hover, .mobile-menu-view h3 a:active, .mobile-menu-view h3 a:focus {
	transform: translateX(5px);
}
.mobile-menu-view .footer {
	position: absolute;
	bottom: 1em;
	left: 1em;
}
.mobile-menu-view .footer p {
	text-indent: 0;
	font-size: .675em;
	color: #bbb;
	margin: 0;
	padding: 0;
}

.btn-primary {
	background-color: var(--clr-red);
	border: none;
	transition: all .5s;
}
.btn-primary:hover, .btn-primary:active, .btn-primary:focus, .btn:first-child:active {
	background-color: var(--clr-red-subtle);
}

.messageArea {
	visibility: hidden;
	opacity: 0;
	transition: all .5s;
}
.messageArea.visible, .mobile-menu-view.visible {
	visibility: visible;
	opacity: 1;
	transition: all .5s;
}

.sendSuccess, .sendError {
	display: block;
	width: 100%;
	padding: 1em;
	border-radius: .25em;
}
.sendSuccess { background-color: var(--success-color); }
.sendError { background-color: var(--danger-color); }