@charset "UTF-8";
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --body-font-size: 1.6rem;
    --body-font-color: #999999;
    --body-font-family: 'Open Sans', sans-serif;
    --heading-font-family: 'Playfair Display', sans-serif;
	--light-color: #f4f4f4;
    --dark-color: #575757;
    --light-gray-color: #f2f3f7;
    --accent-color: #F2D857;
    --secondary-color: #A69021;
    --blue-color: #73B8BF;
	--red-color: #F2522E;
}

html {
	font-size: 62.5%;
	scroll-behavior: smooth;
}

body {
	font-family: var(--body-font-family);
	color: var(--body-font-color);
	font-size: var(--body-font-size);
}

a {
	display: block;
	text-decoration: none;
}


/*Navigation*/ 
.hamburger-menu {
	display: none;
}

.nav {
	width: 20rem;
	height: 100vh;
	background-color: var(--dark-color);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	display: flex;
	flex-direction: column;
}

.intro {
	text-align: center;
	margin-bottom: 3rem;
}

.icon {
	width: 100%;
	padding: 20px;
}

.nav-list {
	list-style: none;
}

.nav-item {
	position: relative;
}

.nav-item::before {
	content: "";
	width: 100%;
	height: 100%;
	background-color: rgba(255, 255, 255, .1);
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .5s cubic-bezier(.83, 0, 0.17, 1);
}

.nav-item:hover::before {
	transform: scaleX(1);
}

.nav-item:not(:last-child){
	border-bottom: 1px solid rgba(255,255,255,.05);
}

.nav-link {
	font-size: 1.4rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--light-color);
	padding: 1rem;
}

.social-media-wrapper {
	margin-top: auto;
	margin-bottom: 3rem;
	text-align: center;
}

.social-media-wrapper span {
	display: block;
	font-size: 1.2rem;
	font-style: italic;
	font-weight: 300;
	margin-bottom: 1rem;
}

.social-media {
	display: flex;
	justify-content: center;
}

.sm-link {
	font-size: 2.3rem;
	color: var(--light-color);
	transition: color .5s, transform .5s; 
}

.sm-link:hover {
	color: #999999;
	transform: translateY(-3px);
}

.sm-link:nth-child(2) {
	margin-left: 2rem;
}

.copyright {
	text-align: center;
	font-size: 1rem;
	margin-bottom: 1rem;
	color: rgba(255,255,255, .3);
}


/*Main Styles*/

.main {
	width: calc(100% - 20rem);
	transform: translateX(20rem);
}

section:not(.banner) {
	padding: 5rem 0;
}

/*Banner Styles*/

.banner {
	height: 100vh;
	background: url("./assets/bannerbackground.jpg") bottom center;
	background-size: cover;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
}

.banner-faq {
	background: url("./assets/Banner2.jpg") bottom center/cover;
}

.banner-overlay {
	width: 30vw;
	display: block;
	-webkit-user-drag: none;
}

.scroll-down {
	position: absolute;
	bottom: 1rem;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	z-index: 5;
	flex-direction: column;
	align-items: center;
}

.mouse {
	height: 5rem;
	width: 2.5rem;
	border: 2px solid var(--light-color);
	border-radius: 2rem;
	display: flex;
}

.mouse span {
	display: block;
	width: 1rem;
	height: 1rem;
	background-color: var(--light-color);
	border-radius: 50%;
	margin: auto;
	animation: move-wheel 1s linear infinite;
}

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

@keyframes move-wheel {
	0% {
		opacity: 1;
		transform: translateY(-1rem);
	}
	100% {
		opacity: 0;
		transform: translateY(2rem);
	}
}

@keyframes arrow-down {
	0% {
		opacity: 0;
	}
	25% {
		opacity: .25;
	}
	50% {
		opacity: .5;
	}
	75% {
		opacity: .75;
	}
	100% {
		opacity: 1;
	}
}

/*About Me Styles*/
.container {
	max-width: 80rem;
	margin: 0 auto;
	padding: 0 3rem;
}

.heading-group {
	color: var(--dark-color);
	margin-bottom: 5rem;
}

