.route-map { background-color: var(--navy) !important; }
.route-map::after { display: none !important; }
.route-map::before { inset: 24px !important; border-radius: 52% 48% 58% 42% !important; opacity: .65; }
.route-map .route-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.route-map .route-region { fill: #7ed1f0; font: 700 11px 'Space Grotesk', sans-serif; letter-spacing: 2px; text-transform: uppercase; }
.route-map .route-region-line { stroke: var(--coral); stroke-width: 2; }
.route-map .route-region, .route-map .route-region-line { display: none; }
.route-map .route-base { fill: none; stroke: rgba(126,209,240,.82); stroke-width: 2.5; stroke-linecap: round; }
.route-map .route-flow { fill: none; stroke: var(--coral); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 2 15; animation: route-flow 3.8s linear infinite; }
.route-map .route-flow.flow-2 { animation-delay: -.8s; }
.route-map .route-flow.flow-3 { animation-delay: -1.5s; }
.route-map .route-flow.flow-4 { animation-delay: -2.2s; }
.route-map .route-flow.flow-5 { animation-delay: -3s; }
.route-map .route-hub-ring { fill: rgba(8,119,186,.2); }
.route-map .route-hub { fill: var(--blue); stroke: white; stroke-width: 4; }
.route-map .route-city { fill: var(--coral); stroke: white; stroke-width: 3; }
.route-map .route-city-label { fill: rgba(255,255,255,.9); font: 600 12px 'Space Grotesk', sans-serif; }
.route-map .route-hub-label { fill: white; font: 700 14px 'Space Grotesk', sans-serif; }
@keyframes route-flow { to { stroke-dashoffset: -68; } }
@media (prefers-reduced-motion: reduce) { .route-map .route-flow { animation: none; } }
