.eu-map{--eu-indigo:#4d41c7;--eu-violet:#793de0;position:relative;margin:0;width:100%;min-width:0;color:#29245d;font-family:var(--body,"DM Sans",sans-serif)}
.eu-map__topline{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:0 4%;font-size:12px;line-height:1.4;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.eu-map__topline>span:first-child{display:flex;align-items:center;gap:16px}
.eu-map__topline>span:first-child>span{font-size:22px;font-weight:400;color:#9278e1}
.eu-map__ambition{color:#6a47bd;font-size:10px;letter-spacing:.09em;padding:6px 9px;border:1px solid #d3c5f2;border-radius:4px}
.eu-map__canvas{position:relative;margin-top:5px;background:radial-gradient(ellipse at 41% 59%,#ebe7ff 0,rgba(241,238,255,.45) 43%,transparent 72%)}
.eu-map__svg{display:block;width:100%;height:auto;overflow:hidden}
.eu-map__country{stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.eu-map__country--eu{fill:#c9c6f4}
.eu-map__country--neighbour{fill:#ecebf5}
.eu-map__route-base,.eu-map__route-progress{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.eu-map__route-base{stroke:#b6a5e8;stroke-width:1;stroke-dasharray:3 6}
.eu-map__route-progress{stroke-width:2.35;stroke-dasharray:100;stroke-dashoffset:0}
.eu-map__hub-ring{fill:#f9f7ff;stroke:#c7b4f1;stroke-width:1}
.eu-map__hub-dot{fill:#7750d3;stroke:#fff;stroke-width:1.8}
.eu-map__city{fill:#514177;font-family:var(--body,"DM Sans",sans-serif);font-size:20px;font-weight:600;paint-order:stroke;stroke:#f7f6ff;stroke-width:5;stroke-linejoin:round}
.eu-map__city--origin{font-size:24px;font-weight:750;fill:#452298;stroke:#f1edff;stroke-width:6}
.eu-map__origin-halo{fill:#7f4fe5;fill-opacity:.14;stroke:#8659dc;stroke-width:1}
.eu-map__origin-dot{fill:#6832d9;stroke:#fff;stroke-width:3}
.eu-map__origin-wave{fill:none;stroke:#9b70ed;stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.eu-map__coordinate{position:absolute;left:4%;top:11%;display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:500;letter-spacing:.13em;color:#8b85a9;font-variant-numeric:tabular-nums}
.eu-map__caption{position:relative;padding:0 4%;margin-top:-2px}
.eu-map .eu-map__caption p{font-size:15px;line-height:1.5;font-weight:650;letter-spacing:-.015em;color:#413474;margin:0}
.eu-map__legend{display:flex;align-items:center;flex-wrap:wrap;gap:11px 23px;margin-top:12px;font-size:11px;line-height:1.5;color:#73698f}
.eu-map__legend>span{display:inline-flex;align-items:center;gap:7px}
.eu-map__key{display:inline-block;flex:none}
.eu-map__key--origin{width:7px;height:7px;background:#6735d4;border-radius:50%;box-shadow:0 0 0 3px #e5ddfa}
.eu-map__key--route{width:18px;height:2px;background:#7956d3}
.eu-map__replay{display:inline-flex;align-items:center;gap:7px;margin:16px 4% 0;padding:4px 0;font:500 11px/1.5 var(--body,"DM Sans",sans-serif);letter-spacing:.005em;color:#715a9c;background:none;border:0;border-bottom:1px solid #d5cbe8;border-radius:0;cursor:pointer}
.eu-map__replay>span{font-size:18px;line-height:1}
.eu-map__replay:hover{color:#532bb6;border-color:#7652c8}
.eu-map__replay:focus-visible{outline:2px solid #7843cf;outline-offset:5px;border-radius:2px}
.eu-map.is-animating .eu-map__route-progress{animation:eu-route-draw 2300ms cubic-bezier(.28,.05,.2,1) var(--route-delay,0ms) both}
.eu-map.is-animating .eu-map__hub-dot{animation:eu-hub-arrive 600ms ease var(--hub-delay,2100ms) both;transform-box:fill-box;transform-origin:center}
.eu-map.is-animating .eu-map__origin-wave{animation:eu-origin-wave 1400ms ease-out 100ms both}
@keyframes eu-route-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes eu-hub-arrive{0%{opacity:.25;transform:scale(.5)}65%{opacity:1;transform:scale(1.24)}100%{opacity:1;transform:scale(1)}}
@keyframes eu-origin-wave{0%{opacity:.8;transform:scale(.65)}100%{opacity:0;transform:scale(3.4)}}
@media(max-width:640px){.eu-map__topline{font-size:10px;letter-spacing:.1em;gap:10px}.eu-map__ambition{font-size:9px}.eu-map__city{font-size:23px}.eu-map__city--origin{font-size:26px}.eu-map__coordinate{font-size:8px;top:10%}.eu-map .eu-map__caption p{font-size:14px}.eu-map__legend{font-size:10px;gap:12px 17px}.eu-map__country{stroke-width:1.15}.eu-map__route-progress{stroke-width:1.85}}
@media(prefers-reduced-motion:reduce){.eu-map.is-animating .eu-map__route-progress,.eu-map.is-animating .eu-map__hub-dot,.eu-map.is-animating .eu-map__origin-wave{animation:none!important}.eu-map__origin-wave{display:none}.eu-map__replay{display:none}}
