html {
	font-size: 14px;
}

@media (min-width: 768px) {
	html {
		font-size: 16px;
	}
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
	box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
	position: relative;
	min-height: 100%;
}

body {
	margin-bottom: 0px;
}

/* =========================
   HEADER / TOP BAR FIXES
   ========================= */

:root {
	--top-black-bar-height: 52px;
	--top-grey-bar-height: 66px;
	/* default desktop state: good for 1200px–1399px */
	--header-logo-size-desktop: 118px;
	--header-logo-size-mobile: 76px;
	--header-logo-overlap: var(--top-grey-bar-height);
}

/* Black emergency bar */
#blacktop {
	padding: 0;
	background-color: black;
}

#blacktop .emergency-banner-text {
	margin: 0;
	padding: 8px 12px;
	line-height: 1.15;
	white-space: nowrap;
	font-size: clamp(0.95rem, 2vw, 1.95rem);
}

/* Top contact/social bar */
.top-header.top-header-style-two {
	padding-top: 0;
	padding-bottom: 0;
}

.top-header.top-header-style-two .container-fluid {
	padding-left: 24px;
	padding-right: 24px;
}

.top-header.top-header-style-two .row {
	min-height: var(--top-grey-bar-height);
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
}

.top-header.top-header-style-two .header-left-content,
.top-header.top-header-style-two .header-right-content {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	margin: 0;
}

.top-header.top-header-style-two .header-left-content {
	padding-left: 0;
	margin-left: calc(var(--header-logo-size-desktop) + 42px);
	gap: 20px;
	overflow: hidden;
}

.top-header.top-header-style-two .header-right-content {
	padding-right: 0;
	float: none;
	justify-content: flex-end;
	gap: 14px;
}

.top-header .header-left-content li,
.top-header .header-right-content li {
	margin: 0;
	flex: 0 0 auto;
}

.top-header .header-left-content li {
	display: flex;
	align-items: center;
	min-width: 0;
}

.top-header .header-left-content li i {
	margin-right: 8px;
	font-size: clamp(14px, 1.2vw, 18px);
	flex: 0 0 auto;
}

.top-header .header-left-content li a {
	font-size: clamp(14px, 1.25vw, 16px);
	line-height: 1;
	white-space: nowrap;
}

.top-header .header-left-content li a:hover {
	font-weight: bold;
	color: white;
}

.top-header .header-right-content li a:hover {
	font-weight: bold;
	color: white;
}

.top-header .header-right-content li a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.top-header .header-right-content li a i {
	font-size: clamp(18px, 1.35vw, 22px);
	line-height: 1;
}

/* Nav wrapper */
.navbar-area.navbar-area-style-two .main-nav .container-fluid {
	position: relative;
}

/* Desktop logo */
.navbar-area.navbar-area-style-two .main-nav .navbar .navbar-brand,
.navbar-area.is-sticky.navbar-area-style-two .main-nav .navbar .navbar-brand {
	position: absolute;
	left: 0;
	top: calc(-1 * var(--header-logo-overlap));
	width: var(--header-logo-size-desktop);
	height: var(--header-logo-size-desktop);
	max-width: none;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	z-index: 20;
	overflow: hidden;
}

.navbar-area.navbar-area-style-two .main-nav .navbar .navbar-brand img,
.navbar-area.is-sticky.navbar-area-style-two .main-nav .navbar .navbar-brand img {
	width: auto;
	height: auto;
	max-width: calc(100% - 16px);
	max-height: calc(100% - 16px);
	display: block;
	margin: auto;
}

/* Desktop 1200px+:
   make the square bigger and let it reach browser top */
@media only screen and (min-width: 1200px) {
	:root {
		--header-logo-size-desktop: 166px;
		--header-logo-overlap: calc(var(--top-black-bar-height) + var(--top-grey-bar-height));
	}

	.top-header.top-header-style-two .header-left-content {
		margin-left: calc(var(--header-logo-size-desktop) + 46px);
	}
}

