/* Anreise: Karte, Stadtplan, Silhouette (aus dem Social-Media-Guide übernommen) */
/* ---------- Anreise: animierte Fulda-Silhouette, Karte Auto/Bahn, Unterkunft, Fulda-Tag ---------- */
.trip{position:absolute;inset:0;background:var(--bg);color:var(--ink);display:flex;flex-direction:column}
.tscroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:30px}
.tscroll>*{flex:none}
.thero{position:relative;height:390px;overflow:hidden}
.thero svg.sky{position:absolute;inset:0;width:100%;height:100%;display:block}
.thero .ttxt{position:absolute;left:max(18px,env(safe-area-inset-left,0px));right:max(18px,env(safe-area-inset-right,0px));top:16px;z-index:2;display:flex;flex-direction:column;gap:6px}
.thero h2{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(32px,9.2vw,42px);line-height:1.04;text-wrap:balance;color:var(--ink)}
.thero p{margin:0;font-size:15px;line-height:1.5;color:var(--muted)}
.thero .cap2{position:absolute;left:max(18px,env(safe-area-inset-left,0px));bottom:12px;z-index:2;font-size:11px;letter-spacing:3px;text-transform:uppercase;font-weight:600;color:var(--white)}
.tbody{padding:18px max(18px,env(safe-area-inset-right,0px)) 0 max(18px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:22px}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fact{border:1px solid #D5CAC4;background:var(--white);padding:10px;display:flex;flex-direction:column;gap:4px;min-width:0}
.fact svg{width:22px;height:22px;fill:none;stroke:var(--deep);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.fact b{font-family:var(--serif);font-weight:400;font-size:17px;line-height:1.15;white-space:nowrap}
.fact small{font-size:12.5px;color:var(--muted);line-height:1.35}
.tsec h3,.stay b{margin:2px 0 6px;font-family:var(--serif);font-weight:400;font-size:clamp(28px,7.6vw,34px);line-height:1.08}
.tsec>p{margin:0 0 12px;font-size:15px;color:var(--muted);line-height:1.5}
.trip .label{display:block}
.modes{display:inline-flex;border:1px solid #363636;margin-bottom:10px}
.modes button{border:0;background:var(--white);padding:8px 16px;font-size:13px;font-weight:600;letter-spacing:1px;color:var(--ink);display:flex;gap:6px;align-items:center}
.modes button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.modes button[aria-pressed="true"]{background:var(--ink);color:var(--white)}
.mapbox{border:1px solid #D5CAC4;background:#FBF8F6;overflow:hidden}
.mapbox svg{display:block;width:100%;height:auto;max-width:100%}
.map .land{fill:#F1EBE6}
.map .road{fill:none;stroke:#C9A5AA;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.map .road.case{stroke:#fff;stroke-width:6}
.map .rail{fill:none;stroke:#2E2A2B;stroke-width:2;stroke-dasharray:6 4;stroke-linecap:round}
.map .rail.slow{stroke-dasharray:2 4;stroke:#958580}
.map .road.ext{stroke-dasharray:5 4;stroke-width:2.4;opacity:.8}
.map .edge{fill:none;stroke:#272727;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.map .lay{transition:opacity .45s ease}
.map.auto .lay.bahn,.map.bahn .lay.auto{opacity:0}
.map.auto .lay.auto .road:not(.case){stroke-dasharray:1;stroke-dashoffset:1;animation:draw2 1.2s ease forwards}
@keyframes draw2{to{stroke-dashoffset:0}}
.map .city{fill:#fff;stroke:#2E2A2B;stroke-width:1.5}
.map .lbl{font-family:var(--sans);font-size:10.5px;font-weight:600;fill:#272727}
.map .tm{font-family:var(--sans);font-size:9.5px;fill:#7E5F65;font-weight:600}
.map .shield rect{fill:#1E5BA8}
.map .shield text{font-family:var(--sans);font-size:8px;font-weight:600;fill:#fff}
.map .ice rect{fill:#2E2A2B}
.map .ice text{font-family:var(--sans);font-size:7.5px;font-weight:600;fill:#fff;letter-spacing:.5px}
.map .fulda{fill:#7E5F65}
.map .ring{fill:none;stroke:#7E5F65;stroke-width:1.5;transform-origin:center;transform-box:fill-box;animation:ring 2.4s ease-out infinite}
@keyframes ring{from{transform:scale(.6);opacity:1}to{transform:scale(2.6);opacity:0}}
.map .fl{font-family:var(--serif);font-size:17px;fill:#272727}
.map .fs{font-family:var(--sans);font-size:9px;letter-spacing:1.5px;font-weight:600;fill:#7E5F65}
.times{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px;font-size:13.5px;font-variant-numeric:tabular-nums}
.times li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #E2D9D4;padding:5px 0}
.times li span:last-child{color:var(--muted)}
.tnote{font-size:12px;color:var(--muted);margin-top:6px}
.stay{border:1px solid #D5CAC4;background:var(--white);padding:14px;display:flex;flex-direction:column;gap:10px}
.stay .h{display:flex;gap:12px;align-items:flex-start}
.stay .h svg{width:26px;height:26px;flex:none;fill:none;stroke:var(--deep);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.stay b{display:block;text-wrap:balance}
.stay p{margin:4px 0 0;font-size:15px;line-height:1.5;color:var(--muted)}
.stay button{height:48px;border:0;background:#363636;color:var(--white);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px}
.stay button[aria-pressed="true"]{background:var(--deep)}
.stay .ok{font-size:13px;color:var(--deep);font-weight:600}
.stay .ok:empty{display:none}
.day{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.day li{display:flex;flex-direction:column;gap:1px;padding-left:12px;border-left:2px solid #DCC3C3}
.day .when{font-size:11px;letter-spacing:3px;font-family:var(--sans);text-transform:uppercase;font-weight:600;color:var(--deep)}
.day b{display:block;font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.2}
.day small{display:block;font-size:14px;color:var(--muted);line-height:1.5}
.tcta{display:flex;flex-direction:column;gap:8px}
.tcta button{height:50px;border:0;background:#363636;color:var(--white);font-size:14px;letter-spacing:2px;text-transform:uppercase;font-weight:600}
.tcta small{text-align:center;font-size:12.5px;color:var(--muted)}
/* Silhouette: sanfte Parallaxe, warmes Licht */
.sky .l1{animation:par1 26s ease-in-out infinite alternate}
.sky .l2{animation:par2 26s ease-in-out infinite alternate}
.sky .glow{animation:glow2 9s ease-in-out infinite alternate;transform-origin:center;transform-box:fill-box}
@keyframes par1{from{transform:translateX(-8px)}to{transform:translateX(8px)}}
@keyframes par2{from{transform:translateX(-3px)}to{transform:translateX(3px)}}
@keyframes glow2{from{opacity:.55;transform:scale(.92)}to{opacity:1;transform:scale(1.06)}}
.sky.mini .l1,.sky.mini .l2{animation:none}
/* Startseite: Teaser */
.far{display:flex;align-items:center;gap:12px;border:1px solid var(--ink);min-height:80px;background:var(--white);padding:0 14px 0 0;text-decoration:none;color:var(--ink);text-align:left;overflow:hidden}
.far .farsky{position:relative;width:110px;height:76px;flex:none;overflow:hidden}
.far .farsky svg{position:absolute;inset:0;width:100%;height:100%}
.far b{display:block;font-family:var(--serif);font-weight:400;font-size:17px;line-height:1.2}
.far small{display:block;font-size:12.5px;color:var(--muted);line-height:1.35;margin-top:2px}
.far .arrow{margin-left:auto;color:var(--line);font-size:18px}
.farlink{border:0;background:none;padding:4px 18px 16px;text-align:left;font-size:13.5px;font-weight:600;color:var(--deep);text-decoration:underline;text-underline-offset:3px}
.staytag{font-size:12.5px;color:var(--deep);font-weight:600}


.mapbox{position:relative}
.replay{position:absolute;left:8px;top:8px;z-index:2;border:1px solid #D5CAC4;background:rgba(255,255,255,.92);padding:5px 9px;font-size:11.5px;font-weight:600;color:#272727}
.map .de-land{fill:#F1EBE6;stroke:#D5CAC4;stroke-width:1.2;vector-effect:non-scaling-stroke}
.map .de-dot{fill:#fff;stroke:#958580;stroke-width:1;vector-effect:non-scaling-stroke}
.map .de-lbl{font-family:var(--sans);font-size:46px;font-weight:600;fill:#958580}
.map .de-fulda{fill:#7E5F65}
.map .de-fl{font-family:var(--serif);font-size:64px;fill:#272727}
.map .train rect{fill:#fff;stroke:#272727;stroke-width:1.2}
.map .train .stripe{fill:#C2566B;stroke:none}
.map .train.rb rect{stroke:#958580}
.map .train.rb .stripe{fill:#958580}


/* Deutschland-Autobahnen */
.map .de-road{fill:none;stroke:#C9A5AA;stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.map .de-sh rect{fill:#1E5BA8}
.map .de-sh text{font-family:var(--sans);font-size:30px;font-weight:600;fill:#fff}
/* Stadtplan */
.mapbox{overflow:hidden}
#tmap{transform-origin:43.2% 48.4%;transition:transform .9s cubic-bezier(.5,0,.2,1),opacity .45s ease .35s}
.mapbox.city #tmap{transform:scale(8);opacity:0}
.cmap{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;transform:scale(.15);transform-origin:43.2% 48.4%;transition:transform .9s cubic-bezier(.2,.7,.2,1) .1s,opacity .5s ease .25s}
.mapbox.city .cmap{opacity:1;transform:none;pointer-events:auto}
.mapbox.city .replay{opacity:0;pointer-events:none}
.cityzoom{position:absolute;right:8px;bottom:8px;z-index:3;border:0;background:#363636;color:#fff;padding:7px 11px;font-size:11.5px;font-weight:600}
.map .fulda,.map .ring{cursor:pointer}
.cmap .cgrid path{stroke:#F1EBE6;stroke-width:.6}
.cmap .c-park{fill:#E3E9D8}
.cmap .c-river{fill:none;stroke:#BFD6E2;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.cmap .c-sec{fill:none;stroke:#E4D8D2;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.cmap .c-pri{fill:none;stroke:#D9BFC1;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.cmap .c-rail{fill:none;stroke:#A39894;stroke-width:1.4;stroke-dasharray:4 2}
.cmap .c-haim-case{fill:none;stroke:#fff;stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.cmap .c-haim{fill:none;stroke:#7E5F65;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.cmap .c-street{font-family:var(--sans);font-size:8px;font-weight:600;fill:#7E5F65;letter-spacing:.3px}
.cmap .c-area{font-family:var(--sans);font-size:8px;letter-spacing:3px;font-weight:600;fill:#B9A6A3}
.cmap .c-water{font-family:var(--serif);font-style:italic;font-size:9px;fill:#7FA3B8}
.cmap .c-hbf rect{fill:#272727}
.cmap .c-hbf text{font-family:var(--sans);font-size:10px;font-weight:600;fill:#fff}
.cmap .c-hbf .c-lab{fill:#272727;font-size:9px}
.cmap .c-poi circle{fill:#7E5F65;stroke:#fff;stroke-width:1.2}
.cmap .c-poi text{font-family:var(--sans);font-size:7px;font-weight:600;fill:#fff}
.cmap .c-studio circle{fill:#A9573F}
.cmap .c-studio .ring{fill:none;stroke:#A9573F;stroke-width:1.5;transform-origin:center;transform-box:fill-box;animation:ring 2.4s ease-out infinite}
.cmap .c-studio rect{fill:#fff;stroke:#A9573F;stroke-width:1}
.cmap .c-studio g path{fill:#fff;stroke:#A9573F;stroke-width:1}
.cmap .c-studio .t1{font-family:var(--serif);font-size:11px;fill:#272727}
.cmap .c-studio .t2{font-family:var(--sans);font-size:8px;font-weight:600;fill:#7E5F65}
.cmap .c-scale path{stroke:#958580;stroke-width:1.2;fill:none}
.cmap .c-scale text{font-family:var(--sans);font-size:8px;font-weight:600;fill:#958580}
.poi{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:13.5px}
.poi li{display:flex;gap:10px;align-items:flex-start}
.poi i{width:20px;height:20px;border-radius:50%;background:#7E5F65;color:#fff;font-style:normal;font-size:11px;font-weight:600;display:grid;place-items:center;flex:none}
.poi i.st{background:#A9573F}
.poi i.bh{background:#272727;border-radius:4px}
.poi b{display:block;font-weight:600}
.poi span{color:var(--muted);line-height:1.35}
.poi b{color:var(--ink)}
.route{display:inline-block;margin-top:10px;font-size:13.5px;font-weight:600;color:var(--deep)}


.cmap .rt{transition:opacity .35s ease}
.cmap[data-rt="bus"] .rt-walk,.cmap[data-rt="bus"] .rt-walktag{opacity:0}
.cmap[data-rt="walk"] .rt-bus{opacity:0}
.cmap .rt-walktag{transition:opacity .35s ease}
.cmap .rt-bus .rt-base{fill:none;stroke:#A9573F;stroke-width:4.2;stroke-linecap:round;stroke-linejoin:round}
.cmap .rt-foot{fill:none;stroke:#272727;stroke-width:2;stroke-dasharray:.1 4;stroke-linecap:round}
.cmap .rt-walk .rt-base{fill:none;stroke:#272727;stroke-width:2.4;stroke-dasharray:.1 4.2;stroke-linecap:round;stroke-linejoin:round}
.cmap .rt-flow{fill:none;stroke-linecap:round;stroke-linejoin:round;animation:flow 1.6s linear infinite}
.cmap .rt-bus .rt-flow{stroke:#fff;stroke-width:1.4;stroke-dasharray:3 9;opacity:.9}
.cmap .rt-walk .rt-flow{stroke:#A9573F;stroke-width:3.2;stroke-dasharray:.1 16;animation-duration:2.4s}
@keyframes flow{to{stroke-dashoffset:-24}}
.cmap .rt-tag rect,.cmap .rt-walktag rect{fill:#A9573F}
.cmap .rt-tag.foot rect,.cmap .rt-walktag rect{fill:#272727}
.cmap .rt-tag text,.cmap .rt-walktag text{font-family:var(--sans);font-size:7.5px;font-weight:600;fill:#fff}
.cmap .c-stop circle{fill:#fff;stroke:#A9573F;stroke-width:1.4}
.cmap .c-stop text{font-family:var(--sans);font-size:5.5px;font-weight:600;fill:#A9573F}
.cmap .c-ant rect{fill:#6F7E62}
.cmap .c-ant .a{font-family:var(--sans);font-size:8px;font-weight:600;fill:#fff}
.cmap .c-ant .c-lab{font-family:var(--sans);font-size:8.5px;font-weight:600;fill:#55604F}
.routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.routes button{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:center;text-align:left;border:1px solid #D5CAC4;background:var(--white);padding:9px 10px;color:var(--ink)}
.routes button[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.routes .sw{grid-row:span 2;width:22px;height:4px;border-radius:2px}
.routes .sw.bus{background:#A9573F}
.routes .sw.walk{background:repeating-linear-gradient(90deg,#272727 0 3px,transparent 3px 6px)}
.routes b{font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.1}
.routes small{font-size:12px;color:var(--muted)}
.poi i.an{background:#6F7E62;border-radius:4px}