.section-head-small {
	display: block;
	font-size: 1rem;
	text-transform: uppercase;
	color: #999999;
	letter-spacing: 3px;
	margin-bottom: 1rem;
}

.section-head-large {
	font-size: 1.8rem;
	font-family: var(--heading-font-family);
	text-transform: uppercase;
	letter-spacing: .4rem;
}

.intro-description p:not(:last-child){
	margin-bottom: 2rem;
}

.intro-description p span {
	font-family: var(--heading-font-family);
	color: var(--dark-color);
	font-weight: bold;
	letter-spacing: 2px;
}

.call-to-action {
	background-color: var(--accent-color);
	margin-top: 5rem;
	padding: 3rem;
	color: var(--dark-color);
	margin-bottom: 10rem;
}

.call-to-action p {
	font-size: 2rem;
	font-weight: 200;
	margin-bottom: 4rem;
}

.btn {
	font-size: 1.4rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 1rem 3rem;
	display: inline-block;
	transition: background-color .5s; 

}

.cta-btn {
	color: var(--dark-color);
	border: 1px solid var(--dark-color);
}

.cta-btn:hover {
	color: var(--light-color);
	background-color: var(--dark-color);
}

/*Quote Styles*/
.motto {
	height: 50vh;
	background: url("assets/quote-background.jpg");
	background-repeat: no-repeat;
	background-size: cover;
	position: relative;
	z-index: 1;
	margin-bottom: 10rem;
}

.motto::before {
	content:"";
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,.55);
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}

.motto .container {
	height: 100%;
	display: flex;
}

.quote-wrapper {
	margin: auto;
	max-width: 50rem;
	text-align: center;
	color: var(--light-color);
	
}

.quote {
	font-size: 2rem;
	font-weight: 300;
	padding: .5rem;
	position: relative;
}

.quote::before,
.quote::after {
	position: absolute;
	font-size: 10rem;
	width: 5rem;
	height: 5rem;
	font-family: var(--heading-font-family);
}

.quote::before {
	content: open-quote;
	top: -5rem;
	left: -4rem;
}

.quote::after {
	content: close-quote;
	top: -5rem;
	right: -4rem;
}

.quote-by {
	display: block;
	text-align: right;
	margin-top: 2rem;
}

/*Timeline Styles*/

.timeline {
	position: relative;
}

.timeline::before,
.timeline::after,
.timeline-item::before,
.timeline-item::after {
	content:"";
	position: absolute;
}

.timeline::before {
	width: .5rem;
	height: 100%;
	background-color: var(--light-gray-color);
	border-radius: 1rem;
	top: 0;
	left: 0;
}

.timeline::after {
	width: 2rem;
	height: 2rem;
	border: .5rem solid var(--light-gray-color);
	border-radius: 50%;
	bottom: -2.5rem;
	left: -1.2rem;
}

.timeline-item {
	background-color: var(--light-gray-color);
	padding: 2.2rem;
	margin-left: 3.5rem;
	margin-bottom: 2rem;
	position: relative;
}

.timeline-item::before {
	border: 1rem solid transparent;
	border-right-color: var(--light-gray-color);
	top: .5rem;
	left: -2rem;
}

.timeline-item::after {
	width: 3rem;
	height: 3rem;
	background-color: var(--light-gray-color);
	border-radius: 50%;
	top: 0;
	left: -4.7rem;
}

.timeline-heading {
	margin-bottom: 2rem;
}

.timeline-entry-name {
	display: inline-block;
	margin-right: 1rem;
	font-size: 2rem;
	font-weight: 400;
	letter-spacing: 1px;
	color: var(--dark-color);
	text-transform: uppercase;
}



/*Frequently Asked Questions Styles*/
.faq-entry {
	display: block;
	margin-top: 4rem;
}

.faq-entry p{
	font-size: 1.5rem;
	font-weight: 300
}
.faq-heading {
	margin-bottom: 2rem;
}

.faq-entry-name {
	display: block;
	margin-right: 1rem;
	font-size: 1.5rem;
	font-weight: 400;
	letter-spacing: 1px;
	color: var(--dark-color);
	text-transform: uppercase;
}

