.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:36px;align-items:start;margin-top:45px}
.map-stage{position:relative;background:#f8fbfd;border:1px solid #cddae4;overflow:hidden;align-self:start;box-shadow:0 14px 38px #17324c06;transform:none;perspective:none}
.map-topline{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 22px;background:#fff;border-bottom:1px solid #dce5ec;color:var(--navy);font-size:11px;font-weight:600;letter-spacing:.08em}
.map-coverage{display:flex;align-items:center;gap:9px;white-space:nowrap;color:#526c80;font-size:10px;letter-spacing:.06em}
.map-coverage i{width:6px;height:6px;border-radius:50%;background:var(--cyan)}
#europe-map{display:block;width:100%;height:auto;aspect-ratio:1000/840;max-height:none;transform:none}
#map-graticule path{fill:none;stroke:#e8f0f5;stroke-width:1;vector-effect:non-scaling-stroke}
#countries path{fill:#e5ebef;stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke;fill-rule:evenodd;transition:fill .18s,stroke .18s}
#countries path.served{fill:#c6dce9;cursor:pointer;outline:none}
#countries path.served:hover,#countries path.is-hovered{fill:#88bbd9;stroke:#fff}
#countries path.is-from{fill:var(--navy)}
#countries path.is-to{fill:var(--cyan)}
#countries path.served:focus-visible{stroke:var(--navy);stroke-width:3;filter:drop-shadow(0 0 2px white)}
#country-labels text{fill:#3c607a;font-family:Barlow,sans-serif;font-size:18px;font-weight:600;letter-spacing:.05em;pointer-events:none;opacity:.78}
#country-labels text.is-from{fill:#fff;opacity:.9}
#country-labels text.is-to{fill:#fff;opacity:.95}
#water-labels text{fill:#829fb2;font-family:Barlow,sans-serif;font-size:14px;font-weight:400;letter-spacing:.15em;pointer-events:none}
.map-north{fill:#527186;stroke:#527186;stroke-width:1.5;pointer-events:none}
.map-north text{stroke:none;font:600 17px Barlow,sans-serif;letter-spacing:.08em}
.route-overlay{pointer-events:none}
#map-route-shadow{fill:none;stroke:#fff;stroke-width:9;stroke-linecap:round;opacity:.96}
#map-route{fill:none;stroke:var(--navy);stroke-width:2.5;stroke-dasharray:5 7;stroke-linecap:round;opacity:.6}
#map-progress{fill:none;stroke:var(--navy);stroke-width:3.5;stroke-linecap:round}
#route-start,#route-end{fill:#fff;stroke:var(--navy);stroke-width:3}
#route-end{fill:var(--cyan);stroke:#fff;stroke-width:3}
.map-city-label{font-family:Barlow,sans-serif;font-weight:600;font-size:21px;fill:#153e61;stroke:#fff;stroke-width:7px;paint-order:stroke;stroke-linejoin:round;letter-spacing:0}
.map-footer{display:block;padding:18px 22px;background:#fff;border-top:1px solid #dce5ec;font-family:Barlow,sans-serif;letter-spacing:0}
.map-legend{display:flex;align-items:center;gap:20px;font-size:12px;line-height:1.4}
.map-legend>span{display:flex;align-items:center;gap:7px;color:#527086}
.legend-dot{width:8px;height:8px;border-radius:50%;display:block;flex:none}
.legend-from{background:var(--navy)}.legend-to{background:var(--cyan)}
#map-route-label{font-family:Barlow,sans-serif;font-weight:600;font-size:13px;margin-left:auto;color:var(--navy);white-space:normal;text-align:right}
.map-footer>p{margin-top:11px;font-size:11px;line-height:1.55;color:#61788a;max-width:510px}
.map-controls{min-width:0;padding-top:3px}
.map-controls-kicker{font-size:10px;font-weight:600;letter-spacing:.1em;color:#49677e;margin-bottom:17px}
.map-route-picker{display:grid;gap:9px}
.route-endpoint{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;border:1px solid #d1dee8;background:#fff;padding:16px 14px;cursor:pointer;color:var(--ink);min-width:0;transition:border-color .18s,background .18s,box-shadow .18s}
.endpoint-marker{display:flex;align-items:center;justify-content:center;width:27px;height:27px;border:1px solid #96b0c5;border-radius:50%;font-size:11px;color:var(--navy);font-weight:600}
#choose-to .endpoint-marker{border-color:#75c8f2;background:#e9f7ff;color:#00669b}
.endpoint-content{min-width:0}.endpoint-content>span{display:block;font-size:9px;color:#425d72;letter-spacing:.08em}
.endpoint-content>strong{display:block;font-family:BarlowSC,sans-serif;font-size:29px;line-height:1.15;font-weight:700;margin-top:5px;overflow-wrap:anywhere}
.endpoint-code{font-size:10px;color:#3b6586;align-self:end;padding-bottom:3px;font-weight:600}
.route-endpoint.is-choosing{border-color:var(--navy);box-shadow:inset 3px 0 var(--navy);background:#f1f8fc}
.route-endpoint:hover{border-color:#6e9abd;background:#f6fbfe}
.route-endpoint:focus-visible,.country-button:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.map-hint{font-size:12px;color:#5c7385;line-height:1.6;min-height:39px;margin:14px 0}
.map-play{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--navy);color:#fff;min-height:46px;padding:12px 15px;border:1px solid var(--navy);width:100%;font-size:13px;font-weight:600;cursor:pointer;transition:background .18s,transform .18s}
.map-play:hover{background:#002f69}.map-play:active{transform:translateY(1px)}
.map-play:disabled{background:#dbe5ed;border-color:#dbe5ed;color:#617c90;cursor:default}
.map-play .pause-shape{display:none}.map-play[aria-pressed=true] .pause-shape{display:block}.map-play[aria-pressed=true] .play-shape{display:none}
.country-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;width:100%;margin-top:25px;align-self:start}
.country-list .list-title{grid-column:1/-1;font-size:9px;margin-bottom:9px;letter-spacing:.09em;color:#49677e}
.country-button{display:flex;align-items:center;gap:8px;min-width:0;width:100%;min-height:40px;text-align:left;padding:9px 1px;background:transparent;border:0;border-top:1px solid #d5e0e8;font-size:12px;color:#2c475c;cursor:pointer;line-height:1.3;transition:color .18s,background .18s}
.country-code{font-size:9px;font-weight:600;color:#425d72;width:19px;flex-shrink:0}.country-name{min-width:0}
.country-state{display:flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:auto;border-radius:50%;font-size:8px;flex:none}
.country-button:hover,.country-button.is-hovered{color:var(--navy);background:#e4eff6}
.country-button.is-from,.country-button.is-to{color:var(--navy);font-weight:600}
.country-button.is-from .country-state{background:var(--navy);color:#fff}.country-button.is-to .country-state{background:var(--cyan);color:#fff}
.map-attribution{display:flex;align-items:center;gap:4px;margin-top:16px;font-size:10px;color:#425d72;line-height:1.6}
.map-attribution a{text-underline-offset:3px}.map-attribution>span:last-child{margin-left:auto;padding-left:20px}
.action-icon{flex:none;color:var(--navy)}.language{display:flex;align-items:center;gap:9px}.language .language-code{margin:0;color:inherit}.language .action-icon{width:17px;height:17px}
.text-link .action-icon{transition:transform .18s}.text-link:hover .action-icon{transform:translateY(-2px)}.option-arrow .action-icon{display:block;width:24px;height:24px}.process-list .process-symbol{flex:none;margin-top:6px}
.cargo-detail{margin-top:25px;position:relative}.cargo-detail img{display:block;width:100%;height:190px;object-fit:cover;object-position:50% 60%}.cargo-detail figcaption{font-size:8px;letter-spacing:.1em;color:var(--muted);padding-top:10px}.fleet-figure>img{object-fit:cover;object-position:center 48%;background:#e9edf1}.fleet-figure .photo-corner{border-color:var(--navy);opacity:.5}.case-display{align-self:start}
@media(max-width:1190px){.map-layout{grid-template-columns:minmax(0,1fr) 276px;gap:25px}.route-endpoint{gap:10px;padding:14px 12px}.endpoint-content>strong{font-size:27px}.country-button{gap:6px;font-size:11px}.country-list{column-gap:10px}.map-topline{padding:15px 18px}.map-coverage{font-size:9px}.map-footer{padding:16px 18px}.map-legend{gap:14px;font-size:11px}.cargo-detail img{height:160px}}
@media(max-width:1000px){.map-layout{display:flex;flex-direction:column;gap:25px}.map-stage,.map-controls{width:100%}.map-route-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.map-controls-kicker{margin-bottom:13px}.map-hint{min-height:0}.map-play{width:auto;min-width:225px}.country-list{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:22px}.country-button{min-height:43px;font-size:13px}.country-code{font-size:10px}.map-attribution>span:last-child{padding-left:15px}#country-labels text{font-size:19px}}
@media(max-width:600px){.map-layout{margin-top:28px;gap:24px}.map-topline{padding:13px 14px;font-size:9px;gap:8px}.map-coverage{font-size:8px;gap:6px}.map-coverage i{width:5px;height:5px}.map-footer{padding:14px}.map-legend{gap:14px;flex-wrap:wrap;font-size:11px}#map-route-label{font-size:12px;margin-left:0;flex:1;text-align:right;min-width:130px}.map-footer>p{font-size:10px;margin-top:9px}.map-city-label{font-size:32px;stroke-width:10px}#country-labels text{font-size:24px;letter-spacing:.01em}#water-labels text{font-size:18px;letter-spacing:.08em}.map-north text{font-size:24px}.car-body{transform:scale(1.5)}.map-controls-kicker{font-size:9px}.map-route-picker{gap:9px}.route-endpoint{grid-template-columns:20px minmax(0,1fr);gap:9px;padding:13px 10px}.endpoint-marker{width:21px;height:21px;font-size:9px}.endpoint-content>span{font-size:8px;letter-spacing:.04em}.endpoint-content>strong{font-size:24px;margin-top:4px}.endpoint-code{grid-column:2;margin-top:-1px;font-size:9px;padding:0;line-height:1}.map-hint{font-size:12px;margin:13px 0}.map-play{width:100%;font-size:13px}.country-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;margin-top:24px}.country-button{font-size:13px;min-height:44px;gap:9px}.country-code{font-size:9px}.map-attribution{flex-wrap:wrap;align-items:start;margin-top:14px;font-size:9px}.map-attribution>span:last-child{padding:0;margin:5px 0 0;width:100%}.cargo-detail{margin-top:20px}.cargo-detail img{height:180px}.cargo-detail figcaption{font-size:7px}.fleet-figure>img{aspect-ratio:1.5;object-fit:contain}}
@media(prefers-reduced-motion:reduce){#countries path,.map-play,.route-endpoint,.country-button,.text-link .action-icon{transition:none}}
