.voyage{padding:28px 0 72px}
.voyage h1{font-size:clamp(26px,3.4vw,38px);margin:6px 0 10px}
.lead{color:var(--muted);max-width:620px;margin-bottom:20px}
.route{display:grid;grid-template-columns:80px 1fr;gap:0}
.spine{position:relative;background:var(--sea);border:1px solid var(--line)}
.spine:before{content:"";position:absolute;left:50%;top:24px;bottom:24px;width:2px;background:var(--pin);transform:translateX(-50%)}
.node{height:100%;min-height:160px;position:relative}
.node b{position:absolute;left:50%;top:28px;width:14px;height:14px;margin-left:-7px;background:var(--pin);border:2px solid #fff;border-radius:50%}
.stops article{background:#fff;border:1px solid var(--line);border-bottom:0;padding:22px 24px;scroll-margin-top:76px;display:grid;grid-template-columns:90px 1fr;gap:16px}
.stops article:last-child{border-bottom:1px solid var(--line)}
.stops .km{font-size:12px;font-weight:900;color:var(--pin);letter-spacing:.08em}
.stops h2{font-size:18px;margin-bottom:6px}
.stops p{color:var(--muted);font-size:14px}
.stops img{width:min(100%,280px);height:140px;object-fit:cover;margin-top:10px;border:1px solid var(--line)}
.stops .kpi{display:block;margin-top:8px;font-weight:900}
@media(max-width:720px){.route{grid-template-columns:1fr}.spine{display:none}.stops article{grid-template-columns:1fr}}
