/* Page load + light motion (not boring, not heavy) */

body {
	opacity: 0;
	transition: opacity 0.45s ease;
}

body.is-ready {
	opacity: 1;
}

#header {
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1), transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

body.is-ready #header {
	opacity: 1;
	transform: translateY(0);
}

/* Hero / page banner */
#header_other,
#home-slider {
	opacity: 0;
	transform: scale(1.02);
	transition: opacity 0.7s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

body.is-ready #header_other,
body.is-ready #home-slider {
	opacity: 1;
	transform: scale(1);
}

#header_other_content {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.55s ease 0.15s, transform 0.55s ease 0.15s;
}

body.is-ready #header_other_content {
	opacity: 1;
	transform: translateY(0);
}

/* Stagger children on load */
.stagger-load > * {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.45s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

body.is-ready .stagger-load > * {
	opacity: 1;
	transform: translateY(0);
}

body.is-ready .stagger-load > *:nth-child(1) { transition-delay: 0.05s; }
body.is-ready .stagger-load > *:nth-child(2) { transition-delay: 0.1s; }
body.is-ready .stagger-load > *:nth-child(3) { transition-delay: 0.15s; }
body.is-ready .stagger-load > *:nth-child(4) { transition-delay: 0.2s; }
body.is-ready .stagger-load > *:nth-child(5) { transition-delay: 0.25s; }
body.is-ready .stagger-load > *:nth-child(6) { transition-delay: 0.3s; }
body.is-ready .stagger-load > *:nth-child(n+7) { transition-delay: 0.35s; }

/* Scroll reveal — lighter than before */
.reveal {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.reveal-fade {
	transform: none;
}

.reveal-fade.is-visible {
	transform: none;
}

/* Cards hover polish */
.fleet_box,
#service-cont li {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.fleet_box:hover {
	transform: translateY(-4px);
}

/* Top loading bar (full width, thin) */
#site-top-loader {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 3px;
	z-index: 999999;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.15s ease;
	overflow: hidden;
	background: rgba(0, 0, 0, 0.06);
}

#site-top-loader.is-active {
	opacity: 1;
}

.site-top-loader-bar {
	display: block;
	height: 100%;
	width: 35%;
	background: linear-gradient(90deg, #deaf25, #f5d76e, #ca9e1d);
	animation: siteTopLoaderRun 1s ease-in-out infinite;
}

@keyframes siteTopLoaderRun {
	0% {
		transform: translateX(-120%);
	}
	100% {
		transform: translateX(320%);
	}
}

/* Button / link loading */
button.is-loading,
a.is-loading,
input.is-loading {
	opacity: 0.85;
	cursor: wait;
	pointer-events: none;
}

button.is-loading .fa-spinner,
a.is-loading .fa-spinner {
	margin-right: 6px;
}

/* Home services carousel — smooth hover */
#home_services-in li a {
	display: block;
	overflow: hidden;
	border-radius: 6px;
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.35s ease;
}

#home_services-in li a:hover {
	transform: translateY(-6px);
	box-shadow: 0 14px 32px rgba(0, 0, 0, 0.35);
}

#home_services-in li a img {
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.35s ease;
}

#home_services-in li a:hover img {
	transform: scale(1.05);
}

#home_services-in li a h3 {
	transition: color 0.3s ease, transform 0.3s ease;
}

#home_services-in li a:hover h3 {
	color: #deaf25;
	transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
	body,
	#header,
	#header_other,
	#home-slider,
	#header_other_content,
	.stagger-load > *,
	.reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	#site-top-loader .site-top-loader-bar {
		animation: none;
	}

	#home_services-in li a,
	#home_services-in li a img,
	#home_services-in li a h3 {
		transition: none !important;
	}
}
