/* General */
*,
*::before,
*::after {
	box-sizing: border-box;
	padding: 0;
	margin: 0;
	font-family: Arial, Helvetica, sans-serif;
}
:root {
	--color-accent:     rgb(44, 90, 164);
	--color-darkaccent: rgb(39, 57, 79);
	--color-contrast:   rgb(27, 140, 48);
	--color-highlight:   rgb(203, 217, 220);
	--color-white:      rgb(235, 235, 235);
	--color-light:      rgb(233, 221, 221);
	--color-lightgray:  rgb(172, 172, 172);
	--color-darkgray:   rgb(65, 65, 65);
	--color-dark:       rgb(36, 36, 36);
	--color-shadow:     rgba(100, 100, 100, 0.5);
	--color-black:      rgb(10, 10, 10);
}
body {
	background-color: rgb(255, 255, 255);
	background-color: rgb(93, 93, 93);
	overflow-x: hidden;
	padding-top: 130px;
}
h1 {
	color: var(--color-white);
    font-size: 4rem;
}
h2 {
	font-size: 3rem;
}
h3 {
	font-size: 2rem;
}
h4 {
	font-size: 1.5rem;
	text-align: center;
}
.text {
    font-size: 1.2rem;
    color: var(--color-black);
	text-decoration: none;
}
.text-dark {
	color: var(--color-black);
}
.text-gray {
	color: var(--color-lightgray)
}
.text-light {
	color: var(--color-white);
}
.material-icons {
	font-size: 4rem;
	color: var(--color-black);
	user-select: none; 
}

/* Navigation */
nav {
	box-shadow: 0 5px 10px var(--color-shadow);
}
.nav-desktop {
	position: fixed;
	top: 0;
	width: 100vw;
	z-index: 8;
}
.nav-desktop.shown {
	animation: showDesktopNavAnimation 0.5s;
}
.nav-desktop.hidden {
	animation: hideDesktopNavAnimation 0.5s;
}
.nav-1 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 5vw;
	height: 75px;
	background-color: var(--color-light);
	box-shadow: 0 5px 10px;
}
.nav-1-logo {
	height: 60px;
	width: 60px;
}
.nav-2 {
	display: flex;
	flex-direction: column;
	background-color: var(--color-light);
}
.nav-upper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 100px;
	padding: 0 5vw;
	height: 80px;
}
.nav-upper-div {
	display: flex;
}
.nav-upper-contact {
	display: flex;
	align-items: center;
	margin-left: 70px;
	gap: 10px;
}
.nav-2-logo {
	height: 60px;
}
.nav-upper-contact-icon {
	font-size: 40px;
	color: var(--color-darkgray);
}
.nav-desktop-mobile-button {
	height: 60px;
	display: none;
	cursor: pointer;
}
.nav-2-hr {
	border: 1px solid var(--color-dark);
}
.nav-lower {
	height: 50px;
	padding: 0 10vw;
}
.nav-mobile {
	position: fixed;
	top: 80px;
	right: 0;
	width: 80vw;
	z-index: 9;
	height: 100vh;
	background-color: var(--color-light);
	display: none;
}
.nav-mobile.shown {
	animation: showMobileNavAnimation 0.5s;
}
.nav-mobile.hidden {
	animation: hideMobileNavAnimation 0.5s;
}
.nav-mobile-contacts {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 50px;
	margin-top: 25px;
}
.nav-mobile-contact {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 15px;
}
.nav-mobile-contact-icon {
	height: 50px;
	color: var(--color-accent);
}

@keyframes hideDesktopNavAnimation {
	from { top: 0 }
	to { top: -150px } /* change the value to the nav's height */
}
@keyframes showDesktopNavAnimation {
	from { top: -150px }
	to { top: 0 }
}

@keyframes hideMobileNavAnimation {
	from { right: 0 }
	to { right: -80vw } /* change the value to the nav's height */
}
@keyframes showMobileNavAnimation {
	from { right: -80vw }
	to { right: 0 }
}

