/* Expedition atlas: local SVG geography, no map service or API key. */
.trip-route { width:90%; max-width:1320px; margin:65px auto 85px; scroll-margin-top:24px; }
.route-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.route-heading > p { max-width:310px; font:italic 18px/1.6 Georgia,serif; color:var(--muted); }
.route-atlas { display:grid; grid-template-columns:minmax(0,1fr) 300px; border:1px solid #c6b48d; background:#eee2c7; box-shadow:0 12px 35px #59421e12; }
.route-map-panel { min-width:0; align-self:center; }
.journey-map { width:100%; height:auto; display:block; }
.map-sea { font:italic 16px Georgia,serif; letter-spacing:4px; fill:#766b53; text-anchor:middle; }
.map-land { font:20px Georgia,serif; fill:#827454; opacity:.75; }
.map-city { font:bold 23px Georgia,serif; fill:#3f3423; paint-order:stroke; stroke:#f3e5c7; stroke-width:5px; stroke-linejoin:round; }
.map-compass { font:bold 17px Georgia,serif; fill:#625439; }
.map-cartouche { font:34px Georgia,serif; letter-spacing:8px; fill:#5f4c31; }
.map-small { font:11px Georgia,serif; letter-spacing:1.5px; fill:#625439; }
.route-guide { fill:none; stroke:#8f4c3e; stroke-width:2; stroke-dasharray:5 7; opacity:.35; }
.route-trace { fill:none; stroke:#a63829; stroke-width:3.5; stroke-linecap:round; }
.route-trace.is-muted { opacity:.13; }
.stop-halo { fill:#eedeb9; stroke:#a63829; stroke-width:1.5; }
.stop-dot { fill:#a63829; }
.map-stop.is-active .stop-halo { fill:#a63829; stroke:#a63829; stroke-width:5; }
.map-stop.is-active .stop-dot { fill:#fff5d9; }
.route-traveller { fill:#a63829; stroke:#fff3d0; stroke-width:3; pointer-events:none; }
.route-traveller[hidden] { display:none; }
.route-map-key { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px 20px; padding:16px 24px; font-size:12px; color:#65563d; }
.route-map-key i { display:inline-block; width:22px; border-top:3px solid #a63829; vertical-align:middle; margin-right:8px; }
.route-log { padding:26px 22px; background:#f5ebd6; border-left:1px solid #c6b48d; }
.route-log-title { font:12px/1.5 'Courier New',monospace; letter-spacing:.17em; color:#725b3e; padding-bottom:18px; border-bottom:1px solid #d1c1a2; }
.route-log ol { list-style:none; margin:12px 0 20px; }
.route-log li + li { border-top:1px solid #dfd0b5; }
.route-log li button { display:flex; gap:12px; width:100%; text-align:left; border:0; background:transparent; color:#493e2e; padding:14px 6px; cursor:pointer; }
.route-log li button:hover,.route-log li button[aria-current="step"] { background:#e7d7b7; }
.route-log li button[aria-current="step"] { box-shadow:inset 3px 0 #a63829; }
.route-step-number { font:15px/1.6 'Courier New',monospace; color:#a63829; }
.route-log strong { display:block; font-size:14px; font-weight:600; }
.route-log small { display:block; font-size:12px; line-height:1.6; margin-top:4px; color:#756348; }
.route-controls { display:flex; flex-wrap:wrap; gap:10px; }
.route-controls button { padding:10px 13px; min-height:44px; border:1px solid #a63829; font-size:13px; cursor:pointer; }
.route-play { background:#953728; color:#fff7e8; }
.route-reset { background:transparent; color:#7d3227; }
.route-controls button:disabled { opacity:.5; cursor:default; }
.route-log li button:disabled { cursor:default; }
.route-status { margin-top:15px; font:italic 14px/1.6 Georgia,serif; color:#725b3e; min-height:45px; }
.route-footnote { font-size:12px; line-height:1.7; color:var(--muted); margin-top:14px; }
@media(max-width:1100px) {
  .route-atlas { grid-template-columns:1fr; }
  .route-log { border-left:0; border-top:1px solid #c6b48d; }
  .route-log ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px 15px; }
  .route-log li + li { border-top:0; }
  .route-log li button { height:100%; }
  .route-status { min-height:0; }
}
@media(max-width:600px) {
  .route-heading { display:block; }
  .route-heading > p { margin-top:15px; }
  .route-log { padding:20px 16px; }
  .route-log ol { grid-template-columns:1fr; }
  .route-log li + li { border-top:1px solid #dfd0b5; }
  .route-map-key { padding:12px 15px; }
  .map-city { font-size:29px; }
  .map-sea { font-size:19px; letter-spacing:2px; }
  .trip-route { margin-top:45px; margin-bottom:55px; }
}
/* Distinguish air travel and arrival transfers from offshore boat journeys. */
.route-trace.route-flight,.route-guide.route-flight { stroke:#45687a; stroke-dasharray:9 7; }
.route-trace.route-transfer,.route-guide.route-transfer { stroke:#80683b; stroke-dasharray:3 6; }
.route-map-key i.key-flight { border-top:3px dashed #45687a; }
.route-map-key i.key-transfer { border-top:3px dotted #80683b; }
