.fleet-gallery{margin:35px 0 10px}.fleet-view-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.fleet-view-controls button,.route-options button{border:1px solid #8ebbb6;border-radius:30px;padding:12px 20px;background:transparent;color:var(--ink);cursor:pointer;font:13px Arial}.fleet-view-controls button[aria-pressed=true],.route-options button[aria-pressed=true]{background:var(--ink);color:white}.fleet-view{margin:0}.fleet-view img{width:100%;display:block;border-radius:18px;height:auto}.destinations{background:linear-gradient(135deg,#e8f6f2,#f6edf6);overflow:hidden}.destinations h2{max-width:none;margin:25px 0;text-wrap:balance}.route-map{width:100%;height:auto;display:block;margin-top:38px;border-radius:24px;background:#f8fbf9}.map-land{fill:#d4e9e3;stroke:#f8fbf9;stroke-width:2;stroke-linejoin:round}.map-grid{stroke:#dfecea;stroke-width:1;fill:none}.map-route{fill:none;stroke:#9d8aae;stroke-width:3;stroke-dasharray:7 8;opacity:.4}.map-route.selected{stroke:#008c93;stroke-width:4;opacity:1;stroke-dasharray:8 8;animation:route-drift 18s linear infinite}.map-city{fill:#17474e;stroke:white;stroke-width:3}.map-label{font:16px Arial;fill:#17474e}.route-options{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.route-detail{font:clamp(18px,2.5vw,28px) Georgia;line-height:1.5}.route-intro{color:var(--muted);max-width:650px;line-height:1.8}.route-ticket{display:inline-block;text-decoration:underline;text-underline-offset:5px;font-size:14px}@keyframes route-drift{to{stroke-dashoffset:-160}}@media(max-width:640px){.route-map{min-height:210px}.map-label{font-size:19px}.fleet-view-controls button{font-size:12px;padding:11px 14px}}@media(prefers-reduced-motion:reduce){.map-route.selected{animation:none}}

.route-map{max-height:450px}.fleet-view img{max-height:680px;object-fit:contain}@media(max-width:640px){.route-map{min-height:0;max-height:none}.fleet-view img{max-height:none}}
.route-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.route-options button{text-align:left;border-radius:16px;min-height:76px}.route-options strong,.route-options small{display:block}.route-options strong{font-size:14px;line-height:1.5}.route-options small{font-size:11px;margin-top:5px;opacity:.8}@media(max-width:800px){.route-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:400px){.route-options button{padding:12px}.route-options strong{font-size:12px}}

/* Recognizable Natural Earth coastlines, refined editorial route map. */
.destinations{background:#edf4f1}.route-map{background:#fcfbf7;border:1px solid #d8e3df;border-radius:16px;max-height:520px}.map-land{fill:#d8e5df;stroke:#aabfb6;stroke-width:.65;stroke-linejoin:round}.map-grid{stroke:#dce5df;stroke-width:.6;opacity:.55}.map-route.selected{stroke:#326f78;stroke-width:2;stroke-dasharray:none;animation:none;opacity:.95}.map-city{fill:#7e9991;stroke:#fcfbf7;stroke-width:1.8;r:3.2}.map-city.is-active{fill:#23525a;r:4.8}.map-label{font:13px Georgia,serif;fill:#214a51;paint-order:stroke;stroke:#fcfbf7;stroke-width:4px;stroke-linejoin:round}.route-options button{border-color:#c4d4cd;background:#ffffff66}.route-options button[aria-pressed=true]{background:#23525a;border-color:#23525a}@media(max-width:640px){.map-label{font-size:16px}}

/* Pearl, slate blue and lavender: quiet full network, clear selected flight. */
.destinations{background:linear-gradient(125deg,#eef1f6,#f5f0f6)}
.route-map{background:#fcfaf6;border-color:#d9dce7}
.map-land{fill:#d1d9e5;stroke:#a1aec3;stroke-width:.65}
.map-grid{stroke:#e0deea;opacity:.45}
.map-route.network-route{stroke:#a8a0bc;stroke-width:1.35;stroke-dasharray:none;opacity:.48}
.map-route.selected{stroke:#364f80;stroke-width:2.5;opacity:1}
.map-city{fill:#99a5ba;stroke:#fcfaf6}
.map-city.is-active{fill:#364f80}
.map-label{fill:#304569}
.route-options button{border-color:#cbd0de;background:#ffffff66}
.route-options button[aria-pressed=true]{background:#364f80;border-color:#364f80}

.hub-heading{margin-top:26px}.hub-options{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 28px}.hub-options button{border:1px solid #bac3d6;border-radius:24px;padding:10px 16px;background:#fcfaf6;color:#364f80;cursor:pointer}.hub-options button[aria-pressed=true]{background:#364f80;color:white}.map-hub{fill:#fcfaf6;stroke:#526c99;stroke-width:1.7}.map-hub.is-selected{fill:#364f80;stroke:#fcfaf6;stroke-width:2}.hub-connection{fill:none;stroke:#657fa9;stroke-width:1.6;opacity:.75}
.route-ticket[hidden]{display:none}

.hub-network-line{fill:none;stroke:#a8a0bc;stroke-width:1.3;opacity:.45}

/* Details stay closed until the visitor chooses a flight or a hub. */
.route-hint { margin: 24px 0 0; color: var(--muted); line-height: 1.6; }
.route-selection { margin-top: 24px; padding: 24px; border: 1px solid #cbd0de; border-radius: 16px; background: #fcfaf6; }
.route-selection[hidden], .route-hint[hidden], .map-route[hidden] { display: none !important; }
.route-selection-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.route-selection h3 { margin: 0; font: 30px/1.2 Georgia, serif; }
.route-selection h3:focus { outline: none; }
.route-selection .route-detail { margin: 16px 0; }
.route-selection button { flex-shrink: 0; min-height: 44px; padding: 10px 16px; border: 1px solid #a7b1c7; border-radius: 24px; color: #304569; background: transparent; font: inherit; cursor: pointer; }
.route-selection button:focus-visible, .route-options button:focus-visible, .hub-options button:focus-visible { outline: 3px solid #9e4a7c; outline-offset: 4px; }
.home-gate { padding-top: 24px; padding-bottom: 24px; }
.home-gate .gate { margin: 0; }
@media (max-width: 640px) {
  .route-selection { padding: 20px; }
  .route-selection-head { flex-wrap: wrap; gap: 14px; }
  .route-selection h3 { font-size: 26px; }
  .hub-options button { min-height: 44px; }
}

/* Selection lives on the map; the former hub and flight lists are removed. */
.map-interactive{position:relative;width:100%;max-width:1040px;margin:38px auto 0;isolation:isolate}
.map-interactive .route-map{margin:0;width:100%;height:auto;max-height:none;aspect-ratio:2/1}
.map-targets{position:absolute;inset:0;pointer-events:none}
.map-point{position:absolute;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;transform:translate(-50%,-50%);border:0;background:transparent;cursor:pointer;pointer-events:auto;touch-action:manipulation;color:#304569}
.point-dot{width:11px;height:11px;border:2px solid #fcfaf6;border-radius:50%;background:#364f80;box-shadow:0 0 0 1px #364f80}
.map-cluster .point-dot{display:grid;place-items:center;width:28px;height:28px;background:#fcfaf6;color:#364f80;border:1px solid #364f80;font:700 13px Arial}
.map-point[aria-pressed=true] .point-dot{background:#a54f83;box-shadow:0 0 0 4px #a54f8329}
.map-point:focus-visible{outline:3px solid #a54f83;outline-offset:0;border-radius:50%}
.point-label{display:none;position:absolute;bottom:40px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#fffdf8;color:#173f46;border-radius:6px;padding:6px 9px;box-shadow:0 2px 10px #173f4620;font:12px/1.3 Arial;pointer-events:none}
.map-point:hover .point-label,.map-point:focus-visible .point-label{display:block}
.map-flight-picker{width:min(380px,calc(100vw - 36px));max-height:80vh;padding:22px;border:1px solid #cbd0de;border-radius:20px;color:#173f46;background:#fcfaf6;box-shadow:0 25px 90px #10263144}
.map-flight-picker:not([open]){display:none}
.map-flight-picker::backdrop{background:#10263166}
.map-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.map-picker-head h3{font:24px/1.3 Georgia,serif;margin:0}
#mapPickerClose{flex-shrink:0;width:44px;height:44px;border:1px solid #cbd0de;background:transparent;border-radius:50%;font:26px Arial;color:inherit;cursor:pointer}
#mapPickerOptions{display:grid;gap:8px}
#mapPickerOptions button{width:100%;min-height:58px;text-align:left;border:1px solid #cbd0de;border-radius:12px;background:white;color:inherit;padding:10px 14px;cursor:pointer;font:inherit}
#mapPickerOptions strong,#mapPickerOptions small{display:block}
#mapPickerOptions small{margin-top:5px;font-size:12px;color:#55747a}
#mapPickerOptions button:focus-visible,#mapPickerClose:focus-visible{outline:3px solid #a54f83;outline-offset:2px}
.fleet-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.fleet-gallery .fleet-view:first-child{grid-column:1/-1}
.fleet-view figcaption{font:20px/1.4 Georgia,serif;margin-top:14px}
@media(max-width:700px){.fleet-gallery{grid-template-columns:1fr}.fleet-gallery .fleet-view:first-child{grid-column:auto}}
/* Flight details are overlays only: no information block below either map. */
dialog.route-selection{position:fixed;inset:0;width:min(520px,calc(100vw - 32px));max-height:80vh;overflow:auto;margin:auto;box-shadow:0 25px 90px #10263144}
dialog.route-selection:not([open]){display:none!important}
dialog.route-selection::backdrop{background:#10263166}

/* In-place geographic zoom: city names live on the image, never in a list. */
.map-zoom-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:1040px;margin:26px auto -22px;min-height:44px}
.map-zoom-toolbar[hidden]{display:none!important}
.map-zoom-toolbar button{min-height:44px;padding:10px 15px;border:1px solid #b8c6d7;border-radius:24px;background:#fcfaf6;color:#304569;font:13px Arial;cursor:pointer}
.map-zoom-toolbar strong{font:15px Georgia,serif;margin-left:auto;color:#304569}
.map-point.map-city-target{height:44px;min-height:44px;padding:4px 7px;border:1px solid #9dacbf;border-radius:10px;background:#fcfaf6f2;box-shadow:0 3px 10px #173f4614;color:#304569;font:600 12px/1.2 Arial;white-space:normal;overflow-wrap:anywhere;box-sizing:border-box}
.map-point.map-city-target[aria-pressed=true]{background:#304e71;color:white}
.map-callout-lines path{fill:none;stroke:#7488a4;stroke-width:.8;vector-effect:non-scaling-stroke;pointer-events:none}
.map-land path,.map-grid path,.map-route{vector-effect:non-scaling-stroke}
.map-route.map-connection-highlight{stroke:#13878e;stroke-width:2.6}
.route-connections{font-size:14px;line-height:1.7;color:#4c6f76}
.route-chain{font-size:15px;line-height:1.6;color:#157c83}
@media(max-width:640px){.map-zoom-toolbar{gap:8px}.map-zoom-toolbar strong{width:100%;margin-left:0}.map-point.map-city-target{font-size:11px}}
/* Keep city names comfortably readable on phones without changing touch geometry. */
.map-point.map-city-target{font-size:14px;line-height:1.2}
/* Compact route-map labels retain transparent, generous touch targets. */
.map-interactive{touch-action:manipulation}
.map-point.map-city-target{justify-content:flex-start;text-align:left;padding:2px 5px 2px 18px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#244d65;font-size:13px;line-height:1.15;text-shadow:0 0 4px #fcfaf6,0 0 4px #fcfaf6,1px 1px 2px #fcfaf6}
.map-point.map-city-target.is-left-label{justify-content:flex-end;text-align:right;padding:2px 18px 2px 5px}
.map-point.map-city-target[aria-pressed=true]{background:transparent;color:#006d77;text-decoration:underline;text-underline-offset:3px}
@media(prefers-reduced-motion:reduce){.map-interactive *{transition:none!important;animation:none!important}}

.map-point.map-city-target,.map-point.map-city-target.is-left-label{align-items:flex-start;justify-content:center;text-align:center;padding:2px 4px 18px}
/* Wonder Air atlas: uniform geographic detail with an undistorted world overview. */
.destinations{background:linear-gradient(125deg,#e6f3f5,#efeafa)}
.map-interactive .route-map{background:#102b50;border:1px solid #315f83;border-radius:18px;overflow:hidden}
.map-land{fill:#2b6685;stroke:#77cad0;stroke-width:.65}
.map-grid{stroke:#386486;opacity:.38}
.map-route.network-route{stroke:#c1a8f1;stroke-width:1.3;stroke-dasharray:none}
.map-route.map-connection-highlight{stroke:#4ee2d0;stroke-width:2.5}
.map-city{fill:#f5fcff;stroke:#14365a;stroke-width:1.5;vector-effect:non-scaling-stroke}
.map-city.is-active{fill:#4ee2d0}
.map-point{color:#f8fcff}
.map-cluster .point-dot{background:#173b62;color:#f8fcff;border:1.5px solid #60dfd1;box-shadow:0 2px 9px #061c3a80}
.map-point.map-city-target,.map-point.map-city-target[aria-pressed=true]{color:#fff;text-shadow:0 1px 3px #0b2446,0 0 5px #0b2446,0 0 5px #0b2446;font-weight:600}
.map-point.map-city-target[aria-pressed=true]{color:#74f6e3}
.map-point .point-label{background:#14365a;color:#fff;border:1px solid #5dc6c4;box-shadow:0 2px 10px #071a39aa}
.map-point:focus-visible{outline:3px solid #dbb7ff}
.map-callout-lines path{stroke:#a7e7e3;stroke-width:1}
.map-zoom-toolbar{display:grid;grid-template-columns:minmax(0,1fr) clamp(120px,24vw,210px);gap:18px;align-items:center;margin:26px auto 12px;padding:14px 16px;border:1px solid #bfd4df;border-radius:16px;background:#f6fbff}
.map-context-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.map-zoom-toolbar strong{order:-1;flex-basis:100%;margin:0;color:#153a63;font:600 16px/1.4 Arial}
.map-zoom-toolbar button{border-color:#3c7298;color:#163e66;background:#fff;min-height:44px}
.map-zoom-toolbar button:hover{background:#e1f4f4}
.map-overview{display:block;width:100%;height:auto;aspect-ratio:2/1;background:#102b50;border:1px solid #366f8c;border-radius:8px;overflow:hidden}
.overview-land{fill:#2b6685;stroke:#77cad0;stroke-width:2}
.overview-route{fill:none;stroke:#bca6ef;stroke-width:3;opacity:.55}
.overview-city{fill:#ecfbff}
.overview-window{fill:#4ee2d026;stroke:#62f0d7;stroke-width:6}
@media(max-width:640px){.map-zoom-toolbar{gap:12px;padding:12px;grid-template-columns:minmax(0,1fr) 108px}.map-zoom-toolbar button{font-size:12px;padding:9px 11px}.map-zoom-toolbar strong{font-size:14px}.map-point.map-city-target{font-size:12px}}
.map-callout-lines .map-region-leader{stroke:#86e2d6;stroke-dasharray:2 3;stroke-width:1;opacity:.85}

/* Drag the zoomed atlas without changing its geographic scale. Page scrolling remains native outside it. */
.map-interactive{cursor:zoom-in;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;border-radius:18px}
.map-interactive.is-pannable{cursor:grab;touch-action:pinch-zoom}
.map-interactive.is-dragging,.map-interactive.is-dragging *{cursor:grabbing!important}
.map-interactive:focus-visible{outline:3px solid #8b58a8;outline-offset:5px}
.map-pan-instructions{max-width:1040px;margin:18px auto 12px;color:#304569;font:14px/1.6 Arial,sans-serif}
.map-pan-instructions+.map-interactive{margin-top:12px}
.map-pan-controls{display:flex;gap:6px;flex-wrap:wrap;flex-basis:100%;margin-top:2px}
.map-pan-controls button{min-width:44px;min-height:44px;padding:8px;font-size:22px;line-height:1}
.map-zoom-toolbar button:focus-visible{outline:3px solid #8b58a8;outline-offset:3px}
.map-pan-controls button:disabled{opacity:.38;cursor:default;background:#edf1f5}

/* Gesture ownership is scoped to the map; browser zoom elsewhere stays native. */
.map-interactive,.map-interactive.is-pannable,.map-interactive .map-point{touch-action:none}
.map-pan-instructions{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.map-pan-instructions+.map-interactive{margin-top:38px}