/* Headers */
header {
	position: relative;
	display: flex;
	width: 100vw;
}
.header-background-image-div {
	background: url('/images/stock/maxresdefault.jpg') no-repeat center/cover;
	position: absolute;
	z-index: -9;
	filter: brightness(0.4);
	height: 100%;
	width: 100%;
	left: 0;
}
.header-bihtb {
	flex-direction: column;
	justify-content: space-around;
	align-items: center;
	height: 600px;
	padding: 0 5vw;
}
.header-bihtb-text-div {
    display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	align-items: flex-start;
	height: 100%;
	width: 700px;
}
.header-bihtb-text-div li {
	font-size: 1.5rem;
	margin-bottom: 10px;
	font-weight: bold;
}
.header-bihb {
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	height: 400px;
}
.header-bihb-text-div {
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	align-items: center;
	height: 100%;
}
.header-htsi {
	justify-content: space-evenly;
	align-items: center;
	height: 600px;
	background-color: var(--color-light);
}
.header-htsi-text-div {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 75px;
	height: 100%;
	width: 35%;
}
.header-htsi-text-div h1,
.header-htsi-text-div p {
	color: var(--color-black);
}
.header-htsi-image-div {
	background: url(/images/test-image.jpg) no-repeat center/cover;
	height: 500px;
	width: 600px;
}
header .button-base {
	color: var(--color-white);
}

/* Services */
.section-services {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 50px;
	background-color: var(--color-light);
	padding: 50px 0px;
}
.services {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 60px;
}
.section-service {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 15px;
	width: 400px;

	background-color: var(--color-white);
	padding: 25px 50px 50px 50px;
	border-radius: 10px;
	box-shadow: 0 0 10px var(--color-shadow);
}
.section-service-image {
	width: 300px;
}
.service-image {
	background: url(/images/test-image.jpg) no-repeat center/cover;
	width: 300px;
	height: 300px;
}
.section-service-icon {
	width: 450px;
}
.service-icon {
	aspect-ratio: 1/1;
	height: 120px;
}

/* Articles and Images Sections */
.section-general {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 50px;
	padding: 50px 25px;
}
.section-dark {
	background-color: var(--color-lightgray);
}
.section-light {
	background-color: var(--color-light);
}
.section-accent {
	background-color: var(--color-darkaccent);
}
.section-highlight {
	background-color: var(--color-highlight);
}
.section-article {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 25px;
	width: 600px;
}
.section-image {
	aspect-ratio: 4/3;
	height: 400px;
	object-fit: cover;
}

/* Text Section */
.section-text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 50px;
	background-color: var(--color-light);
	padding: 50px 0;
}
.section-text-div {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 40px;
	line-height: 1.3;
}
.checkmarks-div {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 10px;
}
.checkmark-div {
	display: flex;
	align-items: center;
	gap: 10px;
}
.section-text-section {
	width: 350px;
}
.checkmark-icon {
	font-size: 1.5rem;
	color: var(--color-accent);
}
.section-text-image {
	width: 400px;
}

/* Gallery Link Section */
.section-gallery-link {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-template-rows: 400px;
}
.section-gallery-section {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}
.section-gallery-section:hover {
	cursor: pointer;
}
.section-gallery-background-div {
	position: absolute;
	z-index: -9;
	height: 100%;
	width: 100%;
	filter: brightness(0.6);
	transition: filter 0.2s;
}
.section-gallery-background-div.active {
	filter: brightness(0.4);
}

.section-gallery-section p {
	font-size: 2.5rem;
}
.section-one-background {
	background: url('/images/stock/360_F_42658037_HaGdRyE7pGNTRUblWGi4KxM95AxVLhDS.jpg') no-repeat center/cover;
}
.section-two-background {
	background: url('/images/stock/12917-min.jpg') no-repeat center/cover;
}
.section-three-background {
	background: url('/images/stock/demount_skiploader.jpg') no-repeat center/cover;
}
.gallery-link-text {
	text-align: center;
	font-weight: bold;
}

