/* ===== Google Fonts ===== */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Rajdhani:wght@300;400;500;600;700&display=swap');

/* ===== CSS Variables ===== */
:root {
	--primary-blue: #1a3a6b;
	--accent-blue: #2563eb;
	--dark-blue: #0f2a5e;
}

/* ===== Base ===== */
body {
	font-family: "Rajdhani", sans-serif;
	font-weight: 400;
	font-style: normal;
}

.bg-primary-blue { background-color: var(--dark-blue) !important; }
.text-primary-blue { color: var(--primary-blue) !important; }
.text-accent-blue { color: var(--accent-blue) !important; }
.bg-accent-blue { background-color: var(--accent-blue) !important; }

/* ===== One-Page Scroll Sections ===== */
.page-section {
	scroll-margin-top: 100px; /* Offset for sticky navbar */
	transition: background-color 0.5s ease;
}

/* Soft background colors for each section */
#home {
	background-color: #f0f4f8;
}
#about {
	background-color: #f8faff; /* Soft blue */
}
#products {
	background-color: #fffaf5; /* Soft warm cream */
}
#what {
	background-color: #f5f9f6; /* Soft mint */
}
#contact {
	background-color: #f0f4f8; /* Soft slate */
}

/* ===== Soft Fade-In Transition on Scroll ===== */
.fade-in-section {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.8s ease-out, transform 0.8s ease-out;
	will-change: opacity, transform;
}

.fade-in-section.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ===== Top Bar ===== */
.top-bar a {
	transition: opacity 0.3s, transform 0.3s;
}
.top-bar a:hover {
	opacity: 0.8;
	transform: translateY(-2px);
}

@media (max-width: 575px) {
	.top-bar .small {
		font-size: 0.8rem;
	}
}

/* ===== Navbar ===== */
.navbar {
	min-height: 70px;
}

.navbar-brand {
	padding-top: 8px;
	padding-bottom: 8px;
}
.navbar-brand-text {
	font-weight: 600;
	font-style: normal;
}
.navbar-logo {
	height: 45px;
	width: auto;
	object-fit: contain;
	transition: transform 0.3s ease;
}

.nav-link {
	position: relative;
	transition: all 0.3s ease;
}

.nav-link.active {
	color: var(--accent-blue) !important;
	border-bottom: 3px solid var(--accent-blue) !important;
}

.nav-link:hover {
	color: var(--accent-blue) !important;
	transform: translateY(-2px);
}

@media (min-width: 768px) {
	.navbar-logo {
		height: 55px;
	}
	.text-custom {
		word-wrap: break-word;
	}
}

@media (max-width: 768px) {
	.navbar.sticky-top {
		top: 20px;
	}
    .navbar-brand-text {
		font-size: 0.9rem;
        max-width: 120px;
        white-space: normal;
        overflow-wrap: break-word;
    }
}

/* ===== Page Layout & Sections ===== */
.page-section {
	padding-top: 40px;
	padding-bottom: 50px;
}

@media (min-width: 768px) {
	.page-section {
		padding-top: 60px;
		padding-bottom: 80px;
	}
}

/* ===== Buttons ===== */
.btn-quote {
	background-color: var(--accent-blue);
	color: #ffffff;
	border: none;
	padding: 14px 32px;
	font-weight: 600;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn-quote:hover {
	background-color: var(--dark-blue);
	color: #ffffff;
	transform: translateY(-3px);
	box-shadow: 0 10px 25px rgba(37, 99, 235, 0.4);
}

.btn-products {
	border: 2px solid #cccccc;
	padding: 12px 30px;
	font-weight: 600;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn-products:hover {
	border-color: var(--accent-blue);
	color: var(--accent-blue);
	transform: translateY(-3px);
	box-shadow: 0 10px 25px rgba(37, 99, 235, 0.2);
}

/* ===== Footer ===== */
.footer-link {
	transition: all 0.3s ease;
	display: inline-block;
}

.footer-link:hover {
	color: #ffffff !important;
	transform: translateX(5px);
}

/* ===== Cards ===== */
.card {
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	border: 1px solid rgba(0, 0, 0, 0.05);
}

.card:hover {
	transform: translateY(-8px);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1) !important;
}

.card img {
	transition: transform 0.5s ease;
}

.card:hover img {
	transform: scale(1.05);
}

/* ===== Form Elements ===== */
.form-control {
	transition: all 0.3s ease;
	border: 2px solid #e5e7eb;
}

.form-control:focus {
	border-color: var(--accent-blue);
	box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.1);
	transform: translateY(-2px);
}

/* ===== Responsive ===== */
@media (max-width: 767px) {
	.btn-quote, .btn-products {
		width: 100%;
		text-align: center;
	}
}

/* ===== Smooth Scroll ===== */
html {
	scroll-behavior: smooth;
}

.text-justify-custom {
    text-align: justify !important;
}