/* Mobile / tablet logo uses horizontal version */
.mobile-nav .logo {
	position: absolute;
	top: 0;
	left: 15px;
	z-index: 999;
	width: 150px;
	height: 76px;
	max-width: none;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	background: #fff;
	overflow: hidden;
	text-decoration: none;
	padding: 8px 10px;
}

.mobile-nav .logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left center;
	display: block;
}

/* Meanmenu bar height should match mobile logo area */
@media only screen and (max-width: 991px) {
	.mean-container .mean-bar {
		height: 76px;
	}

	.mean-container .mean-nav {
		margin-top: 76px;
	}

	.mean-container a.meanmenu-reveal {
		padding-top: 26px;
	}
}

/* Keep desktop contact row together longer */
@media only screen and (max-width: 1399px) {
	.top-header.top-header-style-two .header-left-content {
		gap: 16px;
	}

	.top-header.top-header-style-two .header-right-content {
		gap: 12px;
	}
}

/* Medium desktop / tablet landscape:
   square logo aligns to grey/black seam */
@media only screen and (max-width: 1199px) {
	:root {
		--header-logo-size-desktop: 118px;
		--header-logo-overlap: var(--top-grey-bar-height);
	}

	.top-header.top-header-style-two .header-left-content {
		margin-left: calc(var(--header-logo-size-desktop) + 34px);
		gap: 14px;
	}

	.top-header .header-left-content li a {
		font-size: 14px;
	}

	.top-header .header-right-content li a i {
		font-size: 19px;
	}

	#blacktop .emergency-banner-text {
		font-size: clamp(0.9rem, 1.8vw, 1.5rem);
	}
}

/* Mobile/tablet header behavior */
@media only screen and (max-width: 991px) {
	.top-header.top-header-style-two {
		padding-top: 0;
		padding-bottom: 0;
	}

	.top-header.top-header-style-two .row {
		min-height: auto;
		padding-top: 10px;
		padding-bottom: 10px;
		flex-wrap: nowrap;
	}

	.top-header.top-header-style-two .header-left-content,
	.top-header.top-header-style-two .header-right-content {
		padding: 0 !important;
		margin: 0;
	}

	.top-header.top-header-style-two .header-left-content {
		gap: 12px;
	}

	.top-header.top-header-style-two .header-right-content {
		gap: 10px;
	}

	.top-header .header-left-content li a {
		font-size: clamp(12px, 1.9vw, 14px);
	}

	.top-header .header-right-content li a i {
		font-size: clamp(16px, 2.1vw, 20px);
	}

	#blacktop .emergency-banner-text {
		font-size: clamp(0.82rem, 2.3vw, 1.2rem);
	}
}

/* At very narrow widths, let contact info stack before icons start dropping */
@media only screen and (max-width: 767px) {
	.top-header.top-header-style-two .row {
		flex-wrap: wrap;
		row-gap: 8px;
	}

	.top-header.top-header-style-two .header-left-content,
	.top-header.top-header-style-two .header-right-content {
		justify-content: center;
		width: 100%;
	}

	.top-header.top-header-style-two .header-left-content {
		gap: 10px;
	}

	.top-header.top-header-style-two .header-right-content {
		gap: 14px;
	}

	#blacktop .emergency-banner-text {
		font-size: clamp(0.78rem, 3vw, 1rem);
	}
}

/* Tiny phones: allow emergency text to wrap gracefully if physics wins */
@media only screen and (max-width: 575px) {
	#blacktop .emergency-banner-text {
		white-space: normal;
		text-wrap: balance;
	}
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
	color: var(--bs-secondary-color);
	text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
	text-align: start;
}

.hero-slider-area.hero-slider-two .owl-dots .owl-dot span {
	width: 30px;
	height: 4px;
	margin: 5px 7px;
	display: block;
	border-radius: 30px;
	background-color: rgba(255, 255, 255, 0.45);
	transition: all 0.3s ease;
}