/* Gallery Section */
.section-gallery {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
	padding: 25px 0;
}
.gallery-images {
	display: grid;
	grid-template-columns: 400px 400px 400px;
	gap: 25px;
}
.gallery-image {
	aspect-ratio: 4/3;
	height: 300px;
	object-fit: cover;
	cursor: pointer;
}

/* Contact Form */
.section-contact-form {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 50px;
	padding: 50px 0;
	background-color: var(--color-light);
}
.section-contact-form-main {
	display: flex;
	gap: 50px;
}
.contact-form-article {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 400px;
	gap: 25px;
}
.contact-form-article-contacts {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}
.contact-form-article-contacts .button-link {
	color: var(--color-black);
}
.contact-form-contact {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
}
.contact-form-contact-icon {
	font-size: 30px;
}
.contact-form {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-end;
	background-color: var(--color-light);
	/* border: 1px solid black; */
	border-radius: 5px;
	padding: 25px;
	height: 600px;
	width: 500px;
	box-shadow: 0 0 10px var(--color-shadow)
}
.contact-form-group {
	display: flex;
	align-items: flex-end;
	width: 100%;
	gap: 25px;
}
.contact-form-section {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
}
.contact-form-input-field {
	width: 100%;
	height: 2rem;
	padding: 5px;
	font-size: 1rem;
	border: 1px solid black;
}
.contact-form-message-field {
	resize: none;
	height: 300px;
}
.contact-form-message-div {
	display: flex;
	align-items: center;
	gap: 50px;
}

/* Fullscreen Image Div */
.image-fullscreen-view {
	display: none; /* Change this to flex */
	align-items: center;
	justify-content: center;
	position: relative; /* for testing */
	position: fixed; /* Change to this position */
	top: 0;
	z-index: 9;
	width: 100vw;
	height: 100vh;
	background-color: var(--color-shadow);
}
.image-fullscreen-cross {
	position: absolute;
	top: 50px;
	right: 50px;
	font-weight: bold;
	font-size: 5rem;
	cursor: pointer;
}
.image-fullscreen-image {
	width: 80%;
	height: 70%;
	aspect-ratio: 1/1;
	object-fit: cover;
}
.image-fullscreen-controllers {
	display: flex;
	position: absolute;
	bottom: 0;
}
.image-fullscreen-controller {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 8rem;
	width: 50vw;
	height: 150px;
	user-select: none; 
	-webkit-user-select: none; 
	-moz-user-select: none; 
	-ms-user-select: none; 
}
.image-fullscreen-controller:hover {
	background-color: var(--color-darkgray);
	opacity: 0.5;
	cursor: pointer;
}

/* Buttons */
.button-base {
	background: transparent;
	font-weight: bold;
	font-size: 1.1rem;
	border: none;
	text-decoration: none;
}
.button-base:hover {
	cursor: pointer;
}
.button-general {
	border: 2px solid var(--color-accent);
	border-radius: 100px;
	padding: 10px 20px;
	transition: background-color 0.2s, color 0.2s;
	color: var(--color-black);
}
.button-general:hover {
	background-color: var(--color-accent);
	color: white;
}
.button-general-cta {
	border: 2px solid var(--color-contrast);
	border-radius: 100px;
	padding: 10px 20px;
	transition: background-color 0.1s, color 0.1s;
}
.button-general-cta:hover {
	background-color: var(--color-contrast);
	color: white;
}
.button-general-white {
	border: 2px solid var(--color-white);
	border-radius: 100px;
	padding: 10px 20px;
	transition: background-color 0.2s, color 0.2s;
	color: var(--color-white);
}
.button-general-white:hover {
	background-color: var(--color-white);
	color: var(--color-black);
}
.button-desktop-nav {
	height: 100%;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	padding: 10px 20px;
	transition: border-bottom 0.2s, color 0.2s;
	color: black;
}
.button-desktop-nav.lit {
	border-bottom: 5px solid var(--color-accent);
	color :var(--color-accent);
}
.button-desktop-nav:hover {
	border-bottom: 5px solid var(--color-accent);
	color :var(--color-accent);
}
.button-desktop-nav-cta {
	height: 100%;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	padding: 10px 20px;
	transition: border-bottom 0.2s, color 0.2s;
}
.button-desktop-nav-cta:hover {
	border-bottom: 5px solid var(--color-contrast);
	color :var(--color-contrast);
}
.button-mobile-nav {
	width: 100%;
	height: 75px;
	border-bottom: 3px solid var(--color-black);
	font-size: 1.6rem;
	background-color: var(--color-lightgray);
}
.button-mobile-nav:active {
	filter: brightness(0.8);
}
.button-mobile-nav-cta {
	width: 100%;
	height: 75px;
	border-bottom: 3px solid var(--color-black);
	font-size: 1.6rem;
	background-color: var(--color-contrast);
}
.button-mobile-nav-cta:active {
	filter: brightness(0.8);
}
.button-link-accent {
	text-decoration: underline;
	color: var(--color-accent);
}
.button-link-accent:hover {
	filter: brightness(0.8);
	text-decoration: underline;
}
.button-link {
	color: var(--color-black);
	font-weight: normal;
}
.button-link:hover {
	text-decoration: underline;
}
.button-link:hover i {
	text-decoration: none;
}