.faq-question {
	display: block;
	font-size: 1.5rem;
	font-style: italic;
	font-weight: 300;
	margin-top: .5rem;
}

/*Portal Styles*/
.portal-wrap {
	display: block;
}

.portal-item-group {
	display: flex;
	width: 100%;
	height: 30vh;
	margin-top: 5rem;
	margin-bottom: 8rem;
	left: 0;
	right: 0;
	
}

.portal-item {
	background-color: var(--light-color);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	margin: 0 1rem;
	padding: 1.2rem;
	width: 33%;
}

.link-btn {
	border: 1px solid var(--dark-color);
	cursor: pointer;
	color: var(--dark-color);
}

.link-btn:hover {
	background-color: var(--accent-color);
	border: 1px solid transparent;
}

.portal-item:first-child {
	margin-left: 0;
}

.portal-item p{
	margin-top: 1.3rem;
	font-siz: 50%;
	font-weight: 200;
}

/*Portfolio Styles*/
.my-portfolio .grid {
	grid-template-columns: repeat(auto-fit, minmax(50rem, 1fr));
}

.my-portfolio .grid-item {
	min-height: 35rem;
	position: relative;
	overflow: hidden;
	margin-top: 2rem;
}

.portfolio-item-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	top: 0;
	left: 0;
}

.portfolio-item-info {
	height: 100%;
	width: 100%;
	background-color: var(--accent-color);
	color: var(--light-color);
	position: absolute;
	top: 0;
	left: 0;
	padding: 5rem 2rem;
	text-transform: uppercase;
	display: flex;
	flex-direction: column;
	opacity: 0;
	transition: opacity .5s;
}

.portfolio-item-info:hover {
	opacity: .8;
	color: var(--dark-color);
}

.project-name {
	font-size: 2rem;
	letter-spacing: 1px;
	margin-bottom: .7rem;
	transform: translateY(-2rem);
	transition: transform .5s;
}

.project-name span {
	font-weight: 300;
	opacity: .7;
	margin-left: 15px;
}

.portfolio-item-info:hover .project-name {
	transform: translateY(0);
}

.info-cta {
	margin-top: auto;
}

.info-btn {
	color: var(--dark-color);
	border: 1px solid var(--dark-color);
}

.info-btn:hover {
	color: var(--light-color);
	background-color: var(--dark-color);
}

.more-cta {
	margin-top: 2rem;
}

.more-btn {
	color: var(--dark-color);
	border: 1px solid var(--dark-color);
	background-color: transparent;
}

.more-btn:hover {
	background-color: var(--accent-color);
	border-color: transparent;
}


/*Contact Styles*/
.contact-info-wrapper {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
}

.contact-info {
	flex-basis: 45%;
}

.contact-info-item {
	display: flex;
	align-items: center;
	margin-bottom: 2.5rem;
}

.info-item-icon {
	display: flex;
	width: 6rem;
	font-size: 3rem;
	color: var(--accent-color);
	border-radius: 3px;
}

.info-item-icon i{
	margin: auto;
}

.data-wrapper {
	margin-left: 2rem;
}

.info-item-data {
	display: block;
	font-size: 1.4rem;
	line-height: 1.5;
}

.contact-form {
	flex: 1;
}

.contact-form .input,
.contact-form textarea {
	width: 100%;
	background-color: var(--light-gray-color);
	font-family: var(--body-font-family);
	color: var(--body-font-color);
	font-size: 1.4rem;
	letter-spacing: 1px;
	border: none;
	border-radius: 3px;
	margin-bottom: 2rem;
	padding: 1rem;
}

.contact-form .btn {
	border: 1px solid var(--dark-color);
	border-radius: 3px;
	cursor: pointer;
}
 
.contact-form .btn:hover {
	border: 1px solid transparent;

}



/*Selected Works Styles*/
.selected-works-banner {
	height: 30vh;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	margin-bottom: 1.5rem;
}

.selected-works-banner-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
}

.selected-works-banner-info {
	height: 100%;
	width: 100%;
	background-color: var(--dark-color);
	color: var(--light-color);
	position: absolute;
	padding: 5rem;
	opacity: .8;
}

