.transit-card { grid-column: 1 / -1; width: 100%; min-width: 0; margin-top: .55rem; color: var(--pine-deep, #18372c); background: #f1f4e9; border-inline-start: 3px solid #627d54; }
.transit-card > summary { display: list-item; padding: .72rem .9rem; min-height: 44px; box-sizing: border-box; cursor: pointer; line-height: 1.35; }
.transit-card > summary::marker { color: #526948; }
.transit-card > summary > span { font-weight: 600; }
.transit-card > summary > small { margin-inline-start: .7rem; color: #445642; font-size: .84rem; }
.transit-card[open] > summary { border-bottom: 1px solid #c7d1bb; }
.transit-body { padding: .8rem 1rem .85rem; line-height: 1.5; overflow-wrap: anywhere; }
.transit-card .transit-body p { margin: 0 0 .65rem; max-width: 72ch; }
.transit-route ol { margin: .2rem 0 .7rem; padding-inline-start: 1.55rem; list-style: decimal; }
.transit-route li { padding-inline-start: .2rem; margin: .22rem 0; }
.transit-card a { color: inherit; text-decoration: underline; text-underline-offset: .17em; }
.transit-card .transit-sources { display: flex; flex-wrap: wrap; align-items: center; gap: 0 1rem; font-size: .89rem; }
.transit-sources a { display: inline-flex; align-items: center; min-height: 44px; }
.transit-card .transit-tip { font-size: .93rem; }
.transit-card .transit-region { color: #435442; font-size: .88rem; }
.transit-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .55rem .8rem; }
.transit-fields label { display: grid; align-content: start; gap: .2rem; margin: 0; font-size: .9rem; font-weight: 600; }
.transit-fields input { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #778472; border-radius: 0; background: #fff; color: #17372c; font: inherit; font-weight: 400; font-size: 1rem; padding: .55rem .65rem; min-height: 44px; }
.transit-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: .7rem 0 .5rem; }
.transit-actions button { font: inherit; font-weight: 600; cursor: pointer; min-height: 44px; padding: .5rem .9rem; border: 1px solid #294e3e; background: #294e3e; color: white; }
.transit-actions [data-transit-return] { background: transparent; color: #294e3e; }
.transit-card :is(summary, button, input, a):focus-visible { outline: 3px solid #275f71; outline-offset: 2px; }
.transit-card .transit-provider { margin: .45rem 0 0; font-size: .84rem; color: #435442; }
.transit-native-return { margin: .3rem 0 .6rem; }
.transit-native-return summary { display: list-item; cursor: pointer; padding: .6rem 0; min-height: 44px; box-sizing: border-box; }
html:not(.has-transit-js) :is(.transit-actions [data-transit-return], .transit-exit-field), .has-transit-js .transit-native-return { display: none; }
@media (max-width: 450px) { .transit-body { padding: .7rem; } .transit-actions button { flex: 1 1 8rem; } }