/* Footer */
footer {
	display: flex;
	align-items: flex-start;
	justify-content: space-evenly;
	flex-wrap: wrap;
	padding: 50px 10px;
	background-color: var(--color-white);
}
.footer-section {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	margin: 20px;
	min-width: 200px;
}
.footer-logo-section {
	width: 300px;
}
.footer-logo-image-div {
	background: url(/images/logos/logo-3-removebg-preview.png) no-repeat center/contain;
	aspect-ratio: 4/2.5;
	width: 300px;
}
.footer-rights-text {
	font-size: 0.9rem;
}
.footer-contact {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	
}
.footer-contact-icon {
	font-size: 30px;
	color: var(--color-accent);
}

/* Media Queries */
@media screen and (max-width: 1300px) {
	.gallery-images {
		grid-template-columns: 300px 300px 300px;
		gap: 10px;
	}
	.gallery-image {
		height: 200px;
	}
}
@media screen and (max-width: 1080px) {
	body {
		padding-top: 80px;
	}
	.nav-gap {
		height: 50px;
	}
	.nav-upper-contact,
	.nav-button-cta,
	.nav-lower,
	.nav-2-hr {
		display: none;
	}
	.nav-2-logo {
		margin: 0;
	}
	.nav-desktop-mobile-button {
		display: inline;
	}
	.section-general {
		flex-direction: column;
		align-items: center;
	}
	.services {
		flex-direction: column;
		gap: 25px;
	}
	.section-service {
		width: 60vw;
	}
	.gallery-images {
		display: flex;
		flex-direction: column;	
		align-items: center;
		gap: 25px;
	}
	.gallery-image {
		height: 400px;
	}
	.section-contact-form-main {
		flex-direction: column;
		align-items: center;
	}
	.contact-form-article {
		width: 70vw;
		align-items: center;
	}
}
@media screen and (max-width: 800px) {
	h1 {
		font-size: 3.5rem;
	}
	h2 {
		font-size: 2.5rem;
	}
	h3 {
		font-size: 1.5rem;
	}
	h4 {
		font-size: 1.5rem;
	}
	.header-bihtb-text-div {
		width: 80vw;
		align-items: center;
		text-align: center;
	}
	.section-image {
		width: 80vw;
		height: 50vw;
	}
	.section-article {
		width: 80vw;
	}
	.section-text-section {
		width: 80vw;
	}
	.section-text-image {
		display: none;
	}
	.section-service {
		width: 80vw;
	}
	.section-text-div {
		flex-direction: column;
		align-items: center;
	}
	.section-gallery-link {
		grid-template-columns: 1fr;
		grid-template-rows: repeat(3, 60vw);
	}
	.gallery-image {
		height: 50vw;
	}
}
@media screen and (max-width: 500px) {
	.section-article {
		align-items: center;
	}
	.contact-form {
		width: 90vw;
	}
	.footer-logo-section {
		align-items: center;
		text-align: center;
	}
	.footer-logo-image-div {
		width: 70vw;
	}
}