/* Local itineraries: shared step numbers connect the map and the travel notes. */
.article-map-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,310px);gap:58px;padding-block:46px 18px;align-items:start}
.article-map-overview{min-width:0}
.article-map-overview h2{margin:0;font:400 clamp(32px,3.3vw,45px)/1.17 var(--serif);letter-spacing:-.035em}
.article-map-overview>p{max-width:770px;margin:15px 0 0;color:var(--muted);font-size:14px;line-height:1.85}
.article-map-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:10px;margin:24px 0}
.article-map-summary>a{display:block;min-width:0;padding:16px;border:1px solid var(--line);border-radius:5px;background:var(--paper)}
.article-map-summary>a:hover{border-color:var(--ocean);background:var(--mist);color:var(--ink)}
.article-map-summary strong{display:block;font-size:11px;line-height:1.55}
.article-map-summary span{display:block;margin-top:6px;color:var(--muted);font-size:10px;line-height:1.65}
.article-map-link{width:max-content;gap:18px}
.article-map-navigation{min-width:0;padding:4px 0 0 28px;border-left:1px solid var(--line)}
.article-map-navigation nav a{display:block;padding:8px 0;border-bottom:1px solid var(--line);font-size:10px;line-height:1.55}
.article-map-navigation nav a:hover{text-decoration:underline;text-underline-offset:3px}
.article-map-navigation .sidebar-tool{margin-top:20px}
.article-layout.article-layout-wide{grid-template-columns:minmax(0,790px);padding-top:35px}
.route-map{--route-green:#276450;--route-green-soft:#e5f2eb;--route-accent:var(--ocean);--route-accent-soft:var(--mist);--route-accent-ink:var(--white);container-type:inline-size;min-width:0;margin-block:48px 58px;padding-block:32px 0;border-top:1px solid var(--line);color:var(--ink);font:14px/1.75 var(--sans);scroll-margin-top:24px}
.route-map [hidden]{display:none!important}
.route-map .route-map-heading{display:block;margin:0 0 23px}
.route-map .route-map-heading h2{margin:0 0 12px;font:400 clamp(30px,3.3vw,42px)/1.17 var(--serif);letter-spacing:-.035em}
.route-map .route-map-heading p{max-width:800px;margin:0;color:var(--muted);font-size:14px;line-height:1.85}
.route-map .route-map-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.route-map .route-map-filters button,.route-map [data-route-reset]{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border:1px solid var(--line-strong);border-radius:4px;background:var(--paper);color:var(--ink);font:700 11px/1.5 var(--sans);text-align:center;overflow-wrap:anywhere}
.route-map .route-map-filters button:hover,.route-map [data-route-reset]:hover{background:var(--mist)}
.route-map .route-map-filters button[aria-pressed=true]{border-color:var(--route-accent);background:var(--route-accent);color:var(--route-accent-ink)}
.route-map .route-map-filters button:not([data-route-group=all])::before{content:'';flex:0 0 7px;width:7px;height:7px;margin-right:8px;border:1px solid currentColor;border-radius:50%;background:var(--route-accent)}
.route-map .route-map-filters button[aria-pressed=true]::before{background:currentColor}
.route-map .route-map-tone-1{--route-accent:var(--ocean);--route-accent-soft:var(--mist);--route-accent-ink:var(--white)}
.route-map .route-map-tone-2{--route-accent:var(--sun);--route-accent-soft:var(--sun-soft);--route-accent-ink:var(--ink)}
.route-map .route-map-tone-3{--route-accent:var(--route-green);--route-accent-soft:var(--route-green-soft);--route-accent-ink:var(--white)}
.route-map .route-map-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);align-items:start;gap:22px;margin:0}
.route-map .route-map-stage{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--mist)}
.route-map .route-map-canvas{height:520px;width:100%;isolation:isolate;background:#e3eced;font-family:var(--sans)}
.route-map .route-map-canvas:focus-visible{outline:3px solid var(--ocean);outline-offset:-3px}
.route-map .route-map-status,.route-map .route-map-fallback{margin:0;padding:15px 18px;color:var(--muted);font-size:11px;line-height:1.8}
.route-map .route-map-status:empty{display:none}
.route-map .route-map-fallback{font-size:13px;padding-block:25px}
.route-map [data-route-reset]{margin:14px 18px 0;background:var(--paper);border-color:var(--ocean);color:var(--ocean)}
.route-map .route-map-itinerary{min-width:0;margin:0;padding:0}
.route-map .route-map-itinerary-details{min-width:0;margin:0;padding:0}
.route-map .route-map-mobile-summary{display:none}
.route-map .route-map-selection{min-height:34px;margin:0 0 10px;padding:0 2px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.75}
.route-map .route-map-stops{max-height:520px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;list-style:none;margin:0;padding:3px 8px 3px 3px}
.route-map .route-map-stops>li{position:relative;min-width:0;margin:0;padding:16px 15px 18px 52px;border:1px solid transparent;border-bottom-color:var(--line);border-radius:3px;overflow-wrap:anywhere}
.route-map .route-map-stops>li:first-child{padding-top:12px}
.route-map .route-map-stops>li:last-child{border-bottom-color:transparent}
.route-map .route-map-stops>li.is-selected{border-color:var(--route-accent);background:var(--route-accent-soft)}
.route-map .route-map-number{position:absolute;left:9px;top:18px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--route-accent);color:var(--route-accent-ink);font:750 11px/1 var(--sans)}
.route-map .route-map-stops>li:first-child .route-map-number{top:14px}
.route-map .route-map-stops h3{margin:0 0 6px;font:400 23px/1.2 var(--serif);letter-spacing:-.02em;color:var(--ink)}
.route-map .route-map-area{margin:0 0 8px;color:var(--muted);font:700 10px/1.65 var(--sans)}
.route-map .route-map-note{margin:0 0 10px;color:var(--ink);font-size:12px;line-height:1.8}
.route-map .route-map-select{display:block;min-height:42px;margin:6px 0 0;padding:8px 0;border:0;background:none;color:var(--ocean);font:750 11px/1.5 var(--sans);text-align:left;text-decoration:underline;text-underline-offset:4px}
.route-map .route-map-select[aria-pressed=true]{color:var(--ink);text-decoration-thickness:2px}
.route-map .route-map-directions{display:inline-block;padding:6px 0;color:var(--ocean);font-size:10px;line-height:1.65;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.route-map .route-map-lodging{margin:26px 0 0;padding:23px 25px;background:var(--sun-soft);border-left:3px solid var(--sun);border-radius:0 5px 5px 0}
.route-map .route-map-lodging-details{margin:0;padding:0}
.route-map .route-map-lodging>h3{margin:0 0 17px;font:400 27px/1.2 var(--serif);letter-spacing:-.025em}
.route-map .route-map-bases{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:20px 28px;margin:0}
.route-map .route-map-bases article{min-width:0;margin:0}
.route-map .route-map-bases h4{margin:0 0 7px;font:750 12px/1.6 var(--sans);color:var(--ink)}
.route-map .route-map-bases p{margin:0;color:var(--ink);font-size:12px;line-height:1.85}
.route-map .route-map-legend p+p{margin-top:6px}.route-map .route-map-legend{margin:17px 0 0;color:var(--muted);font-size:11px;line-height:1.85}
.route-map .route-map-legend p:first-child::before{content:'';display:inline-block;width:23px;border-top:2px dashed var(--ocean);margin:0 8px 3px 0}
.route-map .route-map-sources{margin:16px 0 0;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.route-map .route-map-sources summary{cursor:pointer;padding:13px 0;color:var(--ocean);font-weight:700}
.route-map .route-map-sources p{margin:0 0 10px;font-size:11px;color:var(--muted)}
.route-map .route-map-sources ul{margin:0;padding:0 0 0 18px}
.route-map .route-map-sources li{margin:5px 0;padding:0}
.route-map .route-map-sources a{color:var(--ocean);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.route-map a:focus-visible,.route-map button:focus-visible,.route-map summary:focus-visible{outline:3px solid var(--ocean);outline-offset:3px}
/* Leaflet owns its SVG geometry; the site's general icon rule must not resize it. */
.route-map .leaflet-overlay-pane svg{width:auto;height:auto;max-width:none;flex-shrink:initial}
.route-map .leaflet-container img.leaflet-tile{max-width:none!important;max-height:none!important}
.route-map .leaflet-container a{color:var(--ocean)}
.route-map .leaflet-control-zoom{border:1px solid var(--line-strong);box-shadow:0 2px 8px #1734471a;overflow:hidden}
.route-map .leaflet-control-zoom a{width:40px;height:40px;line-height:40px;background:var(--paper);color:var(--ocean);text-decoration:none}
.route-map .leaflet-control-zoom a:hover{background:var(--sun-soft)}
.route-map .leaflet-control-zoom a:focus-visible{position:relative;outline-offset:-4px;z-index:1}
.route-map .leaflet-control-attribution{max-width:100%;padding:3px 6px;background:#fffffff0;color:var(--ink);font:10px/1.5 var(--sans)}
.route-map .leaflet-control-attribution a{text-decoration:underline;text-underline-offset:2px}
.route-map .route-map-pin{display:grid;place-items:center;border:3px solid var(--paper);border-radius:50%;background:var(--route-accent);color:var(--route-accent-ink);box-shadow:0 2px 7px #17344766;cursor:pointer;font:800 12px/1 var(--sans)}
.route-map .route-map-pin.is-selected{box-shadow:0 0 0 3px var(--ocean-deep),0 3px 9px #17344755}
.route-map .route-map-pin:focus-visible{outline:3px solid var(--ocean-deep);outline-offset:3px}
.route-map .route-map-pin-number{display:block;color:inherit}
.route-map .route-map-place-label{border:0;background:none;pointer-events:none;text-align:center;color:var(--ocean-deep);font:750 10px/1.6 var(--sans)}
.route-map .route-map-place-label>span{display:inline-block;padding:3px 7px;border:1px solid #c7d9df;border-radius:3px;background:#fcfbf7eb;white-space:nowrap;box-shadow:0 1px 3px #17344718}
.route-map .leaflet-popup-content-wrapper{border-radius:5px;background:var(--paper);color:var(--ink)}
.route-map .leaflet-popup-content{margin:17px 23px 17px 18px;font:12px/1.75 var(--sans)}
.route-map .route-map-popup strong{display:block;font:400 22px/1.2 var(--serif);color:var(--ink)}
.route-map .route-map-popup p{margin:9px 0;font-size:12px;line-height:1.7;color:var(--ink)}
.route-map .route-map-popup .route-map-popup-area{font-size:10px;font-weight:700;color:var(--muted)}
.route-map .route-map-popup a{display:inline-block;padding-block:6px;color:var(--ocean);font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.route-map .leaflet-container a.leaflet-popup-close-button{top:2px;right:2px;width:28px;height:28px;font:22px/28px var(--sans);color:var(--ocean);text-decoration:none}
@container(max-width:760px){.route-map .route-map-layout{grid-template-columns:minmax(0,1fr);gap:14px}.route-map .route-map-canvas{height:380px}.route-map .route-map-stops{max-height:none;overflow:visible;padding-right:3px}.route-map .route-map-selection{min-height:0}.route-map .route-map-lodging{padding:21px}}
@media(max-width:800px){.article-map-intro{grid-template-columns:minmax(0,1fr);gap:31px;padding-block:34px 7px}.article-map-navigation{padding:26px 0 0;border-left:0;border-top:1px solid var(--line)}.article-map-navigation nav{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.article-layout.article-layout-wide{padding-top:30px}.route-map .route-map-layout{grid-template-columns:minmax(0,1fr);gap:14px}.route-map .route-map-canvas{height:380px}.route-map .route-map-stops{max-height:none;overflow:visible;padding-right:3px}.route-map .route-map-selection{min-height:0}.route-map .route-map-mobile-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:50px;padding:13px 15px;border:1px solid var(--line-strong);border-radius:4px;background:var(--paper);color:var(--ocean);cursor:pointer;font-weight:750;list-style-position:inside}.route-map .route-map-mobile-summary small{color:var(--muted);font-size:9px;font-weight:650}.route-map .route-map-itinerary-details[open]>.route-map-mobile-summary{margin-bottom:15px}.route-map .route-map-lodging-details{margin-top:20px}.route-map .route-map-lodging-details[open]>.route-map-mobile-summary{margin-bottom:0;border-radius:4px 4px 0 0}.route-map .route-map-lodging{margin-top:0}.route-map .route-map-lodging>h3{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}
@media(max-width:520px){.article-map-overview h2{font-size:32px}.article-map-overview>p{font-size:13px}.article-map-summary{grid-template-columns:minmax(0,1fr)}.article-map-summary>a{padding:14px}.article-map-navigation nav{grid-template-columns:1fr}.route-map{margin-block:35px 42px;padding-top:25px}.route-map .route-map-heading h2{font-size:32px}.route-map .route-map-heading p{font-size:13px}.route-map .route-map-filters{gap:7px}.route-map .route-map-filters button{flex:1 1 auto;padding:10px 12px;font-size:10px}.route-map .route-map-stops>li{padding-right:10px;padding-left:49px}.route-map .route-map-stops h3{font-size:24px}.route-map .route-map-lodging{padding:21px 19px}.route-map .route-map-bases{grid-template-columns:minmax(0,1fr);gap:19px}.route-map .route-map-status{padding:12px 14px}.route-map [data-route-reset]{margin-inline:14px}.route-map .leaflet-popup-content{margin:15px 23px 15px 15px}.route-map .route-map-popup strong{font-size:21px}}
@media(prefers-reduced-motion:reduce){.route-map *{scroll-behavior:auto!important}.route-map .leaflet-zoom-animated{transition:none!important}}
@media print{.article-map-intro{display:block;padding-block:20px}.article-map-navigation,.article-map-link{display:none}.article-map-summary{grid-template-columns:repeat(2,1fr)}.route-map{container-type:normal;break-inside:auto;margin-block:25px}.route-map .route-map-filters,.route-map .route-map-canvas,.route-map .route-map-status,.route-map .route-map-select,.route-map [data-route-reset],.route-map .route-map-mobile-summary{display:none!important}.route-map .route-map-layout{display:block}.route-map .route-map-stage{border:0}.route-map .route-map-itinerary-details,.route-map .route-map-lodging-details{display:block}.route-map .route-map-stops{max-height:none;overflow:visible}.route-map .route-map-stops>li[hidden]{display:block!important}.route-map .route-map-stops>li{break-inside:avoid}.route-map .route-map-lodging{break-inside:avoid}.route-map .route-map-sources{display:none}.route-map .route-map-number{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
