/* GarudGo route maps — shared by route, city and airport pages (no page CSS dependencies) */
.grd-map-block{padding-top:32px;--map-navy:#07143d;--map-blue:#172f70;--map-orange:#f28a1a;--map-red:#ef3f24;--map-line:#e3e8f1}
.grd-map-head{margin-bottom:18px}
.grd-map-head>span{display:inline-flex;align-items:center;gap:7px;color:#b54a12;text-transform:uppercase;letter-spacing:1.4px;font-size:12px;font-weight:700}
.grd-map-head h2{font-size:28px;color:#132351;margin:4px 0 6px}
.grd-map-head p{margin:0;font-size:14px;line-height:1.6;color:#66718a}
.grd-map-shell{background:#fff;border:1px solid var(--map-line);border-radius:16px;overflow:hidden;box-shadow:0 10px 28px rgba(12,31,76,.08);line-height:1.5}

/* Map canvas */
.grd-map-canvas{position:relative;min-height:360px}
.grd-map-canvas [data-map-canvas]{position:absolute;inset:0;background:#e9eef5}
.grd-map-canvas .grd-tiles{filter:saturate(.55) brightness(1.04) hue-rotate(-8deg)}
.grd-map-canvas .leaflet-control-attribution{background:rgba(255,255,255,.6);font-size:9px;line-height:1.4;padding:1px 6px;border-radius:0 6px 0 0;color:#8a93a6}
.grd-map-canvas .leaflet-control-attribution a{color:#8a93a6}
.grd-map-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;background:#eef2f8;color:#536079;font-size:13px;font-weight:600;z-index:500}
.grd-map-loader span{width:18px;height:18px;border:3px solid var(--map-orange);border-right-color:transparent;border-radius:50%;animation:grdSpin .8s linear infinite}
.grd-map-block.map-failed .grd-map-canvas:after{content:"Map preview is unavailable right now. Route details are shown below.";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;background:#eef2f8;color:#66718a;font-size:13px;z-index:600}

/* Pins */
.grd-pin{background:none;border:0}
.grd-pin i{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;font-style:normal;font-weight:800;font-size:14px;color:#fff;border:3px solid #fff;box-shadow:0 4px 12px rgba(7,20,61,.35)}
.grd-pin.is-start i,.grd-pin.is-hub i{background:var(--map-navy,#07143d)}
.grd-pin.is-end i,.grd-pin.is-airport i{background:linear-gradient(135deg,#f28a1a,#ef3f24)}
.grd-pin.is-stop i{width:26px;height:26px;margin:4px;font-size:12px;border-width:2px;cursor:pointer}
.grd-pin em{position:absolute;left:50%;bottom:42px;transform:translateX(-50%);white-space:nowrap;font-style:normal;font-size:12px;font-weight:700;color:#07143d;background:#fff;padding:5px 10px;border-radius:20px;box-shadow:0 4px 14px rgba(7,20,61,.18)}
.grd-pin.is-airport em{bottom:auto;top:40px;font-size:11px;font-weight:600}
.grd-route-flow{animation:grdFlow 1.2s linear infinite}

/* Panel */
.grd-map-panel{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;padding:22px;background:#0f2257 linear-gradient(160deg,#07143d,#172f70);color:#fff}
.grd-map-panel>.grd-map-note,.grd-map-panel>.grd-map-btn,.grd-map-panel>.grd-map-routes,.grd-map-panel>.grd-map-airport{grid-column:1/-1}
.grd-map-stops{list-style:none;margin:0;padding:0;position:relative}
.grd-map-stops:before{content:"";position:absolute;left:16px;top:22px;bottom:22px;border-left:2px dashed rgba(255,173,67,.55)}
.grd-map-stops li{position:relative;display:flex;gap:14px;align-items:center;padding:8px 0;margin:0}
.grd-map-stops b{flex:0 0 34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;z-index:1}
.grd-map-stops .is-start b{background:#fff;color:#07143d}
.grd-map-stops .is-end b{background:linear-gradient(135deg,#f28a1a,#ef3f24);color:#fff}
.grd-map-stops .is-via b{background:#1d3a80;color:#ffad43;font-size:12px;border:1px solid rgba(255,255,255,.2)}
.grd-map-stops small,.grd-map-stats small,.grd-map-airport small{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#aebbd5}
.grd-map-stops strong{display:block;font-size:15px;color:#fff;line-height:1.35}
.grd-map-stops .is-via strong{font-size:12px;font-weight:500;color:#d5ddef}
.grd-map-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:center}
.grd-map-stats div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px}
.grd-map-stats i{color:#ff9c37;font-size:16px}
.grd-map-stats small{margin-top:6px}
.grd-map-stats strong{display:block;font-size:18px;color:#fff}
.grd-map-note{margin:0;font-size:11px;color:#9fb0d0;line-height:1.5}
.grd-map-btn{display:block;width:100%;background:linear-gradient(135deg,#f28a1a,#ef3f24);border:0;color:#fff!important;font-weight:700;border-radius:9px;padding:12px 19px;text-align:center}
.grd-map-btn:hover{filter:brightness(1.06)}

/* Hub (city / airport) panel */
.grd-map-airport{display:flex;align-items:center;gap:14px;padding:12px 14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:12px}
.grd-map-airport>i{flex:0 0 38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f28a1a,#ef3f24);color:#fff}
.grd-map-airport strong{display:block;font-size:16px;color:#fff}
.grd-map-routes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.grd-map-routes li{margin:0;padding:0}
.grd-map-routes li:before{content:none}
.grd-map-routes a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#fff;text-decoration:none;font-size:14px;transition:background .2s}
.grd-map-routes a:hover{background:rgba(255,255,255,.16);color:#fff}
.grd-map-routes b{flex:0 0 22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;border:2px solid rgba(255,255,255,.85)}
.grd-map-routes span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.grd-map-routes small{color:#ffad43;font-size:12px;white-space:nowrap}

@keyframes grdFlow{to{stroke-dashoffset:-22}}
@keyframes grdSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.grd-route-flow,.grd-map-loader span{animation:none}}
@media(max-width:767px){.grd-map-panel,.grd-map-routes{grid-template-columns:1fr}.grd-map-head h2{font-size:23px}}
@media(max-width:575px){.grd-map-block{padding-top:28px}.grd-map-canvas{min-height:280px}.grd-map-panel{padding:18px}}
