:root {
	--primary: #3b7192;
	--secondary: #e67e22;
	--light: #f8f9fa;
	--dark: #2c3e50;
	--gray: #7f8c8d;
	--shadow: 0 5px 15px rgba(0,0,0,0.05);
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	scroll-behavior: smooth;
	transition: all 0.3s ease;
}

#home,
#about,
#services,
#products,
#contact {
	scroll-margin-top: 100px;
}

a{
	text-decoration: none;
}

body {
	line-height: 1.6;
	color: var(--dark);
	background-color: #fff;
}

.container {
	width: 100%;
	max-width: 90%;
	margin: 0 auto;
	padding: 0 15px;
}

.btn {
	display: inline-block;
	padding: 12px 25px;
	margin-top: 20px;
	background-color: var(--secondary);
	color: white;
	text-decoration: none;
	border-radius: 4px;
	font-weight: 600;
	transition: all 0.3s ease;
	border: none;
	cursor: pointer;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
	
}
.btn:hover {
	background-color: #cf6a00;
	transform: translateY(-2px) scale(1.02);
}

section {
	padding: 50px 0;
}

h1, h2, h3, h4 {
	margin-bottom: 15px;
	color: var(--primary);
	text-decoration: none;
}

/* ================= HEADER ================= */
header {
	background-color: var(--primary);
	box-shadow: 0 2px 10px rgba(0,0,0,0.1);
	position: sticky;
	top: 0;
	z-index: 1000;
}

.header-top {
	display: flex;
	background-color: var(--primary);
	color: white;
	padding: 10px 0;
	font-size: 14px;
}

.header-top .container {
	align-items: flex-end;
}

.contact-info {
	display: flex;
	justify-self: flex-end;
	gap: 10px;
}

.main-header {
	padding: 15px 0;
}

.main-header .container {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
}

.logo {
	display: flex;
	align-items: center;
}
.logo img {
	width: 60px;
	height: 55px;
	border-radius: 50%;
	object-fit: cover;
}
.logo-text {
	margin-left: 10px;
}
.logo h1 {
	font-size: 1.5rem;
	margin-bottom: 0;
	color: white;
}

.logo p {
	font-size: .7rem;
	color: var(--light);
}

nav ul {
	display: flex;
	list-style: none;
	flex-direction: row;
	justify-content: space-between;
}
nav ul li {
	margin-left: 25px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
nav ul li a {
	text-decoration: none;
	color: var(--light);
	font-weight: 600;
	transition: color 0.3s;
	text-transform: uppercase;
}
nav ul li a:hover {
	color: var(--secondary);
}
nav ul li a::after {
	content: '';
	display: block;
	width: 0;
	height: 2px;
	background: var(--secondary);
	transition: width 0.3s ease-in-out;
}
nav ul li a:hover::after {
	width: 40%;
}

.mobile-menu-btn {
	display: none;
	background: none;
	border: none;
	font-size: 24px;
	cursor: pointer;
}


/* Overlay for mobile nav */
.overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.45);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, visibility 0.25s ease;
	z-index: 900;
}
.overlay.active {
	opacity: 1;
	visibility: visible;
}

/* Mobile nav styles */
nav {
	--nav-width: 260px;
}

nav ul {
	gap: 0;
}

/* Slide-in panel for small screens */
nav {
	position: relative;
}

	/* active state handled with right:0 on nav.active */

@media (max-width: 900px) {
	.main-header .container {
		gap: 12px;
	}
	.logo h1 {
		font-size: 1rem;
	}
	.logo p {
		display: none;
	}
	.mobile-menu-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		color: white;
	}

	/* hide desktop nav */
	nav {
		position: fixed;
		right: -100%;
		top: 0;
		height: 100vh;
		width: var(--nav-width);
		background: linear-gradient(180deg, var(--primary), #274b60);
		padding: 80px 20px 20px 20px;
		box-shadow: -8px 0 24px rgba(0,0,0,0.2);
		transition: right 0.28s cubic-bezier(.22,.9,.34,1);
		z-index: 950;
	}
	nav.active {
		right: 0;
	}

	nav ul {
		display: flex;
		flex-direction: column;
		gap: 18px;
		padding: 0;
		margin: 0;
	}

	nav ul li {
		margin-left: 0;
	}

	nav ul li a {
		color: #fff;
		font-size: 16px;
		padding: 10px 8px;
		display: block;
		border-radius: 6px;
	}

	nav ul li a:hover {
		background: rgba(255,255,255,0.06);
		color: var(--secondary);
	}

	/* reduce hero padding on small screens */
	.hero {
		padding: 80px 0;
		height: auto;
		min-height: 60vh;
	}

	.hero h2 { font-size: 28px; }
	.hero h3 { font-size: 34px; }
	.hero p { font-size: 16px; }
}

