.viseuropa-route{background:#fff;scroll-margin-top:90px}
.viseuropa-route .section-heading h2{font-size:clamp(30px,4.5vw,52px);max-width:760px}
.route-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;border:1px solid #d7e2e6}
.route-map-panel{background:#eaf1f4;min-width:0}
.route-map-top{display:flex;justify-content:space-between;gap:20px;padding:22px 26px 0;font-size:11px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:#456171}
.route-map{display:block;width:100%;height:auto;max-height:540px;overflow:hidden}
.route-country{fill:#fbfcf9;stroke:#c5d4d7;stroke-width:1.5;stroke-linejoin:round}
.route-country-visited{fill:#dce9df}
.route-guide{fill:none;stroke:#91a9b5;stroke-width:2;stroke-dasharray:5 7}
.route-travelled{fill:none;stroke:#ec6496;stroke-width:4;stroke-linecap:round}
.route-city{cursor:pointer;outline:none}
.route-city-hit{fill:transparent;stroke:none}
.route-city-dot{fill:#18394e;stroke:#fff;stroke-width:3}
.route-city text{font:700 23px 'DM Sans',sans-serif;fill:#17374b;paint-order:stroke;stroke:#f6faf7;stroke-width:6;stroke-linejoin:round}
.route-city:hover .route-city-dot,.route-city:focus .route-city-dot{fill:#ec6496;stroke:#17374b;stroke-width:4}
.route-city:focus text{text-decoration:underline}
.route-traveller{pointer-events:none;fill:#163b54;stroke:#fff;stroke-width:3}
.route-traveller-halo{fill:#e4f6a5;stroke:none;opacity:.85}
.route-ocean-label{font:500 17px 'DM Sans',sans-serif;letter-spacing:5px;fill:#7894a3}
.route-map-note{font-size:11px;color:#536d7b;margin:0;padding:0 26px 20px;line-height:1.6}
.route-map-note a{text-decoration:underline}
.route-story{padding:35px 25px;background:#12394e;color:#fff;display:flex;flex-direction:column;justify-content:center}
.route-step-label{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#ddecac}
.route-step-label>span:last-child{color:#9cb8c7;margin-left:5px}
.route-current h3{font-size:34px;line-height:1.12;letter-spacing:-.035em;margin:25px 0 8px;overflow-wrap:anywhere}
.route-place{font-size:14px;color:#b9d0da;margin:0}
.route-city-note{font-size:15px;line-height:1.6;min-height:100px;margin:24px 0 20px}
.route-progress{height:3px;background:#3c6175;margin:0 0 28px;overflow:hidden}
.route-progress>span{display:block;width:0;height:100%;background:#e4f6a5}
.route-controls[hidden]{display:none}
.route-play{border:0;display:flex;gap:10px;align-items:center;justify-content:center;min-height:48px;padding:12px 15px;width:100%;background:#e4f6a5;color:#15384e;font:700 12px 'DM Sans',sans-serif;cursor:pointer}
.route-step-controls{display:flex;gap:5px;justify-content:space-between;align-items:center;margin-top:12px}
.route-step-controls button{border:1px solid #496b7e;background:transparent;color:#fff;min-height:42px;min-width:42px;padding:8px;font:600 11px 'DM Sans',sans-serif;cursor:pointer}
.route-step-controls button:disabled{opacity:.35;cursor:default}
.route-controls button:focus-visible{outline:3px solid #f0679b;outline-offset:3px}
.route-explore-note{font-size:12px;color:#afc8d5;line-height:1.6;margin:24px 0}
.route-totals{display:flex;justify-content:space-between;gap:10px;margin-top:5px;padding-top:24px;border-top:1px solid #3e6376;font-size:10px;color:#b9d0da}
.route-totals strong{font-size:27px;color:#fff;display:block;margin-bottom:5px}
.route-stops{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.route-stops li{flex:1 1 86px}
.route-stops button{height:100%;width:100%;padding:13px 10px;background:#f1f5f2;text-align:left;color:#17394e;cursor:pointer;border:1px solid transparent;font:inherit}
.route-stops button>span{display:block;font-size:10px;color:#526e7c;margin-bottom:8px}
.route-stops strong{display:block;font-size:12px}
.route-stops small{display:block;font-size:10px;color:#536c76;margin-top:5px}
.route-stops button[aria-current="step"]{background:#143b51;color:#fff;border-color:#143b51}
.route-stops button[aria-current="step"]>span,.route-stops button[aria-current="step"] small{color:#ddebba}
.route-stops button:hover,.route-stops button:focus-visible{outline:2px solid #ed6598;outline-offset:2px}
@media(max-width:1050px){.route-layout{grid-template-columns:minmax(0,1fr) 230px}.route-story{padding:25px 18px}.route-current h3{font-size:29px}.route-map-top{padding:20px 18px 0;font-size:10px}.route-map-top span:last-child{display:none}.route-city text{font-size:25px}}
@media(max-width:760px){.route-layout{grid-template-columns:1fr}.route-map-top{padding:20px 18px 5px}.route-map-top span:last-child{display:block;font-size:8px}.route-city text{font-size:29px}.route-city-dot{r:9}.route-map-note{padding:0 18px 18px;font-size:10px}.route-story{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;padding:26px 22px}.route-current{grid-column:1/-1}.route-current h3{font-size:32px;margin:15px 0 8px}.route-city-note{min-height:48px;margin:15px 0;font-size:14px}.route-progress{grid-column:1/-1;margin:0 0 20px}.route-controls{grid-column:1/-1}.route-explore-note{margin:20px 0 0}.route-totals{margin:20px 0 0;padding-top:0;border:0;align-self:center}.route-totals strong{font-size:22px}.route-stops li{flex:1 1 90px}.route-stops{gap:7px;margin-top:18px}.route-stops button{min-height:82px}.route-stops strong{font-size:13px}}
@media(prefers-reduced-motion:reduce){.viseuropa-route *{scroll-behavior:auto!important}}
/* Illustrated map: soft paper colours, ink outlines and transport symbols. */
.viseuropa-route{background:#fbfaf5}
.route-layout{border:2px solid #24475a;border-radius:22px;overflow:hidden;box-shadow:7px 8px 0 #e4eadb}
.route-map-panel{background:#eaf1f4}
.route-map-top>span:first-child{color:#173b50;transform:rotate(-2deg);padding:8px 13px;background:#fff9d9;border:1px solid #aabfc3;border-radius:4px;box-shadow:2px 2px 0 #cad8d8}
.route-map-top{align-items:center;padding-bottom:5px}
.route-country{stroke:#8da6ab;stroke-width:2.2;fill:#f6f5e9}
.route-country-visited{stroke:#6b9096;stroke-width:2.5}
.route-waves{fill:none;stroke:#9bc5d1;stroke-width:3;stroke-linecap:round}
.route-city-dot{stroke:#fffdf5;stroke-width:3;fill:#24475a}
.route-city text{font-family:'Nunito','DM Sans',sans-serif;font-weight:800;stroke:#fbfaf2;stroke-width:7}
.route-guide{opacity:.7;stroke-width:2.5}
.route-travelled{stroke-width:5}
.route-bus{stroke:#d68c32}.route-train{stroke:#40788f}.route-plane{stroke:#df7098}
.route-traveller{stroke:#24475a;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.route-vehicle-shadow{fill:#1b4454;stroke:none;opacity:.18}
.route-vehicle-badge{fill:#fff9dc;stroke:#24475a;stroke-width:2.5}
.route-traveller[data-mode="plane"] .route-vehicle-badge{fill:#ffe5ef}
.route-traveller[data-mode="train"] .route-vehicle-badge{fill:#edf8ff}
.route-traveller[data-mode="finish"] .route-vehicle-badge{fill:#e4f6a5}
.route-legend{display:flex;justify-content:center;gap:26px;margin:0 18px 17px;font-size:12px;font-weight:700;color:#294d5b}
.route-legend span{display:flex;align-items:center;gap:7px}
.route-legend svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.route-legend span:first-child svg{color:#b87826}.route-legend span:last-child svg{color:#c04d79}
.route-transport-label{font-size:12px;line-height:1.6;color:#e0efb9;margin:18px 0 0;padding:9px 10px;border:1px dashed #64857f;border-radius:5px}
.route-city-note{margin-top:17px;min-height:80px}
.route-play,.route-step-controls button{border-radius:7px}
.route-stops button{border-radius:8px;border:1px solid #dbe3d5}
@media(max-width:760px){.route-layout{border-radius:15px;box-shadow:4px 5px 0 #e4eadb}.route-map-top{gap:8px}.route-map-top>span:first-child{padding:6px 9px}.route-legend{gap:19px;font-size:11px}.route-legend svg{width:21px;height:21px}.route-current{position:relative}.route-current h3{margin-top:12px}.route-city-note{min-height:42px}.route-transport-label{margin-top:14px}}

.route-metrics{margin-top:60px;padding-top:35px;border-top:1px solid #c5d4d7}
.route-metrics-heading h3{font-size:32px;letter-spacing:-.04em;margin:10px 0 30px}
.route-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin:0 0 35px}
.route-counts>div{display:flex;flex-direction:column-reverse;padding-left:25px;border-left:2px solid #d4dfdd}
.route-counts>div:first-child{padding-left:0;border-left:0}
.route-counts dt{font-size:13px;line-height:1.6;color:#516875}
.route-counts dd{font-size:58px;line-height:1.15;letter-spacing:-.06em;font-weight:700;margin:0 0 8px;color:#163b51}
.route-distance-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;border-top:1px solid #c5d4d7;padding-top:15px}
.route-mode-metric{display:grid;grid-template-columns:40px 1fr auto;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid #d5dfdc}
.route-mode-metric svg{width:32px;height:32px;fill:none;stroke:#335b6f;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.route-mode-metric>div strong,.route-mode-metric>div span{display:block}
.route-mode-metric strong{font-size:16px}.route-mode-metric>div span{font-size:12px;color:#536b78;margin-top:5px}
.route-mode-metric p{font-size:11px;line-height:1.7;color:#536b78;margin:0;text-align:right}
.route-mode-metric p span{font-weight:600;font-size:13px;color:#254859}
.route-impact{padding:20px 0}.route-impact>div+div{margin-top:25px}
.route-impact>div p{font-size:12px;color:#536b78;margin:0 0 8px}.route-impact strong{font-size:25px;letter-spacing:-.02em;color:#254859}
.route-impact-note{font-size:12px;color:#536b78;line-height:1.8;max-width:400px;margin-top:23px}
.route-countries-list{font-size:12px;color:#4a6675;margin:30px 0 0;padding-top:20px;border-top:1px solid #d5dfdc;line-height:1.8}
@media(max-width:760px){.route-metrics{margin-top:38px}.route-metrics-heading h3{font-size:27px}.route-counts{grid-template-columns:1fr 1fr;gap:23px 15px}.route-counts>div{padding-left:15px}.route-counts>div:nth-child(3){border-left:0;padding-left:0}.route-counts dd{font-size:46px}.route-counts dt{font-size:12px}.route-distance-layout{grid-template-columns:1fr;gap:15px}.route-impact{border-bottom:1px solid #d5dfdc;padding:20px 0}.route-impact strong{font-size:23px}.route-countries-list{border:0;padding-top:0;margin-top:25px}}

.route-legend{flex-wrap:wrap;row-gap:10px}.route-legend span:nth-child(3) svg{color:#c04d79}.route-legend span:last-child svg{color:#15828e}

.route-estimate-label{display:inline-block;background:#e1ecd3;color:#345343;border-radius:30px;font-size:11px;font-weight:700;padding:7px 12px;margin-bottom:23px}
.route-impact strong{font-size:clamp(34px,4vw,52px);font-family:Manrope,sans-serif;line-height:1.15}.route-impact strong small{font-size:20px;font-weight:500;white-space:nowrap}
.route-methodology{margin-top:30px;border-top:1px solid #c5d4d7;border-bottom:1px solid #c5d4d7}.route-methodology summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;cursor:pointer;list-style:none;font-size:15px;font-weight:700}.route-methodology summary::-webkit-details-marker{display:none}.route-methodology summary>span{font-size:24px}.route-methodology[open] summary>span{transform:rotate(45deg)}.route-methodology-body{padding-bottom:25px;font-size:14px;color:#355566}.route-methodology-body p{max-width:900px}.route-methodology a{color:#0065b3;text-decoration:underline;text-underline-offset:3px}.route-table-scroll{overflow:auto;margin-block:25px}.route-table-scroll table{width:100%;border-collapse:collapse;font-size:13px;text-align:left;min-width:610px}.route-table-scroll caption{text-align:left;font-weight:700;color:#173c4f;padding-bottom:14px}.route-table-scroll th,.route-table-scroll td{padding:12px 14px;border-bottom:1px solid #d0dddc}.route-table-scroll thead{background:#e5eddf}.route-table-scroll tbody th{font-weight:600}.route-method-links{display:flex;flex-wrap:wrap;gap:12px 25px;margin-block:22px}.route-calculation-date{font-size:11px;color:#637b85}

@media(max-width:760px){.route-mode-metric{grid-template-columns:29px 1fr auto;gap:10px}.route-mode-metric svg{width:25px;height:25px}.route-mode-metric>div span{font-size:11px}.route-mode-metric p{font-size:10px}.route-mode-metric p span{font-size:12px}.route-impact strong{font-size:42px}.route-methodology summary{font-size:14px}.route-method-links{display:grid}}

.route-counts{grid-template-columns:repeat(5,1fr);gap:24px}.route-impact>div .route-per-person{font-size:15px;margin-top:13px;font-weight:600;color:#254859}
@media(max-width:760px){.route-counts{grid-template-columns:1fr 1fr;gap:23px 15px}.route-counts>div:nth-child(odd){padding-left:0;border-left:0}.route-counts>div:last-child{grid-column:1/-1}.route-counts>div:last-child dd{font-size:38px}}
