/* ==========================================================================
   Motion layer (only active with html.clt-motion; off for reduced motion)
   ========================================================================== */

/* Scroll reveal */
.clt-motion [data-reveal],
.clt-motion .nt-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1);
	transition-delay: calc(var(--d, 0) * 90ms);
	will-change: opacity, transform;
}
.clt-motion [data-reveal].is-in,
.clt-motion .nt-reveal.is-in { opacity: 1; transform: none; }

/* Section title underline draws in */
.clt-motion .section-title[data-reveal] h2::after { transform: scaleX(0); transform-origin: left center; transition: transform .8s .25s cubic-bezier(.2, .7, .2, 1); }
.clt-motion .section-title[data-reveal].is-in h2::after { transform: scaleX(1); }

/* Scroll progress bar */
.clt-progress {
	position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 10000;
	transform-origin: 0 50%; transform: scaleX(0);
	background: linear-gradient(90deg, var(--primary-color), #7dd3fc, #34d399);
	pointer-events: none;
}
.admin-bar .clt-progress { top: 32px; }

/* Page entrance */
.clt-motion .main { animation: clt-page-in .6s ease-out both; }
@keyframes clt-page-in { from { opacity: 0; } to { opacity: 1; } }

/* Animated gradient heroes + floating orbs */
.clt-motion .clt-ev-hero,
.clt-motion .clt-cmp-hero,
.clt-motion .clt-jobs-hero { background-size: 180% 180%; animation: clt-hero-shift 16s ease-in-out infinite alternate; }
@keyframes clt-hero-shift { from { background-position: 0% 0%; } to { background-position: 100% 60%; } }
.clt-anim-hero { overflow: hidden; }
.clt-anim-hero::before { transform: translateY(var(--py, 0)); }
.clt-orb {
	position: absolute; border-radius: 50%; filter: blur(50px); opacity: .45; pointer-events: none;
	background: radial-gradient(circle, color-mix(in srgb, var(--primary-color) 80%, #fff), transparent 70%);
}
.clt-orb-1 { width: 380px; height: 380px; right: -80px; top: -60px; }
.clt-orb-2 { width: 260px; height: 260px; left: 8%; bottom: -120px; background: radial-gradient(circle, #34d399, transparent 70%); opacity: .25; }
.clt-motion .clt-orb-1 { animation: clt-float 12s ease-in-out infinite; }
.clt-motion .clt-orb-2 { animation: clt-float 15s ease-in-out infinite reverse; }
@keyframes clt-float { 50% { transform: translate(-40px, 30px) scale(1.1); } }

/* Stats cards pop */
.clt-motion .clt-ev-stats li { transition: transform .3s, background .3s; }
.clt-motion .clt-ev-stats li:hover { transform: translateY(-4px); background: rgba(255, 255, 255, .14); }

/* 3D tilt */
.clt-tilt { transform: perspective(900px) rotateX(var(--rx, 0)) rotateY(var(--ry, 0)); transition: transform .25s ease-out, box-shadow .25s; transform-style: preserve-3d; }
.clt-tilt::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .3s;
	background: radial-gradient(circle at var(--gx, 50%) var(--gy, 50%), rgba(255, 255, 255, .35), transparent 55%);
}
.clt-tilt:hover::after { opacity: 1; }
.clt-tilt:hover { box-shadow: 0 22px 45px rgba(13, 31, 58, .16); }

/* Button shine */
.clt-motion .btn-primary, .clt-motion .btn-getstarted, .clt-motion .compare-submit-btn { position: relative; overflow: hidden; }
.clt-motion .btn-primary::before, .clt-motion .btn-getstarted::before, .clt-motion .compare-submit-btn::before {
	content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255, 255, 255, .35), transparent);
	transform: skewX(-20deg); transition: left .7s ease;
}
.clt-motion .btn-primary:hover::before, .clt-motion .btn-getstarted:hover::before, .clt-motion .compare-submit-btn:hover::before { left: 140%; }

/* Vehicle card image zoom */
.clt-motion .vehicle-card { overflow: hidden; }
.clt-motion .vehicle-card img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.clt-motion .vehicle-card:hover img { transform: scale(1.06); }

/* Header "Book Now" gentle pulse */
.clt-motion .btn-getstarted { animation: clt-glow 3.5s ease-in-out infinite; }
@keyframes clt-glow { 50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--primary-color) 18%, transparent); } }

@media (prefers-reduced-motion: reduce) {
	.clt-motion [data-reveal], .clt-motion .nt-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
	.clt-motion *, .clt-motion *::before, .clt-motion *::after { animation: none !important; }
	.clt-tilt { transform: none !important; }
}
@media print {
	[data-reveal], .nt-reveal { opacity: 1 !important; transform: none !important; }
	.clt-progress { display: none; }
}
