/* Shared consumer-app presentation for Bus and Taxi. Functional controls retain their existing IDs. */
:root{--ef-ink:#071b3d;--ef-blue:#0869db;--ef-blue-deep:#074eae;--ef-gold:#ffc928;--ef-green:#04965a;--ef-surface:#f4f8fc;--ef-line:#e1e9f1;--ef-muted:#6f7f95}
body.consumer-bus,body.consumer-taxi{background:var(--ef-surface);color:var(--ef-ink)}
body.consumer-bus button,body.consumer-taxi button{font-family:inherit}

/* Bus home */
@media(max-width:640px){
 body.consumer-bus{padding-bottom:82px;background:var(--ef-surface)}
 body.consumer-bus>nav{display:none!important}
 body.consumer-bus .mobile-call-now,body.consumer-bus .mobile-support-wrap,body.consumer-bus .live-chat-launcher{display:none!important}
 body.consumer-bus .hero.public-page{padding:0 0 16px!important;background:var(--ef-surface)!important}
 body.consumer-bus .mobile-home-panel{height:275px!important;min-height:275px!important;padding:12px 20px 36px!important;background-color:#061d46!important;background-image:linear-gradient(90deg,rgba(3,22,58,.97),rgba(3,30,71,.8) 47%,rgba(3,26,61,.3)),url('ethiofly-bus-gold.jpg')!important;background-position:center,64% 6px!important;background-size:100% 100%,88% auto!important;background-repeat:no-repeat!important;border:0!important;border-radius:0!important;color:#fff!important;overflow:hidden!important}
 body.consumer-bus .mobile-home-panel::before,body.consumer-bus .mobile-home-panel::after{display:none!important}
 body.consumer-bus .mobile-hero-top{display:grid!important;grid-template-columns:40px 1fr 40px!important;align-items:center!important;min-height:44px;margin:0!important;position:relative!important;z-index:2!important}
 body.consumer-bus .mobile-hero-top::before{content:'☰';display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.28);border-radius:50%;color:#fff;font-size:19px}
 body.consumer-bus .mobile-greeting-block{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important}
 body.consumer-bus .mobile-greeting-block::before{content:'ETHIOFLY';font-size:17px;font-weight:900;letter-spacing:.06em;color:#fff}
 body.consumer-bus .mobile-greeting-block::after{content:'BUS';color:var(--ef-gold);font-size:9px;font-weight:900;letter-spacing:.15em;padding-top:3px}
 body.consumer-bus .mobile-greeting-block small,body.consumer-bus #mobile-user-name{display:none!important}
 body.consumer-bus .mobile-avatar{width:38px!important;height:38px!important;border:2px solid rgba(255,255,255,.88)!important;background:rgba(255,255,255,.16)!important;box-shadow:none!important;justify-self:end!important}
 body.consumer-bus .consumer-bus-copy{display:block;position:absolute;z-index:2;left:22px;top:62px;max-width:222px}
 body.consumer-bus .consumer-bus-copy small{display:block;margin-bottom:5px;color:var(--ef-gold);font-size:8px;font-weight:900;letter-spacing:.14em}
 body.consumer-bus .consumer-bus-copy h1{display:block!important;margin:0;color:#fff;font-family:'DM Sans',Arial,Helvetica,sans-serif!important;font-size:23px;line-height:1.05;font-weight:900;letter-spacing:0}
 body.consumer-bus .consumer-bus-copy h1 span{display:block;color:var(--ef-gold);font-size:20px;white-space:nowrap}
 body.consumer-bus .consumer-bus-copy p{display:block!important;margin:6px 0 0;max-width:182px;color:#e6eef9;font-size:10px;font-weight:600;line-height:1.35}
 body.consumer-bus .consumer-bus-trust{display:none!important}
 body.consumer-bus .bus-hero-brand{display:none!important}
 body.consumer-bus .search-card{width:calc(100% - 28px)!important;max-width:470px!important;margin:-21px auto 0!important;padding:12px!important;border:1px solid #e7edf3!important;border-radius:21px!important;box-shadow:0 14px 34px rgba(5,27,61,.18)!important;background:#fff!important}
 body.consumer-bus .mobile-trip-tabs{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:3px!important;padding:4px!important;margin:0 0 12px!important;border-radius:13px!important;background:#f2f5f8!important}
 body.consumer-bus .mobile-service-tab{min-height:55px!important;border:0!important;border-radius:10px!important;background:transparent!important;color:#6f7c8d!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:4px!important;font-size:11px!important;font-weight:800!important}
 body.consumer-bus .mobile-service-tab span{font-size:18px!important;line-height:1!important;filter:saturate(.85)}
 body.consumer-bus .mobile-service-tab.active{background:#fff!important;color:var(--ef-blue)!important;box-shadow:0 3px 10px rgba(15,37,68,.08)!important}
 body.consumer-bus .search-card .search-grid:not(.secondary){display:block!important;position:relative!important;padding:3px 50px 3px 38px!important;border:1px solid var(--ef-line)!important;border-radius:13px!important;background:#fff!important;overflow:visible!important}
 body.consumer-bus .search-card .search-grid:not(.secondary) .field-group{display:flex!important;min-height:60px!important;margin:0!important;padding:9px 2px!important;background:#fff!important;border:0!important;border-bottom:1px solid #edf1f5!important;border-radius:0!important;justify-content:center!important;text-align:left!important}
 body.consumer-bus .search-card .search-grid:not(.secondary) .field-group:last-child{border-bottom:0!important}
 body.consumer-bus .search-card .search-grid:not(.secondary) .field-group label{position:static!important;color:#6c7b90!important;font-size:10px!important;letter-spacing:0!important;text-transform:none!important;margin:0 0 3px!important;font-weight:700!important}
 body.consumer-bus .search-card .search-grid:not(.secondary) .field-group select{height:24px!important;background:transparent!important;border:0!important;padding:0!important;color:#122341!important;text-align:left!important;font-size:14px!important;font-weight:850!important}
 body.consumer-bus .search-card .search-grid:not(.secondary) .field-group::before{display:block!important;left:-27px!important;top:50%!important;width:12px!important;height:12px!important;border-radius:50%!important;background:#fff!important;border:3px solid var(--ef-green)!important;color:transparent!important;box-shadow:none!important}
 body.consumer-bus .search-card .search-grid:not(.secondary) .field-group:last-child::before{border-color:var(--ef-blue)!important}
 body.consumer-bus .search-card .search-grid:not(.secondary)>div:nth-child(2){position:absolute!important;right:7px!important;top:50%!important;transform:translateY(-50%)!important;width:36px!important;height:36px!important;display:grid!important;place-items:center!important}
 body.consumer-bus .search-card .search-grid:not(.secondary) .swap-btn{width:36px!important;height:36px!important;border:1px solid #d5e0eb!important;border-radius:50%!important;background:#f8fbff!important;color:var(--ef-blue)!important;margin:0!important;font-size:16px!important}
 body.consumer-bus .search-card .search-grid.secondary{display:grid!important;grid-template-columns:1fr 1fr!important;margin-top:11px!important;gap:0!important;border:1px solid var(--ef-line)!important;border-radius:13px!important;overflow:hidden!important;background:#fff!important}
 body.consumer-bus .search-card .search-grid.secondary .field-group{min-height:62px!important;padding:10px!important;background:#fff!important;border-right:1px solid #edf1f5!important;border-bottom:0!important;border-radius:0!important}
 body.consumer-bus .search-card .search-grid.secondary .field-group:last-child{border-right:0!important}
 body.consumer-bus .search-card .search-grid.secondary .field-group::before{display:none!important}
 body.consumer-bus .search-card .search-grid.secondary .field-group label{position:static!important;color:#6c7b90!important;font-size:10px!important;text-transform:none!important;letter-spacing:0!important;margin:0 0 3px!important}
 body.consumer-bus .search-card .search-grid.secondary input{height:24px!important;border:0!important;background:transparent!important;padding:0!important;color:#13233f!important;font-size:12px!important;font-weight:850!important}
 body.consumer-bus .search-card .passenger-stepper{height:24px!important;min-height:24px!important;padding:0!important;gap:4px!important;background:transparent!important;border:0!important}
 body.consumer-bus .search-card .passenger-stepper button{width:22px!important;height:22px!important;border:1px solid #d8e2ed!important;border-radius:50%!important;background:#fff!important;color:#122341!important;font-size:14px!important}
 body.consumer-bus .search-card .passenger-stepper span{font-size:11px!important;color:#122341!important;white-space:nowrap!important}
 body.consumer-bus .search-action{margin-top:12px!important}
 body.consumer-bus .search-btn{height:52px!important;border:0!important;border-radius:12px!important;color:#fff!important;background:var(--ef-blue)!important;box-shadow:0 9px 18px rgba(8,105,219,.25)!important;font-size:15px!important;font-weight:900!important}
 body.consumer-bus .search-btn::before{content:'⌕  '!important;color:#fff!important;font-size:19px!important;vertical-align:-1px}
 body.consumer-bus .mobile-offer-banner{width:calc(100% - 28px)!important;max-width:470px!important;margin:18px auto 0!important;min-height:132px!important;padding:18px!important;border-radius:16px!important;background:linear-gradient(90deg,rgba(5,39,101,.96),rgba(7,89,190,.55)),url('ethiofly-snow-bus-bg.jpeg') center/cover no-repeat!important}
 body.consumer-bus .mobile-offer-banner strong{font-size:19px!important}.mobile-offer-banner span{font-size:11px!important}.mobile-offer-banner button{min-height:30px!important;padding:0 12px!important;border-radius:7px!important;font-size:10px!important}
 body.consumer-bus .mobile-benefits{width:calc(100% - 28px)!important;max-width:470px!important;margin:15px auto!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:6px!important;background:#fff!important;border:1px solid var(--ef-line)!important;border-radius:14px!important;padding:12px 6px!important}
 body.consumer-bus .mobile-benefits div{padding:0 4px!important;border:0!important;background:transparent!important}.mobile-benefits span{font-size:16px!important;color:var(--ef-gold)!important}.mobile-benefits strong{font-size:9px!important;color:#1a3153!important}.mobile-benefits small{display:none!important}
 body.consumer-bus .mobile-section-title,body.consumer-bus .mobile-route-list{width:calc(100% - 28px)!important;max-width:470px!important;margin-left:auto!important;margin-right:auto!important}
 body.consumer-bus .mobile-section-title{margin-top:20px!important;font-size:16px!important}.mobile-section-title a{color:var(--ef-blue)!important;font-size:11px!important}
 body.consumer-bus .mobile-route-list{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin-bottom:12px!important}.mobile-route-item{min-height:122px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-end!important;gap:4px!important;padding:11px!important;border:1px solid #dbe6f0!important;border-radius:14px!important;background:linear-gradient(180deg,rgba(6,25,55,.1),rgba(5,27,64,.9)),url('ethiofly-snow-bus-bg.jpeg') center/cover!important;color:#fff!important}.mobile-route-item:nth-child(2){background-image:linear-gradient(180deg,rgba(6,25,55,.1),rgba(5,27,64,.9)),url('ethiofly-bus-green.jpg')!important}.mobile-route-item .mobile-route-icon{display:none!important}.mobile-route-item strong{font-size:11px!important}.mobile-route-item small{display:none!important}.mobile-route-price{font-size:11px!important;color:var(--ef-gold)!important}
 body.consumer-bus .departures{display:none!important}
 body.consumer-bus .mobile-bottom-nav{display:grid!important;grid-template-columns:repeat(4,1fr)!important;position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:900!important;min-height:71px!important;padding:7px max(9px,calc((100vw - 500px)/2)) calc(7px + env(safe-area-inset-bottom))!important;border:0!important;border-radius:20px 20px 0 0!important;background:#fff!important;box-shadow:0 -9px 24px rgba(15,32,59,.12)!important}
 body.consumer-bus .mobile-tab{min-height:55px!important;border-radius:12px!important;color:#68788f!important;font-size:10px!important;font-weight:800!important;gap:4px!important}.mobile-tab svg{width:20px!important;height:20px!important}.mobile-tab.active{color:var(--ef-blue)!important;background:transparent!important;box-shadow:none!important}.mobile-tab.active::after{content:''!important;display:block!important;position:absolute!important;bottom:1px!important;width:25px!important;height:3px!important;border-radius:3px!important;background:var(--ef-blue)!important}
}
@media(min-width:641px){
 body.consumer-bus .consumer-bus-copy,body.consumer-bus .consumer-bus-trust{display:none}
 body.consumer-bus .mobile-home-panel{background:linear-gradient(90deg,rgba(3,24,58,.92),rgba(3,24,58,.36)),url('ethiofly-bus-gold.jpg') center/cover!important}
}

/* Taxi home and its multi-step booking flow */
@media(max-width:640px){
 body.consumer-taxi{padding-bottom:73px;background:#f4f8fc}
 body.consumer-taxi .page{padding-bottom:0!important}
 body.consumer-taxi[data-taxi-step="search"] .hero{height:280px!important;min-height:280px!important;max-height:280px!important;background-color:#061c48!important;background-image:linear-gradient(90deg,rgba(3,20,51,.97),rgba(5,28,66,.78) 46%,rgba(5,23,54,.3)),linear-gradient(0deg,rgba(3,18,45,.76),transparent 53%),url('ethiofly-taxi-hero.jpeg')!important;background-position:center,center,64% 6px!important;background-size:100% 100%,100% 100%,85% auto!important;background-repeat:no-repeat!important}
 body.consumer-taxi[data-taxi-step="search"] .topbar{top:11px!important;left:16px!important;right:16px!important;grid-template-columns:38px 1fr 78px!important}
 body.consumer-taxi .hero-nav,body.consumer-taxi .hero-action{width:37px!important;height:37px!important;border-radius:50%!important;border:1px solid rgba(255,255,255,.3)!important;background:rgba(4,22,54,.34)!important}
 body.consumer-taxi[data-taxi-step="search"] .brand img{width:32px!important;height:32px!important}.consumer-taxi .brand span{font-size:15px!important}
 body.consumer-taxi[data-taxi-step="search"] .hero-copy{left:22px!important;top:69px!important;bottom:auto!important;max-width:214px!important}.consumer-taxi .hero-copy h1{font-size:28px!important;line-height:1.03!important;margin:0 0 6px!important}.consumer-taxi .hero-copy p{max-width:180px!important;font-size:10px!important;line-height:1.34!important}.consumer-taxi .availability-badge{left:22px!important;bottom:20px!important;border-radius:8px!important;padding:6px 9px!important;font-size:9px!important}
 body.consumer-taxi[data-taxi-step="search"] .shell{width:100%!important;margin:-20px auto 0!important;padding:0 12px!important}.consumer-taxi[data-taxi-step="search"] .booking-panel{padding:12px!important;border:1px solid #e2e9f1!important;border-radius:21px!important;box-shadow:0 14px 34px rgba(7,25,57,.16)!important}
 body.consumer-taxi .mode-tabs{margin:0 0 12px!important;padding:4px!important;border-radius:13px!important;background:#f2f5f8!important}.consumer-taxi .mode-tabs button{min-height:54px!important;border:0!important;border-radius:10px!important;font-size:11px!important}.consumer-taxi .mode-tabs button.active{background:#fff!important;color:var(--ef-gold)!important;box-shadow:0 3px 10px rgba(12,29,58,.08)!important;border:0!important}.consumer-taxi .mode-tabs .mode-icon{font-size:17px!important;margin-bottom:3px!important}
 body.consumer-taxi .section-title{font-size:18px!important;margin:13px 3px 11px!important;color:#142743!important}.consumer-taxi .location-card{border:1px solid var(--ef-line)!important;border-radius:14px!important;padding:7px 52px 7px 39px!important;background:#fff!important}.consumer-taxi .location-card:before{left:18px!important;top:35px!important;bottom:35px!important}.consumer-taxi .route-dot{left:14px!important}.consumer-taxi .route-field{min-height:61px!important}.consumer-taxi .route-field input{font-size:14px!important;font-weight:800!important}.consumer-taxi .field-label{font-size:10px!important;color:#758398!important}.consumer-taxi .location-card .swap-btn{right:8px!important;width:36px!important;height:36px!important;border:1px solid #d6e1ec!important;border-radius:50%!important;background:#f8fbff!important;color:var(--ef-blue)!important}
 body.consumer-taxi .location-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;margin:10px 0 0!important}.consumer-taxi .location-actions .mini-btn{min-height:35px!important;padding:6px!important;border:0!important;border-radius:8px!important;background:#eef6ff!important;color:#0759ad!important;font-size:10px!important;font-weight:800!important}.consumer-taxi .location-actions .mini-btn.secondary{background:#fff7e0!important;color:#946700!important}.consumer-taxi .location-actions .mini-btn:last-child{grid-column:1/-1!important;justify-self:start!important}.consumer-taxi .map-note{font-size:10px!important;margin:8px 2px!important}.consumer-taxi .quick-places{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:6px!important;margin:10px 0!important}.consumer-taxi .quick-places button{min-height:62px!important;border-radius:10px!important;border:1px solid #edf1f5!important;background:#f8fafc!important;font-size:9px!important}
 body.consumer-taxi .option-row{gap:8px!important}.consumer-taxi .option-box{min-height:64px!important;border-radius:10px!important;border:1px solid var(--ef-line)!important}.consumer-taxi .find-button,.consumer-taxi .submit,.consumer-taxi .pay-button{min-height:52px!important;border-radius:12px!important;background:var(--ef-gold)!important;color:#14223b!important;box-shadow:0 9px 20px rgba(255,201,40,.26)!important;font-size:15px!important;font-weight:900!important}
 body.consumer-taxi .insurance-bar{border-radius:12px!important;background:#0b2a57!important}
 body.consumer-taxi .side{display:none!important}
 /* The processing card lives inside .side. Keep it available after a ride is booked. */
 body.consumer-taxi[data-taxi-step="tracking"] .side{display:block!important;width:calc(100% - 20px)!important;margin:-24px auto 0!important;padding:0!important;position:relative!important;z-index:15!important}
 body.consumer-taxi[data-taxi-step="tracking"] .side .wallet-card,body.consumer-taxi[data-taxi-step="tracking"] .side .info-card{display:none!important}
 body.consumer-taxi[data-taxi-step="tracking"] .ride-card:not(.hidden){max-height:calc(100dvh - 190px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}
 body.consumer-taxi .consumer-taxi-nav{position:fixed;z-index:1000;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);min-height:70px;padding:7px max(10px,calc((100vw - 500px)/2)) calc(7px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;background:#fff;box-shadow:0 -8px 24px rgba(15,31,60,.13)}
 body.consumer-taxi .consumer-taxi-nav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:#69788e;font-size:10px;font-weight:800}.consumer-taxi .consumer-taxi-nav span{font-size:19px}.consumer-taxi .consumer-taxi-nav .active{color:var(--ef-gold)}.consumer-taxi .consumer-taxi-nav .active::after{content:'';position:absolute;bottom:1px;width:24px;height:3px;border-radius:3px;background:var(--ef-gold)}
 body.consumer-taxi[data-taxi-step="ride"] .hero{height:92px!important;min-height:92px!important}.consumer-taxi[data-taxi-step="ride"] .shell{margin:-12px auto 0!important;padding:0 10px!important}.consumer-taxi[data-taxi-step="ride"] .booking-panel{border-radius:20px!important;padding:13px!important}.consumer-taxi[data-taxi-step="confirm"] .hero{height:305px!important;min-height:305px!important}.consumer-taxi[data-taxi-step="confirm"] .shell{margin:-38px auto 0!important;padding:0 10px!important}.consumer-taxi[data-taxi-step="confirm"] #taxi-confirm-step{border-radius:20px 20px 14px 14px!important}
 body.consumer-taxi[data-taxi-step="tracking"] .hero{height:300px!important;min-height:300px!important}.consumer-taxi[data-taxi-step="tracking"] .shell{padding:0 10px!important;margin:-24px auto 0!important}
 body.consumer-taxi .app-sheet{border-radius:22px 22px 0 0!important;padding:18px 16px calc(18px + env(safe-area-inset-bottom))!important}
}
@media(min-width:641px){
 body.consumer-taxi .consumer-taxi-nav{display:none}
 body.consumer-taxi[data-taxi-step="search"] .hero{background-image:linear-gradient(90deg,rgba(3,20,51,.95),rgba(5,28,66,.58),rgba(5,23,54,.1)),url('ethiofly-taxi-hero.jpeg')!important}
}
