:root{color:#17352a;background:#f5f4eb;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}main{width:min(52rem,calc(100% - 2.5rem));margin:0 auto;padding:4.5rem 0 3rem}header{max-width:42rem;margin-bottom:2.5rem}.eyebrow{margin:0 0 .55rem;color:#557365;font-size:.75rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:.7rem;font-size:clamp(3rem,9vw,5.5rem);letter-spacing:-.065em;line-height:.9}h2{margin:0;font-size:1.2rem}.intro{color:#4c6358;font-size:1.1rem;line-height:1.5}.planner,.journey{border:1px solid #d8ddd0;border-radius:1.1rem;background:#fffef9;box-shadow:0 .5rem 1.5rem #18372a0c}.planner{padding:1.4rem}.planner-heading,.form-footer{display:flex;gap:1rem;justify-content:space-between;align-items:baseline}.planner-heading p,.feed-note{margin:0;color:#698074;font-size:.83rem}.fields{display:grid;grid-template-columns:1fr 1fr minmax(9rem,.7fr);gap:1rem;margin:1.4rem 0}.field{position:relative;display:grid;gap:.45rem;font-size:.9rem;font-weight:750}input{width:100%;border:1px solid #b9c6ba;border-radius:.6rem;background:#fff;color:inherit;font:inherit;font-weight:450;padding:.8rem .85rem}input:focus{outline:3px solid #7cb28d66;border-color:#41755a}button{border:0;border-radius:.6rem;cursor:pointer;font:inherit}#search{background:#1e6744;color:#fff;font-weight:750;padding:.8rem 1rem}#search:hover{background:#155438}#search:disabled{cursor:wait;opacity:.5}.suggestions{position:absolute;z-index:1;top:100%;left:0;right:0;overflow:hidden;border:1px solid #cbd5c8;border-radius:.6rem;background:#fffef9;box-shadow:0 .6rem 1.2rem #17352a1a}.suggestions button{display:block;width:100%;border-radius:0;background:transparent;padding:.65rem .8rem;text-align:left}.suggestions button:hover{background:#e7f0e7}.results{margin-top:1.3rem}.empty{margin:0;padding:1.1rem .25rem;color:#607368}.journey{overflow:hidden}.journey-summary{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:1.35rem 1.35rem .9rem;background:#e7f0e7}.journey-summary div:last-child{text-align:right}.journey-summary strong{display:block;font-size:1.55rem;letter-spacing:-.04em}.journey-summary span{color:#476255;font-size:.83rem}.journey-summary .duration{color:#547265;font-size:.82rem;line-height:1.25;text-align:center}.journey-summary .duration strong{color:#17352a;font-size:1.08rem;letter-spacing:-.02em}.journey-path{display:flex;align-items:center;gap:0;padding:2rem 1.5rem .5rem}.path-node{flex:0 0 .72rem;width:.72rem;height:.72rem;border:3px solid #fffef9;border-radius:50%;background:#17352a;box-shadow:0 0 0 2px #17352a}.path-route{display:flex;align-items:center;flex:1;min-width:0}.path-segment{position:relative;display:grid;flex:1 1 8rem;height:.28rem;min-width:2rem;place-items:center;background:var(--segment-color)}.path-train{position:absolute;bottom:.48rem;color:#111;font-size:1.15rem}.path-dent{flex:0 0 .15rem;height:.5rem;border-top:.28rem solid #fffef9;border-bottom:.28rem solid #fffef9;background:#a7b4a9}.path-labels{display:flex;justify-content:space-between;gap:1rem;padding:.3rem 1.35rem 1rem;color:#476255;font-size:.78rem}.path-labels span:last-child{text-align:right}.journey-details{border-top:1px solid #e0e5dc}.journey-details summary{display:flex;justify-content:space-between;padding:.9rem 1.35rem;color:#315c45;cursor:pointer;font-weight:750;list-style:none}.journey-details summary::-webkit-details-marker{display:none}.summary-arrow{font-size:1.15rem;transition:transform .15s ease}.journey-details[open] .summary-arrow{transform:rotate(180deg)}.detail-legs{position:relative;display:grid;gap:.2rem;margin:0;padding:.8rem 1.35rem 1rem 6rem;list-style:none}.detail-legs:before{position:absolute;top:2.1rem;bottom:2.3rem;left:calc(4.5rem - 1px);width:2px;background:#d5ded6;content:""}.detail-legs li{position:relative}.detail-marker{position:absolute;top:50%;left:-3.65rem;display:grid;width:1.45rem;height:1.45rem;place-items:center;border:0;background:#fffef9;color:#111;transform:translateY(-50%)}.train-icon{font-size:1.2rem;line-height:1}.detail-service{display:flex;align-items:center;min-height:3.3rem;padding:.15rem 0}.detail-title{display:flex;align-items:flex-end;gap:.45rem;min-width:0}.detail-title strong{display:flex;align-items:flex-end;gap:.2rem;color:#17352a}.detail-title small{align-self:flex-end;margin-left:auto;color:#829087;font-size:.76rem;white-space:nowrap}.line-badge{display:inline-block;border-radius:.3rem;background:#e0ebe0;padding:.18rem .35rem;color:#315c45;font-size:.72rem;font-weight:800}.operator-badge{display:inline-flex;align-items:center;gap:.35rem;flex:0 0 auto;min-height:1.4rem;margin-right:.1rem}.operator-logo{display:block;height:1.4rem;width:auto;object-fit:contain}.operator-fallback{display:inline-flex;align-items:center;gap:.35rem;color:#5d7165;font-size:.78rem;font-weight:650}.operator-fallback[hidden]{display:none}.operator-initials{display:grid;width:1.8rem;height:1.8rem;flex:0 0 1.8rem;place-items:center;border-radius:.3rem;background:var(--segment-color, #315c45);color:#fff;font-size:.65rem;font-weight:850;letter-spacing:-.03em}.detail-station{display:flex;align-items:flex-end;min-height:2.6rem;gap:.55rem}.station-times{position:absolute;left:-5.45rem;display:grid;width:3rem;color:#315c45;font-variant-numeric:tabular-nums;font-weight:800;text-align:right}.detail-station-connection .station-times{gap:.1rem}.station-dot{position:absolute;left:-2rem;box-sizing:border-box;width:1rem;height:1rem;border:3px solid #315c45;border-radius:50%;background:#fffef9}.station-name{color:#243e32;font-size:.9rem}.station-wait{align-self:flex-end;color:#829087;font-size:.75rem}.bike-note{margin:0;border-top:1px solid #e0e5dc;padding:1rem 1.25rem;color:#315c45;font-size:.9rem;line-height:1.45}footer{max-width:43rem;margin-top:2rem;color:#698074;font-size:.83rem;line-height:1.5}@media(max-width:600px){main{width:min(100% - 1.5rem,52rem);padding-top:2.2rem}.fields{grid-template-columns:1fr}.planner-heading,.form-footer{display:grid}#search{width:100%}.journey-summary{gap:.5rem;padding:1rem}.journey-summary strong{font-size:1.25rem}.journey-summary .duration strong{font-size:.95rem}.path-labels{font-size:.72rem}}