.hero-slider-area.hero-slider-two .owl-dots .owl-dot.active span,
.hero-slider-area.hero-slider-two .owl-dots .owl-dot:hover span {
	background-color: var(--white-color);
}

/* =========================
   HERO SLIDER LAYOUT TUNE
   ========================= */
.hero-slider-area.hero-slider-two {
	position: relative;
	--hero-dot-gap: 24px; /* space from image bottom to dots */
	--hero-dot-height: 14px; /* visual dot row height */
}

	.hero-slider-area.hero-slider-two .hero-slider-item {
		background-size: cover;
		background-repeat: no-repeat;
		background-position: center center;
		height: clamp(520px, 78vh, 870px);
		min-height: 520px;
	}

	.hero-slider-area.hero-slider-two .hero-slider-content {
		max-width: 950px;
		margin: 0 auto;
		padding: 0 20px calc((var(--hero-dot-gap) * 2) + var(--hero-dot-height));
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: 100%;
		text-align: center;
		box-sizing: border-box;
	}

	/* Keep both buttons on one line */
	.hero-slider-area.hero-slider-two .hero-slider-btn {
		display: flex;
		flex-wrap: nowrap;
		justify-content: center;
		align-items: center;
		gap: 22px;
		margin-top: 28px;
	}

		.hero-slider-area.hero-slider-two .hero-slider-btn .default-btn {
			margin: 0;
			width: clamp(180px, 24vw, 245px);
			min-width: 0;
			padding: clamp(12px, 1.2vw, 15px) clamp(18px, 2vw, 32px);
			font-size: clamp(14px, 1.5vw, 16px);
			white-space: nowrap;
			line-height: 1.2;
		}

	/* Keep dots below the buttons */
	.hero-slider-area.hero-slider-two.owl-theme .owl-dots {
		position: absolute;
		left: 0;
		right: 0;
		bottom: var(--hero-dot-gap);
		margin-top: 0 !important;
		line-height: 1;
		z-index: 5;
		display: block !important;
	}

	.hero-slider-area.hero-slider-two .owl-dots .owl-dot {
		display: inline-block;
	}

		.hero-slider-area.hero-slider-two .owl-dots .owl-dot span {
			width: 30px;
			height: 4px;
			margin: 5px 7px;
			display: block;
			border-radius: 30px;
			background-color: rgba(255, 255, 255, 0.45);
			transition: all 0.3s ease;
		}

		.hero-slider-area.hero-slider-two .owl-dots .owl-dot.active span,
		.hero-slider-area.hero-slider-two .owl-dots .owl-dot:hover span {
			background-color: var(--white-color);
		}

/* Large desktop */
@media only screen and (min-width: 1400px) {
	.hero-slider-area.hero-slider-two {
		--hero-dot-gap: 34px;
		--hero-dot-height: 14px;
	}

		.hero-slider-area.hero-slider-two .hero-slider-item {
			height: 870px;
		}
}

/* Desktop */
@media only screen and (max-width: 1399px) {
	.hero-slider-area.hero-slider-two {
		--hero-dot-gap: 30px;
		--hero-dot-height: 14px;
	}

		.hero-slider-area.hero-slider-two .hero-slider-item {
			height: 760px;
		}
}

/* Smaller desktop / tablet landscape */
@media only screen and (max-width: 1199px) {
	.hero-slider-area.hero-slider-two {
		--hero-dot-gap: 26px;
		--hero-dot-height: 14px;
	}

		.hero-slider-area.hero-slider-two .hero-slider-item {
			height: 680px;
		}

		.hero-slider-area.hero-slider-two .hero-slider-btn {
			gap: 16px;
		}
}

