@font-face { font-family: 'DM Sans Local'; src: url('../fonts/DMSans-Variable.ttf') format('truetype'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Noto Sans Gujarati Local'; src: url('../fonts/NotoSansGujarati-Variable.ttf') format('truetype'); font-weight: 100 900; font-style: normal; font-display: swap; }

.city-bus-page { --bus-orange: #fd7e14; --bus-indigo: #393186; font-family: 'DM Sans Local', 'Noto Sans Gujarati Local', sans-serif; }
.city-bus-page [lang='gu'], .city-bus-page .gujarati { font-family: 'Noto Sans Gujarati Local', 'DM Sans Local', sans-serif; }
.city-bus-page .card { border-radius: .4rem; }
.city-bus-page .text-primary, .city-bus-page .btn-outline-primary { color: var(--bus-indigo) !important; }
.city-bus-page .btn-primary { color: #fff; background: var(--bus-orange); border-color: var(--bus-orange); }
.city-bus-page .btn-primary:hover, .city-bus-page .btn-primary:focus { background: #df6908; border-color: #df6908; }
.city-bus-page .btn-outline-primary { border-color: var(--bus-indigo); }
.city-bus-page .btn-outline-primary:hover { color: #fff !important; background: var(--bus-indigo); border-color: var(--bus-indigo); }
.city-bus-page .bg2 { background: var(--bus-indigo) !important; }
.city-bus-page .table thead { border-bottom: 2px solid var(--bus-orange); }
.city-bus-page .badge { font-weight: 600; }

/* Route stops: a clear, compact journey path instead of a data grid. */
.bus-route-path { position: relative; }
.bus-route-stop { position: relative; display: flex; align-items: center; gap: 1rem; min-height: 70px; }
.bus-route-stop:not(:last-child)::before { content: ''; position: absolute; width: 2px; top: 42px; bottom: -4px; left: 19px; background: #ddd9ef; }
.bus-route-marker { position: relative; z-index: 1; flex: 0 0 40px; width: 40px; height: 40px; display: grid; place-items: center; border: 2px solid var(--bus-indigo); border-radius: 50%; color: var(--bus-indigo); background: #fff; font-size: .8rem; font-weight: 700; }
.bus-route-stop:first-child .bus-route-marker, .bus-route-stop:last-child .bus-route-marker { color: #fff; background: var(--bus-orange); border-color: var(--bus-orange); }
.bus-route-stop-content { min-width: 0; flex: 1; line-height: 1.35; }
.bus-route-stop-content strong { color: var(--bus-indigo); font-size: 1rem; }
.bus-route-fare { flex: 0 0 auto; border-radius: 999px; padding: .35rem .65rem; color: #8d4608; background: #fff1e5; font-weight: 700; white-space: nowrap; }
@media (max-width: 575.98px) { .bus-route-stop { gap: .75rem; } .bus-route-marker { flex-basis: 36px; width: 36px; height: 36px; } .bus-route-stop:not(:last-child)::before { left: 17px; } .bus-route-fare { font-size: .85rem; padding: .3rem .5rem; } }
