/* Die Strecke bekommt eine eigene, ruhige Bühne in den bestehenden CI-Farben. */
.info-route{background:var(--ice)}
.route-stage{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:center;padding-top:48px;padding-bottom:48px}
.info-route.is-route-ready{height:210svh}
.is-route-ready .route-stage{position:sticky;top:100px;height:calc(100svh - 100px)}
.route-copy h2{font-size:clamp(46px,4.8vw,70px);max-width:12ch;margin-bottom:28px}
.route-copy h3{font-size:30px;color:var(--blue)}
.route-copy p{font-size:18px;max-width:32ch;margin:18px 0}
.route-external{display:inline-flex;align-items:center;min-height:44px;font-size:17px;color:var(--blue);font-weight:600;text-underline-offset:5px}
.route-copy .route-scroll-hint{font-size:15px;color:var(--blue);margin-top:30px}
.route-map{position:relative;min-width:0;margin:0;display:grid;justify-items:end;gap:12px}
.route-metrics{display:flex;gap:28px;color:var(--navy);text-align:right}
.route-metrics>div>span{display:block;font-size:15px}
.route-metrics strong{display:block;font:700 46px/1.1 Condensed;font-variant-numeric:tabular-nums;white-space:nowrap}
.route-metrics small{font:600 17px Barlow}
.route-map-open{display:block;background:none;padding:0;border:0;width:100%;max-width:580px;cursor:zoom-in;color:var(--navy)}
.route-overview{display:block;width:100%;height:auto;max-height:calc(100svh - 275px)}
.route-overview polyline{fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:7}
.route-track{stroke:var(--blue);opacity:.3}
.route-trace{stroke:var(--blue)}
.is-route-ready .route-trace{stroke:var(--lime)}
.route-endpoint{fill:var(--blue);stroke:white;stroke-width:4}
.route-overview text{font:600 28px Barlow;fill:var(--navy)}
.route-marker-halo{fill:var(--lime);opacity:.2}
.route-marker-dot{fill:var(--lime);stroke:white;stroke-width:5}
.route-map figcaption{font-size:14px;color:var(--blue);text-align:right}
.route-scroll-hint{display:none}
.is-route-ready .route-scroll-hint{display:block}
/* Das Programm bleibt auf der Infoseite bewusst kompakt. */
.info-program .section{padding-top:44px;padding-bottom:44px}
.info-program h2{font-size:40px;margin-bottom:24px}
.info-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 28px;list-style:none;padding:0;margin:0}
.info-timeline li{min-width:0;border-top:1px solid #ffffff50;padding-top:12px;font-size:16px;overflow-wrap:anywhere;hyphens:auto}
.info-timeline time{display:block;font:700 30px Condensed;color:var(--lime);margin-bottom:6px}
.info-timeline small{display:block;color:var(--ice);font-size:14px;margin-top:4px}
.info-program .program-note{font-size:14px;color:var(--ice);margin:24px 0 0;max-width:none}
.category-tables{gap:40px}
.category-tables .data-table{margin-bottom:0}
.category-tables tbody tr>*{transition:background-color .18s ease,color .18s ease}
.category-tables tbody tr:hover>*{background:var(--lime);color:var(--navy)}
.category-tables tbody tr:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.category-tables tbody tr:focus-visible>*{background:var(--lime);color:var(--navy)}
.fun-note{font-size:17px;margin:24px 0 0;max-width:85ch}
.kids-categories{margin-top:48px;padding-top:36px;border-top:1px solid #a7c4dc;scroll-margin-top:108px}
.kids-categories h3{font-size:38px;margin-bottom:14px}
.kids-categories p{font-size:17px}
.kids-category-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;align-items:start;margin-top:24px}
.kids-category-layout .data-table{margin:0}
.kids-category-layout .kids-map{max-width:none;margin:0}
.kids-category-layout figure{margin:0}
.kids-category-layout figcaption{font-size:14px;color:var(--blue);margin-top:12px}
.kids-categories .btn{margin-top:20px}
@media(max-width:850px){
  .route-stage{grid-template-columns:1fr;gap:14px;padding-top:22px;padding-bottom:22px;align-content:center}
  .is-route-ready .route-stage{top:90px;height:calc(100svh - 90px)}
  .route-copy h2{font-size:38px;max-width:22ch;margin-bottom:12px}
  .route-copy h3{font-size:24px}
  .route-copy p{font-size:16px;max-width:55ch;margin:10px 0}
  .route-copy .route-scroll-hint{margin:4px 0 0;font-size:14px}
  .route-external{font-size:15px}
  .route-map{gap:4px}
  .route-metrics{gap:24px}
  .route-metrics strong{font-size:34px}
  .route-metrics>div>span{font-size:13px}
  .route-overview{max-height:calc(100svh - 430px)}
  .route-map-open{max-width:none}
  .route-map figcaption{font-size:12px}
  .info-timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .category-tables,.kids-category-layout{gap:28px}
  .kids-category-layout{grid-template-columns:1fr}
}
@media(max-width:390px){.route-copy h2{font-size:34px}.route-stage{padding-left:18px;padding-right:18px}.route-copy p{font-size:15px}.route-copy .route-scroll-hint{display:none}.route-overview{max-height:calc(100svh - 415px)}}
@media(max-height:600px){.info-route.is-route-ready{height:auto}.is-route-ready .route-stage{position:static;height:auto}.route-overview{max-height:none}.route-scroll-hint{display:none!important}}
@media(prefers-reduced-motion:reduce){.info-route.is-route-ready{height:auto}.is-route-ready .route-stage{position:static;height:auto}.route-scroll-hint{display:none!important}.category-tables tbody tr>*{transition:none}}