/* Extra small screens */
@media (max-width: 480px) {
	.logo img { width: 48px; height: 44px; }
	.logo h1 { font-size: 0.9rem; }
	nav { width: 220px; padding-top: 72px; }
	.hero { padding: 60px 0; }
}

/* ================= HERO ================= */
.hero {
	background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)),
	url('../images/slider1.png') no-repeat center center/cover;
	color: white;
	text-align: center;
	padding: 120px 0;
	height: 79vh;
	overflow: hidden;
}
.hero h2 {
	font-size: 42px;
	margin-bottom: 20px;
	color: white;
}
.hero h3 {
	font-size: 50px;
	font-style: oblique;
	margin-bottom: 20px;
	color: white;
}
.hero p {
	font-size: 18px;
	max-width: 700px;
	margin: 0 auto 30px;
}

/* ================= SERVICES ================= */
.services {
	background-color: var(--light);
}
.section-title {
	text-align: center;
	margin-bottom: 40px;
}
.section-title h2 {
	font-size: 32px;
	position: relative;
	display: inline-block;
	padding-bottom: 10px;
}
.section-title h2:after {
	content: '';
	position: absolute;
	bottom: 0;
	left:25%;
	transform: translateX(-50%);
	width: 50% ;
	height: 3px;
	background-color: var(--secondary);
	transition: all .3s ease;
}

.section-title h2:hover:after {
	transform: translateY(-35%);
}

.services-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 30px;
}

.service-card {
	background: white;
	border-radius: 5px;
	overflow: hidden;
	box-shadow: var(--shadow);
	transition: transform 0.3s ease;
	display: flex;                /* Make card a column so content can stretch */
	flex-direction: column;
	justify-content: stretch;
}
.service-card:hover {
	transform: translateY(-10px);
}

.service-img {
	height: 200px;
	background-color: #ddd;
	background-size: cover;
	background-position: center;
}

.service-content {
	flex: 1;                      /* Fills available space */
	display: flex;
	flex-direction: column;
	padding: 20px;
}

.service-content .btn{
	width: 50%;
	margin-top: 20px;
	align-self: center;
	text-align: center;
	border-radius: 50px;
}
.service-content h3 {
	margin-bottom: 10px;
}
.service-content .btn {
	/* margin-top: auto;             Push button to bottom */
	align-self: center;
}

/* ================= ABOUT ================= */
.about-content {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;
}
.about-text  {
	display: flex;
	flex-direction: column;
}

.about-text p {
	font-weight: 500;
	text-align: justify;
	margin-bottom: 20px;
	font-size: 1.1rem;
	line-height: 2;
	color: var(--gray);
}

.about-text .btn {
	width: 30%;
	text-align: center;
	align-self: center;	
}

.about-text h2 {
	font-size: 32px;
	text-transform: uppercase;
}
.about-image {
	border-radius: 5px;
	overflow: hidden;
	box-shadow: var(--shadow);
}

.about-image img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	object-position: center;
	border-radius: 5%;
}

