:root { 
    --p-dark: #003B73; 
    --accent: #FFC107; 
    --bg: #F5F7FA; 
}

* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
    font-family: 'Poppins', sans-serif; 
}

body { background: var(--bg); padding-bottom: 120px; overflow-x: hidden; }

/* HEADER */
.main-header { background: var(--p-dark); padding: 45px 20px 20px; text-align: center; }
.logo-text { font-size: 2.2rem; font-weight: 900; line-height: 1; }
.m-yellow { color: var(--accent); } .m-white { color: #fff; }
.tagline-yellow { color: var(--accent); font-size: 0.6rem; letter-spacing: 2px; text-transform: uppercase; font-weight: 700; margin-top: 8px; display: block; }

/* SEARCH SECTION */
.search-container { background: var(--p-dark); padding: 0 20px 50px; border-radius: 0 0 35px 35px; }
.search-box { background: white; height: 50px; border-radius: 25px; display: flex; align-items: center; padding: 0 20px; box-shadow: 0 8px 15px rgba(0,0,0,0.1); }
.search-box input { border: none; outline: none; width: 100%; margin-left: 10px; font-size: 0.9rem; font-weight: 500; }

/* SERVICES NAVIGATION */
.container { padding: 0 15px; }
.main-services { display: flex; justify-content: space-around; padding: 15px 5px; margin: -25px 0 20px; background: white; border-radius: 20px; box-shadow: 0 10px 25px rgba(0,0,0,0.08); position: relative; z-index: 10; }
.service-item { display: flex; flex-direction: column; align-items: center; flex: 1; text-align: center; text-decoration: none; }
.service-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: white; font-size: 1.1rem; margin-bottom: 6px; }
.service-item span { font-size: 0.58rem; font-weight: 800; color: var(--p-dark); text-transform: uppercase; }

.bg-blue { background: linear-gradient(135deg, #003B73, #0056a8); }
.bg-orange { background: linear-gradient(135deg, #FF8C00, #FFA500); }
.bg-teal { background: linear-gradient(135deg, #008080, #20B2AA); }
.bg-red { background: linear-gradient(135deg, #DC143C, #FF4500); }

.section-label { font-weight: 800; color: var(--p-dark); margin: 25px 0 15px; display: flex; align-items: center; gap: 8px; font-size: 0.85rem; }

/* PROMO SLIDER */
.promo-slider { display: flex; overflow-x: auto; gap: 15px; padding-bottom: 10px; scrollbar-width: none; }
.promo-card { min-width: 280px; height: 140px; border-radius: 20px; background-size: cover; background-position: center; flex-shrink: 0; position: relative; overflow: hidden; display: flex; align-items: flex-end; padding: 15px; }
.promo-content { position: relative; z-index: 2; }
.promo-content h4 { color: var(--accent); font-size: 0.95rem; font-weight: 800; margin-bottom: 2px; }
.promo-content p { color: white; font-size: 0.7rem; line-height: 1.2; font-weight: 400; }

/* BUS GRID (RUTE POPULER) */
.bus-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bus-card { background: white; border-radius: 18px; overflow: hidden; border-bottom: 3px solid var(--accent); box-shadow: 0 4px 10px rgba(0,0,0,0.03); display: flex; flex-direction: column; }
.bus-card img { width: 100%; height: 95px; object-fit: cover; }
.bus-card-body { padding: 10px; flex-grow: 1; display: flex; flex-direction: column; justify-content: space-between; }
.bus-card-body h4 { font-size: 0.72rem; font-weight: 800; color: var(--p-dark); line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }

/* Meta PO & Jam (Optimasi Kecil) */
.bus-meta { font-size: 0.75rem; font-weight: 500; color: #777; text-transform: uppercase; letter-spacing: 0.1px; margin-top: 2px; }
.bus-price { font-size: 0.78rem; font-weight: 900; color: #d32f2f; margin: 5px 0; }
.btn-wa { display: block; background: var(--p-dark); color: var(--accent); text-align: center; padding: 7px 0; border-radius: 10px; text-decoration: none; font-size: 0.62rem; font-weight: 800; border: 1px solid var(--accent); }

/* NEWS LIST */
.news-item { background: white; border-radius: 15px; display: flex; align-items: center; margin-bottom: 12px; height: 85px; border: 1px solid #eee; overflow: hidden; }
.news-img { width: 85px; height: 85px; object-fit: cover; flex-shrink: 0; }
.news-info { padding: 10px; }
.news-info h4 { font-size: 0.75rem; color: var(--p-dark); margin-bottom: 3px; font-weight: 700; }
.news-info p { font-size: 0.62rem; color: #888; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* MARQUEE */
.marquee-wrapper { overflow: hidden; display: flex; padding: 15px 0; margin-top: 20px; }
.marquee-content { display: flex; gap: 15px; animation: run-fast 30s linear infinite; }
.po-card-mini { padding: 6px 15px; background: #fff; border-radius: 10px; border: 1px solid #eee; font-size: 0.68rem; font-weight: 700; color: var(--p-dark); white-space: nowrap; }
@keyframes run-fast { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* BOTTOM NAV */
.bottom-nav { position: fixed; bottom: 20px; left: 20px; right: 20px; height: 65px; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(15px); display: flex; justify-content: space-around; align-items: center; border-radius: 25px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); z-index: 1000; }
.nav-item { flex: 1; display: flex; flex-direction: column; align-items: center; text-decoration: none; color: #8E8E93; gap: 3px; }
.nav-item i { font-size: 1.1rem; }
.nav-item span { font-size: 0.55rem; font-weight: 700; }
.nav-item.active { color: var(--p-dark); }
                