/* Tablet / mobile */
@media only screen and (max-width: 991px) {
	.hero-slider-area.hero-slider-two {
		--hero-dot-gap: 24px;
		--hero-dot-height: 14px;
	}

		.hero-slider-area.hero-slider-two .hero-slider-item {
			height: 600px;
		}

		.hero-slider-area.hero-slider-two .hero-slider-btn {
			gap: 12px;
		}

			.hero-slider-area.hero-slider-two .hero-slider-btn .default-btn {
				width: clamp(150px, 34vw, 210px);
				padding: 12px 14px;
				font-size: 14px;
			}

		.hero-slider-area.hero-slider-two .hero-slider-content h2 {
			font-size: clamp(2rem, 6vw, 3.4rem);
		}

		.hero-slider-area.hero-slider-two .hero-slider-content p {
			font-size: clamp(1.1rem, 2.6vw, 1.5rem);
		}
}

/* Small phones */
@media only screen and (max-width: 767px) {
	.hero-slider-area.hero-slider-two {
		--hero-dot-gap: 20px;
		--hero-dot-height: 14px;
	}

		.hero-slider-area.hero-slider-two .hero-slider-item {
			height: 520px;
		}

		.hero-slider-area.hero-slider-two .hero-slider-btn {
			gap: 10px;
		}

			.hero-slider-area.hero-slider-two .hero-slider-btn .default-btn {
				width: 44%;
				padding: 10px 10px;
				font-size: 13px;
			}
}

/* =========================
   HERO SLIDER UNIFIED ANIMATION
   ========================= */

/* hide animated elements before active slide */
.hero-slider-area .hero-slider-content h4,
.hero-slider-area .hero-slider-content h2,
.hero-slider-area .hero-slider-content p,
.hero-slider-area .hero-slider-content .hero-slider-btn {
	opacity: 0;
}

/* when a slide becomes active, animate all 3 slide variants the same way */
.hero-slider-area .owl-item.active .hero-slider-content.one h4,
.hero-slider-area .owl-item.active .hero-slider-content.two h4,
.hero-slider-area .owl-item.active .hero-slider-content.three h4,
.hero-slider-area .owl-item.active .hero-slider-content.one h2,
.hero-slider-area .owl-item.active .hero-slider-content.two h2,
.hero-slider-area .owl-item.active .hero-slider-content.three h2 {
	opacity: 1;
	animation: 2s 0.2s fadeInLeft both;
}

.hero-slider-area .owl-item.active .hero-slider-content.one p,
.hero-slider-area .owl-item.active .hero-slider-content.two p,
.hero-slider-area .owl-item.active .hero-slider-content.three p {
	opacity: 1;
	animation: 2s 0.2s fadeInRight both;
}

.hero-slider-area .owl-item.active .hero-slider-content.one .hero-slider-btn,
.hero-slider-area .owl-item.active .hero-slider-content.two .hero-slider-btn,
.hero-slider-area .owl-item.active .hero-slider-content.three .hero-slider-btn {
	opacity: 1;
	animation: 2s 0.2s fadeInUpBig both;
}

/* keep overlay animation */
.hero-slider-area .owl-item.active .hero-slider-item::before {
	animation: 3s 0.3s fadeInUp both;
}

@media only screen and (min-width: 992px) {
	.hero-slider-area.hero-slider-two.owl-theme .owl-dots {
		/*bottom: 93px !important;*/
		bottom: clamp(80px, 9vw, 100px);
	}
}

/* ================================
   HERO SLIDER MAIN BODY POSITION
   ============================== */

/* tablet */
@media (min-width: 768px) {
	.hero-slider-area.hero-slider-one .hero-slider-content,
	.hero-slider-area.hero-slider-two .hero-slider-content,
	.hero-slider-area.hero-slider-three .hero-slider-content {
		transform: translateY(40px);
	}
}

/* desktop */
@media (min-width: 992px) {
	.hero-slider-area.hero-slider-one .hero-slider-content,
	.hero-slider-area.hero-slider-two .hero-slider-content,
	.hero-slider-area.hero-slider-three .hero-slider-content {
		transform: translateY(65px);
	}
}

/* ================================
   LOGO SWAP ON STICKY HEADER
   ================================ */

/* default: horizontal logo visible */
.logo-horizontal {
	display: block !important;
}

