/* Geographic itinerary: quiet cartography, one illustrated landmark in focus. */
.geographic-itinerary .route-layout{grid-template-columns:minmax(0,1.65fr) minmax(0,.8fr);gap:40px;align-items:start}
.geographic-itinerary .route-map-wrap{order:1;min-width:0;margin:0}
.geographic-itinerary .route-preview{order:2;top:110px;padding:0;border:0}
.geographic-itinerary .preview-image{aspect-ratio:1.08}
.geographic-itinerary .preview-content h3{font-size:28px}
.geo-shell{position:relative;isolation:isolate;border:1px solid #d6dccf;border-radius:22px;overflow:hidden;background:#e7ebdf;box-shadow:0 14px 45px -35px #26342760}
.geographic-itinerary .geographic-map{height:550px;margin:0;container-type:normal;background:#e5e9dd;font:inherit;z-index:0;outline-offset:-3px}
.geographic-map .leaflet-tile{max-width:none!important;filter:saturate(.48) contrast(.93)}
.geographic-map .leaflet-overlay-pane svg{max-width:none}
.geographic-map .leaflet-control-attribution{font-size:10px;background:#fffdf5e8;padding:3px 7px;color:#4f5d49}
.geographic-map .leaflet-control-attribution a{color:#3d5343;text-decoration:underline;text-underline-offset:2px}
.geographic-map .leaflet-control-scale-line{font-size:10px;border-color:#5b6d50;background:#fffdf5c9;color:#34482e}
.geo-map-head{position:absolute;inset:0 0 auto;z-index:800;display:flex;justify-content:space-between;gap:10px;padding:20px 22px 38px;background:linear-gradient(#f8f7efed,#f8f7efc9 55%,transparent);pointer-events:none;font-size:14px;letter-spacing:.04em;font-weight:500}
.geo-map-head>span:last-child{font-size:9px;letter-spacing:.16em;align-self:center;color:#596650}
.geo-map-actions{position:absolute;left:16px;bottom:40px;display:flex;gap:3px;padding:4px;background:#fffdf5ef;box-shadow:0 3px 18px #283b2a12;border:1px solid #d5dbce;border-radius:28px;z-index:800}
.geo-map-actions button{font-size:12px;min-height:38px;padding:0 13px;border-radius:24px;color:#33452f;background:transparent}
.geo-map-actions button:hover,.geo-map-actions button[aria-pressed=true]{background:#e5ead9;color:#303acd}
.geo-zoom{position:absolute;right:16px;bottom:40px;z-index:800;display:flex;flex-direction:column;background:#fffdf5f2;border:1px solid #d5dbce;border-radius:24px;overflow:hidden;box-shadow:0 3px 18px #283b2a12}
.geo-zoom button{width:42px;height:42px;background:none;font-size:23px;color:#3e5034}
.geo-zoom button+button{border-top:1px solid #dce1d3}
.geo-zoom button:hover{background:#e5ead9}
.geo-compass{position:absolute;top:65px;right:22px;color:#4d5c46;font-size:13px;z-index:800;pointer-events:none;letter-spacing:3px}
.geo-load{position:absolute;top:60px;left:18px;right:56px;padding:9px 12px;z-index:800;background:#fffdf4f2;box-shadow:0 2px 12px #293a2d12;border-radius:10px;display:flex;align-items:center;gap:12px;font-size:12px}
.geo-load[hidden]{display:none}
.geo-load button{margin-left:auto;min-height:36px;white-space:nowrap;text-decoration:underline;color:#343ccc;background:transparent}
.geo-marker{border:0;background:transparent}
.geo-pin{position:relative;width:36px;height:36px;padding:0;display:grid;place-items:center;background:#fffdf4;color:#3f5037;border:1.5px solid #83927a;border-radius:50%;box-shadow:0 3px 12px #29382a23;font-size:12px;font-variant-numeric:tabular-nums;transition:background .2s,box-shadow .2s}
.geo-pin::before{content:'';position:absolute;inset:-5px;border-radius:50%}
.geo-pin:hover{background:#eef1e4;box-shadow:0 4px 16px #29382a35}
.geo-pin.is-active{width:56px;height:56px;background:#414cef;border:4px solid #f7f7ed;color:white;box-shadow:0 5px 20px #414cef30}
.geo-pin.is-active::after{content:'';position:absolute;inset:-9px;border-radius:50%;background:conic-gradient(from 48deg,#4a54ee var(--route-dwell,0deg),#4a54ee24 0);mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 0);pointer-events:none;opacity:.7}
.geo-emblem{width:36px;height:36px;display:grid;place-items:center}
.geo-emblem .landmark-icon{width:33px;height:33px}
.geo-number{position:absolute;right:-9px;top:-10px;z-index:2;display:grid;place-items:center;width:24px;height:24px;background:#fffef5;color:#414cef;border:1px solid #4a54ee;border-radius:50%;box-shadow:0 0 0 4px #f7f7ed;font-size:11px}
.geo-cluster{width:64px;height:44px;padding:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;border:1px solid #83927a;border-radius:15px;background:#fffdf5;color:#405438;box-shadow:0 4px 13px #26382825;font-variant-numeric:tabular-nums}
.geo-cluster>span{font-size:11px;font-weight:500}.geo-cluster>small{font-size:9px;color:#53664b}.geo-cluster:hover{background:#e7eddc;border-color:#414cef}
.geographic-map .geo-label{background:#fffdf4ed;border:1px solid #d7dece;border-radius:6px;box-shadow:0 2px 9px #32452c0d;padding:4px 7px;color:#394b31;font:500 11px/1.4 var(--sans, sans-serif);white-space:nowrap}
.geographic-map .geo-label::before{display:none}.geographic-map .geo-label.is-active{color:#303ccc;border-color:#c3c7eb;z-index:2}
.geo-selection{padding:18px 2px 14px;border-bottom:1px solid var(--line)}
.geo-selection>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.geo-current-name{font-size:17px;font-weight:500}.geo-coordinate{font-size:10px;letter-spacing:.04em;color:#697461;font-variant-numeric:tabular-nums}
.geo-current-note{margin:7px 0 0;font-size:12px;line-height:1.6;color:#66735c;min-height:19px}
.geographic-itinerary .route-controls{margin-top:14px;gap:16px}
.geo-jump{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:16px 0 0;font-size:12px;color:#5f6e56}
.geo-stop-select{min-width:0;max-width:76%;min-height:44px;border:1px solid #cdd5c4;border-radius:10px;color:#32462c;background:#fafaf3;padding:8px 30px 8px 12px;font:inherit;font-size:13px}
.geo-legend{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);color:#637259;font-size:12px;line-height:1.9}
.geo-legend>div{display:flex;gap:24px;flex-wrap:wrap}.geo-legend>div>span{display:flex;align-items:center;gap:8px}.geo-legend i{display:inline-block;width:23px;border-top:2px solid #737f67}.geo-legend i.is-dashed{border-top-style:dashed}
.geo-legend p{margin:8px 0 0}.geo-point-source{display:inline-block;margin-left:16px;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1050px){.geographic-itinerary .route-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,.85fr);gap:24px}.geographic-itinerary .preview-content h3{font-size:24px}.geo-map-head{padding:18px 16px 35px}.geo-map-head>span:last-child{font-size:8px}.geo-map-actions{left:10px;bottom:38px}.geo-map-actions button{padding:0 10px}.geo-zoom{right:10px}.geographic-itinerary .preview-content p{font-size:14px}}
@media(max-width:720px){
 .geographic-itinerary .route-layout{display:flex;flex-direction:column;gap:25px}.geographic-itinerary .route-map-wrap,.geographic-itinerary .route-preview{width:100%}.geographic-itinerary .route-preview{position:relative;top:auto;padding:0;border:0}
 .geographic-itinerary .geographic-map{height:445px;margin:0}.geo-shell{border-radius:17px}.geo-map-head{padding:16px 14px 32px;font-size:12px}.geo-map-head>span:last-child{font-size:8px;letter-spacing:.08em}.geo-map-actions{left:8px;padding:3px;gap:0}.geo-map-actions button{font-size:11px;padding:0 9px;min-height:38px}.geo-zoom{right:8px}.geo-zoom button{width:38px;height:42px}
 .geo-current-name{font-size:16px}.geo-coordinate{font-size:9px;letter-spacing:0}.geo-current-note{font-size:11px;min-height:35px}.geo-selection{padding:16px 0 10px}.geo-jump{gap:12px;margin-top:12px}.geo-stop-select{font-size:12px}.geographic-itinerary .route-controls{gap:10px;margin-top:12px}
 .geographic-itinerary .route-card{display:grid;grid-template-columns:105px minmax(0,1fr);gap:17px;align-items:center}.geographic-itinerary .route-card.is-pending,.geographic-itinerary .route-card.is-leaving{top:0}.geographic-itinerary .preview-image{aspect-ratio:.82;border-radius:11px}.geographic-itinerary .preview-content{padding:0}.geographic-itinerary .preview-content h3{font-size:20px;margin:0 0 6px}.geographic-itinerary .preview-content p{font-size:12px;line-height:1.7;margin:0 0 4px}.geographic-itinerary .preview-content .underlined-link{min-height:36px;font-size:12px}.geographic-itinerary .preview-tag,.geographic-itinerary .preview-arrow{display:none}.geographic-itinerary .route-preview[aria-busy=true]::after{top:2px;left:2px;right:auto;font-size:10px}
 .geo-legend{font-size:11px;margin-top:24px;padding-top:16px}.geo-legend>div{gap:12px}.geo-point-source{margin-left:0;display:block}.geo-load{font-size:11px;left:10px;right:50px}.geographic-map .leaflet-control-attribution{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.geo-pin{transition:none}}
