/* Campus route map (campus.js renderRoute), shared by Linq and the Coverage Hub. */
.route-map{display:block;width:100%;height:auto;border-radius:10px;background:#fff}
.route-shadow{fill:none;stroke:#fff;stroke-width:11;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.route-line{fill:none;stroke:#1F6FD6;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;animation:route-draw 1.6s ease-out forwards}
@keyframes route-draw{to{stroke-dashoffset:0}}
.route-start circle{fill:#fff;stroke:#1F6FD6;stroke-width:4}
.route-start text,.route-pin text{font:700 14px "Nunito Sans",system-ui,sans-serif;fill:#15181f;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.route-pin .pin{fill:#E8457A;stroke:#fff;stroke-width:2;animation:pin-drop .7s cubic-bezier(.2,1.4,.4,1) both}
.route-pin .dot{fill:#fff}
.route-pin .ring{fill:none;stroke:#E8457A;stroke-width:3;transform-origin:0 0;animation:pin-ring 1.8s ease-out infinite}
@keyframes pin-drop{from{transform:translateY(-40px);opacity:0}to{transform:none;opacity:1}}
@keyframes pin-ring{0%{transform:scale(.3);opacity:1}100%{transform:scale(1.6);opacity:0}}
.route-cap{font-size:12px;margin-top:6px;opacity:.8}
.map-none{font-size:13px;opacity:.7}
@media (prefers-reduced-motion:reduce){.route-line,.route-pin .pin,.route-pin .ring{animation:none;stroke-dashoffset:0!important}}