/* ================= PRODUCTS ================= */

		.products-grid {
			display: grid;
			grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
			gap: 30px;
			margin-top: 40px;
		}

		.product-card {
			background: white;
			border-radius: 8px;
			overflow: hidden;
			box-shadow: 0 5px 15px rgba(0,0,0,0.1);
			transition: transform 0.3s ease, box-shadow 0.3s ease;
			display: flex;
			flex-direction: column;
			height: 100%;
		}

		.product-card:hover {
			transform: translateY(-5px);
			box-shadow: 0 10px 25px rgba(0,0,0,0.15);
		}

		.product-img {
			height: 200px;
			background-size: cover;
			background-position: center;
			background-repeat: no-repeat;
		}

		.product-card img {
    width: 100%;
    height: 200px;       /* same height for all images */
    object-fit: cover;   /* crop to fit the box */
    display: block;
}


		.product-content {
			padding: 25px;
			flex-grow: 1;
			display: flex;
			flex-direction: column;
		}

		.product-content h3 {
			margin-top: 0;
			margin-bottom: 15px;
			color: #333;
			font-size: 1.4rem;
		}

		.product-content p {
			color: #666;
			line-height: 1.6;
			flex-grow: 1;
			margin-bottom: 20px;
		}

		.product-link {
			display: inline-block;
			color: #007bff;
			text-decoration: none;
			font-weight: 600;
			transition: color 0.3s ease;
			align-self: flex-start;
			margin-top: 12px; /* nudge down a bit */
		}

		/* Ensure service cards' links align at the bottom */
		.service-content .product-link {
			margin-top: auto; /* pushes link to the bottom of the card */
			align-self: flex-start; /* keep same alignment as product cards */
			margin-bottom: 12px; /* extra breathing room below */
		}

		.product-link:hover {
			color: #0056b3;
		}

		/* Responsive adjustments */
		@media (max-width: 768px) {
			.products-grid {
				grid-template-columns: 1fr;
				gap: 20px;
			}
		}

/* Achievement Section */
.achievement {
  background-color: var(--light);
  padding: 80px 20px;
  text-align: center;
}

