.bus-content{--muted:var(--ink-soft);--border:var(--line);--green:var(--ink);--orange:var(--gold);--route-color:#287d63;color:var(--ink);font-size:15px;line-height:1.5}
.bus-content *{box-sizing:border-box}
.bus-content{margin:0}
.bus-content a{color:inherit;text-underline-offset:4px}
.bus-content button,.bus-content input,.bus-content select{font:inherit}
.bus-content button,.bus-content a,.bus-content input,.bus-content select{-webkit-tap-highlight-color:transparent}
.bus-content button{cursor:pointer;color:inherit}
.bus-content button:disabled{cursor:default}
.bus-content button:focus-visible,.bus-content a:focus-visible,.bus-content input:focus-visible,.bus-content select:focus-visible{outline:3px solid #c26d38;outline-offset:4px}
.bus-content button{border:0}
.bus-content button[aria-pressed=true]{font-weight:bold}
.bus-content [hidden]{display:none!important}
.bus-content .skip{position:absolute;top:-80px;left:20px;z-index:2000;background:var(--paper);padding:12px}
.bus-content .skip:focus{top:10px}
.bus-content{max-width:1440px;margin:auto;padding:0 48px}
.bus-content header{display:flex;align-items:center;justify-content:space-between;min-height:96px;border-bottom:1px solid var(--border);gap:18px}
.bus-content .brand{text-decoration:none;font-family:var(--font-sans);font-size:29px;letter-spacing:3px;line-height:1.05}
.bus-content .brand small{display:block;font-family:var(--font-sans);font-size:9px;letter-spacing:2.9px;margin-top:7px}
.bus-content .header-right{display:flex;gap:28px;align-items:center}
.bus-content .guide-link{font-size:13px}
.bus-content .languages{display:flex;gap:4px}
.bus-content .languages a{text-decoration:none;padding:8px;font-size:12px}
.bus-content .languages a[aria-current=page]{background:var(--ink);color:white;border-radius:50%}
.bus-content .bus-hero{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:end;padding:42px 0 30px}
.bus-content .bus-eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:700;color:var(--orange);margin:0 0 13px}
.bus-content h1{font:normal clamp(36px,4.1vw,60px)/1.07 var(--font-sans);letter-spacing:-2px;margin:0 0 18px}
.bus-content .intro{color:var(--muted);max-width:590px;margin:0;font-size:15px}
.bus-content .hero-aside{border-left:1px solid var(--border);padding:5px 0 5px 24px;font-size:12px;color:var(--muted)}
.bus-content .hero-aside strong{display:block;color:var(--ink);font:normal 22px var(--font-sans);margin-bottom:9px}
.bus-content .hero-aside span{display:block}
.bus-content .small-status{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin-top:13px}
.bus-content .small-status:before{content:'';width:6px;height:6px;background:var(--orange);border-radius:50%;flex-shrink:0}
.bus-content .workspace{display:grid;grid-template-columns:325px minmax(0,1fr);gap:26px;align-items:start}
.bus-content .sidebar{padding:20px;background:var(--paper);border:1px solid var(--border);border-radius:3px}
.bus-content .section-label{font-size:17px;margin:0 0 16px}
.bus-content .search-label{font-size:11px;display:block;margin-bottom:6px;color:var(--muted)}
.bus-content #search{width:100%;background:var(--paper);border:1px solid var(--border);border-radius:3px;padding:11px 12px;font-size:12px}
.bus-content .filters{display:flex;flex-wrap:wrap;gap:5px;margin:14px 0}
.bus-content .filters button{padding:7px 10px;background:var(--paper-2);border-radius:3px;font-size:11px}
.bus-content .filters button[aria-pressed=true]{background:var(--ink);color:white}
.bus-content #result-count{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:17px 0 10px}
.bus-content .route-list{display:grid;gap:8px}
.bus-content .route-card{display:flex;align-items:center;gap:11px;width:100%;padding:14px 10px;text-align:left;background:var(--paper);border:1px solid var(--border);border-radius:3px;transition:background .12s}
.bus-content .route-card:hover{background:var(--paper-2)}
.bus-content .route-card[aria-pressed=true]{background:var(--paper-2);border-color:var(--route-color);box-shadow:inset 3px 0 var(--route-color)}
.bus-content .route-badge{font-size:11px;background:var(--route-color);color:white;padding:7px 5px;min-width:45px;border-radius:3px;text-align:center;flex-shrink:0}
.bus-content .route-text{min-width:0;flex:1}
.bus-content .route-text strong{display:block;font-size:12px;line-height:1.4;font-weight:600}
.bus-content .route-text>span{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:4px}
.bus-content .route-arrow{font-size:17px;color:var(--route-color)}
.bus-content .empty{font-size:13px;padding:12px 0}
.bus-content .empty button{background:none;text-decoration:underline;padding:12px 0}
.bus-content .explorer{min-width:0}
.bus-content .route-header{display:flex;gap:14px;align-items:center;margin:0 0 17px}
.bus-content .route-header .route-badge{font-size:16px;min-width:66px;padding:10px}
.bus-content .route-header h2{font:normal 25px/1.15 var(--font-sans);margin:0}
.bus-content .route-header small{font-size:10px;color:var(--muted)}
.bus-content .direction-label{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}
.bus-content #direction{width:100%;color:var(--ink);border:1px solid var(--border);background:var(--paper);padding:12px 36px 12px 14px;border-radius:3px;margin-bottom:16px;font-size:13px}
.bus-content #direction:disabled{opacity:1}
.bus-content .map-wrap{position:relative;border:1px solid var(--border);border-radius:3px;overflow:hidden;background:#e8eee3}
.bus-content #map{height:395px;width:100%;background-color:#e8eee3;background-image:linear-gradient(#dae3d730 1px,transparent 1px),linear-gradient(90deg,#dae3d730 1px,transparent 1px);background-size:28px 28px;z-index:0}
.bus-content .map-toolbar{position:absolute;top:12px;left:12px;display:flex;gap:7px;z-index:401;max-width:calc(100% - 62px);flex-wrap:wrap}
.bus-content .map-toolbar button{padding:9px 12px;background:var(--paper);box-shadow:0 2px 8px #243d3520;border:1px solid var(--border);border-radius:3px;font-size:11px}
.bus-content .map-meta{padding:10px 14px;background:var(--paper);border-top:1px solid var(--border);font-size:10px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.bus-content .map-note{font-weight:bold}
.bus-content .map-privacy{padding:12px 16px;font-size:11px;background:#f0f3eb;margin:0;color:var(--muted)}
.bus-content .map-error{background:#fff2dc;margin:0;padding:10px 14px;font-size:12px}
.bus-content .legend{display:flex;gap:15px;flex-wrap:wrap;font-size:10px;color:var(--muted);padding:12px 0}
.bus-content .legend span{display:flex;align-items:center;gap:6px}
.bus-content .dot{width:8px;height:8px;border-radius:50%;background:var(--route-color)}
.bus-content .dot.hollow{background:var(--paper);border:1px solid var(--ink)}
.bus-content .dash{width:18px;border-top:2px dashed var(--route-color)}
.bus-content .detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(245px,.85fr);gap:18px;margin-top:9px;align-items:start}
.bus-content .panel{background:var(--paper);border:1px solid var(--border);border-radius:3px;padding:21px;min-width:0}
.bus-content .panel h2{font:normal 25px var(--font-sans);margin:0 0 8px}
.bus-content .panel-subtitle{font-size:11px;color:var(--muted);margin:0 0 15px}
.bus-content .stop-list{list-style:none;margin:0;padding:0;max-height:390px;overflow:auto;scrollbar-width:thin}
.bus-content .stop-list li{position:relative}
.bus-content .stop-list li:not(:last-child):before{content:'';position:absolute;top:29px;bottom:-10px;left:15px;border-left:2px solid var(--route-color);opacity:.3}
.bus-content .stop-button{position:relative;width:100%;display:flex;gap:12px;text-align:left;padding:9px 5px;background:transparent;border-radius:3px;align-items:center;min-height:55px}
.bus-content .stop-button:hover,.bus-content .stop-button[aria-pressed=true]{background:var(--paper-2)}
.bus-content .stop-number{border:1px solid var(--route-color);background:var(--paper);color:var(--route-color);font-size:9px;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;flex-shrink:0}
.bus-content .stop-label strong{font-size:12px;font-weight:500;display:block}
.bus-content .stop-label small{display:block;font-size:9px;color:var(--muted)}
.bus-content .stop-detail{border-top:1px solid var(--border);margin-top:15px;padding-top:12px;font-size:12px}
.bus-content .stop-detail h3{font-size:14px;margin:0 0 5px}
.bus-content .stop-detail p{margin:0 0 9px}
.bus-content .stop-detail small{display:block;margin-bottom:8px;color:var(--muted)}
.bus-content .stop-detail a{font-size:11px}
.bus-content .time-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:19px 0}
.bus-content .time-grid div:last-child{grid-column:1/-1;border-top:1px solid var(--border);padding-top:12px}
.bus-content .time-grid dt{font-size:10px;color:var(--muted)}
.bus-content .time-grid dd{font:normal 30px/1.3 var(--font-sans);margin:3px 0 0}
.bus-content .time-grid small{font-size:10px}
.bus-content #schedule-kind{font-size:11px;font-weight:bold;color:var(--route-color)}
.bus-content .note{font-size:11px;color:var(--muted)}
.bus-content .source-line{font-size:10px;color:var(--muted);line-height:1.8;overflow-wrap:anywhere;margin:16px 0 7px}
.bus-content .source-line span{display:block}
.bus-content .source-line a{font-weight:600}
.bus-content .primary{background:var(--green);color:white;padding:12px 14px;display:inline-block;border-radius:3px;text-decoration:none;font-size:11px}
.bus-content .schedule-link{display:block;text-align:center;margin-top:16px}
.bus-content .stale{background:#fff2dc;padding:10px;font-size:11px}
.bus-content .bottom-band{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin:45px 0 35px;border-top:1px solid var(--border);padding-top:30px}
.bus-content .bottom-band h2{font:normal 27px var(--font-sans);margin:0 0 12px}
.bus-content .bottom-band p{font-size:12px;color:var(--muted);max-width:510px}
.bus-content .bottom-band button{margin-top:8px}
.bus-content .source-list{display:flex;flex-wrap:wrap;gap:8px 18px;padding:0;list-style:none;font-size:10px}
.bus-content .sources summary{font-size:12px;cursor:pointer}
.bus-content .sources{margin-top:20px}
.bus-content footer{border-top:1px solid var(--border);padding:20px 0 28px;font-size:10px;display:flex;justify-content:space-between;color:var(--muted)}
.bus-content .bus-marker span{background:var(--route-color);border:2px solid white;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:white;font-size:10px;box-shadow:0 1px 5px #0003}
.bus-content .town-marker span{background:var(--paper);border:2px solid var(--route-color);border-radius:50%;width:22px;height:22px;display:grid;place-items:center;color:var(--route-color);font-weight:bold}
.bus-content .town-label{box-shadow:none!important;border:0!important;background:var(--paper)!important;color:var(--ink)!important;font:12px var(--font-sans)!important}
.bus-content .town-label:before{display:none}
.bus-content .leaflet-popup-content{font:12px/1.5 var(--font-sans)}
.bus-content .leaflet-control-attribution{font-size:9px!important}
.bus-content .loading{padding:30px;background:var(--paper);border:1px solid var(--border);border-radius:3px}
.bus-content .loading button{margin-left:15px}
@media(min-width:1500px){.bus-content #map{height:445px}
}
@media(max-width:1100px){.bus-content{padding:0 26px}
.bus-content .workspace{grid-template-columns:285px minmax(0,1fr);gap:20px}
.bus-content .detail-grid{grid-template-columns:1fr}
.bus-content .bus-hero{grid-template-columns:1fr 240px}
.bus-content .hero-aside{font-size:11px}
.bus-content h1{letter-spacing:-1px}
.bus-content .sidebar{padding:15px}
}
@media(max-width:760px){.bus-content{padding:0 18px}
.bus-content header{min-height:82px}
.bus-content .brand{font-size:24px}
.bus-content .brand small{font-size:7px}
.bus-content .header-right{gap:7px}
.bus-content .guide-link{display:none}
.bus-content .languages a{padding:7px;font-size:11px}
.bus-content .bus-hero{display:block;padding:29px 0 24px}
.bus-content .hero-aside{display:none}
.bus-content h1{font-size:40px;max-width:340px;letter-spacing:-1px}
.bus-content .intro{font-size:13px;line-height:1.65}
.bus-content .workspace{display:block}
.bus-content .sidebar{padding:15px;margin-bottom:23px}
.bus-content .section-label{margin-bottom:10px}
.bus-content .filters{margin:10px 0}
.bus-content .filters button{min-height:36px}
.bus-content .route-list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 8px}
.bus-content .route-card{min-width:230px;max-width:230px;scroll-snap-align:start;padding:12px 9px}
.bus-content #result-count{margin:8px 0;font-size:9px}
.bus-content .route-header h2{font-size:24px}
.bus-content #map{height:335px}
.bus-content .map-toolbar button{font-size:10px;padding:9px}
.bus-content .map-meta{font-size:10px}
.bus-content .detail-grid{grid-template-columns:1fr;margin-top:12px}
.bus-content .time-panel{grid-row:1}
.bus-content .time-grid{grid-template-columns:1fr 1fr 1fr;gap:10px}
.bus-content .time-grid div:last-child{grid-column:auto;border:0;padding-top:0}
.bus-content .time-grid dd{font-size:24px}
.bus-content .legend{gap:8px 15px;font-size:9px}
.bus-content .panel{padding:19px}
.bus-content .bottom-band{grid-template-columns:1fr;gap:25px;margin-top:32px}
.bus-content .bottom-band h2{font-size:26px}
.bus-content footer{gap:16px;flex-wrap:wrap}
.bus-content .source-list{display:block}
.bus-content .source-list li{margin:7px 0}
.bus-content .stop-list{max-height:345px}
.bus-content .map-privacy{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.bus-content *{scroll-behavior:auto!important;transition:none!important}
}
.bus-content #travel-date{width:100%;border:1px solid var(--border);background:var(--paper);color:var(--ink);border-radius:3px;padding:9px;margin:0 0 13px;min-height:40px}
.bus-content .departures{display:flex;flex-wrap:wrap;gap:7px}
.bus-content .departures time{padding:7px 10px;background:var(--paper-2);border-radius:4px;font-weight:bold}
.bus-content .map-note{display:flex;flex-direction:column;gap:4px}
.bus-content .map-note a{text-decoration:underline}
.bus-content .map-meta{align-items:flex-start}


.bus-content{max-width:var(--maxw);padding:0 var(--gutter);margin:0 auto 48px;background:var(--paper)}
.bus-content h1{font-weight:500;font-size:clamp(30px,3.3vw,46px);letter-spacing:-.03em;line-height:1.15}
.bus-content .bus-hero{padding:55px 0 36px;min-height:0;background:none;position:static}
.bus-content .bus-eyebrow{font-weight:400;letter-spacing:.16em;color:var(--ink-soft)}
.bus-content .hero-aside strong{font-weight:400;font-size:17px}
.bus-content .intro{font-size:16px;line-height:1.7}
.bus-content .sidebar,.bus-content .panel,.bus-content .map-wrap{border-radius:3px}
.bus-content .route-header h2,.bus-content .panel h2,.bus-content .bottom-band h2{font-weight:500}
.bus-content .town-label,.bus-content .leaflet-popup-content{color:#10151a!important}
.bus-content .bus-marker span{color:#fff}.bus-content .town-marker span{background:#fff}
@media(max-width:760px){.bus-content .bus-hero{padding:32px 0 25px}.bus-content h1{max-width:none;font-size:34px}}
.bus-content .filters button[aria-pressed=true],.bus-content .primary{color:var(--paper)}
.bus-content #map .leaflet-bar a{color:#10151a;background:#fff}
.bus-content .town-label,.bus-content .leaflet-popup-content-wrapper,.bus-content .leaflet-popup-tip{background:#fff!important;color:#10151a!important}
.bus-content .leaflet-control-attribution{color:#10151a}