.logo-square {
	display: none !important;
}

/* desktop: square first */
@media (min-width: 992px) {
	.navbar-area.navbar-area-style-two .logo-horizontal {
		display: none !important;
	}

	.navbar-area.navbar-area-style-two .logo-square {
		display: block !important;
	}

	/* sticky: switch to horizontal */
	.navbar-area.navbar-area-style-two.is-sticky .main-nav .navbar .navbar-brand.header-logo-desktop img.logo-horizontal {
		display: block !important;
		position: relative;
		top: 45px !important;
		width: auto !important; /* adjust as needed */
		height: auto !important;
		max-width: none !important;
		max-height: none !important;
		margin: 0 !important;
	}

	.navbar-area.navbar-area-style-two.is-sticky .logo-square {
		display: none !important;
	}
}

@media (min-width: 1200px) {
	/* sticky: switch to horizontal */
	.navbar-area.navbar-area-style-two.is-sticky .main-nav .navbar .navbar-brand.header-logo-desktop img.logo-horizontal {
		display: block !important;
		position: relative;
		top: 79px !important;
		width: auto !important; /* adjust as needed */
		height: auto !important;
		max-width: none !important;
		max-height: none !important;
		margin: 0 !important;
	}
}

/****************************************************/
/****	HORIZONTAL LOGO VERTICAL ADJUSTMENT	*********/
/****************************************************/

/* Fix sticky overflow behavior on horizontal logo */
.navbar-area.is-sticky.navbar-area-style-two .main-nav .navbar .navbar-brand {
	overflow: visible;
}

/* Ensure navbar content aligns vertically */
.navbar-area .navbar {
	display: flex;
	align-items: center;
}

/* Make sure brand aligns with nav items */
.navbar-area .navbar-brand {
	display: flex;
	align-items: center;
	padding: 0; /* remove Bootstrap default vertical padding */
}

/* Normalize logo behavior */
.navbar-area .navbar-brand img {
	display: block;
	height: 50px; /* adjust this to match your nav height */
	width: auto;
}

/* Fine-tune horizontal logo when sticky */
.navbar-area.is-sticky .logo-horizontal {
	position: relative;
	top: 2px; /* tweak: 1–3px usually does it */
}

#img_whoweare {
	width: 100%;
}


/* ================================
   SERVICE AREA STYLES
   ================================ */
#servicesImage {
	width: 100%;
	height: 576px;
	object-fit: cover;
	object-position: center;
}

/* ================================
   SERVICE CARD BOTTOM-LOCKED LINK
   ================================ */