.achievement-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.achievement-card {
  background: white;
  padding: 30px 20px;
  border-radius: 12px;
  box-shadow: var(--shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.achievement-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.achievement-icon {
  font-size: 40px;
  color: var(--primary);
  margin-bottom: 15px;
}

.achievement-card h3 {
  font-size: 20px;
  margin-bottom: 10px;
  color: var(--dark);
}

.achievement-card p {
  font-size: 15px;
  color: var(--gray);
}

.achievement-more {
  text-align: center;
  margin-top: 30px;
}

.achievement-more .btn {
  background-color: var(--primary);
  color: white;
  padding: 12px 24px;
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.3s ease;
}

.achievement-more .btn:hover {
  background-color: var(--secondary);
}


/* PDF viewer inside Achievement section */
.achievement-pdf-wrap {
	margin-top: 36px;
	text-align: center; /* center toolbar and note */
}
.pdf-toolbar {
	display: flex;
	gap: 12px;
	justify-content: center; /* center buttons horizontally */
	margin-bottom: 12px;
}
.pdf-toolbar .btn {
	display: inline-block;
	padding: 8px 14px;
	background: #f2f2f2;
	color: var(--dark);
	text-decoration: none;
	border-radius: 8px;
	border: 1px solid rgba(0,0,0,0.06);
}
.pdf-toolbar .btn-primary {
	background: var(--secondary);
	color: #fff;
	border: none;
}
.pdf-viewer {
	background: white;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}
.pdf-viewer iframe {
	width: 100%;
	height: 640px; /* good default for desktop */
	border: none;
	display: block;
}
.pdf-note {
	margin-top: 10px;
	font-size: 14px;
	color: var(--gray);
}

@media (max-width: 768px) {
	.pdf-toolbar { justify-content: center; }
	.pdf-viewer iframe { height: 420px; }
}

.local-projects {
  padding: 80px 0;
  background-color: #f8f9fa;
}

.project-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.project-card {
  background: white;
  border-radius: 12px;
  box-shadow: var(--shadow);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.project-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}

.project-img img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.project-content {
  padding: 20px;
}

.project-content h3 {
  margin-bottom: 10px;
  color: var(--dark);
}

/* Highlighted project title (used for notable projects like Hilton) */
.project-title--highlight {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.4px;
	text-transform: none; /* allow mixed-case */
	color: #1f3550; /* slightly darker blue for contrast */
}
.project-title--highlight .project-subtitle {
	display: block;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--gray);
	margin-top: 4px;
	text-transform: none;
}

.project-content p {
  color: var(--gray);
  font-size: 15px;
}


/* ================= CONTACT (Get in Touch) ================= */
.contact {
	background: linear-gradient(135deg, #f8f9fa 0%, #eef2f3 100%);
	padding: 50px 0;
}

.contact-content {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	align-items: stretch;
}

/* When no form: use left content + right aside for business hours */
.contact-content.no-form {
	/* desktop: left content + right aside */
	grid-template-columns: 2fr 1fr;
	gap: 30px;
	/* make the whole contact-content a single white panel on desktop */
	background: white;
	padding: 30px;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}

.contact-aside {
	display: flex;
	align-items: flex-start;
}

.contact-aside .business-hours {
	width: 100%;
	/* appear inside the same white container */
	background: transparent;
	padding: 0;
	border-radius: 0;
	box-shadow: none;
}

/* vertical separator between contact and hours on desktop */
.contact-aside {
	border-left: 1px solid rgba(0, 0, 0, 0.478); /* subtle black line */
	padding-left: 24px;
}

/* inside that panel, don't double-up backgrounds */
.contact-content.no-form .contact-info {
	background: transparent;
	padding: 0;
	box-shadow: none;
}

.contact-aside .business-hours h3 {
	margin-top: 0;
}

.contact-info {
	display: flex;
	width: 100%;
	flex-direction: column;
	background: white;
	border-radius: 12px;
	padding: 40px;
	box-shadow: 0 8px 20px rgba(0,0,0,0.08);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.contact-info:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 24px rgba(0,0,0,0.1);
}
.contact-info a:hover {
	font-size: 1rem;
	text-decoration: none;
	display: flex;
	align-items: center;
	padding-right: 10px;
	transition: color 0.3s;
}
.contact-info a:last-child {
	border-right: none;
	padding-right: 0;
}
.contact-info a:hover {
	color: var(--secondary);
	text-decoration: underline;
	text-decoration: none;
}
.contact-info h3 {
	color: var(--primary);
	margin-bottom: 25px;
	font-size: 28px;
	position: relative;
	padding-bottom: 12px;
}
.contact-info h3:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 60px;
	height: 3px;
	background-color: var(--secondary);
	border-radius: 2px;
}

.business-hours h3 {
	position: relative;
	padding-bottom: 12px;
}
.business-hours h3:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 60px;
	height: 3px;
	background-color: var(--secondary);
	border-radius: 2px;
}

.contact-details {
	margin-bottom: 30px;
}