.selected-works-banner-info h5{
	text-transform: uppercase;
	font-size: 1.2;
	font-style: italic;
	font-weight: 200;
	letter-spacing: 1px;
	margin-bottom: 25px;
}

.selected-works-banner-info p{
	font-size: 1.4rem;
	font-weight: 400;
}

/*Store Styles*/

.store-item {
	padding-bottom: 50px;
}


/*Gallery Styles*/
.gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, 30%);
	justify-content: space-between;
	align-content: space-between;
	grid-gap: 1rem;
	height: auto;
	width: 100%;
	margin-bottom: 2rem;
}

.gallery-grid img {
	width: 100%;
	height: auto;
	cursor: pointer;
}


#lightbox {
	position: fixed;
	z-index: 999;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.70);
	display: none;
}

#lightbox.active {
	display: flex;
	justify-content: center;
	align-items: center;
}

#lightbox img{
	max-width: 80%;
	max-height: 80%;
}

/*sizing page styles*/
.sketch {
	width: 100%;
	height: 40vw;
	display: flex;
	margin-bottom: 2rem;
	border: 1px solid var(--dark-color);
}

.sketch img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.size-table {
	background-color: var(--light-color);
	color: var(--dark-color);
	padding: 3.5rem;
	width: 100%;
	height: 100%;
}

#sizeTable {
	width: 100%;
}

#sizeTable th {
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 1px;
	text-align: center;
	padding: .6rem;
	white-space: nowrap;
}

#sizeTable th:nth-child(1){
	text-align: left;
}

#sizeTable td {
	font-weight: 300;
	font-size: 1.4rem;
	white-space: nowrap;
	text-align: center;
}


.our-size {
	color: var(--accent-color);
}


/*Media Queries*/
@media screen and (max-width: 1030px) {
	.nav {
		transform: translateX(-21rem);
		transition: transform .5s;
	}
	
	.is-open .nav {
		transform: translateX(0);
	}
	
	.hamburger-menu {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 5rem;
		height: 5rem;
		background-color: var(--dark-color);
		color: var(--light-color);
		position: fixed;
		top: 0;
		left: 0;
		font-size: 2.6rem;
		cursor: pointer;
		transition: transform .5s;
		z-index: 1000;
	}
	
	.hamburger-menu img{
		margin: auto;
		width: 5rem;
		height: 5rem;
	}
	
	.close {
		display: none;
	}
	
	.is-open .hamburger-menu {
		transform: translateX(21rem);
	}
	
	.is-open .close {
		display: block;
	}
	
	.is-open .open {
		display: none;
	}
	
	.main {
		width: 100%;
		transform: initial;
	}
	
	.banner {
		height: 80vh;
	}
	
	.banner::after {
		content: "";
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background-color: rgba(0,0,0,0.80);
		z-index: 999;
		opacity: 0;
		transform: scale(0);
		transition: opacity .5s;
	}
	
	.is-open .banner::after {
		opacity: 1;
		transform: scale(1);
	}
	
	.portfolio-item-info {
		background-color: rgba(0.0,0, .5);
		opacity: .6;
	}
	
	.btn {
		font-size: 1.2rem;
	}
}

@media screen and (max-width: 768px) {
	.grid,
	.my-portfolio .grid {
		grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));
	}
}

@media screen and (max-width: 600px) {
	.banner {
		height: 50rem;
	}
	
	.call-to-action p {
		font-size: 2rem;
	}
	
	.motto {
		height: 60vh;
	}
	
	.quote::before,
	.quote::after {
		font-size: 10rem;
	}
	
	.quote::before {
		top: -4rem;
		left: -3rem;
	}
	
	.quote::after {
		top: -4rem;
		right: -3rem;
	}
	
	.quote-by {
		margin-top: 4rem;
	}
	
	.timeline-entry-name {
		display: block;
		font-size: 1.6rem;
	}
	
	.timeline-heading {
		font-size: 1.4rem;
	}
}

@media screen and (min-width: 1925px){
	html{
		font-size: 75%;
	}
}