/* Font Face Declarations */
@font-face {
	font-family: "Montserrat";
	src: url("../assets/fonts/montserrat/Montserrat-Regular.woff2")
		format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Montserrat";
	src: url("../assets/fonts/montserrat/Montserrat-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Montserrat";
	src: url("../assets/fonts/montserrat/Montserrat-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Montserrat";
	src: url("../assets/fonts/montserrat/Montserrat-Black.woff2") format("woff2");
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

/* Base styles */
* {
	font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI",
		Roboto, sans-serif;
}

@layer utilities {
	.no-scrollbar::-webkit-scrollbar {
		display: none;
	}
	.no-scrollbar {
		-ms-overflow-style: none;
		scrollbar-width: none;
	}
}

body{
    overflow-x: hidden;
}

/* Custom Container */
.container {
	max-width: 1440px;
	padding: 0 30px;
	margin: 0 auto;
}

/* Mobile responsive container */
@media (max-width: 768px) {
	.container {
		padding: 0 16px;
	}
}

/* Navbar styles */
.navbar {
	transition: all 0.3s ease;
}

.navbar.scrolled {
	background-color: rgba(0, 0, 0, 0.05) !important;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

/* Language specific styles that can't be replicated with Tailwind */
.header__lang.opened {
	border-radius: 5px 5px 0 0 !important;
	transition-delay: 0s !important;
}

.header__lang.opened .header__lang--options {
	height: 72px !important;
}

/* Service cards hover effects */
.service-card {
	cursor: pointer;
	position: relative;
}

.service-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border-radius: 20px;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.service-card-1::before {
	background: radial-gradient(100% 116.73% at 0% 0%, rgba(200, 255, 128, 0.2) 0%, rgba(0, 0, 0, 0) 100%);
}

.service-card-2::before {
	background: radial-gradient(100% 116.73% at 0% 0%, rgba(150, 215, 255, 0.2) 0%, rgba(0, 0, 0, 0) 100%);
}

.service-card-3::before {
	background: radial-gradient(100% 116.73% at 0% 0%, rgba(225, 122, 223, 0.2) 0%, rgba(0, 0, 0, 0) 100%);
}

.service-card:hover::before {
	opacity: 1;
}

/* Change Section Styles */
.change-section {
	position: relative;
}

.change-container {
	position: relative;
	perspective: 1000px;
}

.change-image {
	position: absolute;
}

.change-image img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* How It Works Section Styles */
.how-it-works-section {
	position: relative;
}

.steps-container {
	padding: 0 20px;
	overflow: hidden;
	position: relative;
	height: auto;
}

.steps-wrapper {
	padding-left: calc(50vw - 300px);
	padding-right: calc(50vw - 300px);
	will-change: transform;
}

/* Progress line with background and fill animation */
.progress-line {
	background: rgba(255, 255, 255, 0.08);
	border-radius: 2px;
}

.progress-fill {
	background: linear-gradient(90deg, rgba(1, 151, 65, 0.4) 0%, rgba(1, 151, 65, 1) 100%);
	border-radius: 2px;
	transform-origin: left;
}

/* Step states */
.step-item.active .step-image-wrapper {
	background-color: #019741 !important;
	scale: 1.1;
}

.step-item.active .step-image-wrapper img {
	opacity: 1 !important;
}

.step-item.incoming .step-image-wrapper {
	background-color: rgba(255, 255, 255, 0.3) !important;
}

.step-item.incoming .step-image-wrapper img {
	opacity: 0.6 !important;
}

.step-item.passed .step-image-wrapper {
	background-color: #019741 !important;
}

.step-item.passed .step-image-wrapper img {
	opacity: 0.5 !important;
}

/* Progress line states - controlled by JavaScript */

/* Mobile progress line positioning */
@media (max-width: 768px) {
	/* Override desktop progress line styles for mobile */
	.progress-line {
		position: absolute !important;
		top: 90px !important; /* 80px container + 10px spacing */
		left: 40px !important;
		transform: translateX(-50%) !important;
		width: 4px !important;
		height: calc(100% - 90px + 30px) !important; /* Full height minus top offset */
		margin-left: 0 !important;
		margin-top: 0 !important;
		translate: 0 !important;
		transition: none;
	}

	.progress-fill {
		width: 100% !important;
		height: 0;
		transition: height 0.3s ease;
	}

	/* Hide progress line on last step */
	.step-item:last-child .progress-line {
		display: none !important;
	}

	/* Mobile step opacity states */
	.step-item.incoming {
		opacity: 0.4;
	}

	.step-item.active {
		opacity: 1;
	}

	.step-item.passed {
		opacity: 0.6;
	}
}