.contact-item {
	display: flex;
	align-items: center;
	margin-bottom: 25px;
	gap: 15px;
}
.contact-icon {
	background-color: var(--primary);
	color: white;
	width: 50px;
	height: 50px;
	font-size: 22px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.3s;
}
.contact-icon:hover {
	background: var(--secondary);
}
.contact-text {
	flex: 1;
}
.contact-info a {
	font-size: 1rem;
	text-decoration: none;
	display: flex;
	align-items: center;
	padding-right: 10px;
	transition: color 0.3s;
}
.contact-info a:last-child {
	border-right: none;
	padding-right: 0;
}
.contact-info a:hover {
	color: var(--secondary);
	text-decoration: underline;
}
.contact-text strong {
	display: block;
	margin-bottom: 5px;
	color: var(--dark);
}
.contact-phones{
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.contact-text a {
	color: black;
	transition: color 0.3s;
}

.business-hours {
	margin-top: 30px;
}
.hours-list {
	list-style: none;
}
.hours-list li {
	display: flex;
	justify-content: space-between;
	padding: 8px 0;
	border-bottom: 1px dashed #e0e0e0;
}
.hours-list li:last-child {
	border-bottom: none;
}
.day {
	font-weight: 600;
	color: var(--dark);
}
.time {
	color: var(--gray);
}

/* ================= Local Project =================*/
marquee {
	width: 100%;
	color: white;
	padding: 10px 3px;
	font-size: 1.1rem;
	margin: 40px 0;
}

marquee:hover {
	animation-play-state: paused;
}
marquee img{
	height: 200px;
	margin: 0 15px;
	vertical-align: middle;
}

/* ================= MAP ================= */
.map-section {
	margin-top: 50px;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.map-placeholder {
	height: 300px;
	background: linear-gradient(135deg, var(--primary) 0%, #3498db 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-size: 18px;
}

/* ================= FOOTER ================= */
footer {
  background: #2c3e50; /* dark blue-gray */
  color: #f8f9fa;
  padding: 60px 0 20px;
  position: relative;
}

.footer-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 40px;
  margin-bottom: 40px;
}

.footer-column h3 {
  color: #fff;
  margin-bottom: 20px;
  font-size: 18px;
  position: relative;
}

.footer-column h3::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 40px;
  height: 2px;
  background: var(--secondary);
}

.footer-column p,
.footer-column ul {
  font-size: 15px;
  color: #ccc;
  line-height: 1.7;
}

.footer-column ul {
  list-style: none;
  padding: 0;
}

.footer-column ul li {
  margin-bottom: 12px;
}

.footer-column ul li a {
  color: #ccc;
  text-decoration: none;
  transition: color 0.3s;
}

.footer-column ul li a:hover {
  color: var(--secondary);
}

.footer-column p a{
	color:#ccc;
}

.footer-column p a:hover {
	color: var(--secondary);
	text-decoration: underline;
}



.footer-logo img {
	width: 80px;
	height: 75px;
	margin-bottom: 15px;
	border-radius: 50%;
	object-fit: cover;
}

.footer-social {
  margin-top: 20px;
  display: flex;
  gap: 12px;
}

.footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--secondary);
  color: #fff;
  border-radius: 50%;
  font-size: 16px;
  transition: transform 0.3s;
}

.footer-social a img.footer-social-icon {
	width: 18px;
	height: 18px;
	display: block;
	object-fit: contain;
	filter: invert(1) sepia(0) saturate(0) hue-rotate(0deg) brightness(1);
}

.footer-social a:hover {
  transform: translateY(-3px);
  background: #cf6a00;
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 15px;
  text-align: center;
  font-size: 14px;
  color: #bbb;
}

/* Responsive tweaks */
@media (max-width: 768px) {
  .footer-content {
    gap: 30px;
  }
  .footer-column {
    text-align: center;
  }
  .footer-column h3::after {
    left: 50%;
    transform: translateX(-50%);
  }
}


/* ================= RESPONSIVE ================= */
@media (max-width: 992px) {
	.about-content,
	.contact-content,
	.contact-content.no-form {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	.about-image {
		order: -1;
	}
	.contact-info, .contact-form {
		padding: 25px;
	}
	/* remove separator when stacked */
	.contact-aside {
		border-left: none;
		padding-left: 0;
	}
}

@media (max-width: 768px) {
	.header-top .container {
		flex-direction: column;
		gap: 10px;
	}
	.contact-info {
		flex-direction: column;
		gap: 10px;
	}
	.mobile-menu-btn {
		display: block;
	}
	nav {
		background: transparent;
		padding: 0 24px; /* spacing inside left column */
		right: -100%;
		width: 80%;
		height: 100vh;
		background-color: white;
		box-shadow: -5px 0 15px rgba(0,0,0,0.1);
		transition: right 0.3s ease;
		z-index: 1001;
		padding: 80px 20px 20px;
	}
	nav.active {
		right: 0;
	}
	nav ul {
		flex-direction: column;
	}
	nav ul li {
		margin: 0 0 15px 0;
	}
	.close-menu {
		position: absolute;
		top: 20px;
		right: 20px;
		background: none;
		border: none;
		font-size: 24px;
		cursor: pointer;
	}
	.overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(0,0,0,0.5);
		z-index: 1000;
		display: none;
	}
	.overlay.active {
		display: block;
	}
	.contact-item {
		flex-direction: column;
		text-align: center;
	}
	.contact-icon {
		margin-right: 0;
		margin-bottom: 10px;
		align-self: center;
	}
	.hero h2 { font-size: 28px; }
	.hero h3 { font-size: 34px; }
	.hero p  { font-size: 16px; }
}
