:root {
    --allen-purple: #4d18d9;
    --allen-purple-dark: #19065d;
    --allen-lime: #d7fa19;
    --allen-ink: #1f145d;
    --allen-muted: #756c98;
}

.legacy-home-interface { display: none; }
.liquid-body.home-screen-page { background: #f8f7ff; }
.liquid-body.home-screen-page .liquid-background,
.liquid-body.home-screen-page .app-topbar { display: none; }
.liquid-body.home-screen-page .app-main { padding: 0; }
.liquid-body.home-screen-page .app-shell { min-height: 100vh; }

.home-booking-experience {
    position: relative;
    isolation: isolate;
    min-height: calc(100vh - 74px);
    overflow: hidden;
    background: #f9f8ff;
    color: var(--allen-ink);
}
.home-booking-map {
    position: absolute; inset: 0 0 auto; height: min(56vw, 420px);
    min-height: 300px; overflow: hidden; background: #ece9f4;
}
.liquid-body.home-screen-page .home-booking-map #home-map { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; opacity:1; }
.home-booking-map .leaflet-container { background:#ece9f4; font-family:"Alexandria", sans-serif; }
.liquid-body.home-screen-page .home-booking-map #home-map.is-unavailable { display:grid; place-items:center; padding:100px 24px 48px; background:radial-gradient(circle at 54% 38%,rgba(211,250,24,.28),transparent 22%),linear-gradient(140deg,#f5f2fc,#eae5f6); }
.home-map-unavailable { display:grid; justify-items:center; gap:7px; color:#20105f; text-align:center; font-weight:800; }.home-map-unavailable i { width:48px; height:48px; display:grid; place-items:center; border-radius:16px; background:#d9fa18; font-size:22px; }.home-map-unavailable small { color:#756c98; font-size:11px; font-weight:600; }
.home-booking-map::after { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(15,8,49,.14), transparent 48%, rgba(249,248,255,.18)); }

.home-booking-header { position:relative; z-index:3; height:94px; padding:18px clamp(18px, 5vw, 64px); display:flex; align-items:center; justify-content:space-between; }
.home-header-icon { width:46px; height:46px; display:grid; place-items:center; border:1px solid #e7e3f5; border-radius:15px; background:rgba(255,255,255,.9); color:var(--allen-purple-dark); text-decoration:none; box-shadow:0 8px 20px rgba(48,27,111,.07); }
.home-wordmark img { display:block; width:118px; max-height:48px; object-fit:contain; }.home-wordmark { min-width:118px; }

.booking-sheet { position:relative; z-index:2; width:min(720px, calc(100% - 28px)); margin:clamp(160px, 28vw, 255px) auto 28px; padding:18px clamp(20px, 5vw, 42px) 34px; border:1px solid rgba(220,216,239,.9); border-radius:32px; background:rgba(255,255,255,.96); box-shadow:0 24px 70px rgba(42,25,112,.15); }
.sheet-handle { display:block; width:54px; height:5px; margin:0 auto 22px; border-radius:20px; background:#d9d5e8; }
.booking-sheet-intro { text-align:center; }.booking-sheet-intro h1 { margin:13px 0 8px; font-size:clamp(27px,5vw,38px); font-weight:900; letter-spacing:-1.2px; color:#1e115c; }.booking-sheet-intro p { margin:0 auto 23px; max-width:480px; line-height:1.8; color:var(--allen-muted); font-size:14px; }
.booking-live-pill { display:inline-flex; align-items:center; gap:7px; padding:7px 12px; border-radius:99px; color:#5430b9; background:#f2edff; font-size:12px; font-weight:800; }.booking-live-pill i { color:#6e29f4; }.booking-live-pill.is-seat { color:#5b6900; background:#f4ffd0; }.booking-live-pill.is-seat i { color:#779400; }
.booking-methods { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }.booking-method-card { min-height:149px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:14px 8px; border:1px solid #e6dff6; border-radius:21px; background:#fff; color:#291360; text-align:center; transition:transform .2s, box-shadow .2s, border-color .2s; }.booking-method-card:hover { transform:translateY(-3px); border-color:#aa86ff; box-shadow:0 14px 25px rgba(53,27,126,.12); }.booking-method-card.is-form { background:linear-gradient(145deg,#f5efff,#fff); }.booking-method-card.is-seat { background:linear-gradient(145deg,#edffd1,#fff); }.booking-method-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:15px; font-size:20px; }.is-form .booking-method-icon { color:#6726e8; background:#e9ddff; }.is-seat .booking-method-icon { color:#455e00; background:#d9fa1c; }.booking-method-card strong { font-size:14px; font-weight:900; }.booking-method-card small { color:#7e739d; font-size:11px; line-height:1.5; }
.booking-main-action { width:100%; display:flex; direction:rtl; align-items:center; gap:14px; padding:14px; border:0; border-radius:20px; background:linear-gradient(115deg,#5014d9,#7b2df7); color:#fff; box-shadow:0 12px 26px rgba(87,23,218,.28); text-align:right; transition:transform .2s, box-shadow .2s; }.booking-main-action:hover { color:#fff; transform:translateY(-2px); box-shadow:0 17px 32px rgba(87,23,218,.35); }.booking-main-action > i { margin-right:auto; font-size:18px; }.booking-action-icon { width:48px;height:48px; display:grid;place-items:center; flex:0 0 auto; border-radius:15px; background:rgba(255,255,255,.17); font-size:20px; }.booking-main-action strong,.booking-main-action small { display:block; }.booking-main-action strong { font-size:17px; }.booking-main-action small { margin-top:2px; opacity:.82; font-size:12px; }
.booking-trust-row { display:flex; justify-content:center; flex-wrap:wrap; gap:13px; margin:18px 0; color:#72688f; font-size:12px; }.booking-trust-row i { color:#6b27ea; margin-left:4px; }.booking-secondary-action { display:flex; justify-content:center; align-items:center; gap:9px; padding-top:17px; border-top:1px solid #eeeaf7; color:#40208e; font-weight:800; font-size:14px; text-decoration:none; }.booking-secondary-action .fa-chevron-left { font-size:10px; }
.seat-picker { margin-top:14px; padding:15px; border:1px solid #e6dff5; border-radius:20px; background:#fbfaff; }.seat-picker-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; color:#35206e; font-size:14px; }.seat-picker-heading button { width:30px; height:30px; display:grid; place-items:center; border:0; border-radius:9px; background:#f0ebfb; color:#58319e; }
.professional-search { height:60px; display:flex; align-items:center; gap:10px; padding:0 16px; border:1.5px solid #ded8f1; border-radius:18px; background:#fff; box-shadow:0 8px 18px rgba(44,24,108,.05); color:#6f31e8; }.professional-search input { min-width:0; flex:1; border:0; outline:0; background:transparent; color:var(--allen-ink); font:inherit; font-size:14px; }.professional-search input::placeholder { color:#aaa1c1; }.professional-search span { padding:6px 10px; border-radius:9px; background:#f1ecff; font-size:11px; font-weight:800; }
.booking-date-label { display:flex; align-items:center; gap:8px; margin:20px 0 10px; color:#564c79; font-size:13px; font-weight:800; }.booking-date-label i { color:#6a24e7; }.seat-trip-filters { display:flex; gap:8px; margin:-2px 0 12px; }.seat-trip-filters button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:76px; min-height:34px; padding:0 11px; border:1px solid #e1daf2; border-radius:9px; color:#625681; background:#fff; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }.seat-trip-filters button:hover,.seat-trip-filters button:focus-visible { border-color:#9366e9; color:#5120b4; outline:0; }.seat-trip-filters button.is-active { border-color:#5f21db; color:#fff; background:#5f21db; box-shadow:0 5px 12px rgba(95,33,219,.2); }.seat-trip-results { display:grid; gap:9px; }.seat-trip-card { display:flex; direction:rtl; align-items:center; gap:12px; padding:11px; border:1px solid #ebe7f6; border-radius:17px; transition:border-color .2s, transform .2s; }.seat-trip-card:hover { border-color:#a98aff; transform:translateY(-1px); }.seat-trip-bus { width:40px; height:40px; display:grid; place-items:center; flex:0 0 auto; border-radius:12px; background:#f0ffd2; color:#517000; }.seat-trip-card div:nth-child(2) { min-width:0; flex:1; }.seat-trip-card h2 { margin:0 0 3px; font-size:14px; font-weight:800; }.seat-trip-card p { margin:0; overflow:hidden; color:#81789d; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }.seat-trip-time { display:flex; align-items:center; gap:9px; direction:ltr; color:#46337f; font-size:12px; }.seat-trip-time a { width:32px;height:32px; display:grid;place-items:center; border-radius:10px; background:var(--allen-purple); color:#fff; text-decoration:none; }.seat-trip-card.is-hidden { display:none; }.seat-results-empty { display:grid; place-items:center; gap:6px; padding:26px 12px; text-align:center; color:#7d739b; font-size:13px; }.seat-results-empty i { font-size:23px; color:#8d55f4; }.seat-results-empty strong { color:#34216f; }.seat-results-empty span { font-size:12px; }

.form-reservation-modal .modal-content { overflow:hidden; border:0; border-radius:25px; background:#fff; }.form-reservation-modal .modal-header { align-items:flex-start; padding:24px 24px 16px; border-bottom:1px solid #eeeaf7; }.form-reservation-modal .modal-header span { color:#7b6e9a; font-size:12px; }.form-reservation-modal h2 { margin:4px 0 0; color:#251260; font-size:23px; font-weight:900; }.form-reservation-modal .modal-body { display:grid; gap:9px; padding:16px 24px 24px; }.university-reservation-option { display:flex; align-items:center; gap:12px; padding:11px; border:1px solid #ebe6f7; border-radius:15px; color:#302065; font-size:14px; font-weight:800; text-decoration:none; }.university-reservation-option:hover { border-color:#9f7bff; color:#4d18d9; }.university-reservation-option span { width:35px;height:35px; display:grid;place-items:center; border-radius:11px; background:#f2edff; color:#6421e4; }.university-reservation-option > i:last-child { margin-right:auto; font-size:11px; }.modal-empty-copy { margin:0; color:#756c98; text-align:center; }

@media (min-width: 760px) { .home-booking-experience { min-height:100vh; padding-bottom:34px; }.home-booking-map { height:430px; }.booking-sheet { margin-top:235px; }.home-booking-header { max-width:1100px; margin:auto; } }
@media (max-width: 420px) { .home-booking-map { min-height:270px; }.booking-sheet { margin-top:142px; border-radius:28px; }.home-booking-header { height:82px; padding:14px 18px; }.home-header-icon { width:42px;height:42px; }.home-wordmark img { width:104px; }.booking-trust-row { gap:8px; font-size:11px; } }

/* Home booking refresh — bright map and a clear two-choice student flow. */
.liquid-body.home-screen-page {
    background: #fff;
    --lg-bottom-nav-clearance: 92px;
}
.liquid-body.home-screen-page .app-shell { width:100%; padding:0 0 94px; }
.home-booking-experience { min-height:calc(100vh - 94px); background:#fff; }
.home-booking-map { height:410px; min-height:410px; background:#f5f3fb; }
.home-booking-map::after { background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.18) 74%, rgba(255,255,255,.75)); }
.liquid-body.home-screen-page .home-booking-map #home-map { filter:saturate(.82) brightness(1.07); }
.home-booking-header { height:78px; padding:14px 24px; background:rgba(255,255,255,.96); box-shadow:0 1px 0 rgba(47,31,109,.06); }
.home-header-icon { width:48px; height:48px; border:0; border-radius:50%; background:#f4f2fb; color:#1f1260; box-shadow:none; font-size:22px; }
.home-header-icon:first-child { background:#f1f0f8; }
.home-wordmark { display:grid; place-items:center; min-width:0; }.home-brand-emblem { width:53px; height:53px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(145deg,#160655,#37178b); box-shadow:0 8px 18px rgba(37,16,105,.2); color:#fff; font-size:23px; }
.booking-sheet { width:100%; max-width:760px; min-height:0; margin:clamp(330px,43svh,520px) auto 0; padding:20px clamp(26px,7vw,52px) 30px; border:1px solid #ebe7f5; border-bottom:0; border-radius:42px 42px 0 0; background:rgba(255,255,255,.985); box-shadow:0 -10px 34px rgba(49,32,108,.08); }
.sheet-handle { width:50px; height:5px; margin-bottom:20px; background:#ded9eb; }
.booking-sheet-intro h1 { margin:9px 0 8px; font-size:clamp(31px,8.2vw,47px); line-height:1.17; letter-spacing:-1.8px; color:#18075a; }.booking-sheet-intro p { margin-bottom:28px; color:#777098; font-size:15px; line-height:1.8; }.booking-live-pill { display:none; }
.booking-methods { gap:16px; }.booking-method-card { min-height:182px; padding:18px 9px; border-radius:29px; border-width:1.5px; background:#fff; }.booking-method-card.is-form { border-color:#dac9ff; background:linear-gradient(145deg,#fbfaff,#f5efff); }.booking-method-card.is-seat { border-color:#d2ee48; background:radial-gradient(circle at 38% 25%,#fbffe6,transparent 42%), linear-gradient(145deg,#fff,#fcfff0); }.booking-method-icon { width:69px; height:69px; border-radius:23px; font-size:28px; }.is-form .booking-method-icon { color:#fff; background:linear-gradient(135deg,#7c2af2,#a352fa); box-shadow:0 12px 20px rgba(124,42,242,.18); }.is-seat .booking-method-icon { color:#17065b; background:#d9fa18; box-shadow:0 12px 20px rgba(188,225,17,.18); }.booking-method-card strong { color:#19075a; font-size:18px; font-weight:900; }.booking-method-card small { max-width:145px; color:#817a9e; font-size:12px; }
.booking-method-card.is-unavailable { cursor:default; opacity:.62; filter:saturate(.65); }
.booking-secondary-action { margin-top:28px; padding-top:23px; border-top:1px solid #e8e4f0; color:#19075a; font-size:17px; }.booking-secondary-action > i:first-child { font-size:21px; }
.seat-picker { margin-top:22px; padding:16px; border-color:#ded7ef; border-radius:23px; background:#faf9ff; }.seat-picker-heading { font-size:15px; }.professional-search { height:57px; border-color:#d9d0ed; }.booking-date-label { margin-top:16px; }
.liquid-body.home-screen-page .app-bottom-nav { width:100%; right:0; bottom:0; transform:none; padding:8px 10px calc(8px + env(safe-area-inset-bottom)); border:0; border-top:1px solid #eeeaf5; border-radius:0; background:rgba(255,255,255,.97); box-shadow:0 -8px 22px rgba(35,20,85,.06); backdrop-filter:blur(20px); }.liquid-body.home-screen-page .app-bottom-nav::after { display:none; }.liquid-body.home-screen-page .bottom-nav-item { min-height:56px; color:#35236f; font-size:11px; }.liquid-body.home-screen-page .bottom-nav-item i { font-size:22px; }.liquid-body.home-screen-page .bottom-nav-item.is-active { border:0; background:transparent; color:#7c31ee; position:relative; }.liquid-body.home-screen-page .bottom-nav-item.is-active::after { content:""; position:absolute; right:28%; bottom:1px; left:28%; height:3px; border-radius:999px; background:#7c31ee; }

.reservation-selector { position:fixed; z-index:300; inset:0; display:grid; align-items:start; padding:calc(82px + env(safe-area-inset-top)) 14px 18px; }.reservation-selector[hidden] { display:none; }.reservation-selector-backdrop { position:absolute; inset:0; border:0; background:rgba(19,11,47,.38); backdrop-filter:blur(5px); }.reservation-selector-sheet { position:relative; width:min(100%,620px); max-height:min(71vh,620px); overflow:auto; margin:0 auto; padding:20px; border:1px solid rgba(111,44,244,.16); border-radius:27px; background:rgba(255,255,255,.98); box-shadow:0 20px 52px rgba(19,11,47,.24); animation:selectorDialogIn .25s cubic-bezier(.2,.8,.25,1) both; }.selector-handle { display:none; }.selector-header { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding:0 3px 16px; border-bottom:1px solid #eeeaf6; }.selector-header span { color:#8a82a3; font-size:12px; line-height:1.7; }.selector-header h2 { margin:3px 0 0; color:#1b085d; font-size:25px; font-weight:900; }.selector-close { width:42px; height:42px; display:grid; place-items:center; flex:0 0 auto; border:0; border-radius:14px; background:#f2eff8; color:#371a83; font-size:18px; }.selector-options { display:grid; gap:10px; padding-top:16px; }.university-reservation-option { display:flex; align-items:center; min-height:68px; gap:12px; padding:10px 12px; border:1px solid #e6e0f2; border-radius:17px; background:#fff; color:#1e0d5d; text-decoration:none; }.university-reservation-option:hover { border-color:#9d75ef; background:#faf7ff; }.university-reservation-option span { display:grid; width:42px; height:42px; place-items:center; flex:0 0 auto; border-radius:13px; color:#6a29e8; background:#eee6ff; }.university-reservation-option strong { display:grid; min-width:0; flex:1; gap:2px; line-height:1.35; font-size:14px; }.university-reservation-option strong b { color:#1b085d; font-size:17px; }.university-reservation-option strong small { overflow:hidden; color:#817a9e; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.university-reservation-option > i:last-child { color:#4a288f; }.modal-empty-copy { padding:22px 0; color:#817a9e; line-height:1.9; }
body.reservation-selector-open { overflow:hidden; }
@keyframes selectorDialogIn { from { transform:translateY(-22px) scale(.98); opacity:0; } to { transform:translateY(0) scale(1); opacity:1; } }
@media (max-width:420px) { .home-booking-map { height:390px; min-height:390px; }.home-booking-header { height:72px; padding:12px 22px; }.home-header-icon { width:45px; height:45px; }.home-brand-emblem { width:49px; height:49px; font-size:21px; }.booking-sheet { margin-top:clamp(330px,43svh,430px); padding:18px 26px 25px; border-radius:37px 37px 0 0; }.booking-sheet-intro h1 { font-size:31px; }.booking-sheet-intro p { margin-bottom:24px; font-size:14px; }.booking-methods { gap:12px; }.booking-method-card { min-height:164px; border-radius:25px; }.booking-method-icon { width:61px; height:61px; border-radius:20px; font-size:25px; }.booking-method-card strong { font-size:16px; }.booking-method-card small { font-size:11px; }.booking-secondary-action { margin-top:23px; padding-top:19px; font-size:15px; } }

/* Interactive map, movable booking sheet, and restrained motion. */
.home-booking-experience { overflow:visible; background:transparent; }
.home-booking-map { height:100svh; min-height:100svh; }
.liquid-body.home-screen-page .home-booking-map #home-map,
.home-booking-map .leaflet-container,
.home-booking-map .maplibregl-map,
.home-booking-map .maplibregl-canvas { direction:ltr !important; unicode-bidi:isolate; }
.liquid-body.home-screen-page .home-booking-map #home-map { filter:none; touch-action:pan-x pan-y pinch-zoom; }
.home-booking-map::after { background:linear-gradient(180deg, rgba(255,255,255,.015), rgba(255,255,255,.03) 55%, rgba(255,255,255,.28)); }
.booking-sheet { transform:translate3d(0,var(--sheet-drag-y, 0px),0); will-change:transform; transition:transform .28s cubic-bezier(.2,.75,.25,1), box-shadow .28s ease; animation:bookingSheetReveal .58s cubic-bezier(.2,.85,.25,1); }
.booking-sheet.is-dragging { transition:none; box-shadow:0 -16px 45px rgba(49,32,108,.16); }
.sheet-handle { position:relative; cursor:grab; touch-action:none; outline:0; }.sheet-handle:active { cursor:grabbing; }.sheet-handle::before { content:""; position:absolute; inset:-13px -30px; }.sheet-handle:focus-visible { box-shadow:0 0 0 4px rgba(115,49,237,.18); }
.booking-method-card { animation:bookingChoiceIn .52s cubic-bezier(.2,.8,.25,1) both; }.booking-method-card.is-seat { animation-delay:.08s; }.booking-method-card:hover .booking-method-icon { transform:translateY(-3px) scale(1.04); }.booking-method-icon { transition:transform .24s ease, box-shadow .24s ease; }.home-brand-emblem { animation:brandPulse 4s ease-in-out infinite; }
.home-promo-banner { position:relative; display:block; min-height:116px; margin-top:22px; overflow:hidden; border-radius:20px; color:#fff; text-decoration:none; background:#10062d; box-shadow:0 12px 25px rgba(49,13,119,.17); }.home-promo-banner img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center right; transition:transform .6s ease; }.home-promo-banner::after { content:""; position:absolute; top:0; bottom:0; width:36%; left:-42%; transform:skewX(-18deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent); animation:promoSheen 4.8s ease-in-out infinite; }.home-promo-banner:hover img { transform:scale(1.045); }.home-promo-banner::before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(8,3,28,.96) 0%,rgba(10,3,35,.78) 35%,rgba(10,3,35,.06) 72%); }.home-promo-copy { position:relative; z-index:2; display:flex; flex-wrap:wrap; align-content:center; gap:3px 10px; width:60%; min-height:116px; padding:17px 20px; }.home-promo-copy strong { width:100%; font-size:19px; font-weight:900; }.home-promo-copy small { color:#d4c9f5; font-size:12px; }.home-promo-copy i { align-self:center; font-size:13px; color:#d9fa18; }
@keyframes bookingSheetReveal { from { opacity:0; transform:translate3d(0,25px,0); } to { opacity:1; transform:translate3d(0,var(--sheet-drag-y,0px),0); } }
@keyframes bookingChoiceIn { from { opacity:0; transform:translateY(14px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes brandPulse { 0%,100% { box-shadow:0 8px 18px rgba(37,16,105,.2); } 50% { box-shadow:0 11px 25px rgba(93,42,220,.34); } }
@keyframes promoSheen { 0%,62% { left:-42%; } 84%,100% { left:118%; } }
@media (max-width:420px) { .home-promo-banner,.home-promo-copy { min-height:105px; }.home-promo-copy { padding:15px 17px; }.home-promo-copy strong { font-size:17px; } }
@media (prefers-reduced-motion:reduce) { .booking-sheet,.booking-method-card,.home-brand-emblem,.home-promo-banner::after { animation:none; transition:none; } }

/* The map header is a persistent application nav, matching the global shell. */
.home-booking-header {
    position:fixed;
    top:0;
    right:0;
    left:0;
    z-index:120;
    min-height:76px;
    height:auto;
    padding:calc(12px + env(safe-area-inset-top)) 24px 12px;
}
.home-booking-header .home-header-icon { flex:0 0 auto; }
.home-wordmark { width:56px; height:56px; display:grid; place-items:center; border-radius:50%; background:#1d075e; box-shadow:0 9px 20px rgba(37,16,105,.2); overflow:hidden; }
.home-wordmark img { width:100%; height:100%; object-fit:cover; }
.home-booking-map .leaflet-tile { filter:brightness(.96) contrast(1.18) saturate(1.05); }
.home-booking-map .leaflet-top { top:86px; }
.home-booking-map .leaflet-left { left:17px; }
.home-booking-map .leaflet-control-zoom,
.home-booking-map .home-map-reset { overflow:hidden; margin:0 0 8px; border:1px solid rgba(225,219,240,.96); border-radius:14px; background:rgba(255,255,255,.94); box-shadow:0 8px 18px rgba(39,18,101,.12); backdrop-filter:blur(10px); }
.home-booking-map .leaflet-control-zoom a { width:38px; height:36px; border:0; border-bottom:1px solid #ece8f4; color:#2a1368; background:transparent; font:700 21px/36px Alexandria,sans-serif; }
.home-booking-map .leaflet-control-zoom a:last-child { border-bottom:0; }
.home-booking-map .leaflet-control-zoom a:hover { color:#5e20d7; background:#f5f0ff; }
.home-map-reset { width:38px; height:38px; display:grid; place-items:center; padding:0; color:#2a1368; cursor:pointer; font-size:16px; }
.home-map-reset:hover { color:#5e20d7; background:#f5f0ff; }
.home-map-reset:focus-visible { outline:3px solid rgba(103,42,229,.28); outline-offset:2px; }
.allen-map-label-wrap,.allen-map-bus-wrap { background:transparent; border:0; }
.allen-map-label { display:inline-flex; align-items:center; justify-content:center; min-width:max-content; padding:5px 9px; border:1px solid rgba(255,255,255,.82); border-radius:999px; color:#32206d; background:rgba(255,255,255,.82); box-shadow:0 5px 14px rgba(31,17,88,.12); font-family:"Alexandria",sans-serif; font-size:11px; font-weight:800; line-height:1.2; direction:rtl; white-space:nowrap; }
.allen-map-label.is-primary { padding:7px 13px; color:#1d0a5b; background:rgba(255,255,255,.92); font-size:16px; font-weight:900; }
.allen-map-bus-pin { width:50px; height:50px; display:grid; place-items:center; border:5px solid rgba(255,255,255,.85); border-radius:50% 50% 50% 8px; transform:rotate(-45deg); color:#210d5f; background:#d8fa18; box-shadow:0 10px 22px rgba(70,88,0,.22); font-size:20px; }
.allen-map-bus-pin i { transform:rotate(45deg); }
@media(max-width:420px){.home-booking-header { min-height:69px; padding:calc(10px + env(safe-area-inset-top)) 22px 10px; }}

/* Home advertising rail: dashboard creatives first, with branded fallbacks for a new install. */
.home-booking-experience { min-height:calc(100svh - 94px); overflow:visible; background:#f8f7ff; }
.home-ads-stage { padding:calc(88px + env(safe-area-inset-top)) 12px 0; }
.home-ads-slider { position:relative; width:min(940px,100%); height:clamp(218px,40vw,340px); margin:0 auto; overflow:hidden; border:1px solid rgba(101,55,203,.18); border-radius:30px; background:#11052f; box-shadow:0 18px 40px rgba(37,12,97,.16); touch-action:pan-y; }
.home-ad-track { display:flex; width:100%; height:100%; direction:ltr; transition:transform .58s cubic-bezier(.2,.78,.22,1); will-change:transform; }
.home-ad-slide { position:relative; isolation:isolate; flex:0 0 100%; width:100%; height:100%; overflow:hidden; background:#11052f; }
.home-ad-slide::before { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(4,3,16,.94) 0%,rgba(7,4,29,.8) 36%,rgba(10,5,32,.16) 72%,rgba(6,3,23,.08)); }
.home-ad-link { display:block; width:100%; height:100%; color:#fff; text-decoration:none; }
.home-ad-slide > img,.home-ad-link > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.012); transition:transform .8s ease; }
.home-ad-slide.is-active .home-ad-link:hover > img { transform:scale(1.055); }
.home-ad-copy { position:absolute; z-index:2; top:50%; left:clamp(18px,4vw,42px); display:grid; width:min(56%,470px); gap:7px; transform:translateY(-50%); direction:rtl; color:#fff; text-align:right; text-shadow:0 3px 18px rgba(0,0,0,.26); }
.home-ad-kicker { display:inline-flex; align-items:center; width:max-content; gap:6px; color:#d9fa18; font-size:11px; font-weight:900; letter-spacing:.01em; }.home-ad-kicker::before { content:""; width:7px; height:7px; border-radius:50%; background:#d9fa18; box-shadow:0 0 0 4px rgba(217,250,24,.13); }
.home-ad-copy strong { max-width:14ch; color:#fff; font-size:clamp(22px,3.7vw,37px); font-weight:900; line-height:1.22; letter-spacing:-1.2px; }.home-ad-copy small { max-width:28ch; color:#e6dffb; font-size:clamp(11px,1.55vw,14px); font-weight:600; line-height:1.65; }
.home-ad-cta { display:inline-flex; align-items:center; gap:8px; width:max-content; margin-top:4px; padding:8px 11px; border:1px solid rgba(217,250,24,.5); border-radius:999px; color:#fff; background:rgba(217,250,24,.13); font-size:11px; font-weight:900; text-shadow:none; transition:background .2s,transform .2s; }.home-ad-link:hover .home-ad-cta { background:rgba(217,250,24,.24); transform:translateX(-2px); }.home-ad-cta i { color:#d9fa18; font-size:10px; }
.home-ad-controls { position:absolute; z-index:4; bottom:15px; left:16px; display:flex; align-items:center; gap:9px; direction:ltr; }.home-ad-dots { display:flex; align-items:center; gap:5px; }.home-ad-dot { width:7px; height:7px; padding:0; border:0; border-radius:999px; background:rgba(255,255,255,.48); cursor:pointer; transition:width .2s,background .2s; }.home-ad-dot.is-active { width:22px; background:#d9fa18; }.home-ad-dot:focus-visible,.home-ad-toggle:focus-visible { outline:3px solid rgba(217,250,24,.72); outline-offset:3px; }
.home-ad-toggle { width:30px; height:30px; display:grid; place-items:center; padding:0; border:1px solid rgba(255,255,255,.22); border-radius:50%; color:#fff; background:rgba(10,5,35,.48); cursor:pointer; font-size:10px; backdrop-filter:blur(8px); }
.booking-sheet { width:min(760px,calc(100% - 24px)); margin:18px auto 0; padding:22px clamp(22px,6vw,50px) 32px; border:1px solid #e9e4f3; border-bottom:1px solid #e9e4f3; border-radius:31px; background:#fff; box-shadow:0 15px 34px rgba(40,18,101,.08); transform:none; will-change:auto; animation:bookingSheetReveal .5s cubic-bezier(.2,.85,.25,1); }
.sheet-handle { cursor:default; touch-action:auto; }.sheet-handle::before { display:none; }
@media(max-width:420px){.home-ads-stage { padding:82px 10px 0; }.home-ads-slider { height:220px; border-radius:25px; }.home-ad-copy { left:18px; width:61%; gap:5px; }.home-ad-copy strong { font-size:22px; }.home-ad-copy small { font-size:10px; }.home-ad-cta { padding:7px 9px; font-size:10px; }.home-ad-controls { bottom:12px; left:13px; }.booking-sheet { width:calc(100% - 20px); margin-top:14px; padding:20px 22px 27px; border-radius:27px; }}
@media(prefers-reduced-motion:reduce){.home-ad-track,.home-ad-slide > img,.home-ad-link > img { transition:none; }}
@media(max-width:420px){.home-booking-map .leaflet-top { top:80px; }.home-booking-map .leaflet-left { left:12px; }.home-booking-map .leaflet-control-zoom a { width:35px; height:34px; font-size:19px; line-height:34px; }.home-map-reset { width:35px; height:35px; }}

/* Floating service hub: deliberately sits above the persistent bottom nav. */
.home-quick-orbit { position:fixed; z-index:170; bottom:calc(88px + env(safe-area-inset-bottom)); left:18px; width:64px; height:64px; }.home-quick-actions { position:absolute; inset:0; pointer-events:none; }.home-quick-trigger,.home-quick-action { display:grid; place-items:center; border:0; border-radius:50%; text-decoration:none; }.home-quick-trigger { position:relative; z-index:2; width:64px; height:64px; gap:1px; color:#210762; background:linear-gradient(145deg,#dfff28,#bff400); box-shadow:0 12px 26px rgba(89,61,8,.25),0 0 0 5px rgba(255,255,255,.92); font:900 9px/1 "Alexandria",sans-serif; cursor:pointer; transition:transform .28s cubic-bezier(.2,.9,.25,1),background .22s ease; }.home-quick-trigger i { font-size:19px; }.home-quick-action { position:absolute; right:8px; bottom:8px; width:48px; height:48px; color:#fff; background:linear-gradient(135deg,#5520ce,#9c48f2); box-shadow:0 9px 18px rgba(55,19,129,.24); opacity:0; pointer-events:none; transform:translate(0,0) scale(.35); transition:transform .34s cubic-bezier(.2,.95,.25,1),opacity .2s ease; transition-delay:calc(var(--quick-order) * 28ms); }.home-quick-action i { font-size:16px; }.home-quick-action span { position:absolute; right:55px; min-width:max-content; padding:6px 8px; border-radius:8px; color:#fff; background:rgba(27,10,79,.91); box-shadow:0 5px 12px rgba(17,7,51,.16); font:800 9px/1 "Alexandria",sans-serif; opacity:0; transform:translateX(-4px); transition:opacity .16s ease,transform .16s ease; pointer-events:none; }.home-quick-action:hover span,.home-quick-action:focus-visible span { opacity:1; transform:none; }.home-quick-action.is-car{--quick-order:1}.home-quick-action.is-external{--quick-order:2}.home-quick-action.is-chat{--quick-order:3}.home-quick-action.is-complaint{--quick-order:4}.home-quick-action.is-bookings{--quick-order:5}.home-quick-action.is-notifications{--quick-order:6}.home-quick-orbit.is-open .home-quick-actions{pointer-events:auto}.home-quick-orbit.is-open .home-quick-trigger{color:#fff;background:linear-gradient(135deg,#2a0c72,#7432e8);transform:rotate(135deg)}.home-quick-orbit.is-open .home-quick-action{opacity:1;pointer-events:auto}.home-quick-orbit.is-open .is-car{transform:translate(0,-69px) scale(1)}.home-quick-orbit.is-open .is-external{transform:translate(50px,-57px) scale(1)}.home-quick-orbit.is-open .is-chat{transform:translate(77px,-12px) scale(1)}.home-quick-orbit.is-open .is-complaint{transform:translate(62px,36px) scale(1)}.home-quick-orbit.is-open .is-bookings{transform:translate(19px,66px) scale(1)}.home-quick-orbit.is-open .is-notifications{transform:translate(-36px,56px) scale(1)}.home-quick-orbit:not(.is-open) .home-quick-trigger{animation:quickHubPulse 3s ease-in-out infinite}.home-quick-action.is-chat{background:linear-gradient(135deg,#1b9e71,#38c895)}.home-quick-action.is-complaint{background:linear-gradient(135deg,#cf5b36,#f08f45)}.home-quick-action.is-car{background:linear-gradient(135deg,#2854bd,#597fe4)}.home-quick-action.is-external{background:linear-gradient(135deg,#8f46b8,#c166e3)}@keyframes quickHubPulse{0%,100%{box-shadow:0 12px 26px rgba(89,61,8,.25),0 0 0 5px rgba(255,255,255,.92)}50%{box-shadow:0 15px 30px rgba(89,61,8,.30),0 0 0 9px rgba(217,255,33,.22)}}@media(max-width:430px){.home-quick-orbit{bottom:calc(91px + env(safe-area-inset-bottom));left:16px}.home-quick-action span{display:none}.home-quick-orbit.is-open .is-notifications{transform:translate(-20px,54px) scale(1)}}@media(prefers-reduced-motion:reduce){.home-quick-trigger,.home-quick-action{transition:none}.home-quick-orbit:not(.is-open) .home-quick-trigger{animation:none}}

/* Booking availability states and a strict mobile layout for trip cards. */
.booking-methods.is-single-choice{grid-template-columns:minmax(0,1fr)}
.booking-method-card.is-weekly{border-color:#bddcf6;background:radial-gradient(circle at 50% 22%,#eef8ff,transparent 46%),linear-gradient(145deg,#fff,#f4f9ff)}
.is-weekly .booking-method-icon{color:#0c5f9d;background:#d4efff;box-shadow:0 12px 20px rgba(31,121,187,.16)}
.booking-method-card.is-weekly{animation-delay:.16s}
.booking-method-card.is-subscriber-only{border-style:dashed;cursor:pointer;opacity:.76;filter:saturate(.72)}
.booking-method-card.is-subscriber-only:hover,.booking-method-card.is-subscriber-only:focus-visible{opacity:1;border-color:#6eaedc;background:linear-gradient(145deg,#f1f9ff,#fff);outline:0}
.weekly-subscriber-dialog{inline-size:min(420px,calc(100vw - 32px));padding:27px 24px 22px;border:0;border-radius:27px;color:#24105c;background:#fff;text-align:center;box-shadow:0 24px 70px rgba(30,10,83,.34)}.weekly-subscriber-dialog::backdrop{background:rgba(26,8,77,.55);backdrop-filter:blur(5px)}.weekly-subscriber-dialog-close{position:absolute;top:13px;left:13px;display:grid;width:34px;height:34px;place-items:center;padding:0;border:0;border-radius:11px;color:#6230ce;background:#f1ebff;cursor:pointer}.weekly-subscriber-dialog-icon{display:grid;width:62px;height:62px;place-items:center;margin:0 auto 13px;border-radius:21px;color:#fff;background:linear-gradient(135deg,#6325d7,#a04df3);box-shadow:0 11px 21px rgba(92,34,208,.25);font-size:25px}.weekly-subscriber-dialog-kicker{color:#7132df;font-size:11px;font-weight:900}.weekly-subscriber-dialog h2{margin:6px 0 8px;font-size:21px;font-weight:900}.weekly-subscriber-dialog p{margin:0 auto 18px;max-width:33ch;color:#776e94;font-size:13px;font-weight:700;line-height:1.8}.weekly-subscriber-dialog>a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:47px;border-radius:15px;color:#260662;background:#d9ff21;font-size:13px;font-weight:900;text-decoration:none}.weekly-subscriber-dialog-dismiss{margin-top:9px;padding:7px 13px;border:0;color:#766d90;background:transparent;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.weekly-subscriber-dialog-close:focus-visible,.weekly-subscriber-dialog>a:focus-visible,.weekly-subscriber-dialog-dismiss:focus-visible{outline:3px solid #9b70e9;outline-offset:3px}
.booking-methods-empty{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px 0 0;padding:15px;border:1px dashed #ddd4eb;border-radius:17px;color:#786d95;background:#fbfaff;font-size:12px;font-weight:800;text-align:center}
.booking-methods-empty i{color:#7c31ee}
.seat-trip-card{display:grid;grid-template-columns:40px minmax(0,1fr) auto;width:100%;min-width:0;box-sizing:border-box;overflow:hidden}
.seat-trip-card>div:nth-child(2){width:100%;min-width:0}
.seat-trip-time{display:grid;grid-template-columns:max-content 32px;min-width:78px;direction:ltr}
.seat-trip-time strong{white-space:nowrap}
@media(max-width:420px){.booking-methods.is-single-choice .booking-method-card{min-height:164px}.seat-trip-card{grid-template-columns:38px minmax(0,1fr) auto;gap:8px;padding:10px}.seat-trip-bus{width:38px;height:38px}.seat-trip-card h2{font-size:13px;line-height:1.35}.seat-trip-card p{font-size:10px}.seat-trip-time{grid-template-columns:max-content 30px;min-width:70px;gap:6px;font-size:11px}.seat-trip-time a{width:30px;height:30px;border-radius:9px}}

/* Reservation type is chosen before exposing the relevant schedule list. */
.selector-instruction{margin:18px 2px 14px;color:#716887;font-size:14px;line-height:1.8}.selector-journey-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:4px}.selector-journey-option{display:grid;min-height:148px;align-content:center;justify-items:center;gap:7px;padding:16px 8px;border:1px solid #e5ddf6;border-radius:19px;background:#fff;color:#21105e;font:inherit;text-align:center;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s,background .2s}.selector-journey-option:hover,.selector-journey-option:focus-visible{border-color:#9364ed;outline:0;background:#fbf9ff;box-shadow:0 8px 18px rgba(75,36,154,.11);transform:translateY(-2px)}.selector-journey-option.is-round{border-color:#d6c4fa;background:linear-gradient(145deg,#fff 0%,#f7f2ff 100%)}.selector-journey-option>span{display:grid;width:45px;height:45px;place-items:center;border-radius:15px;background:#eee5ff;color:#6525df;font-size:18px}.selector-journey-option strong{font-size:15px;font-weight:900}.selector-journey-option small{color:#837a9d;font-size:11px;line-height:1.45}.selector-stage-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 1px 0}.selector-stage-heading p{margin:0;color:#716887;font-size:13px;font-weight:700}.selector-back{display:inline-flex;align-items:center;gap:6px;border:0;padding:7px 9px;border-radius:10px;background:#f2edfb;color:#4c278f;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.selector-back:hover,.selector-back:focus-visible{background:#e9dfff;outline:2px solid #9b70ee;outline-offset:2px}.selector-time-option{width:100%;font:inherit;text-align:inherit;cursor:pointer}.selector-time-option:focus-visible,.university-reservation-option:focus-visible{border-color:#9364ed;outline:2px solid #9364ed;outline-offset:2px}
@media(max-width:520px){.selector-journey-options{grid-template-columns:1fr}.selector-journey-option{grid-template-columns:45px minmax(0,1fr);grid-template-rows:auto auto;min-height:0;justify-items:start;gap:2px 10px;padding:13px;text-align:right}.selector-journey-option>span{grid-row:1/span 2}.selector-journey-option strong{align-self:end}.selector-journey-option small{align-self:start}.selector-stage-heading{align-items:flex-start}.selector-stage-heading p{padding-top:5px;text-align:left}}
