/* BASE VARIABLES */
:root {
	--color-main: hsl(176, 100%, 33%);
	--color-light-1: hsl(176, 100%, 40%);
	--color-light-2: hsl(176, 100%, 60%);
	--color-dark: hsl(176, 100%, 20%);
	--color-accent-1: hsl(274, 70%, 35%);
	--color-accent-2: hsl(150, 100%, 35%);
	--color-accent-3: hsl(85, 100%, 45%);
	--color-text: hsl(0, 0%, 100%);
	--color-text-trans: hsla(0, 0%, 100%, 0.5);
}

/* BASE STYLES */
* {
	margin: 0px;
	padding: 0px;
	box-sizing: border-box;
}
html, body {
	width: 100%;
	min-height: 100vh;
}
h1, h2, h3, h4, h5, h6 {
	font-weight: 400;
}
b {
	font-weight: 700;
}
a {
	color: var(--color-text);
}
.flexbox {
	display: flex;
}
.flexbox-wrap {
	display: flex;
	flex-wrap: wrap;
}
.flexbox-center {
	display: flex;
	justify-content: center;
}
.flexbox-between {
	display: flex;
	justify-content: space-between;
}
.w-100 {
	flex: 1 0 100%;
}
body {
	font-family: poppins, sans-serif;
	font-size: 16px;
	color: var(--color-text);
	line-height: 1.5;
}

/* FRAMEWORK GENERAL STRUCTURE */
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding-top: 1.5em;
	z-index: 1000;
	overflow: visible;
	background-color: var(--color-text);
	border-bottom: 2px solid var(--color-accent-1);
}
header article, footer article {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.logo {
	display: block;
	width: 45%;
	max-width: 400px;
}
.logo img {
	display: block;
	width: 100%;
	height: auto;
}
.nav-main {
	flex: 1 1;
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
}
.nav-main a {
	flex: 0 0 auto;
	display: block;
	padding: 0.5em;
	font-weight: 800;
	font-size: 1em;
	letter-spacing: 0.15em;
	text-decoration: none;
	transition: all 0.3s;
}
.nav-main a i {
	font-size: 1.5em;
}
.nav-desktop, .nav-social {
	flex: 0 0 auto;
	display: flex;
	justify-content: flex-end;
}
.nav-desktop a {
	margin-left: 1em;
	color: #333;
}
a#portfolio:hover, a#portfolio.selected {
	color: var(--color-accent-1);
}
a#about:hover, a#about.selected {
	color: hsl(205,100%,20%);
}
a#contact:hover, a#contact.selected {
	color: var(--color-accent-2);
}
.nav-social {
	margin-left: 2em;
}
.nav-social a {
	color: var(--color-main);
}
.nav-social a:hover {
	color: var(--color-accent-1);
}
.nav-mobile {
	display: none;
	margin-left: 2em;
}
.nav-mobile-trigger {
	color: var(--color-text);
	background-color: var(--color-main);
}
.nav-mobile-trigger:hover, .nav-mobile-trigger.selected {
	background-color: var(--color-accent-1);
}
footer {
	padding: 1em 0;
	color: var(--color-text);
	background-color: var(--color-dark);
	font-size: 0.75em;
}
footer .logo {
	max-width: 200px;
}
footer .tlb {
	display: block;
	width: 25%;
	max-width: 100px;
	height: auto;
}

/* CONTENT GENERAL STRUCTURE */
.mainbox {
	
}
section {
	padding: 3em 0;
}
article {
	padding: 0 2em;
	margin: 0 auto;
	max-width: 1500px;
	text-align: center;
}

/* GENERIC ELEMENTS */
hr {
	border: none;
	border-bottom: 1px solid var(--color-main);
	margin: 1.5em 0;
}
h1 {
	font-size: 2.5em;
	line-height: 1.3;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 0.25em;
}
h2 {
	font-size: 1.5em;
	margin-bottom: 1em;
}
h3 {
	font-size: 1.25em;
	margin-bottom: 1em;
}
p {
	font-family: museo-slab, serif;
	font-weight: 300;
	font-size: 1em;
	margin-bottom: 0.5em;
	letter-spacing: 0.03em;
}
.button-link {
	display: inline-block;
	padding: 0.5em 2em;
	border: 1px solid var(--color-text-trans);
	text-decoration: none;
	font-weight: 700;
	text-transform: uppercase;
	transition: all 0.3s;
}
.button-link:hover {
	border-color: 1px solid var(--color-text);
	background-color: hsla(0,0%,0%,0.25);
}

