.hero-image { animation: heroDrift 16s ease-out both; }
.hero-copy .eyebrow { animation: riseIn .8s .2s ease both; }
.hero-copy h1 { animation: riseIn 1s .35s cubic-bezier(.2,.7,.2,1) both; }
.hero-copy .intro { animation: riseIn 1s .55s ease both; }
.quote-card { animation: cardIn 1s .7s cubic-bezier(.2,.75,.2,1) both; }
.nav-cta, .service-grid article { transition: background .35s, color .35s, transform .35s; }
.nav-cta:hover { background:#fff; color:#090a0b; }
.service-grid article:hover { background:#fff; transform:translateY(-6px); }
.service-link { display:block; }
.service-link article { height:100%; padding:0 0 28px; overflow:hidden; }
.service-link article > img { width:100%; height:210px; object-fit:cover; display:block; transition:transform .6s ease; }
.service-grid .service-link:first-child article > img { object-position:center top; }
.service-link article > h3, .service-link article > p, .service-link article > b { margin-left:28px; margin-right:28px; }
.service-link article > h3 { margin-top:28px; }
.service-link:hover article > img { transform:scale(1.035); }
.service-link b { margin-top:18px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.service-grid { grid-template-columns:repeat(5,1fr); }
.fleet-grid article:first-child { background:linear-gradient(0deg,rgba(4,5,7,.76),rgba(4,5,7,.12)),url("assets/sedan-suv-cover.jpg") center 58% / cover no-repeat; color:#fff; }
.fleet-grid article:first-child span { color:rgba(255,255,255,.74); }
.fleet-grid article:nth-child(2) { background:linear-gradient(0deg,rgba(4,5,7,.72),rgba(4,5,7,.16)),url("assets/sports-special-cover.jpg") center 54% / cover no-repeat; color:#fff; }
.fleet-grid article:nth-child(2) span { color:rgba(255,255,255,.74); }
.fleet-grid article:nth-child(3) { background:linear-gradient(0deg,rgba(4,5,7,.78),rgba(4,5,7,.1)),url("assets/van-minibus-cover.jpg") 72% center / cover no-repeat; color:#fff; }
.fleet-grid article:nth-child(3) span { color:rgba(255,255,255,.74); }
.routes span { animation:routePulse 7s ease-in-out infinite; }
.routes span:nth-child(2) { animation-delay:.4s; }
.routes span:nth-child(3) { animation-delay:.8s; }
.routes span:nth-child(4) { animation-delay:1.2s; }
.routes span:nth-child(5) { animation-delay:1.6s; }
.routes span:nth-child(6) { animation-delay:2s; }
.routes span:nth-child(7) { animation-delay:2.4s; }
.routes span:nth-child(8) { animation-delay:2.8s; }
.reveal { opacity:0; transform:translateY(34px); transition:opacity .85s ease, transform .85s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }
@keyframes heroDrift { from { transform:scale(1.06) translateX(-1%); } to { transform:scale(1) translateX(0); } }
@keyframes riseIn { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:none; } }
@keyframes cardIn { from { opacity:0; transform:translateY(50px); } to { opacity:1; transform:none; } }
@keyframes routePulse { 0%,100% { border-color:#383c42; color:#fff; } 50% { border-color:#858b93; color:#c9cdd2; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .reveal { opacity:1; transform:none; }
}
@media (max-width:1180px) and (min-width:901px) { .service-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:900px) { .service-grid { grid-template-columns:1fr; } }