.card.h-100 > a {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.card.h-100 .card-body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.card.h-100 .read-more {
	margin-top: auto;
	padding-top: 15px;
}

/* ================================
   MAIN CONTENT WIDTH ALIGNMENT FIX
   ================================ */

/* use one consistent content width for main page sections */
.who-we-are-area .container,
.services-area .container,
.services-area-style-two .container,
.counter-area .container,
.price-area .container,
.featured-area .container,
.partner-area .container,
.testimonials-area .container,
.blog-area .container,
.subscribe-area .container {
	max-width: 1320px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 12px;
	padding-right: 12px;
}

/* if any of those sections are using container-fluid, force them to behave */
.who-we-are-area .container-fluid,
.services-area .container-fluid,
.services-area-style-two .container-fluid,
.counter-area .container-fluid,
.price-area .container-fluid,
.featured-area .container-fluid,
.partner-area .container-fluid,
.testimonials-area .container-fluid,
.blog-area .container-fluid,
.subscribe-area .container-fluid {
	max-width: 1320px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 12px;
	padding-right: 12px;
}

/* keep rows from visually overshooting */
.who-we-are-area .row,
.services-area .row,
.services-area-style-two .row,
.counter-area .row,
.price-area .row,
.featured-area .row,
.partner-area .row,
.testimonials-area .row,
.blog-area .row,
.subscribe-area .row {
	margin-left: 0;
	margin-right: 0;
}

	.who-we-are-area .row > *,
	.services-area .row > *,
	.services-area-style-two .row > *,
	.counter-area .row > *,
	.price-area .row > *,
	.featured-area .row > *,
	.partner-area .row > *,
	.testimonials-area .row > *,
	.blog-area .row > *,
	.subscribe-area .row > * {
		padding-left: 12px;
		padding-right: 12px;
	}

/* ================================
   PARTNER AREA RIGHT EDGE FIX
   ================================ */
.partner-area.partner-area-style-two::after {
	width: 0 !important;
	display: none !important;
}

/* ================================
   FOOTER ADJUSTMENTS
   ================================ */
.single-footer-widget #footer-logo {
	max-width: 50%;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.social-icon {
	display: flex;
	justify-content: center;
	gap: 50px;
	list-style: none;
	/*max-width: 250px;*/ /* control how wide they spread */
	/*margin: 0 auto;*/
}

.single-footer-widget .import-link li a:hover,
.single-footer-widget .address li a:hover {
	font-weight: bold;
	color: white;
}

.footer-top-area .row {
	align-items: flex-start;
}

.footer-top-area .single-footer-widget {
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: flex-start;
}

.footer-top-area .single-footer-widget h3,
.footer-top-area .single-footer-widget img,
.footer-top-area .single-footer-widget p,
.footer-top-area .single-footer-widget ul {
	margin-bottom: 24px;
}

.footer-top-area .single-footer-widget > *:last-child {
	margin-bottom: 0;
}

.single-footer-widget .address {
	padding-left: 0;
	margin: 0;
	list-style: none;
}

.single-footer-widget .address li {
	display: flex;
	align-items: center;
	justify-content: center; /* keeps everything centered in your column */
	gap: 10px;
	margin-bottom: 16px;
	color: white;
	padding-left: 0;
	position: static;
	text-align: center;
}

.single-footer-widget .address li a {
	color: var(--white-color);
	display: inline; /* was block, which forced awkward wrapping */
}

.single-footer-widget .address li a:hover {
	color: var(--main-color);
}

.single-footer-widget .address li:last-child {
	margin-bottom: 0;
}

.single-footer-widget .address li i {
	position: static;
	font-size: 25px;
	color: var(--main-color);
	line-height: 1;
}

.footer-divider {
	width: 75%;
	margin: 1rem auto;
}

.footer-bottom-area .footer-bottom-menu li a:hover {
	color: white;
	font-weight: bold;
}

/* ================================
   TESTIMONIALS
   ================================ */
.testimonials-content .testimonials-name {
	position: relative;
	margin-bottom: 20px;
	padding-left: 70px;
	color: white;
}

.testimonials-area.testimonials-area-style-two {
	margin-top: 120px;
}

/* ================================
   TEAM
   ================================ */
.single-team-member:hover .team-content {
	background-color: var(--heading-color);
	box-shadow: var(--box-shadow);
	padding: 30px;
	margin-left: 30px;
	position: relative;
	transition: none;
	margin-top: -30px;
}

/* ================================
   ABOUT US TWEAKS
   ================================ */
.feathers-area .container {
	position: relative;
	z-index: 1;
}

.feathers-area h2,
.feathers-area h3,
.feathers-area h4 {
	color: #fff !important;
	opacity: 1 !important;
}

.who-we-are-img .who-we-are-img-2 {
	display: block;
}

.who-we-are-content p {
	text-align: start;
}

/* ================================
   CONTACT US TWEAKS
   ================================ */
.contact-info .address li i.bx {
	color: #ffffff;
}

.contact-info .address li a:hover {
	color: white!important;
}

.contact-info .social-icon li a {
	font-weight: bold;
	color: white;
}

/* default (mobile first) */
#contactbox {
	margin-top: 3rem!important;
}

/* md and up */
@media (min-width: 1200px) {
	#contactbox {
		margin-top: 0!important;
	}
}