/* HERO SECTION ELEMENTS */
section.hero {
	padding: 0;
	background-image: url("../images/backgrounds/kingsbury-van-sickle.jpg");
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center bottom;
}
section.hero article {
	max-width: 100%;
	padding: calc(112px + 4em) 2em 4em 2em;
	text-align: center;
	background-color: hsla(176, 100%, 27%, 0.6);
	backdrop-filter: blur(2px);
}
.text-inner {
	padding: 0 2em;
	margin: 0 auto;
	max-width: 1200px;
}
section.hero h2 {
	padding-bottom: 1em;
	border-bottom: 1px solid var(--color-text-trans);
}

/* PORTFOLIO SECTION ELEMENTS */
section.portfolio {
	position: relative;
	background-color: var(--color-accent-1);
	background-image: url("../images/backgrounds/kdg-mountains.png");
	background-repeat: no-repeat;
	background-size: auto 95%;
	background-position: left bottom;
}
.portfolio-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	margin: 0 auto;
}
.portfolio-link {
	display: block;
	position: relative;
	flex: 1 1 30%;
	margin: 1.5%;
	padding-top: 20%;
	border: 1px solid hsl(274, 70%, 70%);
	background-repeat: no-repeat;
	background-size: 101%;
	background-position: center top;
	transition: background-size 0.7s;
}
.portfolio-link:hover {
	border-color: var(--color-accent-3);
	background-size: 110%;
}
.portfolio-overlay {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	opacity: 0;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 1em;
	background-color: hsla(0,0%,0%,0.75);
	transition: opacity 0.3s;
}
.portfolio-overlay h3 {
	font-weight: 800;
	font-size: 1.25em;
	margin-bottom: 0.5em;
	letter-spacing: 0.1em;
	color: var(--color-accent-3);
}
.portfolio-overlay p {
	margin-bottom: 0;
	color: var(--color-text);
}
.portfolio-link:hover .portfolio-overlay {
	opacity: 1;
}

/* ABOUT SECTION ELEMENTS */
section.about {
	padding: 0;
	background-image: url("../images/backgrounds/hero-desk.jpg");
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center top;
}
section.about article {
	max-width: 100%;
	padding: 3em 2em;
	text-align: center;
	background-color: hsla(205,100%,20%,0.60);
	backdrop-filter: blur(2px);
}
section.about h2 {
	padding-bottom: 1em;
	border-bottom: 1px solid var(--color-text-trans);
}

/* CONTACT SECTION ELEMENTS */
section.contact {
	position: relative;
	background-color: var(--color-accent-2);
	background-image: url("../images/backgrounds/kdg-mountains.png");
	background-repeat: no-repeat;
	background-size: auto 95%;
	background-position: left bottom;
}
section.contact h2 {
	margin-bottom: 0.25em;
}
section.contact h3 {
	padding-bottom: 1em;
	border-bottom: 1px solid var(--color-text-trans);
}

/* FEATHERLIGHT */
.featherlight .featherlight-content {
	max-height: 90%;
	padding: 0;
	box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
	border-bottom: none;
	overflow: visible;
	margin-left: 5%;
    margin-right: 5%;
}
.featherlight .featherlight-close-icon {
    font-size: 2em;
    top: -1.1em;
    line-height: 1;
    width: auto;
    color: var(--color-text);
	background: transparent;
}
.featherlight .featherlight-close-icon:hover {
    color: var(--color-accent-2);
}

/* GALLERY */
.gallery-window .featherlight-content {
	max-width: 1500px;
	width: 90%;
}
.gallery {
	background-color: var(--color-main);
	text-align: center;
	padding: 0;
}
.gallery article {
	padding: 2em;
}
.gallery h1 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 2em;
	margin-bottom: 0;
	line-height: 1;
	background-color: var(--color-dark);
}
.slick-button {
	padding: 1em;
	color: var(--color-text);
	text-shadow: 2px 2px 6px rgba(0,0,0,0.3);
	transition: 0.3s all;
	text-decoration: none;
	z-index: 999;
}
.slick-button:hover {
	color: var(--color-text);
	text-shadow: 2px 2px 6px rgba(0,0,0,0.6);
}
.gallery h2 {
	font-size: 1em;
	margin-bottom: 0;
	margin-top: 2em;
	font-weight: 700;
	letter-spacing: 0.1em;
}
.gallery .button-link {
	margin-bottom: 1em;
}
.gallery-container {
	width: 100%;
	padding: 0.5em 0 0.5em 0.5em;
	margin-bottom: 1em !important;
	background-color: var(--color-text-trans);
}
.gallery-slider {
	margin-bottom: 0 !important;
}
.gallery-slider img {
	margin-right: 0.5em;
	height: 50vh;
}
.gallery-dots .slick-dots {
    position: relative;
    bottom: 0;
}
