PageSourceSearch

https://www.wurzelrudi.de/sommer/

html wurzelrudi.de collected 2026-10-09 17:06:48 UTC 446,192 bytes, 29,179 lines download raw bytes

1<!DOCTYPE html>
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"  class=" c151596">
3<head>
4	<title>Sommer bei Wurzelrudis Erlebniswelt in Eibenstock</title>
5	
6	<meta name="description" content="Sommerabenteuer für Familien in Eibenstock: Bobbahn, Reifenrutsche, Freche Flitzer, Seedorf, Tiere, Spielplätze und Natur entdecken.">
7	<meta name="keywords" content="Allwetterbobbahn, Ausflugsziel mit Kindern, Familienausflug Erzgebirge, Freche Flitzer, Freizeitpark Eibenstock, Seedorf, Sommer Eibenstock, Wurzelrudis Erlebniswelt">
8	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
9	<meta name="robots" content="index, follow">
10	<meta name="google-site-verification" content="9_wO_1OXxHzhTfS40P9V-sEe8u5L0zpUJyHaNtF13Fc">
11	<meta name="tramino-cache" content="09.10.2026 09:52:12">
12	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
13	<link rel="canonical" href="https://www.wurzelrudi.de/sommer/">
14	<link rel="icon" type="image/png" sizes="16x16" href="https://storage.tramino.net/wurzelrudi/1546009/16.png">
15	<link rel="icon" type="image/png" sizes="32x32" href="https://storage.tramino.net/wurzelrudi/1546009/32.png">
16	<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="https://storage.tramino.net/wurzelrudi/1546009/180.png">
17	<link rel="manifest" href="/manifest.json">
18	<meta name="msapplication-TileColor" content="#ffffff">
19	<meta name="theme-color" content="#ffffff">
20
21	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/2800_2256.css?r=50" type="text/css" media="all"  >
22	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/824_3.css?r=50" type="text/css" media="all"  >
23	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/4120_60.css?r=50" type="text/css" media="all"  >
24	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/4014_30.css?r=50" type="text/css" media="all"  >
25	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/4244_246.css?r=50" type="text/css" media="all"  >
26	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/3201_151.css?r=50" type="text/css" media="all"  >
27	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/5812_17.css?r=50" type="text/css" media="all"  >
28	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/2897_154.css?r=50" type="text/css" media="all"  >
29	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/4681_38.css?r=50" type="text/css" media="all"  >
30	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/5559_36.css?r=50" type="text/css" media="all"  >
31	<link rel="stylesheet" href="https://tramino.s3.amazonaws.com/css/2820_349.css?r=50" type="text/css" media="all"  >
32
33		<!-- Init Consent -->
34		
34<script>
35		localStorage.setItem("consentPermission","false");
36		window.ConsentChecksum = "9789a1193c164c21b4b0dadc12b07d5a_v1";
37		window.consentCodeBuffer = window.consentCodeBuffer || [];
38
39		window.setConsentCookie = function( cvalue ) {
40			const d = new Date();
41			const cname = "Consent";
42			const exdays = 365;
43
44			d.setTime(d.getTime() + (exdays*24*60*60*1000));
45			let expires = "expires="+ d.toUTCString();
46			document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
47		}
48
49		window.getConsentCookie = function( ) {
50			let cname = "Consent";
51			let name = cname + "=";
52			let decodedCookie = decodeURIComponent(document.cookie);
53			let ca = decodedCookie.split(';');
54
55			for(let i = 0; i <ca.length; i++) {
56				let c = ca[i];
57				while (c.charAt(0) == ' ') {
58					c = c.substring(1);
59				}
60				if (c.indexOf(name) == 0) {
61					return c.substring(name.length, c.length);
62				}
63			}
64			return "";
65		}
66
67		window.deleteConsentCookie = function( ) {
68			let cname = "Consent";
69			document.cookie = cname + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
70		}
71
72		window.releaseConsentBuffer = function() {			
73
74			let buffer = window.consentCodeBuffer;
75			const tempContainer = document.createElement('div');
76
77			window.onerror = function (error, url, line, column, stack) {
78
79				let fetch_url = "/api/codes/error/?" + new URLSearchParams({
80					error_message: error,
81					error_url: url,
82				}).toString()
83
84				fetch(fetch_url).then(function(response) {
85				
86				}).catch(function(err) {
87
88				});
89	        };
90
91			for (var i = 0; i < buffer.length; i++) {
92				let code_element = buffer[i];
93
94				if ( code_element.released === true ) {
95					console.log("[releaseConsentBuffer] skip double execution");
96					continue;
97				}
98
99				if ( code_element.type == "javascript" ) {
100	
101					(function() {
102						code_element.callback.call();
103						//eval(code_element.callback);
104					})();
105
106				} else if ( code_element.type == "src" ) {
107					var s = document.createElement('script');
108					s.type = 'text/javascript';
109					s.async = true;
110					s.src = code_element.src;
111					document.body.appendChild(s);
112				}
113				else if ( typeof code_element.content == "string" ) {
114					
115					if ( code_element.content !== undefined  ) {
116						code_element.content = code_element.content.replace(/script_blocker/g, 'script');
117						tempContainer.innerHTML += code_element.content;
118					}
119					
120				}
121
122				code_element.released = true;
123			}
124
125			let code_items = tempContainer.children;	
126			
127
128			for (let child of Array.from(code_items) ) {
129			
130				let error;
131								
132				if ( child.tagName === 'SCRIPT' ) {
133					
134					const newScript = document.createElement('script');
135					if ( child.src ) {
136						// Externe Skripte
137						if (child.type) {
138							newScript.type = child.type; // Type übernehmen
139						}
140						newScript.async = true; // Standardmäßig async laden
141						newScript.src = child.src;
142					} else {
143						// Inline-Skripte
144						try {
145							newScript.textContent = child.textContent;
146						} catch ( err ) {
147		                	// console.log( "Code Error", err )
148		                }
149					}
150					document.body.appendChild(newScript);
151				} else {
152					document.body.appendChild(child);
153				}
154                
155
156               
157            
158			}
159
160			window.onerror = null;
161
162		}
163		window.runInlineScriptsConsent = function(container, html) {
164			const tpl = document.createElement('template');
165			tpl.innerHTML = html;
166
167			const scripts = tpl.content.querySelectorAll('script_blocker');
168
169			container.innerHTML = '';
170			container.appendChild(tpl.content);
171
172			scripts.forEach(oldScript => {
173				const s = document.createElement('script');
174
175				// Attribute kopieren (src, async, type, etc.)
176				for (const { name, value } of Array.from(oldScript.attributes)) {
177				s.setAttribute(name, value);
178				}
179
180				// Inline-Code kopieren
181				if (!oldScript.src) {
182				s.textContent = oldScript.textContent;
183				}
184
185				oldScript.replaceWith(s);
186			});
187		}
188		window.releaseInlineBlocks = function() {
189
190			if ( typeof window.runInlineScriptsConsent === "function" ) {
191				
192				const inlineblocks = document.querySelectorAll(".T330");
193
194				inlineblocks.forEach(block => {
195					const wrapper = block.querySelector(".placeholder");
196					if ( wrapper !== null ) {
197						if ( wrapper.dataset.script ) {
198							window.runInlineScriptsConsent(wrapper, wrapper.dataset.script);
199						}
200					}
201					
202				});
203
204
205			}
206
207		}
208		window.checkConsent = function() {
209
210			let consent_html = document.querySelector(".TraminoConsent");
211
212			if ( window.ConsentChecksum ) {
213				if ( window.getConsentCookie() == window.ConsentChecksum ) {
214						return true
215					}
216			}
217
218			if ( consent_html !== null ) {
219				if ( consent_html.dataset.checksum ) {
220					if ( window.getConsentCookie() == consent_html.dataset.checksum ) {
221						return true
222					}
223				}
224			}
225
226			return false;
227
228		}
229
230
231		window.checkReleaseConsent = function() {
232
233			if ( window.checkConsent() ) {
234				window.releaseConsentBuffer();
235				localStorage.setItem("consentPermission","true");
236				console.log("[checkReleaseConsent] granted - codes released");
237			} else {
238				localStorage.setItem("consentPermission","false");
239				console.log("[checkReleaseConsent] not granted");
240			}
241		
242		}
243
244		</script>
244
245		
246	
246<script>
247		window.dataLayer = window.dataLayer || [];
248		function gtag(){dataLayer.push(arguments);}
249
250		if( window.checkConsent() === false ) {
251
252			gtag('consent', 'default', {
253				'ad_storage': 'denied',
254				'ad_user_data': 'denied',
255				'ad_personalization': 'denied',
256				'analytics_storage': 'denied',
257				'personalization_storage': 'denied',
258				'functionality_storage': 'denied',
259				'security_storage': 'denied',
260			});
261
262
263		} else {
264			gtag('consent', 'default', {
265				'ad_storage': 'granted',
266				'ad_user_data': 'granted',
267				'ad_personalization': 'granted',
268				'analytics_storage': 'granted',
269				'personalization_storage': 'granted',
270				'functionality_storage': 'granted',
271				'security_storage': 'granted',
272			});
273		}
274	</script>
274
275	
276	
277	
277<script>var Tramino = {"client":61367,"destination":0,"lang":"de","base":"","page":151596,"request_id":"35b96535977ce3e970e32c1b9a26de74"};</script>
277
278	
278<script>(function(){var q=[];window.TraminoReady=function(f){return f?q.push(f):q}})()</script>
278
279	
279<script  src="https://storage.tramino.net/static/root/js/jquery.min.js?r=50"  ></script>
279
280	
280<script  src="https://storage.tramino.net/static/root/js/jquery-ui.min.js?r=50"  ></script>
280
281	
281<script  src="/tramino/js/imagescroll.js?r=50"  ></script>
281
282	
282<script  src="https://tramino.s3.amazonaws.com/tramino/js/fancybox2/jquery.fancybox.pack.js?test&r=50"  ></script>
282
283
284	
284<script src="/tramino/js/require.min.js" data-main="/tramino/js/requirejs-main.js" async defer></script>
vendor: 1 bytes, line 284
284
285<script>
286	window.loadJS = function(u, cb) {
287        window._loadedScripts = window._loadedScripts || new Set();
288
289        if (window._loadedScripts.has(u)) {
290            if (typeof cb === "function") {
291                cb();
292            }
293            return;
294        }
295
296        var r = document.getElementsByTagName("script")[0],
297            s = document.createElement("script");
298        s.src = u;
299
300        // Callback erst ausführen, wenn das Script geladen wurde
301        s.onload = function() {
302            console.log("loadJS - script loaded");
303            window._loadedScripts.add(u);
304            if (typeof cb === "function") {
305                cb();
306            }
307        };
308
309        // Optional: Fehlerbehandlung
310        s.onerror = function() {
311            console.error("Fehler beim Laden des Skripts: " + u);
312        };
313
314        r.parentNode.insertBefore(s, r);
315    };
316	
317	window.loadCSS = function(u) {
318	    window._loadedCSS = window._loadedCSS || new Set();
319
320	    if (window._loadedCSS.has(u)) {
321	        return;
322	    }
323
324	    var r = document.getElementsByTagName("link")[0],
325	        l = document.createElement("link");
326	    l.href = u;
327	    l.rel = "stylesheet";
328	    l.type = "text/css";
329	    l.media = "all";
330
331	    r.parentNode.insertBefore(l, r);
332	    window._loadedCSS.add(u);
333	}
334</script>
334
335
336<style type="text/css">
337/* MenuLight */
338#TraminoHeaderTiny { top: initial !important; bottom: 0px;}
339
340.TraminoVorlage.T5517 {
341
342	--main-padding: 1rem;
343
344	--bar_height: clamp(40px,8vw,60px);
345
346	position: sticky;
347	top: 0;
348	z-index: 150;
349	margin: 0px;
350}
351
352.TraminoVorlage.T5517.no_sticky_nav { position: relative; }
353
354.T5517 a { text-decoration: none; }
355.T5517 .border-top { border-top: 1px solid #ccc; }
356
357
358/* Menu Bar */
359
360.T5517 .nav-bar {
361	z-index: 100;
362	position: relative;
363	margin: 0px auto;
364	max-width: 1240px;
365	border-radius: 0 0 1rem 1rem;
366	display: flex;
367	justify-content: space-between;
368	height: var(--bar_height);
369
370}
371
372.T5517 .icon_wrapper {
373	min-width: 60px;
374	display: flex;
375	gap: 0.5rem;
376	justify-content: flex-start;
377	align-items: center;
378	color: inherit;
379	font-size: 19px;
380	cursor: pointer
381}
382
383.T5517 .icon_wrapper.primary { padding-left: var(--main-padding); }
384.T5517 .icon_wrapper.secondary { padding-right: var(--main-padding); justify-content: flex-end; }
385
386.T5517 .icon_wrapper.secondary .button {
387	--buttoncolor: var(--textcolor2,#333);
388	font-size: 0.9rem;
389	display: flex;
390	align-items: center;;
391	background-color: var(--buttoncolor,#333);
392	color: #FFF;
393	gap: 0.4em;
394	border-radius: 0.3em;
395	scale: 1;
396	transition: all 0.2s;
397}
398
399.T5517 .icon_wrapper.secondary .button:hover {
400	scale: 1.05;
401	background-color: rgb(from var(--buttoncolor) r g b / .9);
402}
403.T5517 .icon_wrapper.secondary .button.booking {
404	--buttoncolor: #FF8000;
405}
406
407.T5517 .icon_wrapper.secondary .button.booking svg {
408	width: 1.1em;
409	height: 1.1em;
410}
411
412.T5517 .icon_wrapper.secondary .button svg path { fill: currentColor; }
413
414.T5517 .icon_wrapper svg.close { display: none; }
415
416.T5517.open-primary .icon_wrapper.primary svg:not(.close) { display: none; }
417.T5517.open-primary .icon_wrapper.primary svg.close { display: block; }
418
419/*.T5517 .icon_wrapper i { font-size: 1em; }*/
420
421.T5517 .logo, .T5517 .logo_scroll {
422	display: flex;
423	justify-content: center;
424	max-width: 400px;
425}
426
427.T5517 .logo img {
428	display: block;
429	width: 100%;
430	height: 100%;
431	object-fit: contain;
432	object-position: center bottom;
433}
434
435.T5517.overlaylogo :is(.logo, picture,img) { transition: all 0.2s; }
436.T5517:not(.open-primary).overlaylogo .logo { margin-top: 0.5rem; }
437.T5517:not(.open-primary).overlaylogo .logo picture { display: block; width: 50%; }
438.T5517:not(.open-primary).overlaylogo .logo img {
439	height: auto;
440}
441
442
443
444.T5517 .logo_scroll { display: none; height: var(--bar_height); }
445.T5517 .logo_scroll img { width: auto; height: var(--bar_height) !important; }
446
447.T5517.scrolled .logo { display: none; }
448.T5517.scrolled .logo_scroll { display: flex; }
449
450
451.T5517 form {
452	display: flex;
453	flex-wrap: wrap;
454	max-width: 450px;
455}
456
457.T5517 form .item {
458	width: 100%;
459}
460
461
462/* Navigation */
463
464.T5517 .wrapper_hidden {
465	display: none;
466	margin: 0px auto;
467	max-width: 1240px;
468	border-top: 1em solid #fff;
469	margin-top: -1em;
470	background-color: #eee;
471	background-image: linear-gradient( #ffffff 0%, #EEEEEE 33%);
472	border-radius: 0 0 1.5rem 1.5rem;
473	padding: 1rem;
474}
475
476.T5517 .wrapper_hidden.sticky_content {
477	position: absolute;
478	left: 50%;
479  	transform: translateX(-50%);
480	width: 100%;
481	margin: -1 0 0 0;
482}
483
484.T5517.open-primary .wrapper_hidden.wrapper_primary { display: block; }
485
486
487.T5517 .wrapper_hidden .headline { 
488	text-align: center; 
489	margin: -0.2em 0 0.8em 0;
490}
491
492.T5517 .nav-item-wrapper {
493	flex: 2;
494	display: grid;
495	grid-template-columns: repeat(1,minmax(0, 1fr));
496	grid-column-gap: 0.5rem;
497	grid-row-gap: 0.5rem; 
498}
499
500@media (max-width: 768px) {
501	.T5517 .nav-item-wrapper { grid-template-rows: min-content; }
502}
503
504.T5517 .nav-item {
505	display: flex;
506	flex-direction: column;
507	width: 100%;
508	color: #000;
509}
510
511.T5517 .nav-item-wrapper.elm_mobile2 { grid-template-columns: repeat(2,minmax(0, 1fr)); }
512.T5517 .nav-item-wrapper.elm_mobile3 { grid-template-columns: repeat(3,minmax(0, 1fr)); }
513.T5517 .nav-item-wrapper.elm_mobile4 { grid-template-columns: repeat(4,minmax(0, 1fr)); }
514.T5517 .nav-item-wrapper.elm_mobile5 { grid-template-columns: repeat(5,minmax(0, 1fr)); }
515.T5517 .nav-item-wrapper.elm_mobile6 { grid-template-columns: repeat(6,minmax(0, 1fr)); }
516.T5517 .nav-item-wrapper.elm_mobile7 { grid-template-columns: repeat(7,minmax(0, 1fr)); }
517.T5517 .nav-item-wrapper.elm_mobile8 { grid-template-columns: repeat(8,minmax(0, 1fr)); }
518
519
520.T5517 .nav-icon  {
521	box-shadow: 2px 2px 8px #0001;
522	background-color: #fff;
523	border-radius: 10px;
524	overflow: hidden;
525	width: 100%;
526	height: auto;
527	aspect-ratio: 1 / 1;
528	padding: 0.5em;
529	border: 0.15em solid transparent;
530	transition: all 0.2s;
531}
532
533.T5517.menu_svg .nav-icon {
534	padding: 1em;
535}
536
537.T5517.no_padding .nav-icon {
538	padding: 0em;
539}
540
541
542
543
544
545.T5517 .nav-icon img {
546	width: auto;
547	height: 100%;
548	aspect-ratio: inherit;
549	object-fit: cover;
550}
551
552.T5517 .nav-label  {
553	margin-top: 1em;
554	font-weight: bold;
555	font-size: 0.7rem;
556	line-height: 1;
557	text-align: center;
558	hyphens: auto;
559	transition: all 0.2s;
560}
561
562.T5517 .nav-item:hover .nav-icon,
563.T5517 .nav-item.open .nav-icon  {
564	border-color: var(--color);
565}
566
567.T5517 .nav-item:hover .nav-label,
568.T5517 .nav-item.open .nav-label  {
569	color: var(--color);
570}
571
572/* Sublevel */
573
574
575.T5517 .nav-outer {
576	display: flex;
577	margin-bottom: 2em;
578}
579
580.T5517 .nav-sublevel {
581	position: relative;
582	flex: 1;
583	margin-left: var(--main-padding);
584	border-left: 1px solid #ccc;
585	padding: 1rem 0 1rem var(--main-padding);
586	display: flex;
587	flex-direction: column;
588	justify-content: center;
589	
590}
591
592/* .T5517 .nav-sublevel.nav-sublevel-teaser {
593	padding-left: 1.5em;
594} */
595
596.T5517 .nav-sublevel .nav-sublevel-item {
597	text-decoration: none;
598	display: flex;
599	margin-bottom: 0.5em;
600}
601
602.T5517 .nav-sublevel-image { flex-grow: 0; flex-shrink: 0; margin-right: 1em; }
603.T5517 .nav-sublevel-image img { width: 4em; height: 4em; aspect-ratio: 1/1; border-radius: 100%; overflow: hidden; border: 2px solid transparent !important; }
604
605.T5517 .nav-sublevel-content .nav-sublevel-headline {
606	color: #000;
607	font-size: 1.20em;
608	line-height: 1.1; 
609	margin-bottom: 0.15em;
610} 
611
612.T5517 .nav-sublevel-content .nav-sublevel-intro { 
613	color: #555;
614	font-size: 0.8em; 
615	line-height: 1.15; 
616	display: -webkit-box;
617	-webkit-line-clamp: 3;
618	-webkit-box-orient: vertical; 
619	overflow: hidden;
620	margin: 0.2em 0 0.7em 0;
621}
622
623.T5517 .nav-sublevel.nav-sublevel-menu .nav-sublevel-item .nav-sublevel-headline { color: #333; } 
624.T5517 .nav-sublevel.nav-sublevel-menu .nav-sublevel-item:hover .nav-sublevel-headline,
625.T5517 .nav-sublevel.nav-sublevel-menu .nav-sublevel-item.open .nav-sublevel-headline {
626	color: #000;
627	font-weight: bold;
628}
629
630.T5517 .nav-sublevel.nav-sublevel-teaser .nav-sublevel-item:hover .nav-sublevel-image img,
631.T5517 .nav-sublevel.nav-sublevel-teaser .nav-sublevel-item.open .nav-sublevel-image img {
632	border-color: #000 !important;
633}
634
635
636
637
638
639.T5517 .nav-sublevel .arrow {
640	position: absolute;
641	left: -7px;
642	top: calc( 50% - 14px );
643	border: solid #bbb;
644	border-width: 0 1px 1px 0;
645	display: inline-block;
646	padding: 7px;
647	transform: rotate(315deg);
648	width: 14px;
649	background-color: #eee;
650}
651
652
653
654
655@media (max-width: 768px) {
656
657	.T5517 .nav-outer { flex-direction: column; margin-bottom: 1em; }
658	.T5517 .nav-sublevel .arrow {
659		top: -7px;
660		left: calc( 50% - 14px );
661		transform: rotate(45deg);
662	}
663	.T5517 .nav-sublevel {
664		
665		display: block;
666		border-left: none;
667		margin-left: 0;
668
669		margin-top: 1em;
670		border-top: 1.5px solid #ccc;
671		padding: 1em 0 1em 0em;
672		font-size: 1em;
673	}
674
675	.T5517 .nav-sublevel.nav-sublevel-menu {
676		columns: 2;
677	}
678
679	.T5517 .nav-sublevel-image { margin-left: 0em; }
680
681}
682
683
684
685
686
687
688
689
690
691
692/* Topics */
693
694.T5517 .topics {
695	display: flex;
696	flex-direction: row-reverse;
697	gap: 1em;
698}
699
700.T5517 .topics a {
701	display: flex;
702	align-items: center;
703	justify-content: end;
704	margin-top: 0.5em;
705	text-align: right;
706
707}
708
709
710.T5517 .topics a .icon {
711	width: 0.8rem;
712	margin-right: 0.3rem;
713}
714
715.T5517 .topics a .icon img {
716	width: 100%;
717	height: auto;
718}
719
720.T5517 .icon_wrapper.icon_wrapper.secondary a .icon {
721	width: 1.1rem;
722}
723
724.T5517 .icon_wrapper.icon_wrapper.secondary a .icon img {
725	width: 100%;
726	height: auto;
727}
728
729.T5517 .topics a span { display: flex; align-items: center; 
730
731	display: -webkit-box;
732	-webkit-line-clamp: 1;
733	-webkit-box-orient: vertical; 
734	overflow: hidden;
735
736}
737.T5517 .topics a svg.arrow { margin-left: 0.4rem; width: 0.8rem; height: auto; }
738.T5517 .topics a svg.arrow path { fill: var(--color); }
739
740	
741/* Login */
742
743.T5517 .bottom { 
744	display: flex;
745	justify-content: space-between;
746	color: #000;
747	font-size: 0.9rem;
748	margin-top: 0.5em;
749	padding-top: 0.5em;
750}
751.T5517 .login .bottom a { color: inherit; }
752
753@media (min-width: 567px) {
754
755}
756
757@media (min-width: 768px) {
758
759	.TraminoVorlage.T5517 {
760		--main-padding: 2rem;
761	}
762
763	.T5517 .icon_wrapper { font-size: 23px; }
764	.T5517 .wrapper_hidden { padding: var(--main-padding); }
765
766	.T5517 .nav-item-wrapper { grid-column-gap: 1rem; grid-row-gap: 1rem;  }
767	.T5517 .nav-item-wrapper.elm_desktop2 { grid-template-columns: repeat(2,minmax(0, 1fr)); }
768	.T5517 .nav-item-wrapper.elm_desktop3 { grid-template-columns: repeat(3,minmax(0, 1fr)); }
769	.T5517 .nav-item-wrapper.elm_desktop4 { grid-template-columns: repeat(4,minmax(0, 1fr)); }
770	.T5517 .nav-item-wrapper.elm_desktop5 { grid-template-columns: repeat(5,minmax(0, 1fr)); }
771	.T5517 .nav-item-wrapper.elm_desktop6 { grid-template-columns: repeat(6,minmax(0, 1fr)); }
772	.T5517 .nav-item-wrapper.elm_desktop7 { grid-template-columns: repeat(7,minmax(0, 1fr)); }
773	.T5517 .nav-item-wrapper.elm_desktop8 { grid-template-columns: repeat(8,minmax(0, 1fr)); }
774}
775
776@media (min-width: 1024px) {
777	
778}
779
780@media (min-width: 1280px) {
781
782}
783
784
785
786</style>
787
788<script type="text/javascript">
789// MenuLight
790
791"use strict";
792			
793TraminoReady(function() {
794
795	const $T5517 = $('.T5517');
796
797	let openPrimary = function(){
798		$T5517.addClass("open-primary");
799	}
800
801	let closePrimary = function(){
802		$T5517.removeClass("open-primary");
803	}
804
805
806	document.addEventListener('click', function(event) {
807
808		if ( $T5517.hasClass("open-primary") ) {
809
810			const wrapper_hidden = document.querySelector('.wrapper_hidden');
811			const nav_bar = document.querySelector('.nav-bar');
812
813			console.log(wrapper_hidden.contains(event.target));
814			console.log(nav_bar.contains(event.target));
815
816	        if ( wrapper_hidden.contains(event.target) == false && nav_bar.contains(event.target) == false ) {    
817				closePrimary();
818	        }
819	       
820        }
821    });
822
823	$('.T5517 .nav-bar').on('click', '.icon_wrapper.primary', function(event) {
824		event.preventDefault();
825		
826		let $clicked = $(this);
827		
828		let $wrapper = $T5517.find('.wrapper_hidden.wrapper_primary');
829
830		if ( $T5517.hasClass("open-primary") && $clicked.hasClass("primary") ) {
831			closePrimary()
832		} else {
833			openPrimary();
834		}
835
836	});
837
838
839	const wrapper = document.querySelector(".T5517");
840	if (!wrapper) return;
841
842	const scrollThreshold = 100;
843
844	function onScroll() {
845		if (window.scrollY > scrollThreshold) {
846		wrapper.classList.add("scrolled");
847		} else {
848		wrapper.classList.remove("scrolled");
849		}
850	}
851
852	window.addEventListener("scroll", onScroll, { passive: true });
853
854
855});</script>
855
856
857<style type="text/css">
858/* TraminoLangSwitch */
859#langswitch { display: none; }
860
861.langswitch_inner {
862	box-sizing: border-box;
863	width: 100%;
864	max-width: 500px;
865	min-width: 200px;
866	padding: 15px 20px;
867}
868
869.langswitch_inner * { box-sizing: border-box; }
870
871.langswitch_inner .headline { font-size: 1.5rem; margin-bottom: 1rem; }
872
873
874.langswitch_inner ul { list-style-type: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
875.langswitch_inner ul li { margin: 0; padding: 0; order: 2; }
876.langswitch_inner ul li.ip_sort { order: 1; }
877
878.langswitch_inner ul li :is(a,span) {
879	display: block;
880	padding: 10px 5px 10px 40px;
881	border-bottom: 1px solid #CCC;
882	color: #000;
883	text-decoration: none;
884	white-space: nowrap;
885	
886	background-repeat: no-repeat;
887	background-size: 30px auto;
888	background-position: center left;
889	cursor: pointer;
890}
891/* .langswitch_inner ul li a { display: inline-flex; gap: 5px; } */
892
893
894.langswitch_inner ul li[data-lang=de] :is(a,span) { background-image: url(https://storage.tramino.net/root/996903/de.svg); }
895.langswitch_inner ul li[data-lang=en][data-flag=en] :is(a,span) { background-image: url(https://storage.tramino.net/root/996904/en.svg); }
896.langswitch_inner ul li[data-lang=en][data-flag=us] :is(a,span) { background-image: url(https://storage.tramino.net/root/997083/usa.svg); }
897.langswitch_inner ul li[data-lang=at] :is(a,span) { background-image: url(https://storage.tramino.net/root/996900/at.svg); }
898.langswitch_inner ul li[data-lang=ch] :is(a,span) { background-image: url(https://storage.tramino.net/root/996901/ch.svg); }
899.langswitch_inner ul li[data-lang=it] :is(a,span) { background-image: url(https://storage.tramino.net/root/996905/it.svg); }
900.langswitch_inner ul li[data-lang=cs] :is(a,span) { background-image: url(https://storage.tramino.net/root/996902/cs.svg); }
901.langswitch_inner ul li[data-lang=es] :is(a,span) { background-image: url(https://storage.tramino.net/root/996927/es.svg); }
902.langswitch_inner ul li[data-lang=nl] :is(a,span) { background-image: url(https://storage.tramino.net/root/996928/nl.svg); }
903.langswitch_inner ul li[data-lang=fr] :is(a,span) { background-image: url(https://storage.tramino.net/root/996931/fr.svg); }
904.langswitch_inner ul li[data-lang=ru] :is(a,span) { background-image: url(https://storage.tramino.net/root/996930/ru.svg); }
905.langswitch_inner ul li[data-lang=no] :is(a,span) { background-image: url(https://storage.tramino.net/root/996929/no.svg); }
906.langswitch_inner ul li[data-lang=hu] :is(a,span) { background-image: url(https://storage.tramino.net/root/1199752/hungary.svg); }
907.langswitch_inner ul li[data-lang=hr] :is(a,span) { background-image: url(https://storage.tramino.net/root/1274447/croatia.svg); }
908.langswitch_inner ul li[data-lang=pl] :is(a,span) { background-image: url(https://storage.tramino.net/root/1566053/poland.svg); }
909
910.langswitch_inner ul li:last-child :is(a,span) {
911	border-bottom-width: 0px;
912}
913.langswitch_inner ul li:hover :is(a,span) {
914	background-color: #EEE;
915}
916
917.langswitch_inner ul li.active :is(a,span) { font-weight: 600; }
918
919.langswitch_inner ul li .name_en { font-size: 90%; }
920
921.langswitch_inner .helper { font-size: 11px; }
922
923
924#TraminoLangSwitchButton {
925	display: flex;
926	gap: 1px;
927}
928
929#TraminoLangSwitchButton svg {
930	width: 20px;
931	height: auto;
932}
933#TraminoLangSwitchButton svg path { fill: currentColor; }
934</style>
935
936<script type="text/javascript">
937// TraminoLangSwitch
938
939var setRememberCookie = function(v) {
940
941	const d = new Date();
942	let time = d.getTime() + (30*24*60*60*1000);
943	// d.setTime(time);
944	//let expires = "expires="+ d.toUTCString();
945
946	// document.cookie = "rememberlang=" + v + ";" + expires + ";path=/";
947
948	localStorage.setItem('rememberlang', v);
949	localStorage.setItem('rememberlang_ttl', time);
950
951}
952	
953TraminoReady(function() {
954	var $langswitch = $('#langswitch');
955	var data = $langswitch.data();
956
957
958	let rememberlang = localStorage.getItem('rememberlang');
959	//console.log("GEOCHECK",cookies);
960
961	var navigatorlang = navigator.language || navigator.userLanguage;
962
963	if ( navigatorlang.length > 2 ) {
964		navigatorlang = navigatorlang.substring(3,5).toLowerCase(); // Fix weil Teilweise der Brwoser de-DE ausgibt	
965	}
966
967
968	var traminolang = data['traminolang'];
969	var langcookie = rememberlang;
970	var knownlang = data['knownlang'];
971
972	if ( rememberlang !== undefined ) {
973		let d = new Date();
974		let time = d.getTime();
975		let rememberlang_ttl = localStorage.getItem('rememberlang_ttl');
976
977		if ( rememberlang_ttl < time ) {
978			localStorage.removeItem('rememberlang');
979			localStorage.removeItem('rememberlang_ttl');
980		}
981	}
982
983
984	var openLangSwitch = function(option) {
985
986		var recom_lang = "";
987
988		if ( traminolang != navigatorlang ) {
989			recom_lang = navigatorlang;
990		}
991
992
993		// Wenn sich die Sprachauswahl automatisch öffnet, überprüfen ob es wirklich eine andere Sprache gibt
994		if ( recom_lang == "" && option.autoopen ) {
995			return;
996		}
997
998
999		$('.langswitch_inner ul li').each(function(index, el) {
1000			$(this).removeClass('active');
1001			if ( traminolang == $(this).data('lang') ) {
1002				$(this).addClass('active');	
1003			}
1004
1005			if ( recom_lang == $(this).data('lang') ) {
1006				$(this).addClass('ip_sort');	
1007			}
1008		});
1009
1010		$('.langswitch_inner .helper .browser span').html(navigatorlang);
1011		$('.langswitch_inner .helper .remember span').html(langcookie);
1012
1013		require(['fancybox'], function(_) {
1014			 $.fancybox({
1015			 	padding: 0,
1016				content: $("#langswitch").html(),
1017				beforeClose: function(){
1018					setRememberCookie(traminolang);
1019				},
1020			});
1021		});
1022	}
1023
1024	// Nicht direkt nach dem Seitenaufruf
1025	setTimeout(function(){
1026
1027		if ( !langcookie ) {
1028
1029			if ( navigatorlang == traminolang ) {
1030				setRememberCookie(traminolang);
1031			}
1032
1033			if ( ( ( navigatorlang != traminolang && navigatorlang.length > 0 ) ) && ! langcookie ) {
1034				
1035				if ( navigatorlang == "at" || navigatorlang == "ch" ) {
1036					// Abfrage nur öffnen wenn es AT oder CH Seiten auch gibt
1037					if ( knownlang.match(navigatorlang) ) {
1038						openLangSwitch({ autoopen: true});
1039					}
1040				} else {
1041					openLangSwitch({ autoopen: true});
1042				}
1043				
1044			}
1045		}
1046	},500);
1047
1048
1049	$("body").on('click', '.langswitch_inner a, .langswitch_inner span', function(event) {
1050		let $parent = $(this).parents('li');
1051		if ( $parent.hasClass("active") ) {
1052			event.preventDefault();
1053			setRememberCookie($parent.data('lang'));
1054			$.fancybox.close();
1055		} else {
1056			setRememberCookie($parent.data('lang'));			
1057		}
1058	});
1059	
1060
1061	var trigger = data['elementtrigger'];
1062	var $triggerelement = $('[data-langswitch='+ trigger +']');
1063	if ( $triggerelement.length > 0 ) {
1064		$triggerelement.on('click', function(event) {
1065			event.preventDefault();
1066			openLangSwitch({ autoopen: false});
1067		});
1068	}
1069	
1070});</script>
1070
1071
1072
1073	
1074	
1075	
1076	
1077
1078	<style>
1079
1080		.T5517 {
1081			--color: #2b2c6e;
1082			--textcolor: #ffffff;
1083		}
1084		
1085		
1086		
1087			.T5517 .color { color: #2b2c6e; }
1088			.T5517 .bg_color { background-color: #2b2c6e; color: #FFF;  }
1089			
1090		
1091
1092		
1093			.T5517 svg path { fill: #ffffff; }
1094		
1095
1096	</style>
1097
1098
1099
1100	<link rel="stylesheet" type="text/css" href="https://storage.tramino.net/static/iconfonts/tramino/v1.41/style.css">
1101
1102
1103
1104
1105
1106<script type="text/javascript">
1107"use strict";
1108	
1109TraminoReady(function() {
1110
1111	let breakpoint = $(".T4120 .wrapper").data('breakpoint');
1112	let breakpointm = 567;
1113
1114	var checkBreakpoint = function() {
1115		var $w = $(window);
1116		var $video = $(".T4120 .wrapper video");
1117		var $fallbackimg = $(".T4120 .wrapper .fallbackimg");
1118		var $bgvideo = $(".T4120 .wrapper .backgroundvideo");
1119		var $wrapper = $(".T4120 .wrapper");
1120		
1121		if ( $w.width() <= breakpoint ) {
1122			$video.addClass('hide');
1123			$fallbackimg.removeClass('hide');
1124		} else {
1125			$video.removeClass('hide');
1126			$fallbackimg.addClass('hide');
1127		}
1128		
1129		var ratio = 'r' + 83;
1130		var ratiomobil = 'r' + 23;
1131		
1132		if (ratio != ratiomobil) {
1133		
1134			if ( $w.width() <= breakpointm ) {
1135				$wrapper.addClass(ratiomobil);
1136				$wrapper.removeClass(ratio);
1137			} else {
1138				$wrapper.removeClass(ratiomobil);
1139				$wrapper.addClass(ratio);
1140			}
1141		}
1142	}
1143
1144	$(window).on('resize', function(event) {
1145		checkBreakpoint();
1146	});
1147
1148	checkBreakpoint();
1149
1150});
1151
1152</script>
1152
1153
1154
1155<style>
1156	#TraminoAnhang554424.T2897 .wrapper {
1157			background-color: #2c296f;
1158				padding: 1.5rem 2rem !important;
1159			color: #ffffff;
1160		}
1161		#TraminoAnhang554424.T2897 .textile .button,#TraminoAnhang554424.T2897 .S6529 .textile a.button { color: #2c296f !important; }
1162
1163	
1164
1165</style>
1166
1167<script type="text/javascript">
1168	
1169	$(document).ready(function(){
1170		calculateReadingTime();
1171	});
1172	
1173	function calculateReadingTime() {
1174		
1175		var words = 0;
1176		
1177		// Für alle p und h2 Elemente die Wörter Zählen
1178		$('#TraminoInhalt p, #TraminoInhalt h2').each(function(){
1179			words += $(this).html().split(" ").length;
1180		});
1181		
1182		// Anzahl der Wörter durch die Wörter pro Minute (230 wpm)
1183		var min = parseInt((words / 230) + 1);
1184		
1185		/* 1 Minute? Brauchen wir nicht anzeigen... */
1186		if ( min === 1 ) {
1187			$('.readtime').hide();
1188			return;
1189		}
1190		
1191		$('.readtime .min').html(min);
1192		
1193		// Beschriftung Einzahl/Mehrzahl
1194		if ( min < 2 ) {
1195			$('.readtime .einheit').html("Minute");
1196		} else {
1197			$('.readtime .einheit').html("Minuten");
1198		}
1199		
1200		
1201	}
1202	
1203</script>
1203
1204
1205
1206<style>
1207	#TraminoAnhang590351.T4014 .path i {
1208		color: #2c296f7F !important;
1209	}
1210	#TraminoAnhang590351.T4014 .path a {
1211		color: #2c296f7F !important;
1212	}
1213	#TraminoAnhang590351.T4014 .path span {
1214		color: #2c296f7F !important;
1215	}
1216
1217</style>
1218<style type="text/css">
1219/* Meta/Teaser */
1220/*
1221	Responsive Teaser layouts use the available width of main instead of the
1222	viewport. This also reacts when the map changes the width of the content.
1223*/
1224main, #subpage, #subpage2, #TraminoInhalt,#TraminoContent, #sheet {
1225	container-name: metateaser-content;
1226	container-type: inline-size;
1227}
1228
1229.T5277, .T5790 {
1230	--elements-padding: 1rem;
1231
1232	--color-open: #393;
1233	--color-partly: #c93c;
1234	--color-pending: #0076ba;
1235	--color-closed: #F33118;
1236	--color-warning: #cc3;
1237
1238	--color-disturbance: #feae00;
1239
1240	--font-size-status: 0.7rem;
1241	--cols-mobile: auto;
1242	--cols-tablet: var(--cols-desktop);
1243	--cols-desktop: auto;
1244
1245	--slice1: 15%;
1246	--slice2: 30%;
1247
1248	--layout-inside-background: var(--metateaser_bg_color,#FFF);
1249}
1250
1251
1252
1253.T5277.cols_mobile_1 { --cols-mobile: 1; }
1254.T5277.cols_mobile_2 { --cols-mobile: 2; }
1255.T5277.cols_mobile_3 { --cols-mobile: 3; }
1256.T5277.cols_mobile_4 { --cols-mobile: 4; }
1257.T5277.cols_mobile_5 { --cols-mobile: 5; }
1258.T5277.cols_mobile_6 { --cols-mobile: 6; }
1259.T5277.cols_mobile_7 { --cols-mobile: 7; }
1260.T5277.cols_mobile_8 { --cols-mobile: 8; }
1261
1262.T5277.cols_tablet_1 { --cols-tablet: 1; }
1263.T5277.cols_tablet_2 { --cols-tablet: 2; }
1264.T5277.cols_tablet_3 { --cols-tablet: 3; }
1265.T5277.cols_tablet_4 { --cols-tablet: 4; }
1266.T5277.cols_tablet_5 { --cols-tablet: 5; }
1267.T5277.cols_tablet_6 { --cols-tablet: 6; }
1268.T5277.cols_tablet_7 { --cols-tablet: 7; }
1269.T5277.cols_tablet_8 { --cols-tablet: 8; }
1270
1271.T5277.cols_desktop_1 { --cols-desktop: 1; }
1272.T5277.cols_desktop_2 { --cols-desktop: 2; }
1273.T5277.cols_desktop_3 { --cols-desktop: 3; }
1274.T5277.cols_desktop_4 { --cols-desktop: 4; }
1275.T5277.cols_desktop_5 { --cols-desktop: 5; }
1276.T5277.cols_desktop_6 { --cols-desktop: 6; }
1277.T5277.cols_desktop_7 { --cols-desktop: 7; }
1278.T5277.cols_desktop_8 { --cols-desktop: 8; }
1279
1280.T5277 .teaser_head {
1281	display: flex;
1282	justify-content: space-between;
1283	font-size: 0.9rem;
1284	color: #999;
1285}
1286
1287.T5277 .teaser_head.active_filter,
1288.T5277 .teaser_head.active_paginator {
1289	padding: 0.5rem 0 1rem 0;
1290}
1291
1292.T5277.bg-color .teaser_head.active_filter {
1293	padding: 0.5rem 0;
1294}
1295
1296.T5277 .filter_selected {
1297	display:inline-block;
1298	color: #0005;
1299	cursor: pointer;
1300}
1301
1302.T5277 .filter_selected .filter_selected_tag {
1303	margin-right: 0.5rem;
1304	margin-bottom: 0.5rem;
1305}
1306
1307
1308.T5277 .filter_count {
1309	display: none;
1310	text-align:right;
1311}
1312
1313.T5277 .filter_count.show {
1314	display: block;
1315}
1316
1317.T5277 .paginator_pages {
1318	display: flex;
1319	justify-content: center;
1320}
1321
1322.body .T5277.grid-stack-item-content {
1323	background: #fff !important;
1324	padding: 0rem;
1325	/* box-shadow: 3px 3px 10px rgba(0,0,0,0.1); */
1326	overflow: unset;
1327}
1328
1329
1330
1331.T5277 .teaser-headline {
1332	font-size: 1rem;
1333	margin: 0rem 0 0.5rem 0;
1334}
1335
1336
1337
1338
1339
1340.T5277 .outer .elements_pretext {
1341	padding: 0.2rem 0.6rem;
1342	margin: 0.45rem 0;
1343	font-size: 0.9rem;
1344}
1345
1346
1347.T5277 .elements {
1348	color: var(--app_font_color,#000);
1349	padding-bottom: 0.5rem;
1350	display: grid;
1351	gap: var(--elements-padding)
1352}
1353
1354
1355.T5277 .meta-teaser-empty {
1356	display: none;
1357	border: 1px dashed #0002;
1358	margin: 0em 1em;
1359	padding: 2em 1em;
1360	border-radius: 0.4em;
1361	text-align: center;
1362	color: #0009;
1363}
1364
1365.T5277 .meta-teaser-empty.show {	
1366	display: block;
1367}
1368
1369
1370.T5277 .T5277 .element[href] { cursor: pointer; }
1371.T5277 .T5277 .element[data-set] { cursor: pointer; }
1372.T5277 .T5277 .element[data-set]:hover { box-shadow: 0 0 2px #cca; }
1373
1374
1375
1376.T5277 .element {
1377	position: relative;
1378	scroll-snap-align: start;
1379	user-select: none;
1380	-webkit-user-select: none;
1381	margin: 0 0.8rem 0.8rem 0;
1382	text-decoration: inherit;
1383	color: inherit;
1384	display: flex;
1385	flex-direction: column;
1386	flex-grow: 0;
1387    flex-shrink: 0;
1388 	background-color: var(--metateaser_bg_color);
1389
1390}
1391
1392.T5277 .element.clickable {
1393	cursor: pointer;
1394}
1395
1396.T5277 a.element, .T5277 div.element[data-load-dashboard] {
1397	cursor: pointer;
1398}
1399
1400
1401
1402.T5277 .element.more_element {
1403	cursor: pointer;
1404	display: flex;
1405	flex-direction: column !important;
1406	align-items: center !important;
1407	justify-content: center !important;
1408	/* background-color: #EBEBEB !important;    via transparent image  */
1409}
1410
1411.simple_slider {
1412	overflow: hidden;
1413}
1414
1415.simple_slider_item {
1416	overflow: hidden;
1417}
1418
1419.T5277 .element .bild {
1420	position: relative;
1421	width: 100%;
1422	overflow: hidden; /*hides the overlow if the picture isnt the right size*/
1423}
1424
1425.T5277 .element.more_element .bild {
1426	/* width: 150px !important;   via normal size  */
1427	opacity: 0.4;
1428}
1429.T5277 .element.more_element .bild img { aspect-ratio: auto !important; object-fit: contain !important; }
1430
1431
1432
1433
1434
1435
1436.T5277 .element .bild {
1437	position: relative;
1438	width: 100%;
1439}
1440
1441.T5277 .element .bild img {
1442	display: block;
1443	width: 100%; 
1444	height: auto;
1445	object-fit: cover;
1446	overflow: hidden;
1447}
1448
1449
1450.T5277.ratio_landscape .elements .element .bild img { aspect-ratio: 4 / 3; }
1451.T5277.ratio_panorama .elements .element .bild img { aspect-ratio: 4 / 2; }
1452.T5277.ratio_ultrawide .elements .element .bild img { aspect-ratio: 3 / 1; }
1453.T5277.ratio_portrait .elements .element .bild img { aspect-ratio: 3 / 4; }
1454.T5277.ratio_square .elements .element .bild img { aspect-ratio: 1 / 1; }
1455
1456body .T5277.meta-teaser-image-brightness-30 .elements .element .bild img { filter: brightness(0.7);  }
1457body .T5277.meta-teaser-image-brightness-50 .elements .element .bild img { filter: brightness(0.5);  }
1458
1459
1460/* Icon im Teaser oben */
1461
1462body .T5277 .element .icon { aspect-ratio: 1 / 1; align-self: flex-end; }
1463body .T5277 .element .icon img { display: block; width: 2em; height: auto; aspect-ratio: 1 / 1 !important; }
1464body .T5277 .element .icon image, body .T5277 .element .icon svg { display: block; width: 2em; height: auto; aspect-ratio: 1 / 1 !important; }
1465body .T5277 .element .icon.format_svg img { width: 1.7em; aspect-ratio: auto !important; }
1466
1467body .T5277 .element .icon.format_status_icon { align-self: center !important; }
1468
1469body .T5277.meta-teaser-up-right-icon .element .bild .icon { position: absolute; right: 0.5em !important; top: 0.5em !important; }
1470body .T5277.meta-teaser-down-right-icon .element .bild .icon { position: absolute; right: 0.5em !important; bottom: 0.5em !important; }
1471body .T5277.meta-teaser-down-left-icon .element .bild .icon { position: absolute; left: 0.5em !important; bottom: 0.5em !important; }
1472body .T5277.meta-teaser-up-left-icon .element .bild .icon { position: absolute; left: 0.5em !important; top: 0.5em !important; }
1473body .T5277.meta-teaser-up-center-icon .element .bild .icon { position: absolute; left: 50% !important; top: 0.5em !important; transform: translate(-50%); }
1474body .T5277.meta-teaser-right-center-icon .element .bild .icon { position: absolute; right: 0.5em !important; top: 50% !important; transform: translate(0, -50%); }
1475body .T5277.meta-teaser-down-center-icon .element .bild .icon { position: absolute; left: 50% !important; bottom: 0.5em !important; transform: translate(-50%); }
1476body .T5277.meta-teaser-left-center-icon .element .bild .icon { position: absolute; left: 0.5em !important; top: 50% !important; transform: translate(0, -50%); }
1477body .T5277.meta-teaser-center-icon .element .bild .icon { position: absolute; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%); }
1478
1479body .T5277.meta-teaser-big-icon .element .icon img { width: 5em;  }
1480body .T5277.meta-teaser-big-icon .element .icon image, body .T5277.meta-teaser-big-icon .element .icon svg { width: 5em;  }
1481
1482body .T5277.meta-teaser-icon-badge.meta-teaser-image-padding .bild  { margin-bottom: -1em; }
1483body .T5277.meta-teaser-icon-badge .bild .icon img  { width: 100% !important; }
1484body .T5277.meta-teaser-icon-badge .bild .icon image, body .T5277.meta-teaser-icon-badge .bild .icon svg  { width: 100% !important; }
1485body .T5277.meta-teaser-icon-badge .bild .icon {
1486	top: auto;
1487	right: 0.3em;
1488	bottom: 0.3em;
1489	width: 25%;
1490	height: auto;
1491	aspect-ratio: 1 / 1;
1492	max-width: 10em;
1493	margin: 3.5%;
1494	background-color: #fff;
1495	padding: 2.5%; 
1496	box-shadow: 0.2em 0.2em 0.2em #0003;
1497	border-radius: 0.3em;
1498}
1499
1500
1501
1502body .T5277.options_no_image .element.has-icon .teaser-name { padding-right: 2em; }
1503
1504body .T5277 .element.has-like .bild .like_wrapper { position: absolute; right: 0.4em; top: 0.4em; }
1505
1506body .T5277 .element.highlight { border: 2px solid #0076BA !important; }
1507
1508body .T5277 .element.readonly { opacity: 0.5; }
1509
1510
1511.T5277 .meta-teaser-images {
1512	position: relative;
1513	display: flex;
1514	gap: 0.2em;
1515}
1516
1517.T5277 .meta-teaser-images picture {
1518	flex: 1;
1519}
1520
1521
1522.T5277 .meta-teaser-images .overlay_image {
1523	position: absolute;
1524	bottom: 1em;
1525	left: 1em;
1526	width: 30%;
1527	height: auto;
1528
1529}
1530
1531.T5277 .meta-teaser-images .overlay_image img {
1532	width: 100%;
1533	height: auto;
1534	aspect-ratio: auto !important;
1535}
1536
1537
1538/* Mobile: less than 768px available content width */
1539@container metateaser-content (width < 768px) {
1540
1541
1542	.T5277.layout_mobile_aside .element {
1543		align-items: flex-start;
1544	}
1545
1546	.T5277.layout_mobile_over .element {
1547		flex-direction: column-reverse;
1548	}
1549
1550	.T5277.layout_mobile_aside .elements .element, .T5277.layout_mobile_aside_wide .elements .element {
1551		flex-direction: row;
1552		flex-grow: 0;
1553		flex-shrink: 0;
1554	}
1555
1556	.T5277.layout_mobile_aside .elements .element .bild, .T5277.layout_mobile_aside_wide .elements .element .bild {
1557		width: 40%;
1558		flex-direction: row;
1559		flex-grow: 0;
1560		flex-shrink: 0;
1561	}
1562
1563	.T5277.layout_mobile_aside.ratio_portrait .elements .element .bild {
1564		width: 30%;
1565	}
1566
1567	.T5277.layout_mobile_aside_wide .elements .element .bild { width: 25%; }
1568	.T5277.layout_mobile_aside_wide.ratio_portrait .elements .element .bild { width: 20%; }
1569
1570	.T5277.layout_mobile_inside { 
1571		position: relative;
1572	}
1573
1574	.T5277.layout_mobile_inside .metateaser-content {
1575		position: absolute;
1576		top: 70%;
1577		transform: translateY(-50%);
1578		margin: 0;
1579	}
1580
1581	.T5277.layout_mobile_inside .metateaser-content .metateaser-content-text {
1582		display: flex;
1583		flex-wrap: wrap;
1584		flex-direction: column;
1585		align-items: flex-start;
1586	}
1587
1588	.T5277.layout_mobile_inside .metateaser-content .teaser-name {
1589		background-color: var(--layout-inside-background);
1590		display: inline;
1591		-webkit-box-decoration-break: clone;
1592		box-decoration-break: clone;
1593		white-space:pre-wrap;
1594		padding-right: 0.8rem; 
1595		padding-left: 0.8rem;;
1596	}
1597	
1598	
1599	
1600	.T5277.layout_mobile_below .element .metateaser-content {
1601		padding: 0.4rem 0 0 0;
1602	}
1603
1604	.T5277.layout_mobile_aside .element .metateaser-content {
1605		width: 100%;
1606		padding: 0 0.8rem 0 0.8rem;
1607	}
1608
1609	.T5277.layout_mobile_aside:is(.bg_color) .element .metateaser-content {
1610		padding-top: 0.6rem;
1611		padding-bottom: 0.6rem;
1612	}
1613
1614	.T5277.layout_mobile_inside.bg_color .element .metateaser-content {
1615		padding: 0;
1616	}
1617
1618	body .T5277.options_no_image.layout_mobile_aside .element .bild { position: absolute; top: 50%; right: 0.3rem; transform: translateY(-50%); display: flex; }
1619	body .T5277.options_no_image.layout_mobile_aside .element .bild :is(.status,.nr) { position: static;  font-size: 0.8em; }
1620	body .T5277.options_no_image.layout_mobile_aside .element .bild div:last-child { margin-left: 0.2em; }
1621
1622	body .T5277.meta-teaser-layout-reverse.layout_mobile_aside .element { flex-direction: column-reverse; }
1623	body .T5277.meta-teaser-layout-reverse.layout_mobile_aside .element { flex-direction: row-reverse; }
1624
1625	.T5277.meta-teaser-text-padding-large.layout_mobile_aside .element .metateaser-content { padding: 0 0 0 3rem; }
1626	.T5277.meta-teaser-text-padding-large.meta-teaser-layout-reverse.layout_mobile_aside .element .metateaser-content { padding: 0 3rem 0 0; }
1627	
1628	body .T5277.meta-teaser-text-huge .metateaser-content .teaser-name { font-size: 1.2em !important;}
1629
1630	.T5277.display_mobile_slider .outer {
1631		margin: 0 -1em;
1632	}
1633
1634	.T5277.display_mobile_slider .outer.show_arrows:hover .slider-arrows { display: none !important; }
1635	.T5277.display_mobile_grid .slider-arrows { display: none !important; }
1636
1637
1638	.T5277.display_mobile_slider .elements .element { 
1639		min-width: auto;
1640		max-width: none; 
1641		margin-right: 0;
1642		scroll-snap-align: start;
1643		width: calc( ( 100% / var(--cols-mobile) ) )
1644	}
1645	.T5277.display_mobile_slider .elements .element:first-child {
1646		margin-left: var(--elements-padding);
1647		scroll-margin-left: var(--elements-padding);
1648	}
1649
1650	
1651	.T5277.display_mobile_slider.slider_slice_1 .elements .element { 
1652		width: calc( ( ( 100% - var(--slice1) ) / var(--cols-mobile) ) - ( ( var(--elements-padding) / var(--cols-mobile) ) * 2 ) );
1653	}
1654
1655	.T5277.display_mobile_slider.slider_slice_2 .elements .element { 
1656		width: calc( ( ( 100% - var(--slice2) ) / var(--cols-mobile) ) - ( ( var(--elements-padding) / var(--cols-mobile) ) * 2 ) );
1657	}
1658
1659	
1660	.T5277.display_mobile_grid .elements { grid-template-columns: repeat(var(--cols-mobile), minmax(0, 1fr));  }
1661	
1662
1663	.T5277.display_mobile_slider .elements {
1664		overflow-x: scroll;
1665		overflow-y: visible;
1666		display: flex;
1667		scroll-snap-type: x mandatory;
1668		scroll-padding-left: var(--elements-padding);
1669	  	margin-left: 0;
1670	  	margin-right: 0;
1671	  	padding-bottom: 0;
1672	}
1673
1674
1675	.T5277.display_mobile_slider .elements:after {
1676		display: block;
1677		content: "";
1678		width: var(--elements-padding);
1679		scroll-snap-align: start;
1680		min-width: var(--elements-padding);
1681	}
1682
1683	.T5277.display_mobile_grid .elements .element {
1684		width: 100% !important;
1685		min-width: auto;
1686		max-width: none;
1687		margin: 0;
1688	}
1689
1690	body .T5277.meta-teaser-wave.cols_mobile_2 .element:nth-child(even) { transform: translateY(1.5rem); }
1691	body .T5277.meta-teaser-wave.cols_mobile_2 .elements { padding-bottom: 1.5rem; }
1692	body .T5277.meta-teaser-wave.cols_mobile_3 .element:nth-child(even) { transform: translateY(1.5rem); }
1693	body .T5277.meta-teaser-wave.cols_mobile_3 .elements { padding-bottom: 1.5rem; }
1694	body .T5277.meta-teaser-wave.cols_mobile_4 .element:nth-child(even) { transform: translateY(1.5rem); }
1695	body .T5277.meta-teaser-wave.cols_mobile_4 .elements { padding-bottom: 1.5rem; }
1696	body .T5277.meta-teaser-wave.cols_mobile_5 .element:nth-child(even) { transform: translateY(1.5rem); }
1697	body .T5277.meta-teaser-wave.cols_mobile_5 .elements { padding-bottom: 1.5rem; }
1698	body .T5277.meta-teaser-wave.cols_mobile_6 .element:nth-child(even) { transform: translateY(1.5rem); }
1699	body .T5277.meta-teaser-wave.cols_mobile_6 .elements { padding-bottom: 1.5rem; }
1700	body .T5277.meta-teaser-wave.cols_mobile_7 .element:nth-child(even) { transform: translateY(1.5rem); }
1701	body .T5277.meta-teaser-wave.cols_mobile_7 .elements { padding-bottom: 1.5rem; }
1702	body .T5277.meta-teaser-wave.cols_mobile_8 .element:nth-child(even) { transform: translateY(1.5rem); }
1703	body .T5277.meta-teaser-wave.cols_mobile_8 .elements { padding-bottom: 1.5rem; }
1704}
1705
1706
1707
1708
1709
1710/* Tablet and larger share the desktop layout rules. */
1711@container metateaser-content (width >= 768px) {
1712
1713
1714	.T5277.layout_aside .element {
1715		align-items: flex-start;
1716	}
1717
1718	.T5277.layout_over .element {
1719		flex-direction: column-reverse;
1720	}
1721
1722	.T5277.layout_aside .elements .element {
1723		flex-direction: row;
1724		flex-grow: 0;
1725		flex-shrink: 0;
1726	}
1727
1728	.T5277.layout_aside .elements .element .bild {
1729		width: 40%;
1730		flex-direction: row;
1731		flex-grow: 0;
1732		flex-shrink: 0;
1733	}
1734
1735	.T5277.layout_aside.ratio_portrait .elements .element .bild {
1736		width: 30%;
1737	}
1738
1739	.T5277.layout_aside_wide .elements .element .bild { width: 25%; }
1740	.T5277.layout_aside_wide.ratio_portrait .elements .element .bild { width: 20%; }
1741
1742	.T5277.layout_inside { 
1743		position: relative;
1744	}
1745
1746	.T5277.layout_inside .metateaser-content {
1747		position: absolute;
1748		top: 50%;
1749		transform: translateY(-50%);
1750		margin: 0;
1751	}
1752
1753	.T5277.layout_inside .metateaser-content .metateaser-content-text {
1754		display: flex;
1755		flex-wrap: wrap;
1756		flex-direction: column;
1757		align-items: flex-start;
1758	}
1759
1760	.T5277.layout_inside .metateaser-content .teaser-name {
1761		background-color: var(--layout-inside-background);
1762		display: inline;
1763		-webkit-box-decoration-break: clone;
1764		box-decoration-break: clone;
1765		white-space:pre-wrap;
1766		padding-right: 0.8rem; 
1767		padding-left: 0.8rem;;
1768	}
1769	
1770	.T5277.layout_below .element .metateaser-content {
1771		padding: 0.4rem 0 0 0;
1772	}
1773
1774	.T5277.layout_aside .element .metateaser-content {
1775		width: 100%;
1776		padding: 0 0.8rem 0 0.8rem;
1777	}
1778
1779
1780	.T5277.meta-teaser-content-gap .element .metateaser-content {
1781		padding: 0.9em 1em !important;
1782	}
1783
1784	.T5277.meta-teaser-content-gap-large .element .metateaser-content {
1785		padding: 2em 5rem !important;
1786	}
1787	
1788	.T5277.meta-teaser-content-gap-huge .element .metateaser-content {
1789		padding: 4em 15rem !important;
1790	}
1791	
1792
1793	.T5277.layout_aside:is(.bg_color) .element .metateaser-content {
1794		padding-top: 0.6rem;
1795		padding-bottom: 0.6rem;
1796	}
1797	.T5277.layout_aside.meta-teaser-content-reverse .element {
1798		flex-direction: row-reverse;
1799	}
1800
1801	.T5277.layout_inside.bg_color .element .metateaser-content {
1802		padding: 0;
1803	}
1804
1805	body .T5277.options_no_image.layout_aside .element .bild { position: absolute; top: 50%; right: 0.3rem; transform: translateY(-50%); display: flex; }
1806	body .T5277.options_no_image.layout_aside .element .bild :is(.status,.nr) { position: static;  font-size: 0.8em; }
1807	body .T5277.options_no_image.layout_aside .element .bild div:last-child { margin-left: 0.2em; }
1808
1809	body .T5277.meta-teaser-layout-reverse .element { flex-direction: column-reverse; }
1810	body .T5277.meta-teaser-layout-reverse.layout_aside .element { flex-direction: row-reverse; }
1811	
1812	
1813	.T5277.meta-teaser-text-padding-large.layout_aside .element .metateaser-content { padding: 0 0 0 3rem; }
1814	.T5277.meta-teaser-text-padding-large.meta-teaser-layout-reverse.layout_aside .element .metateaser-content { padding: 0 3rem 0 0; }
1815	
1816	
1817	body .T5277.meta-teaser-mobile-column.layout_aside .element { flex-direction: column; }
1818	body .T5277.meta-teaser-mobile-column.layout_aside.meta-teaser-layout-reverse .element { flex-direction: column-reverse; }
1819	body .T5277.meta-teaser-mobile-column.layout_aside .element .bild { width: 100%; }
1820	
1821	
1822	
1823	
1824	.T5277.display_desktop_slider .outer {
1825		--element_base: 100%;
1826	}
1827
1828
1829	.C420 .T5277.display_desktop_slider .outer {
1830		--element_base: calc( 100% - var(--margin-offset) );
1831	}
1832
1833	.C250 .T5277.display_desktop_slider .outer {
1834		--element_base: calc( 100% - var(--margin-offset) );
1835	}
1836
1837	.C350 .T5277.display_desktop_slider .outer {
1838		--element_base: calc( 100% - var(--margin-offset) );
1839	}
1840
1841	.C600 .T5277.display_desktop_slider .outer {
1842		--element_base: calc( 100% - var(--margin-offset) );
1843	}
1844
1845
1846
1847
1848	.T5277.display_desktop_slider .elements .element { 
1849		min-width: auto;
1850		max-width: none; 
1851		margin-right: 0;
1852		scroll-snap-align: start;
1853		width: calc( ( var(--element_base) / var(--cols-desktop) ) );
1854	}
1855	.T5277.display_desktop_slider.slider_slice_1 .elements .element { 
1856		width: calc( ( ( var(--element_base) - var(--slice1) ) / var(--cols-desktop) )  - ( ( var(--elements-padding) / var(--cols-desktop) ) * 2 ) );
1857	}
1858
1859	.T5277.display_desktop_slider.slider_slice_2 .elements .element { 
1860		width: calc( ( ( var(--element_base) - var(--slice2) ) / var(--cols-desktop) )  - ( ( var(--elements-padding) / var(--cols-desktop) ) * 2 ) );
1861	}
1862
1863	.T5277.display_desktop_grid .elements {
1864		margin-left: 0;
1865  		margin-right: 0;
1866	}
1867	.T5277.display_desktop_grid .elements { grid-template-columns: repeat(var(--cols-desktop), minmax(0, 1fr)); }
1868	
1869	
1870	.T5277.display_desktop_slider .elements {
1871		overflow-x: auto;
1872		overflow-y: visible;
1873		display: flex;
1874		scroll-snap-type: x mandatory;
1875	  	/* scroll-padding: 0; */
1876		scroll-padding-left: var(--elements-padding);
1877	  	margin-left: 0;
1878	  	margin-right: 0;
1879	}
1880
1881
1882
1883	.T5277.display_desktop_grid .elements .element {
1884		width: 100%;
1885		min-width: auto;
1886		max-width: none;
1887		margin: 0;
1888	}
1889
1890
1891
1892
1893
1894
1895
1896	body .T5277.meta-teaser-wave.cols_desktop_2 .element:nth-child(even) { transform: translateY(1.5rem); }
1897	body .T5277.meta-teaser-wave.cols_desktop_2 .elements { padding-bottom: 1.5rem; }
1898	body .T5277.meta-teaser-wave.cols_desktop_3 .element:nth-child(even) { transform: translateY(1.5rem); }
1899	body .T5277.meta-teaser-wave.cols_desktop_3 .elements { padding-bottom: 1.5rem; }
1900	body .T5277.meta-teaser-wave.cols_desktop_4 .element:nth-child(even) { transform: translateY(1.5rem); }
1901	body .T5277.meta-teaser-wave.cols_desktop_4 .elements { padding-bottom: 1.5rem; }
1902	body .T5277.meta-teaser-wave.cols_desktop_5 .element:nth-child(even) { transform: translateY(1.5rem); }
1903	body .T5277.meta-teaser-wave.cols_desktop_5 .elements { padding-bottom: 1.5rem; }
1904	body .T5277.meta-teaser-wave.cols_desktop_6 .element:nth-child(even) { transform: translateY(1.5rem); }
1905	body .T5277.meta-teaser-wave.cols_desktop_6 .elements { padding-bottom: 1.5rem; }
1906	body .T5277.meta-teaser-wave.cols_desktop_7 .element:nth-child(even) { transform: translateY(1.5rem); }
1907	body .T5277.meta-teaser-wave.cols_desktop_7 .elements { padding-bottom: 1.5rem; }
1908	body .T5277.meta-teaser-wave.cols_desktop_8 .element:nth-child(even) { transform: translateY(1.5rem); }
1909	body .T5277.meta-teaser-wave.cols_desktop_8 .elements { padding-bottom: 1.5rem; }
1910
1911}
1912
1913/* Tablet: 768px to 999px available content width */
1914@container metateaser-content (768px <= width < 1000px) {
1915	.T5277.display_tablet_grid .elements {
1916		display: grid;
1917		overflow: visible;
1918		flex-wrap: nowrap;
1919		scroll-snap-type: none;
1920		margin-left: 0;
1921		margin-right: 0;
1922		grid-template-columns: repeat(var(--cols-tablet), minmax(0, 1fr));
1923	}
1924
1925	.T5277.display_tablet_grid .elements .element {
1926		width: 100%;
1927		min-width: auto;
1928		max-width: none;
1929		margin: 0;
1930	}
1931
1932	.T5277.display_tablet_grid .elements::after {
1933		display: none;
1934	}
1935
1936	.T5277.display_tablet_grid .slider-arrows {
1937		display: none !important;
1938	}
1939
1940	.T5277.display_tablet_slider .outer {
1941		--element_base: 100%;
1942	}
1943
1944	.C420 .T5277.display_tablet_slider .outer,
1945	.C250 .T5277.display_tablet_slider .outer,
1946	.C350 .T5277.display_tablet_slider .outer,
1947	.C600 .T5277.display_tablet_slider .outer {
1948		--element_base: calc(100% - var(--margin-offset));
1949	}
1950
1951	.T5277.display_tablet_slider .elements {
1952		display: flex;
1953		flex-wrap: nowrap;
1954		overflow-x: auto;
1955		overflow-y: visible;
1956		grid-template-columns: none;
1957		scroll-snap-type: x mandatory;
1958		scroll-padding-left: var(--elements-padding);
1959		margin-left: 0;
1960		margin-right: 0;
1961	}
1962
1963
1964
1965	.T5277.display_tablet_slider .elements .element {
1966		min-width: auto;
1967		max-width: none;
1968		margin-right: 0;
1969		scroll-snap-align: start;
1970		width: calc(var(--element_base) / var(--cols-tablet));
1971	}
1972
1973	.T5277.display_tablet_slider.slider_slice_1 .elements .element {
1974		width: calc(((var(--element_base) - var(--slice1)) / var(--cols-tablet)) - ((var(--elements-padding) / var(--cols-tablet)) * 2));
1975	}
1976
1977	.T5277.display_tablet_slider.slider_slice_2 .elements .element {
1978		width: calc(((var(--element_base) - var(--slice2)) / var(--cols-tablet)) - ((var(--elements-padding) / var(--cols-tablet)) * 2));
1979	}
1980}
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995.T5277 .element.hidden, .T5277 .element.offpage {
1996	display: none;
1997}
1998
1999
2000.T5277 .status {
2001	position: absolute;
2002	right: 0.3rem;
2003	top: 0.4rem;
2004	background-color: #fff;
2005	font-size: var(--font-size-status);
2006	padding: 0.05rem 0.3rem 0.05rem 0.3rem;	
2007	border-radius: 0.5rem;
2008}
2009
2010.T5277 .open .status {	background-color: var(--color-open); color: #fff; }
2011.T5277 .geoeffnet .status {	background-color: var(--color-open); color: #fff; }
2012.T5277 .begehbar .status {	background-color: var(--color-open); color: #fff; }
2013.T5277 .befahrbar .status {	background-color: var(--color-open); color: #fff; }
2014.T5277 .in-betrieb .status {	background-color: var(--color-open); color: #fff; }
2015
2016.T5277 .partly .status { background-color: var(--color-partly); color: #fff; }
2017.T5277 .bedingt-begehbar .status { background-color: var(--color-partly); color: #fff; }
2018.T5277 .bedingt-befahrbar .status { background-color: var(--color-partly); color: #fff; }
2019.T5277 .teilweise-geoeffnet .status { background-color: var(--color-partly); color: #fff; }
2020.T5277 .in-vorbereitung .status { background-color: var(--color-pending); color: #fff; }
2021
2022.T5277 .zusatz .status { background-color: var(--color-warning); color: #fff; }
2023.T5277 .closed .status { background-color: var(--color-closed); color: #fff; }
2024.T5277 .nicht-begehbar .status { background-color: var(--color-closed); color: #fff; }
2025.T5277 .nicht-befahrbar .status { background-color: var(--color-closed); color: #fff; }
2026.T5277 .belegt .status { background-color: var(--color-closed); color: #fff; }
2027.T5277 .geschlossen .status { background-color: var(--color-closed); color: #fff; }
2028.T5277 .ausser-betrieb .status {	background-color: var(--color-closed); color: #fff; }
2029
2030.T5277 .achtung .status { background-color: var(--color-warning); color: #fff; }
2031.T5277 .sterne .status { background-color: #fff; color: #FDB50A; }
2032
2033.T5277 .stoerung .status { background-color: var(--color-disturbance); color: #fff; }
2034
2035.T5277 .tag_image {
2036	width: 1.5em;
2037  	margin-right: 0.5em;
2038}
2039.T5277 .tag_image img {
2040	width: 100%; height: auto;
2041}
2042
2043.T5277 .with_tag_image {
2044	display: flex;
2045	align-items: center;
2046}
2047
2048.T5277 .nr {
2049	position: absolute;
2050	left: 0.3rem;
2051	top: 0.4rem;
2052	background-color: #fff
2052;
2053	font-size: var(--font-size-status);
2054	padding: 0.05rem 0.3rem 0.05rem 0.3rem;	
2055	border-radius: 0.5rem;
2056}
2057
2058.T5277 .element.open .status { background-color: var(--color-open); color: #fff; }
2059.T5277 .element.warning .status { background-color: var(--color-warning); color: #fff; }
2060.T5277 .element.close .status { background-color: var(--color-closed); color: #fff; }
2061
2062/* Es gibt den Fall dass sowohl open als auch close gesetzt wird. Dann hat open Vorrang */
2063.T5277 .element.open.close .status { background-color: var(--color-open); color: #fff; }
2064
2065.T5277 .metateaser-content {
2066	padding-block: 0.8rem;
2067}
2068.T5277.meta-teaser-content-gap-large .metateaser-content {
2069	padding-block: 3rem;
2070}
2071
2072
2073
2074
2075.T5277 .metateaser-content .teaser-subheadline {
2076	color: #999;
2077	font-size: 0.8em;
2078	line-height: 1.3;
2079	margin: 0.2rem 0 0 0rem;
2080	word-wrap: break-word;
2081	overflow-wrap: break-word;
2082	-webkit-hyphens: auto;
2083	-moz-hyphens: auto;
2084	hyphens: auto;
2085	text-wrap: balance;
2086	
2087	display: -webkit-box;
2088  	-webkit-line-clamp: 1;
2089	-webkit-box-orient: vertical;
2090	overflow: hidden;
2091}
2092
2093.T5277 .metateaser-content .teaser-date {
2094	margin-top: 0.4em;
2095	font-size: 0.9em;
2096	line-height: 1;
2097	color: #444;
2098}
2099
2100
2101.T5277 .metateaser-content .teaser-name {
2102	font-size: 1em;
2103	line-height: 1.25;
2104	margin: 0.1rem 0 0 0;
2105	word-wrap: break-word;
2106	overflow-wrap: break-word;
2107	-webkit-hyphens: auto;
2108	-moz-hyphens: auto;
2109	hyphens: auto;
2110	text-wrap: balance;
2111	text-decoration: none;
2112}
2113
2114.T5277 .metateaser-content .teaser-status_info {
2115	font-size: 0.7rem;
2116	font-style: oblique;
2117	line-height: 1.1;
2118	margin: 0.2em 0 0.2em 0;
2119	color: #f80;
2120	word-wrap: break-word;
2121	overflow-wrap: break-word;
2122	-webkit-hyphens: auto;
2123	-moz-hyphens: auto;
2124	hyphens: auto;
2125	text-wrap: balance;
2126}
2127
2128.T5277 .metateaser-content .clamp {
2129	display: -webkit-box;
2130	-webkit-line-clamp: 3;
2131	-webkit-box-orient: vertical; 
2132	overflow: hidden;
2133}
2134
2135.T5277 .metateaser-content .clamp.clamp1 { -webkit-line-clamp: 1; }
2136.T5277 .metateaser-content .clamp.clamp2 { -webkit-line-clamp: 2; }
2137.T5277 .metateaser-content .clamp.clamp3 { -webkit-line-clamp: 3; }
2138.T5277 .metateaser-content .clamp.clamp4 { -webkit-line-clamp: 4; }
2139.T5277 .metateaser-content .clamp.clamp5 { -webkit-line-clamp: 5; }
2140.T5277 .metateaser-content .clamp.clamp6 { -webkit-line-clamp: 6; }
2141
2142.T5277 .metateaser-content .badge_box_empty { height:2em; width:100%; }
2143.T5277 .metateaser-content .badge_box { position:absolute; bottom:.5em; right:.5em; left:1em; text-align:right; }
2144.T5277 .metateaser-content .badge_box .tag_image { display: inline-block; }
2145
2146.T5277 .metateaser-content .badge_box .teaser-subheadline.oeff {float: left; width: 100%; text-align: left; margin-bottom:0.5em; }
2147
2148.T5277 .metateaser-content .teaser-intro {
2149	color: #666;
2150	font-size: 1em;
2151	line-height: 1.2;
2152	margin: 0.35em 0 0 0;
2153	word-wrap: break-word;
2154	overflow-wrap: break-word;
2155	-webkit-hyphens: auto;
2156	-moz-hyphens: auto;
2157	hyphens: auto;
2158	text-wrap: balance;
2159
2160}
2161
2162
2163.T5277 .metateaser-content .text_teaser {
2164	color: #000;
2165	font-size: 0.85em;
2166	line-height: 1.3;
2167	margin: 0.5em 0 0.5em 0rem;
2168	-webkit-hyphens: auto;
2169	-moz-hyphens: auto;
2170	hyphens: auto;
2171	text-wrap: balance;
2172}
2173.T5277 .metateaser-content .text_teaser ul { margin: 0 0 0.5em 0; }
2174.T5277 .metateaser-content .text_teaser p { margin: 0 0 0.5em 0; }
2175.T5277 .metateaser-content .text_teaser p:last-child { margin: 0; }
2176
2177.T5277 .metateaser-content .text_teaser .seite .intro {
2178	color: #807c7c;
2179	font-size: 0.75em;
2180	line-height: 1.3;
2181	margin: 0.5em 0 0.5em 0rem;
2182	-webkit-hyphens: auto;
2183	-moz-hyphens: auto;
2184	hyphens: auto;
2185	text-wrap: balance;
2186}
2187
2188.T5277 .metateaser-content a:not(.button) {
2189	color: var( --bgcolor-button, "#999");
2190}
2191
2192.T5277 .metateaser-content a.tel {
2193	white-space: nowrap;
2194	font-size: 0.9em;
2195}
2196
2197
2198/* --- Button --- */
2199
2200.T5277 .metateaser-content .metateaser-buttons {
2201	margin-top: 0.5em;
2202	display: flex;
2203	justify-content: flex-end;
2204	gap: 0.5em;
2205}
2206.T5277 .metateaser-content .metateaser-button.default {
2207	background: var( --bgcolor-button, "#999");
2208	color: #fff;
2209	font-size: 0.8em;
2210	white-space: nowrap;
2211	padding: 0.2em 1em;
2212	border-radius: 0.3em;
2213	cursor: pointer;
2214	text-decoration: none;
2215}
2216
2217
2218
2219
2220/* --- skeleton --- */
2221
2222.T5277 .element.skeleton {
2223	pointer-events: none;
2224}
2225
2226.T5277 .element.skeleton .bild,
2227.T5277 .element.skeleton .teaser-name,
2228.T5277 .element.skeleton .teaser-intro {
2229	position: relative;
2230	overflow: hidden;
2231}
2232
2233.T5277 .element.skeleton .teaser-name,
2234.T5277 .element.skeleton .teaser-intro {
2235	color: #bbb !important;
2236	letter-spacing: -1px;
2237}
2238
2239.T5277 .element.skeleton .bild::after,
2240.T5277 .element.skeleton .teaser-name::after,
2241.T5277 .element.skeleton .teaser-intro::after {
2242	content: "";
2243	position: absolute;
2244	inset: 0;
2245	transform: translateX(-100%);
2246	background: linear-gradient(
2247		90deg,
2248		transparent,
2249		rgba(255, 255, 255, 0.55),
2250		transparent
2251	);
2252	animation: meta-teaser-skeleton-loading 1.4s ease-in-out infinite;
2253}
2254
2255.T5277 .element.skeleton .teaser-intro::after {
2256	animation-delay: 0.12s;
2257}
2258
2259@keyframes meta-teaser-skeleton-loading {
2260	100% {
2261		transform: translateX(100%);
2262	}
2263}
2264
2265@media (prefers-reduced-motion: reduce) {
2266	.T5277 .element.skeleton .bild::after,
2267	.T5277 .element.skeleton .teaser-name::after,
2268	.T5277 .element.skeleton .teaser-intro::after {
2269		animation: none;
2270		display: none;
2271	}
2272}
2273
2274
2275
2276/* --- Anordnung Text --- */
2277
2278.T5277.bg_color .element .metateaser-content {
2279	padding: 0.9em 1em;
2280}
2281
2282
2283/* --- Vertikal  --- */
2284.T5277.text_justify .element .metateaser-content {
2285	flex: 1;
2286	flex-direction: column;
2287    justify-content: space-between;
2288}
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298.T5277 .element .teaser-name.default_font {
2299	font-weight: 600;
2300}
2301
2302.T5277 .element .price {
2303	margin-top: 0.4em;
2304	display: flex;
2305	font-size: 1em;
2306	font-weight: bold;
2307	align-items: center;
2308    gap: 0.4em;
2309    justify-content: space-between;
2310	
2311}
2312
2313.T5277 .element .price .price-info {
2314	opacity: 0.7;
2315	font-size: max(0.7em,13px);
2316	font-weight: normal;
2317	hyphens: auto;	
2318}
2319
2320.T5277 .element .price .price-amount {
2321	white-space: nowrap;
2322	font-weight: bold;
2323	font-size: 1em;
2324	color: #0076BA;
2325}
2326
2327
2328@container metateaser-content (width >= 567px) {
2329	.T5277 .element .price {  gap: 0.5em; }
2330	.T5277 .element .price .price-info { font-size: max(0.85em,14px); }
2331}
2332
2333
2334
2335
2336.T5277 .element .price b {
2337	color: #000;
2338}
2339
2340.T5277 .metateaser-content > div:first-child { margin-top: 0; }
2341
2342.T5277 .metateaser-content .text_teaser b, .T5277 .metateaser-content .text_teaser strong { font-weight: bold; }
2343
2344
2345/* Grouping */
2346.T5277 .with_groups { flex-direction: column; }
2347.T5277 .with_groups .grouping_container {
2348	display: grid;
2349    background-color: transparent;
2350    margin: 0;
2351}
2352.T5277 .with_groups .grouping_container.hidden { display: none; }
2353
2354.T5277 .with_groups .maingroup {
2355	margin: 0.75rem 0 0 0;
2356	grid-column: 1 / -1;
2357	gap: 1em;
2358	flex-direction: column !important;
2359	border: 0px solid transparent;
2360}
2361
2362.T5277 .with_groups .maingroup .bild { width: 100% !important; }
2363.T5277 .with_groups .maingroup .bild img { aspect-ratio: 4/3 !important;  }
2364
2365.T5277 .with_groups .maingroup .meta-teaser-images { 
2366	width: 100%;
2367	scroll-behavior: smooth;
2368	overflow: auto;
2369	scroll-snap-type: x mandatory;
2370	-ms-overflow-style: none;
2371	scrollbar-width: none;
2372	display: flex;
2373	flex-flow: row nowrap;
2374}
2375
2376.T5277 .with_groups .maingroup .meta-teaser-images picture { 
2377	flex: 0 auto !important;
2378	flex-grow: 0 !important;
2379	flex-shrink: 0 !important;
2380	scroll-snap-align: center;
2381	width: 100%;
2382}
2383
2384.T5277 .with_groups .maingroup .metateaser-content {
2385	padding: 0 !important;
2386}
2387
2388.T5277 .with_groups .grouping_container .element {
2389	flex-grow:  1;
2390	margin-right: 0;
2391	min-width: calc(100% - 5rem - 0.4rem);
2392	width:  auto;
2393}
2394.T5277 .with_groups .grouping_container.fullsize { background-color: #f2f2f2; }
2395.T5277 .with_groups .grouping_container.fullsize .element { width:100vw; }
2396
2397
2398
2399
2400
2401.T5277 .bookmark_button_wrapper {
2402	display: flex;
2403	justify-content: flex-end;
2404/*	margin-top: 0.5rem;*/
2405}
2406
2407
2408
2409/* Kein Bild */
2410
2411body .T5277.options_no_image .element .bild { position: initial; flex: unset; width: auto !important; }
2412body .T5277.options_no_image .element .bild img { display: none; }
2413body .T5277.options_no_image .element { gap: 0.5em; }
2414body .T5277.options_no_image .element .metateaser-content { flex: 7; }
2415body .T5277.options_no_image .element .nr { right: 0.3rem; left: auto; }
2416/*body .T5277.options_no_image .element .subheadline { display: none; }*/
2417
2418
2419
2420
2421body .T5277.meta-teaser-pulldown .element.meta-teaser-pulldown-defined .metateaser-content:after { content: "+"; display: block; position: absolute; left: 50%; bottom: -0.2em; transform: translateY(-50%); font-size: 1.5em; }
2422body .T5277.meta-teaser-pulldown .element.meta-teaser-pulldown-defined .metateaser-content .teaser-intro { padding-top: 0em; }
2423body .T5277.meta-teaser-pulldown .element.meta-teaser-pulldown-defined .metateaser-content .meta-teaser-data  { padding-bottom: 1.5em; }
2424
2425body .T5277.meta-teaser-pulldown .element.element.meta-teaser-pulldown-open .metateaser-content:after { content: "-" }
2426
2427.meta-teaser-pulldown-content { display: none; }
2428.element.meta-teaser-pulldown-open + .meta-teaser-pulldown-content { 
2429	display: block; 
2430	padding: 1em;
2431}
2432
2433/* --- Darstellungsoptionen ---------------------------------------------------------- */
2434
2435
2436
2437@container metateaser-content (width >= 1200px) {
2438	.T5277.meta-teaser-center .elements { justify-content: flex-start; }
2439}
2440
2441body .T5277.meta-teaser-radius-light .element { border-radius: 0.4em; overflow: hidden; }
2442body .T5277.meta-teaser-radius-10 .element { border-radius: 0.7em; overflow: hidden; }
2443body .T5277.meta-teaser-radius-2 .element { border-radius: 2%; overflow: hidden; }
2444
2445/* Listenansicht mit kleinem Abstand zwischen Elementen, wenig Padding und Trennstrichen */
2446body .T5277.meta-teaser-list-view .elements { gap: 0.2em var(--elements-padding) !important; }
2447body .T5277.meta-teaser-list-view .element { border-top: 1px solid #0002; }
2448body .T5277.meta-teaser-list-view .metateaser-content { padding: 0.3em 0.4em !important; }
2449body .T5277.meta-teaser-list-view .element .icon img { width: 1.3em; }
2450body .T5277.meta-teaser-list-view .element .icon image, body .T5277.meta-teaser-list-view .element .icon svg { width: 2em; }
2451
2452body .T5277.meta-teaser-image-radius-light .bild { border-radius: 0.7em; overflow: hidden; }
2453body .T5277.meta-teaser-image-radius-2 .bild { border-radius: 2%; overflow: hidden; }
2454body .T5277.meta-teaser-image-radius-10 .bild { border-radius: 10%; overflow: hidden; }
2455body .T5277.meta-teaser-image-radius-25 .bild { border-radius: 25%; overflow: hidden; }
2456body .T5277.meta-teaser-image-radius-50 .bild { border-radius: 50%; overflow: hidden; }
2457
2458body .T5277.meta-teaser-text-align-center .metateaser-content { width: 100%; text-align: center; }
2459body .T5277.meta-teaser-text-align-center .metateaser-content-text { display: block !important; }
2460
2461body .T5277.meta-teaser-image-padding .bild { padding: 1em; }
2462body .T5277.meta-teaser-image-padding-small .bild {
2463	margin: 0.2em;
2464    width: calc(100% - 0.4em);
2465}
2466body .T5277.meta-teaser-image-maxwidth .bild img { max-width:100%; width:auto; margin-left: auto; margin-right: auto; }
2467
2468
2469
2470body .T5277.meta-teaser-text-vertical-low .metateaser-content { padding-bottom: 7% !important; display: flex; flex-direction: column; justify-content:  flex-end; height: 100%; }
2471body .T5277.meta-teaser-text-vertical-low .element.has-button .metateaser-content {  padding-top: 2em; padding-bottom: 2em; }
2472
2473body .T5277.meta-teaser-text-vertical-center .metateaser-content { display: flex; flex-direction: column; justify-content: center; height: 100%; }
2474body .T5277.meta-teaser-text-vertical-center .element.has-button .metateaser-content { padding-top: 2em; padding-bottom: 2em; }
2475
2476body .T5277.meta-teaser-text-vertical-bottom .metateaser-content { display: flex; flex-direction: column; justify-content: flex-end; height: 100%; }
2477body .T5277.meta-teaser-text-vertical-bottom .element.has-button .metateaser-content { padding-top: 2em; padding-bottom: 2em; }
2478
2479body .T5277.meta-teaser-text-large .metateaser-content { font-size: 1.2em; }
2480body .T5277.meta-teaser-text-large .metateaser-content .teaser-name { font-size: 1.2em; }
2481body .T5277.meta-teaser-text-large.bg_color .metateaser-content { padding: 1.3em !important; }
2482
2483body .T5277.meta-teaser-text-huge .metateaser-content { font-size: 1.6em; }
2484body .T5277.meta-teaser-text-huge .metateaser-content .teaser-name { font-size: 1.5em; font-weight: 500;}
2485body .T5277.meta-teaser-text-huge .metateaser-content .teaser-intro {font-size: 0.85em;}
2486body .T5277.meta-teaser-text-huge .metateaser-content .text_teaser {font-size: 0.75em;}
2487
2488body .T5277.meta-teaser-text-small .metateaser-content { font-size: 0.8em; }
2489body .T5277.meta-teaser-text-small.bg_color .metateaser-content { padding: 0.4rem 0.7rem !important; }
2490
2491
2492
2493body .T5277.meta-teaser-line-bottom .element {
2494	padding-bottom: 1em;
2495	border-bottom: 2px solid #000 !important;
2496	border-bottom-width: 2px !important;
2497}
2498
2499body .T5277.meta-teaser-headline-inside .teaser-name {
2500	
2501	
2502	position: absolute;
2503	display: flex;
2504	font-size: 2em;
2505	flex-direction: column;
2506	justify-content: center;
2507	text-align: center;
2508	left: 0;
2509	right: 0;
2510	top: 0;
2511	color: #fff;
2512}
2513
2514.T5277.ratio_landscape.meta-teaser-headline-inside .teaser-name { aspect-ratio: 4 / 3; }
2515.T5277.ratio_panorama.meta-teaser-headline-inside .teaser-name { aspect-ratio: 4 / 2; }
2516.T5277.ratio_ultrawide.meta-teaser-headline-inside .teaser-name { aspect-ratio: 3 / 1; }
2517.T5277.ratio_portrait.meta-teaser-headline-inside .teaser-name { aspect-ratio: 3 / 4; }
2518.T5277.ratio_square.meta-teaser-headline-inside .teaser-name { aspect-ratio: 1 / 1; }
2519
2520
2521
2522body .T5277.meta-teaser-hover-dark picture { overflow: hidden; }
2523body .T5277.meta-teaser-hover-dark .element img { transition: filter 0.4s ease, transform 0.4s ease; }
2524body .T5277.meta-teaser-hover-dark .element:hover img { filter: brightness(0.6); transform: scale(1.1); }
2525body .T5277.meta-teaser-hover-dark.meta-teaser-headline-inside .element .teaser-name { transition: color 0.6s ease, text-shadow 0.6s ease; text-shadow: 0.1em 0.1em 1em #fff; overflow: initial; }
2526body .T5277.meta-teaser-hover-dark.meta-teaser-headline-inside .element:hover .teaser-name { color: #fff; text-shadow: 0.1em 0.1em 1em #000; }
2527
2528body .T5277.meta-teaser-hover-bright picture { overflow: hidden; }
2529body .T5277.meta-teaser-hover-bright .element img { filter: brightness(0.6); transition: filter 0.4s ease, transform 0.4s ease; }
2530body .T5277.meta-teaser-hover-bright .element:hover img { filter: brightness(1); transform: scale(1.1); }
2531body .T5277.meta-teaser-hover-bright.meta-teaser-headline-inside .element .teaser-name { color: #fff; transition: color 0.6s ease, text-shadow 0.6s ease; text-shadow: 0.1em 0.1em 0.5em #0007; overflow: initial; }
2532body .T5277.meta-teaser-hover-bright.meta-teaser-headline-inside .element:hover .teaser-name { color: #fff; text-shadow: 0.1em 0.1em 1em #000f; }
2533
2534
2535
2536body .T5277.meta-teaser-stretch .element { align-items: stretch; }
2537body .T5277.meta-teaser-stretch .metateaser-content { flex: 2; display: flex; justify-content: space-between; flex-direction: column;  }
2538body .T5277.meta-teaser-stretch .metateaser-content .text-teaser  { flex: 3; }
2539
2540body .T5277.meta-teaser-text-no-hyphens .metateaser-content .teaser-name { hyphens: none; }
2541body .T5277.meta-teaser-text-no-hyphens .metateaser-content .teaser-intro { hyphens: none; }
2542
2543
2544
2545body .T5277.meta-teaser-nomargin .elements { gap: 0 !important; }
2546body .T5277.meta-teaser-gap-tiny .elements { gap: calc( var(--elements-padding) / 4 ) !important; }
2547body .T5277.meta-teaser-gap-small .elements { gap: calc( var(--elements-padding) / 2 ) !important; }
2548body .T5277.meta-teaser-gap-large .elements { gap: calc( var(--elements-padding) * 2 ) !important; }
2549body .T5277.meta-teaser-gap-huge .elements { gap: calc( var(--elements-padding) * 4 ) !important; }
2550
2551body .T5277.meta-teaser-rarr .element .metateaser-content:after { content: "\203A"; display: block; position: absolute; top: 50%; right: 0.6em; transform: translateY(-50%); font-size: 1.3em; }
2552body .T5277.meta-teaser-rarr .element .metateaser-content .teaser-name { padding-right: 1em; }
2553body .T5277.meta-teaser-rarr .element .metateaser-content .teaser-intro { padding-right: 1em; }
2554body .T5277.meta-teaser-rarr .element .metateaser-content .meta-teaser-data  { padding-right: 1em; }
2555
2556body .T5277.meta-teaser-largebutton .element.has-button .metateaser-content { padding-bottom: 0; }
2557body .T5277.meta-teaser-largebutton .metateaser-buttons { position: static; margin: 0.5em 0 0 0; }
2558body .T5277.meta-teaser-largebutton .metateaser-buttons.button_count2 {	display: flex; justify-content: space-between; }
2559body .T5277.meta-teaser-largebutton .metateaser-buttons .metateaser-button { font-size: 1em; padding: 0.4em 0; text-align: center; }
2560body .T5277.meta-teaser-largebutton .metateaser-buttons.button_count1 .metateaser-button { width: 100%; }
2561body .T5277.meta-teaser-largebutton .metateaser-buttons.button_count2 .metateaser-button {	width: 49%;}
2562
2563body .T5277.meta-teaser-buttons-simple .metateaser-content .metateaser-button { background: none; color: inherit; padding: 0; }
2564body .T5277.meta-teaser-buttons-simple .metateaser-content .metateaser-button:before { content: "\203A"; margin-right: 0.2em; }
2565
2566body .T5277.meta-teaser-buttons-left .metateaser-content .metateaser-buttons { justify-content: flex-start; }
2567
2568body .T5277.meta-teaser-border .element { border: 1px solid #0002;}
2569body .T5277.meta-teaser-border .element .metateaser-content { padding: 0.9em 1em; }
2570
2571body .T5277.meta-teaser-shadow .element { box-shadow: 0.3em 0.3em 1em #0002; }
2572
2573
2574@container metateaser-content (width < 768px) {
2575	.T5277.meta-teaser-border-bottom.display_mobile_grid .element { border-bottom: 1px solid #0002; padding-bottom: 1em; }
2576	.T5277.meta-teaser-border-bottom.display_mobile_slider .element { border-right: 1px solid #0002; }
2577}
2578
2579@container metateaser-content (768px <= width < 1000px) {
2580	.T5277.meta-teaser-border-bottom.display_tablet_grid .element { border-bottom: 1px solid #0002; padding-bottom: 1em; }
2581	.T5277.meta-teaser-border-bottom.display_tablet_slider .element { border-right: 1px solid #0002; }
2582}
2583
2584@container metateaser-content (width >= 1000px) {
2585	.T5277.display_desktop_grid .slider-arrows { display: none !important; }
2586	.T5277.meta-teaser-border-bottom.display_desktop_grid .element { border-bottom: 1px solid #0002; padding-bottom: 1em; }
2587	.T5277.meta-teaser-border-bottom.display_desktop_slider .element { border-right: 1px solid #0002; }
2588}
2589
2590body .T5277.meta-teaser-border-bottom .element:last-child { border-bottom-width: 0 !important; border-right-width: 0 !important; }
2591
2592
2593body .T5277.meta-teaser-slidein .element .metateaser-content .teaser-name { padding-right: 1em; }
2594body .T5277.meta-teaser-slidein .element .metateaser-content .text_teaser { display: none; }
2595body .T5277.meta-teaser-slidein .element .metateaser-content:after { content: "\203A"; display: block; position: absolute; top: 0.56rem; right: 0.6em; transform: rotate(90deg); font-size: 1.3em; }
2596
2597body .T5277.meta-teaser-slidein .element.slidein-open .metateaser-content:after { transform: rotate(-90deg) translateY(-0.2rem); }
2598body .T5277.meta-teaser-slidein .element.slidein-open .metateaser-content .text_teaser { display: block; }
2599
2600body .T5277.meta-teaser-counter .meta-teaser-images:after { 
2601	
2602	content: attr(data-counter);
2603	display: block;
2604
2605	position: absolute;
2606	bottom: 0.3em;
2607	left: 0.3em;
2608	z-index: 10;
2609
2610	font-size: 3.5em;
2611	line-height: 1;
2612	color: rgba(255,255,255,0.9);
2613	text-shadow: 0 0 0.1em rgba(0,0,0,0.4);
2614	font-weight: bold;
2615
2616}
2617
2618body .T5277.meta-teaser-clip-teaser .element {
2619	--clip-offset: 40px;
2620    clip-path: polygon(0% 0%, 100% 0%, 100% calc(100% - var(--clip-offset)), c
2620alc(100% - var(--clip-offset)) 100%, 0% 100%);
2621}
2622
2623body .T5277.meta-teaser-clip-image .element .bild {
2624	--clip-offset: 40px;
2625    clip-path: polygon(0% 0%, 100% 0%, 100% calc(100% - var(--clip-offset)), calc(100% - var(--clip-offset)) 100%, 0% 100%);
2626}
2627
2628body .T5277.meta-teaser-fullscreen-image .element .bild {
2629	width: 100vw;
2630    margin-left: calc((100vw - 100%) / -2);
2631}
2632
2633
2634@supports not (container-type: inline-size) {
2635
2636    /* Mobile: Basis */
2637    .T5277.display_mobile_grid .elements {
2638        grid-template-columns:
2639            repeat(var(--cols-mobile, 1), minmax(0, 1fr));
2640    }
2641
2642    @media (min-width: 768px) {
2643        .T5277.display_tablet_grid .elements {
2644            grid-template-columns:
2645                repeat(var(--cols-tablet, 1), minmax(0, 1fr));
2646        }
2647    }
2648
2649    @media (min-width: 1024px) {
2650        .T5277.display_desktop_grid .elements {
2651            grid-template-columns:
2652                repeat(var(--cols-desktop, 1), minmax(0, 1fr));
2653        }
2654    }
2655}
2656
2657/* First Picture is wider in Media Galery */
2658
2659    /* First Element wider */
2660    .T5277.meta-teaser-first-large.display_desktop_slider
2661    .elements > .element:first-child {
2662        width: calc((var(--element_base) / var(--cols-desktop)) * 1.25);
2663        flex-shrink: 0;
2664    }
2665
2666    /* Giving the same height to all elements */
2667    .T5277.meta-teaser-first-large.display_desktop_slider
2668    .elements {
2669        align-items: stretch;
2670    }
2671
2672    /* Slider needs to take on the height of its element.  */
2673    .T5277.meta-teaser-first-large.display_desktop_slider
2674    .element > .bild,
2675    .T5277.meta-teaser-first-large.display_desktop_slider
2676    .element > .bild > .simple_slider {
2677        height: 100%;
2678    }
2679
2680    /* The inner track must not become square */
2681    .T5277.meta-teaser-first-large.display_desktop_slider
2682    .simple_slider_track {
2683        height: 100%;
2684    }
2685
2686    /* Force the slider item to exactly match the available height. */
2687    .T5277.meta-teaser-first-large.display_desktop_slider
2688    .simple_slider_item {
2689  	    height: 100%;
2690        min-height: 0;
2691        aspect-ratio: auto;
2692    }
2693
2694    /* Make the picture fill the entire available space as well */
2695    .T5277.meta-teaser-first-large.display_desktop_slider
2696    .simple_slider_item > picture {
2697        display: block;
2698        width: 100%;
2699        height: 100%;
2700    }
2701
2702    /* Crop the image instead of stretching the aspect ratio based on the height */
2703    .T5277.meta-teaser-first-large.display_desktop_slider
2704    .simple_slider_item > picture > img {
2705        display: block;
2706        width: 100%;
2707        height: 100%;
2708        object-fit: cover;
2709	}
2710
2711/* MASONRY ALTERNATING Desktop: Masonry Mobile: normaler Teaser-Slider */
2712
2713.T5277.meta-teaser-masonry-alternating
2714.elements > .element .bild img {
2715    display: block;
2716    width: 100%;
2717    height: 100%;
2718    aspect-ratio: auto;
2719    object-fit: cover;
2720}
2721
2722
2723/* DESKTOP */
2724
2725@media (min-width: 769px) {
2726
2727    /* Masonry Grid */
2728    .T5277.meta-teaser-masonry-alternating.display_desktop_slider
2729    .elements {
2730        display: grid;
2731        grid-template-columns: repeat(3, minmax(0, 1fr));
2732        grid-auto-rows: 16px;
2733        grid-auto-flow: dense;
2734
2735        gap: var(--elements-padding);
2736
2737        overflow: visible;
2738        scroll-snap-type: none;
2739    }
2740
2741
2742    /* Elemente */
2743    .T5277.meta-teaser-masonry-alternating.display_desktop_slider
2744    .elements > .element {
2745        width: 100%;
2746        max-width: none;
2747        min-width: 0;
2748        margin: 0;
2749
2750        scroll-snap-align: none;
2751    }
2752
2753    .T5277.meta-teaser-masonry-alternating
2754    .elements > .element .bild,
2755
2756    .T5277.meta-teaser-masonry-alternating
2757    .elements > .element .simple_slider,
2758
2759    .T5277.meta-teaser-masonry-alternating
2760    .elements > .element .simple_slider_track,
2761
2762    .T5277.meta-teaser-masonry-alternating
2763    .elements > .element .simple_slider_item,
2764
2765    .T5277.meta-teaser-masonry-alternating
2766    .elements > .element picture {
2767        height: 100%;
2768    }
2769
2770    /* 1 – links oben */
2771    .T5277.meta-teaser-masonry-alternating
2772    .elements > .element:nth-child(6n + 1) {
2773        grid-column: 1;
2774        grid-row: span 14;
2775    }
2776
2777
2778    /* 2 – Mitte oben / groß */
2779    .T5277.meta-teaser-masonry-alternating
2780    .elements > .element:nth-child(6n + 2) {
2781        grid-column: 2;
2782        grid-row: span 26;
2783    }
2784
2785
2786    /* 3 – rechts oben */
2787    .T5277.meta-teaser-masonry-alternating
2788    .elements > .element:nth-child(6n + 3) {
2789        grid-column: 3;
2790        grid-row: span 18;
2791    }
2792
2793
2794    /* 4 – links unten / groß */
2795    .T5277.meta-teaser-masonry-alternating
2796    .elements > .element:nth-child(6n + 4) {
2797        grid-column: 1;
2798        grid-row: span 26;
2799    }
2800
2801
2802    /* 5 – Mitte unten */
2803    .T5277.meta-teaser-masonry-alternating
2804    .elements > .element:nth-child(6n + 5) {
2805        grid-column: 2;
2806        grid-row: span 14;
2807    }
2808
2809
2810    /* 6 – rechts unten */
2811    .T5277.meta-teaser-masonry-alternating
2812    .elements > .element:nth-child(6n + 6) {
2813        grid-column: 3;
2814        grid-row: span 22;
2815    }
2816}
2817
2818
2819/* MOBILE Masonry komplett zurücksetzen. .elements wird wieder horizontaler Slider. */
2820
2821@media (max-width: 768px) {
2822
2823    .T5277.meta-teaser-masonry-alternating
2824    .elements {
2825        display: flex;
2826        overflow-x: auto;
2827        overflow-y: hidden;
2828        scroll-snap-type: x mandatory;
2829        scroll-behavior: smooth;
2830        gap: var(--elements-padding);
2831        padding-inline: 20px;
2832        box-sizing: border-box;
2833        overscroll-behavior-x: contain;
2834    }
2835
2836    .T5277.meta-teaser-masonry-alternating
2837    .elements > .element {
2838        /* Wegen Padding nicht mehr starr 100% */
2839        flex: 0 0 calc(100% - 40px);
2840        width: calc(100% - 40px);
2841        min-width: calc(100% - 40px);
2842        max-width: calc(100% - 40px);
2843        margin: 0;
2844        scroll-snap-align: start;
2845        grid-column: auto;
2846        grid-row: auto;
2847    }
2848}
2849</style>
2850
2851<style type="text/css">
2852/* Meta/Detail */
2853.MetaDetail {
2854	--button_color: var(--signal_color);
2855}
2856.MetaDetail.hidden {
2857	display: none !important;
2858}
2859
2860.MetaDetail.standalone.hidden {
2861	display: block !important;
2862}
2863.MetaDetail.mobileview.hidden {
2864	display: block !important;
2865}
2866
2867.MetaDetail span.bold {
2868	font-weight: bold;
2869}
2870
2871/* Detail */
2872
2873.MetaDetailStandaloneBack {
2874	box-shadow: 0 -1em 1em #0001;
2875	padding: 0.5rem 1rem;
2876	margin: 2em auto 0 auto;
2877	max-width: 900px;
2878	text-decoration: none;
2879	color: #000;
2880	display: block;
2881}
2882
2883.MetaDetail.standalone {
2884	background: #fff;
2885	padding: 1rem;
2886	border-radius: 1rem;
2887	margin: 0 auto;
2888	font-size: 1.2em;
2889	max-width: 900px;
2890	box-shadow: 0 0 1em #0003;
2891}
2892
2893.MetaDetail.standalone.size1200,.MetaDetailStandaloneBack.size1200  {
2894	max-width: 1200px;
2895}
2896
2897.MetaDetail .content {
2898	--element_base: 100%;
2899	--margin-offset: 0em;
2900}
2901
2902.MetaDetail.standalone .content { padding-top: 1em; }
2903
2904
2905
2906
2907.MetaDetail .content .status_info { color: #f80; margin-bottom: 0.5em; }
2908.MetaDetail .content .subheadline { font-size: 0.9em; line-height: 1.2; font-weight: bold; color: #999; margin: 0 5em 0.5em 0; }
2909.MetaDetail .content .name { font-size: 1.4em; font-weight: bold; margin-top: 0; margin-bottom: 0.5em; }
2910.MetaDetail .content .info { font-size: 1.1em; font-weight: bold; color: #999; margin-bottom: 0.5em; }
2911.MetaDetail .content .text { font-size: 1em; font-weight: normal; margin-bottom: 1em; }
2912.MetaDetail .content .text strong, .MetaDetail .content .text b { font-weight: bold; }
2913.MetaDetail .content .text :is(h1,h2,h3) { font-size: 1.1em; font-weight: bold; margin-bottom: 1em; }
2914.MetaDetail .content .divheadline { font-size: 1em; text-transform: uppercase; font-weight: bold; color: #333; margin: 1em 0; padding-top: 1em; border-top: 1px solid #ddd; }
2915
2916
2917ul.link_list {
2918	margin: 1rem 0;
2919	padding: 0;
2920	list-style-type: none;
2921}
2922
2923ul.link_list li {
2924	margin: 0;
2925	padding: 0;
2926}
2927
2928ul.link_list li a {
2929	display: flex;
2930	align-items:  center;
2931	padding:  0.4rem 0.7rem;
2932	border-bottom: 1px solid #CCC;
2933	color: #000;
2934	text-decoration:  none;
2935	font-size:  1.2rem;
2936}
2937
2938ul.link_list li:first-child a { border-top: 1px solid #CCC; }
2939
2940ul.link_list li a i { margin-right: 0.3rem; font-size: 1.3rem; }
2941
2942.MetaDetail li[data-list=bullet] { list-style-type: disc; }
2943
2944
2945/* Details Veranstaltungen */
2946
2947.MetaDetail .termine { margin-bottom: 1rem; }
2948.MetaDetail .termine b { 
2949	font-size: 0.85em;
2950  	font-weight: bold;
2951	display: block;
2952	margin-bottom: 0.2rem;
2953}
2954.MetaDetail .termine ul { margin: 0; padding: 0; list-style-type: none; }
2955.MetaDetail .termine ul li { margin: 0; padding: 0; list-style-type: none; }
2956
2957.MetaDetail .termine .termin {
2958	display: block;
2959	color: #555;
2960	text-decoration: none;
2961}
2962.MetaDetail .termine .termin span {
2963	display: inline-block;
2964	margin-right: 0.75rem;
2965}
2966.MetaDetail .termine .termin span.termin-name { margin-right: 0; text-decoration: underline; }
2967
2968.content .booking_info {
2969	margin-bottom: 0.6em;font-size: 0.85em; margin-top: 1rem;
2970}
2971
2972/* Detail Datenfelder */
2973
2974.content hr { border-width: 0px; border-top: 1px solid #ccc; height: 1px; margin: 0.2em 0; }
2975.C800 .content hr { border-top-width: 0px; height: 0px; }
2976
2977.content hr + hr { display: none; }
2978
2979
2980.MetaDetail .elevation { width: 100%; max-width: 500px; display: flex; justify-content: center; margin: 2rem 0; }
2981.MetaDetail .elevation img { width: 100%; height: auto; max-width: 500px; }
2982
2983
2984
2985
2986.sheet-bilder-icon {
2987	position: absolute;
2988	right: 1em;
2989	bottom: -1.5em;
2990	width: 7em;
2991	height: 7em;
2992	aspect-ratio: 1;
2993	padding: 0.7em;
2994	background-color: #fff;
2995	border-radius: 0.5em;
2996	box-shadow: 0.5em 0.5em 2em #0002;
2997}
2998
2999body .sheet-bilder-icon > img {
3000	width: 100%;
3001	height: auto;
3002	aspect-ratio: 1;
3003	object-fit: cover;
3004}
3005
3006
3007/* Detail Bilder-Slider */
3008
3009.sheet-bilder.slider { flex: 1; }
3010.sheet-bilder.slider .slider-wrapper { 
3011	width:  100%;
3012	scroll-behavior: smooth;
3013	overflow: auto;
3014	scroll-snap-type: x mandatory;
3015	-ms-overflow-style: none;
3016	scrollbar-width: none;
3017	display: flex;
3018	flex-flow: row nowrap;
3019}
3020body .sheet-bilder.slider .sheet-bild {
3021	flex: 0 auto !important;
3022	flex-grow: 0 !important;
3023	flex-shrink: 0 !important;
3024	scroll-snap-align: center;
3025	width: 100%;
3026}
3027.sheet-bilder img { width: 100%; height: auto; aspect-ratio: 5/3; object-fit: cover; }
3028
3029
3030.slider-element.iframe { position: relative; }
3031
3032
3033.slider-element.iframe .hidden2 {
3034	display: none;
3035}
3036
3037.slider-element.iframe i {
3038	position: absolute;
3039	top: 50%;
3040	left: 50%;
3041	font-size: 4rem;
3042	transform: translate(-50%, -50%);
3043	color: #FFF;
3044	text-shadow: 0 0 1rem rgba(0, 0, 0, 0.6)
3045}
3046
3047
3048.slider-element.iframe iframe {
3049	width: 100%;
3050	height: auto;
3051	aspect-ratio: 5/3;
3052	border: 0;
3053}
3054
3055.sheet-bilder .bookmark_button_wrapper {
3056	position: absolute;
3057	bottom: -0.9rem;
3058	right: 1rem;
3059	z-index: 100;
3060	display: flex;
3061}
3062
3063.sheet-bilder .bookmark_button {
3064 	box-shadow: 0 0 0.6rem rgba(0,0,0,0.5);
3065}
3066
3067.sheet-bilder .bookmark_button:nth-child(2) {
3068	margin-left: 0.5rem;
3069}
3070
3071
3072@media all and ( max-width: 1000px ) {
3073	.MetaDetail.standalone {  padding: 1rem; margin: 2rem 0; }
3074	.MetaDetail.standalone .hidden {  flex-wrap: wrap; }
3075	.MetaDetail.standalone .hidden .sheet-bilder { padding: 0 0 1rem 0; }
3076
3077}
3078
3079
3080
3081.MetaDetail .tagcloud { display: flex; flex-wrap: wrap; margin-bottom: 1rem; }
3082.MetaDetail .tagcloud .tag {
3083	font-size: .9rem;
3084	color: #AAA;
3085	border: 1px solid #AAA;
3086	border-radius: .4rem;
3087	padding: .3rem .8rem;
3088	margin: .2rem .4rem 0 0;
3089}
3090
3091
3092
3093.MetaDetail .files { margin-bottom: 1rem; }
3094.MetaDetail .files .files_headline { font-weight: bold; margin-bottom: 0.4em; }
3095.MetaDetail .files .files_inner { display: flex; flex-wrap: wrap; }
3096
3097.MetaDetail .files .item {
3098	max-width: 300px;
3099	width: calc(50% - .5em);
3100	aspect-ratio: 3 / 2;
3101	margin-right: .5em;
3102	margin-bottom: .5em;
3103	background-color: #eee;
3104	cursor: pointer;
3105}
3106
3107.MetaDetail .files .item img {
3108	width: 100%;
3109	height: 100%;
3110	object-fit: cover;
3111}
3112
3113.MetaDetail .files .item.svg {
3114	display: flex;
3115	align-items: center;
3116	justify-content: center;
3117}
3118
3119.MetaDetail .days { 
3120	font-size: 0.90em; 
3121	padding: 1em 0;
3122}
3123
3124.MetaDetail .days .meta-days-headline { 
3125	font-weight: bold;
3126	font-size: 1.5em;
3127	margin: 0.5em 0 0.7em 0;
3128}
3129
3130.MetaDetail .row { margin-bottom: 1.5rem; }
3131.MetaDetail .row_headline { width: 100%; font-size: 1.1rem; font-weight: bold; border-bottom: 1px solid #555; margin-bottom: 1rem; padding-bottom: .2rem; }
3132
3133@media (min-width: 567px) {
3134	.MetaDetail .files .item { width: calc(33% - 0.75em); margin-right: 0.75em; margin-bottom: 0.75em; }
3135}
3136
3137
3138@media (min-width: 768px) {
3139	.MetaDetail:not(.mobileview) .row { display: flex; flex-wrap:  wrap; justify-content: space-between; }
3140
3141	.MetaDetail:not(.mobileview) .col { width: calc(50% - .5rem); }
3142	.MetaDetail:not(.mobileview) .col.col_full { width: 100%; }
3143	.MetaDetail:not(.mobileview) .row .text-column2 { column-count: 1; }
3144	.MetaDetail:not(.mobileview) .row .text-column2 ul { page-break-inside: avoid; }
3145
3146	.MetaDetail .files .item { width: calc(25% - 1em); margin-right: 1em; margin-bottom: 1em; }
3147}
3148
3149@media (min-width: 1024px) {
3150	.MetaDetail .files .item { width: calc(20% - 1em); margin-right: 1em; margin-bottom: 1em; }
3151}
3152
3153@media (min-width: 1280px) {
3154
3155}
3156
3157
3158
3159
3160
3161
3162.data-header {
3163	font-size: 0.7rem;
3164	font-weight: bold !important;
3165	text-transform: uppercase;
3166	margin: 2em 0 0.5em 0;
3167	color: #333;
3168}
3169
3170.data-fields {
3171	margin-bottom: 0.5rem;
3172	border-top: 1px solid #ccc;
3173	padding-top: 0.4em;
3174}
3175
3176.data-field {
3177	font-size: 0.95rem;
3178	display: flex;
3179	gap: 1rem;
3180}
3181
3182.data-field.array {
3183	margin-bottom: 0.1rem;
3184	border-top: 0px solid #fff;
3185	padding-top: 0.1em;
3186	font-size: 0.9em;
3187	
3188}
3189.data-field.array .data-value {
3190	font-size: 1em;
3191}
3192
3193
3194hr + .data-field { border-top-width: 0px; }
3195.C800 hr + .data-field { border-top-width: 1px; }
3196
3197
3198.data-field .data-label { flex: 2; font-size: 0.9em; font-weight: bold; margin-bottom: 0.3rem !important; color: #000; padding: 0; }
3199.data-field .data-value { flex: 5; color: #666; }
3200
3201.data-field.narrow .data-label { flex: 1; font-size: 1em; }
3202.data-field.narrow .data-value { flex: 7; }
3203
3204.data-field .data-value p { margin-top: 0; }
3205.data-field .data-value p:last-child { margin-bottom: 0; }
3206
3207.data-field .data-value a, .data-field .data-value.linked div {
3208	border-radius: 5px;
3209	text-decoration: none;
3210	color: inherit;
3211	display: inline-block;
3212}
3213
3214.data-field .data-value.linked > :is(a,div) {
3215	cursor: pointer;
3216	border: 2px solid var(--button_color,#666);
3217	color: var(--button_color,#666);
3218	padding: 0.1875em 0.75em;
3219	line-height: 1;
3220	display: inline-flex;
3221	align-items: center;
3222}
3223
3224.data-field .data-value.linked > :is(a,div).button_booking {
3225	background-color: #ff8000;
3226	border-color: #ff8000;
3227	color: #FFF;
3228}
3229
3230.data-field.status {
3231	--color-open: #393;
3232	--color-partly: #c93c;
3233	--color-closed: #F33118;
3234	--color-warning: #cc3;
3235}
3236
3237.data-field:is(.status,.schwierigkeit) .data-value :is(a,div) { padding: 0.1rem 0.5rem; color: #FFF; border-radius: 0.8rem; }
3238.data-field:is(.status,.schwierigkeit) .data-value div { display: inline-block; }
3239
3240
3241.data-field.status .data-value.geoeffnet :is(a,div) { background-color: var(--color-open); }
3242.data-field.status .data-value.in-betrieb :is(a,div) { background-color: var(--color-open); }
3243.data-field.status .data-value.begehbar :is(a,div) { background-color: var(--color-open); }
3244.data-field.status .data-value.befahrbar :is(a,div) { background-color: var(--color-open); }
3245.data-field.status .data-value.teilweise-befahrbar :is(a,div) { background-color: var(--color-partly); }
3246.data-field.status .data-value.bedingt-begehbar :is(a,div) { background-color: var(--color-partly); }
3247.data-field.status .data-value.bedingt-befahrbar :is(a,div) { background-color: var(--color-partly); }
3248.data-field.status .data-value.teilweise-geoeffnet :is(a,div) { background-color: var(--color-partly); }
3249.data-field.status .data-value.nicht-begehbar :is(a,div) { background-color: var(--color-closed); }
3250.data-field.status .data-value.nicht-befahrbar :is(a,div) { background-color: var(--color-closed); }
3251.data-field.status .data-value.geschlossen :is(a,div) { background-color: var(--color-closed); }
3252.data-field.status .data-value.ausser-betrieb :is(a,div) { background-color: var(--color-closed); }
3253.data-field.status .data-value.belegt :is(a,div) { background-color: var(--color-closed); }
3254.data-field.status .data-value.achtung :is(a,div) { background-color: var(--color-warning); }
3255
3256
3257.data-field.schwierigkeit {
3258	--color-diff-easy: #174B7F;
3259	--color-diff-medium: #C81E0C;
3260	--color-diff-hard: #000000;
3261	--color-diff-default: #333333;
3262
3263}
3264
3265.data-field.schwierigkeit .data-value :is(a,div) { background-color: var(--color-diff-default); }
3266
3267.data-field.schwierigkeit .data-value.leicht :is(a,div) { background-color: var(--color-diff-easy); }
3268.data-field.schwierigkeit .data-value.mittel :is(a,div) { background-color: var(--color-diff-medium); }
3269.data-field.schwierigkeit .data-value.schwer :is(a,div) { background-color: var(--color-diff-hard); }
3270
3271
3272
3273.data-field ul.payments {
3274	list-style-type: none;
3275	margin: 0;
3276	padding: 0;
3277}
3278
3279.data-field ul.payments li {
3280	display: flex;
3281}
3282.data-field ul.payments li a { text-decoration: underline; }
3283
3284.data-field ul.payments li .icon {
3285	flex-shrink: 0;
3286	width: 1rem;
3287	margin-right: 0.5rem;
3288}
3289.data-field ul.payments li .icon img { width: 100%; height: auto; }
3290
3291
3292
3293
3294
3295</style>
3296
3297<style type="text/css">
3298/* Meta/Filter */
3299.T5290 {
3300	--button-padding-top: 0.35em;
3301	--button-padding-left: 0.9em;
3302	--button-padding-right: 1.5rem;
3303}
3304
3305.T5290.bg-color {
3306	background-color: var(--background-color);
3307	padding: 0.8em 1em;
3308	margin-bottom: 1em;
3309}
3310.T5290.meta-filter-border-radius {
3311	border-radius: 0.7em;
3312}
3313
3314
3315.T5290.meta-filter-border-shadow {
3316	box-shadow: 0.3em 0.3em 1em #0002;
3317}
3318
3319.T5290 .filter_panel {
3320	margin-bottom: 0.5em;
3321}
3322
3323
3324.T5290 .filter_panel * {
3325	scrollbar-width: none;
3326	-ms-overflow-style: none;
3327}
3328
3329.T5290 .filter_panel *::-webkit-scrollbar {
3330  display: none;
3331}
3332
3333
3334.T5290 .filter_button {
3335	cursor: pointer;
3336	border: 1px solid var(--button-color);
3337	padding: var(--button-padding-top) var(--button-padding-left);
3338	border-radius: 1.5em;
3339	color: var(--button-color);
3340	font-size: 1em;
3341	text-align: center;
3342	margin-right: 0.5em;
3343	margin-bottom: 0.5em;
3344	white-space: nowrap;
3345}
3346
3347.T5290 button.filter_button {
3348	background-color:  transparent;
3349	border-width: 0.14rem;
3350}
3351
3352.noselect {
3353  -webkit-touch-callout: none; /* iOS Safari */
3354    -webkit-user-select: none; /* Safari */
3355     -khtml-user-select: none; /* Konqueror HTML */
3356       -moz-user-select: none; /* Old versions of Firefox */
3357        -ms-user-select: none; /* Internet Explorer/Edge */
3358            user-select: none; /* Non-prefixed version, currently supported by Chrome, Edge, Opera and Firefox */
3359}
3360
3361/* if missing */
3362.element.hidden {
3363	display: none !important;	
3364}
3365
3366
3367/* Button-Gruppe: Platz rechts bleibt IMMER gleich */
3368.T5290 .filter_button.group {
3369  padding-right: var(--button-padding-right);
3370  position: relative;
3371  border-radius: 0.5em;
3372}
3373
3374/* Offen: nur Farben/Borders ändern – KEIN anderes Padding */
3375.T5290 .filter_button.group.open {
3376  border-color: var(--button-active-color);
3377  background-color: var(--button-active-color);
3378  color: #FFF;
3379}
3380
3381/* Ein einziges Symbol nutzen und zentrieren */
3382.T5290 .filter_button.group::after {
3383  content: "";
3384  position: absolute;
3385  right: 0.35rem;
3386  top: 50%;
3387  transform: translateY(-50%);     /* vertikal zentriert */
3388  display: inline-block;
3389  width: 0.9em;                     /* Icon-Größe */
3390  height: 0.9em;
3391  pointer-events: none;
3392  transition: transform 0.2s ease;
3393
3394  /* Farbe steuern wir über background-color */
3395  background-color: currentColor;
3396
3397  /* Chevron als Masken-SVG (Data-URI) */
3398  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><polyline points='6 9 12 15 18 9' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
3399  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><polyline points='6 9 12 15 18 9' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
3400  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
3401  -webkit-mask-position: center;  mask-position: center;
3402  -webkit-mask-size: contain;     mask-size: contain;
3403}
3404
3405/* Beim Öffnen nur drehen, nichts am Inhalt/Padding ändern */
3406.T5290 .filter_button.group.open::after {
3407  transform: translateY(-50%) rotate(180deg);
3408}
3409.T5290 .filter_button.group.active_filter { border-color: var(--button-active-color); color: var(--button-active-color); }
3410.T5290 .filter_button.group.active_filter.open { color: #FFF; }
3411.T5290 .filter_button.group:hover { 
3412	color: var(--button-hover-color); 
3413	border-color: var(--button-hover-color);
3414}
3415
3416.T5290 .filter_button.group.open:hover {
3417	color: #FFF;
3418}
3419
3420.T5290 .filter_button.tag:hover {
3421	color: var(--button-hover-color); 
3422	border-color: var(--button-hover-color);
3423}
3424.T5290 .filter_button.tag.selected { 
3425	border-color: var(--button-active-color); 
3426	background-color: var(--button-active-color); 
3427	color: #FFF;
3428}
3429
3430
3431.T5290 .filter_search {
3432	padding-left: 1em;
3433}
3434
3435
3436.T5290 .filter_search input {
3437	padding: 0px;
3438	margin: 0px;
3439	border: 0px;
3440	background: inherit;
3441	line-height: 1;
3442	margin-left: 0.2em;
3443	width: 3em;
3444	font-size: inherit;
3445}
3446
3447.T5290 .filter_search input::placeholder {
3448	color: #0002;
3449}
3450
3451.T5290 .filter_search input:focus {  outline: none; }
3452
3453
3454.T5290 .filter_search.selected:not(.meta-filter-nr-input) {
3455	color: #000; padding: 0.3rem 1.45rem 0.3rem 0.85rem; border: 0.15rem solid #000;
3456}
3457
3458
3459.T5290 .filter_search.selected:not(.meta-filter-nr-input) input {
3460	width: 5em;
3461}
3462
3463
3464.T5290 .filter_panel_row {
3465	display: flex;
3466	overflow-x: scroll;
3467	overflow-y: none;
3468	scroll-snap-type: x mandatory;
3469  	scroll-padding: 0;
3470}
3471
3472
3473.T5290.meta-filter-maingroups-wrap .filter_panel_row, .T5290.wrap .filter_panel_row {
3474	flex-wrap: wrap;
3475	border-bottom: 1px solid #0003;
3476	padding-bottom: 0.3rem;
3477	margin-bottom: 0.6rem;
3478}
3479
3480.T5290.meta-filter-maingroups-wrap .filter_panel_row.on, .T5290.wrap .filter_panel_row.on {
3481	border-bottom-width: 0px;
3482	padding-bottom: 0;
3483	margin-bottom: 0;
3484}
3485
3486
3487.T5290 .filter_group {
3488	display: none;
3489}
3490
3491.T5290 .filter_group.on {
3492	display: flex;
3493	flex-wrap: wrap;
3494}
3495
3496.T5290.meta-filter-box-shadow .filter_group.on {
3497	background: #fff;
3498	padding: 1rem;
3499	box-shadow: 0.3em 0.3em 1em #0002;
3500	border-radius: 15px;
3501	border: 1px solid #ccc;
3502}
3503
3504.T5290 input[type=date] {
3505	border: 0px solid #fff;
3506	background: none;
3507	color: inherit;
3508	font-family: inherit;
3509	font-size: inherit;
3510	padding: 0;
3511	line-height: 1;
3512	margin: 0;
3513	max-width: 120px;
3514}
3515
3516
3517
3518/* Slider */
3519.slider-outer { position: relative; }
3520.slider-arrows { display: none; }
3521.show_arrows:hover .slider-arrows { display: block; }
3522
3523
3524.slider-arrows .arrow {
3525	display: flex;
3526	justify-content: center;
3527	align-items: center;
3528	position: absolute;
3529	top: 50%;
3530	background-color: #FFF;
3531	box-shadow: 2px 2px 5px #00000033;
3532	border-radius: 50%;
3533	width: 2em;
3534	height: 2em;
3535	transform: translate(0, -50%);
3536	cursor: pointer;
3537	z-index: 10;
3538}
3539
3540.slider-arrow-position-top .slider-arrows .arrow { top: 1.1em; }
3541
3542.slider-arrows .arrow.hide { display: none; }
3543
3544.slider-arrows .arrow i { font-size: 0.8em; }
3545
3546.slider-arrows .arrow-left { left: calc(1em + var(--margin-offset,0.1em) ); }
3547.slider-arrows .arrow-right { right: calc(1em + var(--margin-offset,0.1em) ); }
3548
3549
3550
3551#sheet .filter_overlay_inner {
3552	padding: 2rem 1rem 1rem 1rem;
3553}
3554
3555#sheet .headline {
3556	font-family: "WF-029714-010117-000025", Arial !important;
3557	font-size: 2rem;
3558	margin: 0.5rem 0 0.5rem 0;
3559}
3560
3561
3562
3563
3564
3565
3566
3567
3568</style>
3569
3570<style type="text/css">
3571/* Meta/Paginator */
3572.paginator_pages .page_number.hidden, 
3573.paginator_pages .dots_1.hidden, 
3574.paginator_pages .dots_2.hidden {
3575    display: none;
3576}
3577
3578.paginator_pages .prev_page.hidden,
3579.paginator_pages .next_page.hidden {
3580    visibility: hidden;
3581}
3582
3583.paginator_pages .prev_page svg,
3584.paginator_pages .next_page svg {
3585    width: 0.8rem;
3586    height: auto;
3587}
3588
3589.paginator_pages .page_number.active {
3590    font-weight: bold;
3591    color: #0009;
3592} 
3593
3594.paginator_pages .page_number,
3595.paginator_pages .dots_1,
3596.paginator_pages .dots_2,
3597.paginator_pages .next_page,
3598.paginator_pages .prev_page {
3599    text-align: center;
3600    display: flex;
3601    align-items: center;
3602    justify-content: center;
3603} 
3604
3605.paginator_pages .page_number,
3606.paginator_pages .dots_1,
3607.paginator_pages .dots_2 {
3608    width: 0.5rem;
3609    margin: 0 0.5rem 0 0.5rem;
3610}
3611
3612.paginator_pages .page_number:hover,
3613.paginator_pages .next_page:hover,
3614.paginator_pages .prev_page:hover {
3615    color: #0009;
3616} 
3617
3618.paginator_pages .page_number,
3619.paginator_pages .next_page,
3620.paginator_pages .prev_page {
3621    cursor: pointer;
3622} 
3623
3624.paginator_pages .next_page,
3625.paginator_pages .prev_page {
3626    margin: 0 0.2rem 0 0.2rem;
3627}
3628
3629</style>
3630
3631<style type="text/css">
3632/* Meta/TeaserFeatures */
3633.meta-teaser-data {
3634	margin: 0.3em 0;
3635	border-top: 1px solid #ddd;
3636	/* border-bottom: 1px solid #ddd; */
3637	padding: 0.3em 0;
3638	column-count: 2;
3639}
3640
3641
3642
3643.meta-teaser-data-item {
3644	font-size: 0.7em;
3645	width: 100%;
3646	display: flex;
3647	gap: 0.5em;
3648	justify-content: space-between;
3649}
3650
3651
3652.meta-teaser-data-label {
3653	font-size: 0.9em;
3654	line-height: 1.5em;
3655	font-weight: bold;
3656	color: #aaa;
3657	white-space: nowrap;
3658}
3659
3660.meta-teaser-data-content {
3661	color: #666;
3662	text-align: right;
3663	width: 100%;
3664}
3665
3666
3667.meta-teaser-big .meta-teaser-data {	column-count: 1; }
3668.meta-teaser-big .meta-teaser-data-item {	font-size: 1.1em; }
3669.meta-teaser-big .meta-teaser-data-label { color: #333; }
3670.meta-teaser-big .meta-teaser-data-content { font-weight: bold; color: #000; }
3671
3672
3673.meta-teaser-data-content.rating {
3674	display: flex;
3675	justify-content: flex-end;
3676}
3677
3678.meta-teaser-data-content.rating .rating_stars {
3679	position: relative;
3680	display: flex;
3681}
3682
3683.meta-teaser-data-content.rating .rating_detail_info:hover .ratingdetail {
3684  opacity: 1;
3685  visibility: visible;
3686}
3687
3688.meta-teaser-data-content.rating .rating_detail_info .i:hover {
3689	opacity: 1;
3690	transform: scale(1.08);
3691}
3692
3693.meta-teaser-data-content.rating .ratingdetail {
3694	position: absolute;
3695	z-index: 2;
3696	width: 200px;
3697	border-radius: 10px;
3698	background: rgba(255,255,255,0.6);
3699	backdrop-filter: blur(8px);
3700	border: 1px solid rgba(0,0,0,0.1);	
3701	padding: 10px;
3702	display: flex;
3703	justify-content: space-between;
3704	opacity: 0;
3705	visibility: hidden;
3706	flex-wrap: wrap;
3707	top: 0;
3708    right: 1rem;
3709	font-weight: normal;
3710	line-height: 1.1;
3711	font-size: 12px;
3712	color: #666;
3713	transition: opacity .18s ease-out;
3714}
3715
3716.meta-teaser-data-content.rating .rating_detail_info .i {
3717	color: #666;
3718	opacity: 0.7;
3719	width: 0.9rem !important;
3720	height: 0.9rem !important;
3721 	transition: transform .14s ease-out, opacity .14s ease-out;
3722}
3723
3724.meta-teaser-data-content.rating .rating_detail_info {
3725	width: 0.9rem;
3726	height: 0.9rem;
3727	margin-left: 0.2rem;
3728}
3729
3730.meta-teaser-data-content.rating .ratingdetail .infoStars {
3731	width:115px;
3732	padding-right:5px;
3733	text-align: left;
3734}
3735
3736@media (prefers-reduced-motion: reduce) {
3737  .meta-teaser-data-content.rating .rating_detail_info .i { transition: none; }
3738}
3739
3740.meta-teaser-data.compact .meta-teaser-data-content { text-align: center; }
3741
3742
3743.meta-teaser-data.column1 { column-count: 1; }
3744.meta-teaser-data.column1 .meta-teaser-data-item { font-size: 0.83em; }
3745.meta-teaser-data.column1 .meta-teaser-data-item .meta-teaser-data-label { font-size: 0.83em; }
3746
3747
3748.meta-teaser-feature-contrast .meta-teaser-data .meta-teaser-data-label { color: #222; }
3749.meta-teaser-feature-contrast .meta-teaser-data .meta-teaser-data-content { color: #000; }
3750
3751.meta-teaser-feature-fontsize-bigger .meta-teaser-data-item { font-size: 0.95em; }
3752
3753.meta-teaser-feature-column1 .meta-teaser-data {
3754	column-count: 1;
3755}
3756
3757.meta-teaser-data .copy_button {
3758	margin-left: 0.5em;
3759	background-color: #EEEEEE;
3760	border-radius: 0.2em;
3761	padding: 0.1em 0.3em;
3762	cursor: pointer;
3763	transition: background-color 250ms;
3764}
3765
3766.meta-teaser-data .copy_button.ok {
3767	background-color: #32a852;
3768}
3769
3770.meta-teaser-data .copy_button.err {
3771	background-color: #a8323e;
3772}
3773
3774body.narrow .meta-teaser-feature-mobile-column1 .meta-teaser-data {
3775	column-count: 1;
3776}
3777</style>
3778
3779		
3780		
3781			
3781<script>
3782				if ( typeof window.loadJS != "function" ) {
3783					window.loadJS = function(u, cb) {
3784						var r = document.getElementsByTagName("script")[0],
3785							s = document.createElement("script");
3786						s.src = u;
3787						r.parentNode.insertBefore(s, r);
3788						
3789						if ( cb !== undefined ) {
3790							cb();
3791						}
3792						
3793					}
3794				}
3795					
3796				TraminoReady(function() {
3797					loadJS("/tramino/js/Dashboard.js");
3798				});
3799					
3800			</script>
3800
3801			
3802		
3803		
3804
3805	
3806
3807	<style type="text/css">
3808
3809		.T3201 .parallax  { height: 34.2857142857143vw; }
3810		
3811
3812		#TraminoAnhang554429 .parallax { 
3813			background-image: url(https://storage.tramino.net/wurzelrudi/1513171/2400.jpg);
3814		}
3815				
3816		/* Hintergrund-Bild abhängig von Bildschirmhöhe laden */
3817		
3818		@media all and (min-height: 1280px) and (max-height: 1600px) {
3819			#TraminoAnhang554429 .parallax { 
3820				background-image: url(https://storage.tramino.net/wurzelrudi/1513171/2000.jpg);
3821			}
3822		}
3823		
3824		@media all and (min-height: 1024px) and (max-height: 1279px) {
3825			#TraminoAnhang554429 .parallax {
3826				background-image: url(https://storage.tramino.net/wurzelrudi/1513171/1680.jpg);
3827			}
3828		}
3829		
3830		@media all and (min-height: 768px) and (max-height: 1023px) {
3831
3832			#TraminoAnhang554429 .parallax {
3833				background-image: url(https://storage.tramino.net/wurzelrudi/1513171/1424.jpg);
3834			}
3835		}
3836		
3837		@media all and (min-width: 568px) and (max-width: 767px) {
3838
3839			#TraminoAnhang554429 .parallax {
3840				background-image: url(https://storage.tramino.net/wurzelrudi/1513171/767x575.jpg);
3841			}
3842		}
3843		
3844		@media all and (max-width: 567px) {
3845			
3846			#TraminoAnhang554429 .parallax {
3847				background-image: url(https://storage.tramino.net/wurzelrudi/1513171/567x425.jpg);
3848			}
3849		}
3850		
3851	
3852	
3853	</style>
3854
3855<style>
3856	#TraminoAnhang554434.T2897 .wrapper {
3857			background-color: #2c296f;
3858				padding: 1.5rem 2rem !important;
3859			color: #ffffff;
3860		}
3861		#TraminoAnhang554434.T2897 .textile .button,#TraminoAnhang554434.T2897 .S6529 .textile a.button { color: #2c296f !important; }
3862
3863	
3864
3865</style>
3866		
3867		
3868		
3869
3870	
3871<style type="text/css">
3872/* QuickSelect */
3873body.relaunch2023.hide_quickselect .T5528 .quickselect  { display:none; }
3874
3875.T5528 {
3876	--width: 5em;
3877	--height: 4em;
3878	--scalefactor: 0em;
3879}
3880body.Mandant_400 .T5528, body.Mandant_3469 .T5528 {
3881	--scalefactor: 0.15em;
3882}
3883
3884.T5528 {
3885	font-size: calc( 0.8rem + var(--scalefactor) );
3886	position: fixed !important;
3887	bottom: 5em;
3888	left: auto;
3889	right: 0em;
3890	background-color: var(--background-color);
3891	background-image: var(--background-gradient);
3892	box-shadow: 0.1em 0.1em 0.7em rgba(0,0,0,0.3);
3893
3894	border-radius: 0.5em;
3895	display: inline-block;
3896	z-index: 1001;
3897	transition: right 250ms, transform 250ms;
3898	overflow: hidden;
3899
3900	padding-left: 0.5em;
3901	padding-right: 0.5em;
3902}
3903
3904
3905.T5528.size2 { right: calc( ( var(--width) * ( 2 - 1 ) ) * -1 ); }
3906.T5528.size3 { right: calc( ( var(--width) * ( 3 - 1 ) ) * -1 ); }
3907.T5528.size4 { right: calc( ( var(--width) * ( 4 - 1 ) ) * -1 ); }
3908.T5528.size5 { right: calc( ( var(--width) * ( 5 - 1 ) ) * -1 ); }
3909
3910
3911
3912.T5528.open {
3913	right: 1em;
3914}
3915
3916.T5528 .quickselect {
3917	display: flex;
3918}
3919
3920
3921.T5528 .quickselect-item {
3922	text-decoration: none;
3923	display: block;
3924	width: var(--width);
3925/*	height: var(--height);*/
3926/*	aspect-ratio: 1 / 1;*/
3927}
3928
3929.T5528 .quickselect-item:hover {
3930	border-radius: 0.5em;
3931	overflow: hidden;
3932	background-color: var(--hover-color);
3933}
3934
3935.T5528 .quickselect-icon {
3936	display: flex;
3937	justify-content: center;
3938	font-size: 1.2em;
3939	padding-top: 0.3em;
3940	padding-bottom: 0.1em;
3941	margin-bottom: 0.2em;
3942
3943}
3944
3945.T5528 .quickselect-icon img { width: 37%; height: auto; }
3946
3947.T5528 .quickselect-label {
3948	color: var(--color);
3949	font-size: 0.75em;
3950	line-height: 1;
3951	display: flex;
3952	justify-content: center;
3953	text-align: center;
3954	margin-bottom: 0.5em;
3955	hyphens: auto;
3956}
3957
3958.T5528 .rarr {
3959	position: absolute;
3960	top: 50%;
3961	left: calc( var(--width) + 2em);
3962	transform: translate(0,-50%);
3963	font-size: 0.65em;
3964	color: var(--color);
3965	transition: font-size 250ms;
3966}
3967
3968.T5528.open .rarr { display: none; }
3969
3970.T5528:not(.open):hover {
3971	transform: translateX(-1em);
3972}
3973
3974.T5528:not(.open):hover .rarr { font-size: 0.7em; }
3975
3976
3977.quickselect_tipsy { font-size: 1em; }
3978.quickselect_tipsy  .tipsy-inner  { background-color: var(--signal_color); color: var(--signal_color_negativ); }
3979
3980.tipsy-arrow {  border-color:var(--signal_color) !important; }
3981  
3982  /* Rules to colour arrows */
3983.tipsy-arrow-n { border-bottom-color: var(--signal_color) !important; }
3984.tipsy-arrow-s { border-top-color: var(--signal_color) !important; }
3985.tipsy-arrow-e { border-left-color: var(--signal_color) !important; }
3986.tipsy-arrow-w { border-right-color: var(--signal_color) !important; }
3987
3988
3989/* #9187: Rechtsbündig ToDo: Entfernen? Ist default Rechtsbündig und kein CSS definiert */
3990
3991
3992/* #9188: Vertikale Darstellung */
3993
3994.T5528.S9188 {
3995	padding-left: 0em;
3996	transition: padding 250ms, transform 250ms;
3997
3998  	padding-right: 0em;
3999
4000  	padding-top: 0.5em;
4001  	padding-bottom: 0.5em;
4002
4003  	border-radius: 1em 0 0 1em;
4004}
4005
4006.T5528.S9188 .quickselect {
4007	flex-direction: column;
4008}
4009
4010.T5528.S9188 .quickselect-label {
4011	display: block;
4012	text-align: center;
4013}
4014
4015.T5528.S9188, .T5528.S9188.open { right: 0 }
4016
4017.T5528.S9188:not(.open) {
4018	transform: translateX(5em);
4019	padding-left: 1.5em;
4020}
4021
4022.T5528.S9188:not(.open) .rarr { 
4023	transform: scaleX(-1);
4024	left: 5px;
4025}
4026
4027@media (min-width: 391px) {
4028	.T5528 { bottom: 7em; font-size: calc( 0.85rem + var(--scalefactor) ); }
4029}
4030
4031@media (min-width: 567px) {
4032	.T5528 { bottom: 8em; font-size: calc( 0.875rem + var(--scalefactor) ); }
4033}
4034
4035@media (min-width: 768px) {
4036	.T5528 { bottom: 9em; font-size: calc( 0.91em + var(--scalefactor) ); }
4037}
4038
4039
4040
4041@media (min-width: 1280px) {
4042
4043	.T5528 { font-size: calc( 0.95em + var(--scalefactor) ); }
4044
4045	.T5528.open { right: calc( ( 100% - 1240px ) / 2); }
4046
4047	.T5528.S9188, .T5528.S9188.open { right: 0 }
4048}
4049
4050
4051</style>
4052
4053
4054
4055<style>
4056
4057.T5528 {
4058	--background-color: #eee;
4059	--background-gradient: linear-gradient( #ffffff, #e4e4e4);
4060	--color: #333;
4061	--hover-color: rgba(255,255,255,0.7);
4062}
4063
4064
4065
4066
4067
4068
4069
4070
4071</style>
4072
4073<script>
4074"use strict";
4075	
4076TraminoReady(function() {
4077	loadCSS("https://storage.tramino.net/static/iconfonts/tramino/v1.41/style.css")
4078
4079	let fixed = 0;
4080
4081	let scroll_offset = 200;
4082	let scroll_lastpos = $(window).scrollTop() || 0;
4083
4084	$('.T5528').on('click', function(event) {
4085		
4086		if ( ! $(".T5528").hasClass("open") ) {
4087			event.preventDefault();
4088			$(".T5528").addClass("open");
4089			scroll_lastpos = $(window).scrollTop();
4090		}
4091	});
4092
4093	$(window).on('scroll', function(event) {
4094
4095		if ( $(".T5528").hasClass("open") && ! fixed ) {
4096			if ( $(window).width() < 768 ) {
4097				let scrolltop = $(window).scrollTop();
4098				if ( scrolltop >= ( scroll_lastpos + scroll_offset ) || scrolltop <= ( scroll_lastpos - scroll_offset ) ) {
4099					$(".T5528").removeClass("open");
4100				}
4101			}
4102		}
4103	});
4104	
4105	
4106});
4107
4108</script>
4108
4109
4110
4111
4112<style type="text/css">
4113/* TraminoFooter */
4114
4115.T2820 {
4116	--footer-gap: 1.5rem;
4117	margin-bottom: 0px !important;
4118}
4119
4120
4121footer .wrapper {
4122	padding-top: 10px;
4123	background-position: top;
4124	z-index: 5;	
4125}
4126
4127footer:not(.S9072) .wrapper { margin: 0; }
4128
4129footer .wrapper .boxes {
4130	display: flex;
4131	flex-wrap: wrap;
4132	gap: var(--footer-gap);
4133	margin-bottom: var(--footer-gap);
4134}
4135
4136
4137footer .box {
4138	position: relative;
4139	width: 100%;
4140}
4141
4142footer .box.empty { padding-bottom: 0;  }
4143
4144
4145
4146footer .box > .inner {
4147	margin: 1.5rem 0 0 0;
4148}
4149
4150footer .footer_img {
4151	float: left;
4152	margin: 0px 5px 8px 0px;
4153}
4154
4155footer .box > .inner .headline {
4156	text-transform: uppercase;
4157	margin-top: 0px;
4158	margin-bottom: 7px !important;
4159}
4160
4161footer .box > .inner h4 {
4162	margin-top: 10px;
4163	margin-bottom: 5px !important;
4164}
4165
4166footer .box > .inner p {
4167	margin-bottom: 0.4em;
4168}
4169
4170footer .box > .inner ul {
4171	padding-left: 25px;
4172}
4173
4174footer .box > .inner ul.list {
4175	padding: 0;
4176	margin: 0.5em 0 0 0;
4177	list-style-type: none;
4178}
4179
4180footer .box > .inner ul.list li {
4181	padding: 0;
4182	margin: 0 0 0.2em 0;
4183}
4184
4185footer .box > .inner ul.list li a {
4186	display: flex;
4187	text-decoration: none;
4188}
4189footer .box > .inner ul.list li a .icon {
4190	width: 1.3em;
4191	height: auto;
4192	margin-right: 0.6rem;
4193}
4194
4195footer .box > .inner ul.list li a .icon img {
4196	width: 100%;
4197	height: auto;
4198}
4199
4200
4201/* Adresse */
4202
4203.Mandant_800 footer .adresse .firma { font-weight: bold; }
4204
4205
4206/* Öffnungszeiten */
4207.T2820 .oeffnungszeiten { font-size: 0.9rem; }
4208.T2820 .oeffnungszeiten .tage { width: 34%; margin-right: 1%; flex-grow: 0; flex-shrink: 0; font-weight: bold;  }
4209.T2820 .oeffnungszeiten .tag { 
4210	display: flex; 
4211	flex-wrap:wrap; 
4212	border-bottom: 1px solid var(--footer_border_color,rgba(0,0,0,0.05));
4213	padding-bottom: 0.2rem; 
4214	margin-bottom: 0.2rem; 
4215}
4216.T2820 .oeffnungszeiten .tag:last-child { border-width: 0; padding-bottom: 0; margin-bottom: 0; }
4217.T2820 .oeffnungszeiten .rightside { width: 65%; hyphens: auto; }
4218.T2820 .oeffnungszeiten .rightside .nachmittag { display: block; }
4219
4220footer .staticmap {
4221	display: inline-block;
4222	background-color: #fff;
4223	border: 1px solid rgba(0,0,0,0.1);
4224	padding: 4px;	
4225}
4226
4227footer .staticmap img {
4228	width: 100%;
4229	height: auto;
4230}
4231
4232#totop {
4233	position: fixed;
4234	bottom: 50px;
4235	right: 50px;
4236	width: 65px;
4237	height: 65px;
4238	z-index: 2001;
4239	display: none;
4240	cursor: pointer;
4241	background-color: #FFF;
4242	background-color: rgba(255,255,255,0.5);
4243}
4244
4245/* AWS */
4246.Mandant_420 #totop { background-color: #464e5d; background-color: rgba(70,78,93,0.5); }
4247.Mandant_53187 #totop { background-color: #464e5d; background-color: rgba(70,78,93,0.5); }
4248.Mandant_42884 #totop { background-color: #464e5d; background-color: rgba(70,78,93,0.5); }
4249.Mandant_61884 #totop { background-color: #464e5d; background-color: rgba(70,78,93,0.5); }
4250.Mandant_55265 #totop { background-color: #464e5d; background-color: rgba(70,78,93,0.5); }
4251
4252
4253#totop i {
4254	position: absolute;
4255	top: 50%;
4256	left: 50%;
4257	-ms-transform: translate(-50%, -50%);
4258	    transform: translate(-50%, -50%);
4259	font-size: 50px;
4260}
4261
4262footer .box .social {
4263	display: flex;
4264	flex-direction: column;
4265	margin-top: 1rem;
4266}
4267
4268footer .box .social a {
4269	display: flex;
4270	font-size:  1.15rem;
4271	text-decoration: none;
4272	align-items:  center;
4273	margin-bottom: 0.2rem;
4274}
4275
4276footer .box .social a i {
4277	margin-right: 0.5rem;
4278	font-size:  1.3em;
4279}
4280
4281
4282/* Fix Mittelberg */
4283
4284.Mandant_800 footer {
4285	padding: 0 1em;
4286	margin: 0 auto !important;
4287	max-width: 1800px;
4288}
4289
4290
4291
4292.Mandant_800 footer :is(.copyright,.boxes,.badges) {
4293	width: auto;
4294	padding: 0;
4295	margin-left: 0.5rem;
4296	margin-right: 0.5rem;
4297}
4298
4299
4300.Mandant_800 .T2820.S9073 .wrapper {
4301	border-radius: 1em 1em 0 0; /* sollte einstellbar sein irgendwie */
4302}
4303
4304@media (min-width: 420px) {
4305	footer .box {
4306		width: auto;
4307		width: calc( 50% - var(--footer-gap) );
4308	}
4309}
4310@media (min-width: 567px) {
4311
4312}
4313
4314@media (min-width: 768px) {
4315
4316	footer .box {
4317		width: calc( 25% - var(--footer-gap) );
4318	}
4319
4320	.Mandant_800 footer {
4321		padding: 0 2em;
4322	}
4323
4324	.Mandant_800 footer :is(.copyright,.boxes,.badges) {
4325		width: auto;
4326		padding: 0 2em;
4327	}
4328}
4329
4330@media (min-width: 1024px) {
4331
4332}
4333
4334@media (min-width: 1280px) {
4335
4336}
4337
4338
4339/* -- Copyright -- */
4340
4341footer .badges { text-align: right; }
4342footer .badges.align-left { text-align: left; }
4343footer .badges.align-center { text-align: center; }
4344
4345footer .badges a {
4346	display: inline-block;
4347	text-decoration: none;
4348	margin: 0px 0px 15px 15px;
4349}
4350
4351footer .badges a img { width: auto; height: 70px; }
4352
4353footer .copyright {
4354	display: flex;
4355	flex-wrap:  wrap;
4356	justify-content:  space-between;
4357	padding-bottom: 15px !important;
4358	align-items: baseline;
4359	
4360}
4361
4362
4363footer .copyright .tc { opacity: 0.4; }
4364
4365footer .copyright a { text-decoration: none; color: inherit;  }
4366footer .copyright .social a {  margin: 0px 15px 15px 0px; display: flex; align-items: center; }
4367footer .copyright i { font-size: 20px; line-height: 16px;  padding-right: 5px;}
4368
4369footer .copyright ul {
4370	margin: 0;
4371	padding: 0;
4372	list-style-type: none;
4373	display: flex;
4374	flex-wrap: wrap;
4375	align-items: center;
4376	gap: 15px;
4377}
4378
4379footer .copyright ul li a { opacity: 0.6; }
4380footer .copyright ul li.widerruf a{
4381	background-color: var(--signal_color,#333);
4382	color: var(--signal_color_negativ,#FFF);
4383    padding: 0.1rem 0.5rem;
4384    border-radius: 0.4rem;
4385	display: inline-block;
4386	opacity: 1;
4387}
4388
4389footer .copyright .social {
4390	float: none;
4391	display: flex;
4392	justify-content: center;
4393	align-items: center;
4394	flex-wrap: wrap;
4395	margin: 0 10px 0 0;
4396}
4397
4398@media (max-width: 567px) {
4399	footer .copyright .social {
4400		order: 1;
4401		width:  100%;
4402		flex-grow: 0;
4403		flex-shrink: 0;
4404	}
4405	footer .copyright .links { order: 2; }
4406	footer .copyright .tc { order: 3; }
4407}
4408
4409
4410/* -- Weisser Hintergrund -- [disabled] */
4411
4412#body .T2820.S5702 .wrapper { background-color: #fff; }
4413
4414
4415
4416/* -- Hintergrund Hintergrund 5% Schwarz (1) [disabled]  -- */
4417
4418#body .T2820.S5703 .wrapper { background-color: rgba(0,0,0,0.05); }
4419
4420
4421
4422/* -- Hintergrund Dunkler Hintergrund (6) [disabled]  -- */
4423
4424.S7756 .background {
4425	color: #fff !important;
4426}
4427
4428
4429
4430
4431/* -- Hintergrund Grauer Hintergrund [disabled] -- */
4432
4433footer.S8854, footer .S8854 {
4434    background: #555;	
4435}
4436
4437footer.S8854 section.box.box4, footer .S8854 section.box.box4 {
4438    width: 100%;
4439}
4440
4441footer.S8854 section.box.box4 .inner.clearfix.text, footer .S8854 section.box.box4 .inner.clearfix.text {
4442	margin-right: 0;
4443}
4444
4445@supports (container-type: inline-size) {
4446	footer .search_wrapper {
4447		container-type: inline-size;
4448		container-name: footer_search;
4449		width: 100%;
4450	}
4451
4452	footer .search {
4453		display: flex;
4454	}
4455	footer .search input[type=text] {
4456		flex-grow: 1;
4457		flex-shrink: 1;
4458	}
4459
4460
4461	@container footer_search (max-width: 279px) {
4462		footer .search {
4463			flex-wrap: wrap;
4464			flex-direction: column;
4465		}
4466		footer .search input[type=text] {
4467			min-height: 2rem;
4468			width: 100%;
4469			margin-bottom: 0.5em;
4470		}
4471		footer .search button {
4472			width: 100%;
4473		}
4474	}
4475}
4476
4477@supports not (container-type: inline-size) {
4478	footer .search {
4479		display: flex;
4480	}
4481	footer .search input[type=text] {
4482		flex-grow: 1;
4483		flex-shrink: 1;
4484		width: 124px;
4485	}
4486
4487	
4488	@media (min-width: 768px) and (max-width: 1023px)  {
4489
4490		footer .search {
4491			flex-direction: column;
4492		}
4493		footer .search input[type=text] {
4494			width: 100%;
4495		}
4496		footer .search button {
4497			width: 100%;
4498		}
4499	}
4500	
4501
4502	
4503}
4504
4505
4506/* -- Responsive  -- */
4507
4508
4509@media all and (min-width: 768px) and (max-width:1023px) {
4510
4511	.T2820 .oeffnungszeiten .tag { margin-bottom: 5px; }
4512	.T2820 .oeffnungszeiten .tage { width: 100%; }
4513	.T2820 .oeffnungszeiten .rightside { float: left; width: 100%; }
4514	.T2820 .oeffnungszeiten .rightside .nachmittag { display: block; }
4515
4516	#totop {
4517		bottom: 45px;
4518		right: 45px;
4519		width: 60px;
4520		height: 60px;
4521	}
4522
4523	#totop i {
4524		font-size: 45px;
4525	}
4526
4527}
4528
4529@media all and (min-width: 568px) and (max-width: 767px) {
4530
4531	.T2820 .oeffnungszeiten .tag { margin-bottom: 5px; }
4532	.T2820 .oeffnungszeiten .tage { width: 100%; font-weight: bold; }
4533	.T2820 .oeffnungszeiten .rightside { float: left; width: 100%; }
4534	.T2820 .oeffnungszeiten .rightside .nachmittag { display: block; }
4535
4536	#totop {
4537		bottom: 40px;
4538		right: 40px;
4539		width: 50px;
4540		height: 50px;
4541	}
4542
4543	#totop i {
4544		font-size: 40px;
4545	}
4546
4547	
4548}
4549
4550@media all and (max-width: 567px) {
4551	
4552	footer .wrapper {
4553	 	padding-top: 15px;
4554		background-size: cover !important;	
4555	}
4556	
4557	
4558	footer .box > .inner {
4559		margin: 0px;
4560	}
4561	
4562
4563	#totop {
4564		bottom: 30px;
4565		right: 30px;
4566		width: 40px;
4567		height: 40px;
4568	}
4569
4570	#totop i {
4571		font-size: 30px;
4572	}
4573	
4574	footer .box iframe { width: 100%; height: auto; }
4575	footer .box iframe.noresponsive { width: auto; height: auto; }
4576
4577
4578	footer .copyright .social {
4579		padding-top: 0.8rem;
4580   		padding-bottom: 0.8rem;
4581		border-top: 1px solid var(--footer_border_color,rgba(0,0,0,0.05)
4581);
4582		border-bottom: 1px solid var(--footer_border_color,rgba(0,0,0,0.05));
4583		margin-bottom: 0.8rem;
4584	}
4585	footer .copyright .social a {
4586		margin-bottom: 0.5rem;
4587	}
4588
4589}
4590
4591/* -- CSS (für Browser) #9072: Breite Nur Maximalbreite (1) [optional]  -- */
4592
4593.T2820.S9072 .wrapper { padding-left: 2rem; padding-right: 2rem; }
4594
4595
4596/* -- CSS (für Browser) #9073: Rundung Abgerundete Ecken oben (1) [optional] -- */
4597
4598.T2820.S9073 .wrapper { border-radius: 2rem 2rem 0 0; }
4599
4600
4601</style>
4602
4603
4604
4605
4606
4607	
4608
4609		
4610				<style media="screen, print">
4611					@font-face {
4612						font-family: 'Roboto';
4613						src: url('https://storage.tramino.net/static/fonts/roboto-v30-latin/400.woff2') format('woff2'),url('https://storage.tramino.net/static/fonts/roboto-v30-latin/400.woff') format('woff');
4614
4615						font-weight: 400;
4616						font-style: normal;
4617					}
4618			    </style>
4619		    
4620		
4621		
4622		
4623		
4624
4625
4626
4627		
4628		
4629		
4630		
4631
4632		
4633		
4634
4635		
4636
4637		<style>
4638			html {
4639				
4640			font-family: 'Roboto',sans-serif !important;
4641			font-weight: 400;
4642			font-style: normal;
4643	    
4644				font-size: 106.25%;
4645				line-height: 1.3;
4646			}
4647
4648			html .fontsize_xxsmall { font-size: 0.7rem ; }
4649			html .fontsize_xsmall { font-size: 0.8rem ; }
4650			html .fontsize_small { font-size: 0.9rem ; }
4651			html .fontsize_medium { font-size: 1rem; }
4652			html .fontsize_large { font-size: 1.1rem ; }
4653			html .fontsize_xlarge { font-size: 1.2rem; }
4654
4655			
4656			html .bold, html strong, html b { font-weight: 600; } 
4657			html h1, html h2, html h3, html h4, html h5 { font-size: inherit; font-weight: 400; }
4658			
4659
4660			
4661			@media (min-width: 567px) {
4662				html { font-size: 112.5%; }
4663			}
4664
4665			
4666			@media (min-width: 768px) {
4667				html { font-size: 118.75%; }
4668			}
4669			
4670			@media (min-width: 1024px) {
4671				html { font-size: 121.875%; }
4672			}
4673
4674			
4675			@media (min-width: 1280px) {
4676				html { font-size: 125%; }
4677			}
4678			
4679
4680		</style>
4681	
4682
4683	
4684		
4685		
4686				<style media="screen, print">
4687					@font-face {
4688						font-family: 'Yanone Kaffeesatz';
4689						src: url('https://storage.tramino.net/static/fonts/yanone-kaffeesatz-v29-latin/500.woff2') format('woff2'),url('https://storage.tramino.net/static/fonts/yanone-kaffeesatz-v29-latin/500.woff') format('woff');
4690
4691						font-weight: 500;
4692						font-style: normal;
4693					}
4694			    </style>
4695		    <style>
4696			html .specialfont {
4697				
4698			font-family: 'Yanone Kaffeesatz',sans-serif !important;
4699			font-weight: 500;
4700			font-style: normal;
4701	    
4702				font-size: 1.824rem;
4703				margin: 0.2em 0 0.4em 0;
4704				line-height: 1.2;
4705			}
4706
4707			html .specialfont.fontsize_xxsmall { font-size: 1.2768rem; }
4708			html .specialfont.fontsize_xsmall { font-size: 1.4592rem; }
4709			html .specialfont.fontsize_small { font-size: 1.6416rem; }
4710			html .specialfont.fontsize_medium { font-size: 1.824rem; }
4711			html .specialfont.fontsize_large { font-size: 2.1888rem; }
4712			html .specialfont.fontsize_xlarge { font-size: 2.3712rem; }@media (min-width: 567px) {
4713				html .specialfont { font-size: 1.924rem; }
4714				html .specialfont.fontsize_xxsmall { font-size: 1.3468rem; }
4715				html .specialfont.fontsize_xsmall { font-size: 1.5392rem; }
4716				html .specialfont.fontsize_small { font-size: 1.7316rem; }
4717				html .specialfont.fontsize_medium { font-size: 1.924rem; }
4718				html .specialfont.fontsize_large { font-size: 2.3088rem; }
4719				html .specialfont.fontsize_xlarge { font-size: 2.5012rem; }
4720			}@media (min-width: 768px) {
4721				html .specialfont { font-size: 1.974rem; }
4722				html .specialfont.fontsize_xxsmall { font-size: 1.3818rem; }
4723				html .specialfont.fontsize_xsmall { font-size: 1.5792rem; }
4724				html .specialfont.fontsize_small { font-size: 1.7766rem; }
4725				html .specialfont.fontsize_medium { font-size: 1.974rem; }
4726				html .specialfont.fontsize_large { font-size: 2.3688rem; }
4727				html .specialfont.fontsize_xlarge { font-size: 2.5662rem; }
4728			}@media (min-width: 1024px) {
4729				html .specialfont { font-size: 2.074rem; }
4730				html .specialfont.fontsize_xxsmall { font-size: 1.4518rem; }
4731				html .specialfont.fontsize_xsmall { font-size: 1.6592rem; }
4732				html .specialfont.fontsize_small { font-size: 1.8666rem; }
4733				html .specialfont.fontsize_medium { font-size: 2.074rem; }
4734				html .specialfont.fontsize_large { font-size: 2.4888rem; }
4735				html .specialfont.fontsize_xlarge { font-size: 2.6962rem; }
4736			}@media (min-width: 1280px) {
4737				html .specialfont { font-size: 2.174rem; }
4738				html .specialfont.fontsize_xxsmall { font-size: 1.5218rem; }
4739				html .specialfont.fontsize_xsmall { font-size: 1.7392rem; }
4740				html .specialfont.fontsize_small { font-size: 1.9566rem; }
4741				html .specialfont.fontsize_medium { font-size: 2.174rem; }
4742				html .specialfont.fontsize_large { font-size: 2.6088rem; }
4743				html .specialfont.fontsize_xlarge { font-size: 2.8262rem; }
4744			}
4745
4746
4747			html h1.specialfont, html h2.specialfont, html h3.specialfont, html h4.specialfont, html h5.specialfont { font-weight: 500; }
4748
4749
4750		</style>
4751	
4752
4753
4754
4755
4756
4757	<meta name="referrer" content="origin">
4758
4759
4760
4761
4762<link rel="stylesheet" href="https://storage.tramino.net/static/tramini/iconfont/css/styles.min.css?c=950980">
4763
4764
4765
4766
4767<script>
4768"use strict";
4769
4770	window.hasTouchEvents =  (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
4771
4772	window.Tramini = {
4773		hasTouchEvents: (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch),
4774		checkTabletView: function() {
4775			return $(window).width() < 768;
4776		},
4777		checkMobileView: function() {
4778			return $(window).width() < 567;
4779		},
4780		checkSmallDesktopView: function() {
4781			return $(window).width() < 1023;
4782		},
4783		checkDesktopView: function() {
4784			return $(window).width() > 1023;
4785		},
4786	};
4787	
4788
4789
4790TraminoReady(function() {
4791
4792	let $body = $('body');
4793
4794	if ( Tramini.hasTouchEvents ) {
4795		$('#body').addClass('touchdevice');
4796	}
4797
4798	if ( $('.fancybox').length > 0 && ! $body.hasClass('norequire') ) {
4799		
4800		if ( window.require !== undefined ) {
4801
4802			require(['fancybox'], function(_) {
4803
4804				$('.fancybox').fancybox({
4805					padding: 0,
4806				});
4807
4808				$('a.fancybox').on('click', function(e){ e.preventDefault(); });
4809
4810			});
4811
4812		}
4813		
4814	}
4815
4816	if ( $('.lazyload').length > 0 && !$body.hasClass('norequire') ) {
4817		require(['lazybgset','lazysizes'], function(_) {
4818			window.lazySizesConfig.customMedia = {
4819				'--mobile': '(max-width: 567px)',
4820				'--tabletsmall': '(max-width: 767px)',
4821				'--tabletbig': '(max-width: 1023px)',
4822				'--desktopsmall': '(max-width: 1279px)'
4823			};
4824		});
4825	}
4826
4827
4828	if ( 'loading' in HTMLImageElement.prototype && 0 ) {
4829		
4830		$('img[loading="lazy"]').each(function(index, el) {
4831			$(this).attr('src',$(this).data('src'));
4832		});
4833
4834		$('source[data-srcset]').each(function(index, el) {
4835			$(this).attr('srcset',$(this).data('srcset'));
4836		});
4837	} else {
4838		if ( $('.lazy').length > 0 && !$body.hasClass('norequire') ) {
4839			// https://www.andreaverlicchi.eu/lazyload/
4840
4841			var lazyLoadAmdUrl = "/tramino/js/lazy/lazyload.amd.min.js";
4842			var polyfillAmdUrl = "/tramino/js/lazy/intersection-observer.js";
4843
4844
4845			var dependencies = [
4846				"IntersectionObserver" in window
4847					? null // <- Doesn't require the polyfill
4848					: polyfillAmdUrl,
4849				lazyLoadAmdUrl
4850			];
4851			
4852			require(dependencies, function(_,LazyLoad) {
4853				window.lazyLoadInstance = new LazyLoad({
4854					//container: document.getElementById('TraminoRubrik'),
4855					elements_selector: ".lazy",
4856					// load_delay: 300,
4857					//threshold: 800,
4858				});
4859
4860			});
4861		}
4862	}
4863
4864	if ( $('.cardslider.slider').length > 0 && !$body.hasClass('norequire')) {
4865		
4866		let autoplay = false;
4867		if( $('.cardslider.slider').hasClass('autoplay') ){
4868			autoplay = true;
4869		}
4870
4871		require(['slick'], function(_) {
4872
4873			$('.cardslider.slider').slick({
4874				lazyLoad: 'ondemand',
4875				dots: false,
4876				arrows: true,
4877				infinite: true,
4878				slidesToShow: 3,
4879				slidesToScroll: 1,
4880				// prevArrow: '<a href="#" class="slider-nav slider-nav-prev"><i class="icon-arrow-left"></i></i></a>',
4881				// nextArrow: '<a href="#" class="slider-nav slider-nav-next"><i class="icon-arrow-right"></i></a>',
4882				variableWidth: true,
4883				autoplay: autoplay,
4884				autoplaySpeed: 1000,
4885			});	
4886		});
4887	}
4888
4889	
4890	
4891	
4892	
4893
4894	
4895	
4896
4897	// impressum anhang
4898	$('.T711').addClass('maxwidth text');
4899	$('.T711 p').addClass('fontsize_medium');
4900	 
4901	//Datenschutz Anhang
4902	$('.T1979').addClass('maxwidth text');
4903
4904
4905	// Zur Sprungmarke Offset von de Navigation hinzufügen
4906	// if ($('header').css('position') == 'sticky') {
4907	
4908
4909
4910		// $('a').filter(function() { return this.href.match(/TraminoAnhang/); }).addClass("scrollto");
4911
4912		$('a').filter(function() { 
4913			return this.href.match(/TraminoAnhang/);
4914		}).addClass("scrollto");
4915		
4916		$('a.scrollto').on('click', function(e) {
4917
4918			let anker = $(this).attr('href');
4919			anker = anker.match("#(.*)$");
4920			anker = anker[0];
4921
4922			if ( $(anker).length > 0 ) {
4923				e.preventDefault();
4924			}
4925
4926			let offset = 20;
4927
4928
4929			if ( $('header').css("position") == "fixed" || $('header').css("position") == "sticky" ) {
4930				offset = $('header').height() + 20;
4931			}
4932
4933
4934			let scrollto = $(anker).offset().top - offset;
4935			$('html, body').animate({
4936				scrollTop: scrollto,
4937			}, 1000, 'swing');
4938			
4939		});
4940	
4941
4942});
4943
4944document.addEventListener("DOMContentLoaded", function() {
4945  document.querySelectorAll("#TraminoInhalt table").forEach(function(table) {
4946    // Wenn Tabelle die Klasse 'no-responsive' hat, überspringen
4947    if (table.classList.contains("no-responsive")) return;
4948    
4949    // Prüfen, ob Tabelle schon in einem Wrapper steckt
4950    if (!table.parentElement.classList.contains("table-responsive")) {
4951      let wrapper = document.createElement("div");
4952      wrapper.classList.add("table-responsive");
4953      wrapper.style.overflowX = "auto";
4954      wrapper.style.webkitOverflowScrolling = "touch";
4955      table.parentNode.insertBefore(wrapper, table);
4956      wrapper.appendChild(table);
4957    }
4958  });
4959});
4960
4961
4962</script>
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973<style>
4974	body .color { color: #f18607; }
4975	body .text a:not(.bgcolor,.button) { color: #f18607; }
4976	
4977		body .bgcolor { background-color: #f18607; color: #FFFFFF; }
4978	
4979
4980	body .bordercolor { border-color: #f18607; }
4981	
4982		body .textile .button, .S6529 .textile a.button { background-color: #f18607; color: #FFFFFF; }
4983	
4984
4985	#cart-button-next {
4986		background-color: var(--signal_color,#CC3300);
4987		color: var(--signal_color_negativ,#FFFFFF);
4988	}
4989
4990	
4991	
4992
4993	/*
4994	header .header input[type="button"] {
4995	 	color: #000;
4996	 }
4997	*/
4998
4999	/* Trennbaustein Linie */
5000	body .T4681 .bordercolor:before { background: #f18607; }
5001
5002	/* Navigation: Farbiger Hover; */
5003	body .S6995 .header.show_subnav nav ul li:hover > a  { background-color: #f18607; }
5004	body .S6995 .header.show_subnav nav ul ul li:hover a  { background-color: #f18607; }
5005
5006	:root {
5007		--signal_color: #f18607;
5008		
5009			--signal_color_negativ: #FFFFFF;
5010		
5011	}
5012</style>
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028<style>
5029	body {
5030		background-color: #96c01d0C;
5031		color: #2c296f;
5032	}
5033
5034	header .header { background-color: #96c01d0C; }
5035
5036	header .S7114 .header { background-color: rgba(150,192,29,0.8) !important;  }
5037
5038	
5039		
5040		footer {
5041			--footer_border_color: rgba(0,0,0,0.05);
5042		--footer_a_color: #000;
5043		}
5044		footer .wrapper {
5045			background-color: rgba(100,100,100,0.1);
5046			border-top: 1px solid rgba(0,0,0,0.05);
5047			color: #000;
5048		}
5049
5050		footer .copyright a { color: #000; }
5051	
5052
5053	.T3108 .bg_image .mask {
5054		background: -moz-linear-gradient(top, rgba(150,192,29,0) 0%, rgba(150,192,29,1) 100%);
5055		background: -webkit-linear-gradient(top, rgba(150,192,29,0) 0%,rgba(150,192,29,1) 100%);
5056		background: linear-gradient(to bottom, rgba(150,192,29,0) 0%,rgba(150,192,29,1) 100%);
5057	}
5058
5059	
5060
5061	:root {
5062		--background_color: #96c01d0C;
5063		--text_color: #2c296f;
5064		--bgcolor-button: #f18607; 
5065		--default_font: "Roboto";
5066		--default_specialfont: "Yanone Kaffeesatz";
5067	}
5068</style>
5069
5070
5071
5072
5073
5074
5075<style type="text/css">
5076/* ChatBot */
5077#chat {
5078	position: fixed;
5079	bottom: 50px;
5080	right: 50px;
5081	font-size: 14px;
5082	z-index: 10000000;
5083}
5084
5085
5086
5087#chat .chat-button {
5088	position: relative;
5089	box-sizing: border-box;
5090	background-color: #fff;
5091	box-shadow: 2px 2px 10px rgba(0,0,0,0.3);
5092	border-radius: 10px;
5093	width: 65px;
5094	height: 65px;
5095	text-align: center;
5096	cursor: pointer;
5097	
5098}
5099
5100#chat .chat-button:hover {
5101	box-shadow: 4px 4px 15px rgba(0,0,0,0.4);
5102}
5103
5104#chat .chat-icon {
5105	position: absolute;
5106	top: -20px;
5107	left: 0px;
5108}
5109
5110#chat .chat-icon img {
5111	width: 65px !important;
5112	height: auto !important;
5113	-ms-interpolation-mode: bicubic;
5114}
5115
5116#chat .chat-cta {
5117	position: absolute;
5118	bottom: 4px;
5119	right: 0px;
5120	left: 0px;
5121	text-align: center;
5122	font-size: 11px;
5123	line-height: 1.2;
5124	font-weight: normal;
5125	color: #000;
5126}
5127
5128
5129
5130
5131@media all and (max-width: 800px) {
5132
5133	#chat { bottom: 10px; right: 10px; }
5134	#chat .chat-button { width: 50px; height: 50px; }
5135	#chat .chat-icon { top: -15px; }
5136	#chat .chat-icon img { width: 50px !important; }
5137	#chat .chat-cta { font-size: 8.5px; }
5138}
5139
5140
5141
5142#chat .chat-close {
5143	position: absolute;
5144	top: -10px;
5145	right: -10px;
5146	width: 20px;
5147	height: 20px;
5148	border-radius: 10px;
5149	background: #666;
5150	color: #fff;
5151	font-family: Arial;
5152	line-height: 20px;
5153	font-size: 20px;
5154	text-align: center;
5155	cursor: pointer;
5156}
5157
5158#chat .chat-popup {
5159	display: none;
5160	position: absolute;
5161	bottom: 0px;
5162	right: 0px;
5163	width: 350px;
5164	height: 450px;
5165	background-color: #fff;
5166	border-radius: 10px;
5167	box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
5168	padding: 8px 10px;
5169}
5170
5171#chat .chat-popup-icon {
5172	position: absolute;
5173	top: -30px;
5174	left: -10px;
5175}
5176
5177@media all and (max-width: 800px) {
5178
5179	#chat .chat-popup { width: 285px; height: auto; max-height: 450px; min-height: 200px; }
5180
5181}
5182
5183
5184
5185
5186
5187#chat .chat-popup-icon img {
5188	width: 50px !important;
5189	height: auto !important;
5190	-ms-interpolation-mode: bicubic;
5191}
5192
5193#chat .chat-input {
5194	position: relative;
5195	display: flex;
5196	padding-top: 10px;
5197	flex: 1 5%;
5198}
5199
5200#chat .chat-input textarea {
5201	width: calc(100% - 1.5rem);
5202	outline: none;
5203	resize: none;
5204	overflow: auto;
5205	border-radius: 0.5rem 0 0 0.5rem;
5206	color: #222;
5207	padding: 0.4rem 0.5rem;
5208	box-sizing: border-box;
5209	font-size: 0.9rem;
5210	font-family: inherit;
5211	border: 1px solid #222;
5212	border-right-width: 0px;
5213	margin: 0;
5214}
5215
5216#chat .chat-input .send_button {
5217	border: 1px solid #222;
5218	border-left-width: 0px;
5219	width: 2.2rem;
5220	border-radius: 0 0.5rem 0.5rem 0;
5221	display: flex;
5222	justify-content: center;
5223	align-items: center;
5224}
5225
5226#chat .chat-input .send_button svg { width: 1.2rem; height: auto; scale: 1; transition: all 0.1s; }
5227#chat .chat-input .send_button svg path { fill: #888; }
5228
5229#chat .chat-input .send_button.active svg path { cursor: pointer; }
5230#chat .chat-input .send_button.active svg path { fill: #000; }
5231#chat .chat-input .send_button.active:hover svg { scale: 1.05; }
5232
5233
5234
5235
5236/* Opened Chat */
5237
5238#chat.open .chat-popup {
5239	display: flex;
5240	flex-direction: column;
5241}
5242
5243#chat.open .chat-button { box-shadow: none; }
5244
5245
5246
5247
5248
5249
5250/* Static Chat (inside Backend) */
5251
5252#chat.static { position: static; }
5253#chat.static .chat-button { display: none; }
5254#chat.static .chat-close { display: none; }
5255	
5256#chat.static .chat-popup {
5257	display: flex;
5258	flex-direction: column;
5259	position: static;
5260	width: auto;
5261	box-shadow: none;
5262	padding: 0px;
5263}
5264
5265
5266
5267
5268
5269
5270
5271
5272/* Messages */
5273
5274
5275
5276#chat .chat-messages-outer {
5277	overflow-y: scroll;
5278	flex: 15;
5279}
5280
5281#chat .chat-messages {
5282	display: flex;
5283	flex-direction: column;
5284	justify-content: flex-end;
5285}
5286
5287#chat .chat-message {
5288
5289	position: relative;
5290	background-color: #e2e2e2;
5291	color: #000;
5292	border-radius: 20px 20px 20px 0px;
5293	padding: 5px 10px;
5294	margin-right: 25px;
5295	margin-bottom: 5px;
5296	/* align-self: flex-start; */
5297
5298	overflow-wrap: break-word;
5299    word-wrap: break-word;
5300    -ms-word-break: normal;
5301    word-break: normal;
5302    word-break: break-word;
5303    -ms-hyphens: auto;
5304    -moz-hyphens: auto;
5305    -webkit-hyphens: auto;
5306	
5307}
5308
5309#chat .chat-message a {
5310	color: #309;
5311	text-decoration: underline;
5312}
5313
5314
5315#chat .chat-message.chat-question {
5316	display: inline-block;
5317	background-color: #69c;
5318	color: #fff;
5319	margin-left: 25px; margin-right: 0px;
5320	border-radius: 20px 20px 0px 20px;
5321	align-self: flex-end;
5322	max-width: 90%;
5323	text-align: right;	
5324}
5325
5326#chat .chat-message.chat-answer {
5327	margin-left: 35px;
5328}
5329
5330#chat .chat-message.chat-answer:before {
5331	content: "";
5332	background-size: contain;
5333	-ms-interpolation-mode: bicubic;
5334	width: 30px;
5335	height: 30px;
5336	position: absolute;
5337	left: -35px;
5338	bottom: 0px;
5339}
5340
5341
5342
5343
5344#chat .chat-message.chat-info {
5345	font-size: 12px;
5346	line-height: 14px;
5347	background-color: #fff;
5348	border: 0px solid #ccc;
5349	padding: 3px 4px;
5350	color: #666;
5351
5352}
5353/* Interactions */
5354
5355
5356
5357#chat .chat-action-group {
5358	margin-top: 4px;
5359}
5360
5361#chat .chat-email {
5362	font-size: 11px;
5363	width: 160px;
5364	
5365}
5366
5367#chat .chat-action {
5368	display: inline-block;
5369	background-color: #778;
5370	color: #fff;
5371	padding: 1px 6px;
5372	border-radius: 5px;
5373	cursor: pointer !important;
5374	font-size: 12px;
5375	margin: 0.2em;
5376}
5377
5378#chat .chat-action:hover {
5379	background-color: #446 !important;
5380}
5381
5382#chat .chat-action.selected { 
5383	cursor: default;
5384	background-color: #363;
5385}
5386	
5387#chat .chat-action.unselected { 
5388	cursor: default;
5389	background-color: #778;
5390}
5391	
5392
5393
5394
5395
5396.Mandant_61367 #chat { left: 50px; right: auto; }
5397.Mandant_61367 #chat .chat-popup { left: 0; right: auto; }
5398
5399.Mandant_62565 #chat { left: 50px; right: auto; }
5400.Mandant_62565 #chat .chat-popup { left: 0; right: auto; }
5401
5402@media all and (max-width: 800px) {
5403
5404	.Mandant_61367 #chat { left: 30px; bottom: 45px; }
5405
5406	.Mandant_62565 #chat { left: 30px; bottom: 45px; }
5407
5408
5409
5410}
5411
5412</style>
5413
5414
5415
5416
5417
5418<style>
5419	#chat .chat-message.chat-answer:before {
5420		background-image: url(https://storage.tramino.net/wurzelrudi/1546009/favicon-wurzelrudi.png) !important;
5421	}
5422</style>
5423
5424
5425<script>
5426	
5427	TraminoReady(function() {
5428	
5429		var heartbeat;
5430		var chat = [];	
5431		var dialog = {};	
5432
5433		
5434					
5435		$("#chat .chat-button").click(function() { 	
5436			$("#chat").addClass("open");
5437			initChat();
5438		});
5439		
5440		if ( $("#chat").hasClass("static") ) {
5441			initChat();
5442		}
5443		
5444		
5445		$("#chat .chat-close").click(function() { 	
5446			$("#chat").removeClass("open");
5447			clearInterval(heartbeat);
5448		});
5449		
5450		
5451		$("#chat textarea").keyup(function(e) {
5452			
5453			var code = e.keyCode ? e.keyCode : e.which;
5454
5455			checkSendButton();
5456
5457			if ( code == 13 && ! e.altKey && ! e.shiftKey ) { // Enter ohne alt
5458				
5459				sendChat();
5460				
5461			}
5462			   
5463		});
5464
5465		$("#chat .send_button").click(function() { 	
5466			sendChat();
5467		});
5468		
5469		function sendChat() {
5470
5471			let message_length = getMessageLength();
5472
5473			if ( message_length == 0 ) {
5474				return;
5475			}
5476
5477			chat.push( { type: "question", text: $("#chat textarea").val() } );
5478			renderChat();
5479			$("#chat .chat-messages-outer").scrollTop($("#chat .chat-messages-outer")[0].scrollHeight);
5480
5481			loadChat( "refresh", $("#chat textarea").val() );		
5482			$("#chat textarea").val("");
5483					
5484			startChat();
5485
5486			checkSendButton();
5487		}
5488
5489		function initChat () {
5490		
5491			loadChat("refresh");
5492				
5493		}
5494		
5495		function getMessageLength() {
5496			return $("#chat textarea").val().length;	
5497		}
5498
5499		function checkSendButton () {
5500
5501			let message_length = getMessageLength();
5502
5503			if ( message_length > 0 ) {
5504				$("#chat .send_button").addClass("active")
5505			} else {
5506				$("#chat .send_button").removeClass("active")
5507			}
5508		}
5509
5510		function startChat () {
5511			console.log("startChat");
5512			clearInterval( heartbeat );
5513			
5514			heartbeat = setInterval(function(){ 
5515				loadChat("refresh"); 
5516			}, 2000);
5517		
5518		}
5519	
5520		
5521		function loadChat( action, input, message ) {
5522			
5523			console.log("loadChat");
5524
5525			$.ajax('/api/chat/', {
5526				data: {
5527					action: action,
5528					input: input,
5529					message: message,
5530					session: $("#chat").data("session"),
5531					backend: $("#chat").data("backend"),
5532					dialog: $("#chat").data("dialog"),
5533					channel: $("#chat").data("channel"),
5534					lang: $("#chat").data("lang"),
5535				},
5536				dataType: "json",
5537				success: function(response) {
5538					if ( response.status != "ok" ) return;
5539					previous_length = chat.length;
5540					chat = response.chat;
5541					
5542					
5543					if ( dialog.status == "in_progress" && response.dialog.status == "open" ) {
5544						dialog = response.dialog;
5545					}
5546
5547					dialog = response.dialog;
5548					if ( dialog.status == "in_progress" ) {
5549						$("#chat").addClass("open");
5550					}
5551
5552					if ( chat.length != previous_length || previous_length == 0 || dialog.status == "in_progress" ) {				
5553						renderChat();
5554						$("#chat .chat-messages-outer").scrollTop($("#chat .chat-messages-outer")[0].scrollHeight);
5555					}
5556					
5557				},
5558				error: function(e) {
5559					clearInterval( heartbeat );
5560					if ( console.log ) console.log("api failed: ", e);
5561				}
5562			});
5563		
5564		}
5565		
5566		function renderChat() {
5567			
5568			var out = "";
5569			$.each( chat, function( index, message ) {
5570				text = message.text.replace(/\n/g, "<br />");
5571				out = out + "<div class='chat-message chat-" + message.type + "' "
5572					+ "data-message='" +  message.id + "' "
5573					+ "data-value='" +  message.value + "' "
5574					+ ">" + text +  "</div>\n";
5575			});
5576			
5577			// if ( $("#chat").data("backend") && dialog ) {
5578			// 	out = out + "<div class='chat-message chat-info'>Zuletzt aktiv: " + dialog.loaded + "</div>";
5579			// }	
5580			
5581			
5582			$("#chat .chat-messages").html( out );
5583			
5584			$("#chat .chat-messages .chat-action").each( function( index, value ) {
5585				if ( $(this).parent().data('value') != "" ) {	
5586					if ( $(this).parent().data('value') == $(this).data('value') ) {
5587						$(this).addClass('selected');
5588					} else {
5589						$(this).addClass('unselected');
5590					}
5591				}
5592			});
5593			
5594			$("#chat .chat-messages .chat-action").click(function() { 
5595				console.log();
5596				if ( $(this).siblings(".chat-email").length ) {
5597					loadChat("value", $(this).siblings(".chat-email").val(), $(this).parents('.chat-message').data('message') ); 
5598				} else {
5599					loadChat("value", $(this).data('value'), $(this).parents('.chat-message').data('message') ); 
5600				}	
5601			});
5602			
5603			
5604			
5605			$("#chat .chat-messages .chat-email").each( function( index, value ) {
5606				if ( $(this).parents('.chat-message').data('value') != "" ) {	
5607					$(this).val( $(this).parents('.chat-message').data('value') );
5608				}
5609			});
5610			
5611			
5612			
5613		}
5614
5615		checkSendButton();
5616			
5617	});
5618	
5619</script>
5619
5620
5621<meta property="og:title" content="Sommer bei Wurzelrudis Erlebniswelt in Eibenstock">
5622<meta property="og:description" content="Sommerabenteuer für Familien in Eibenstock: Bobbahn, Reifenrutsche, Freche Flitzer, Seedorf, Tiere, Spielplätze und Natur entdecken.">
5623<meta property="og:site_name" content="Wurzelrudi">
5624<meta property="og:type" content="Website">
5625<meta property="og:url" content="https://www.wurzelrudi.de/sommer/">
5626<meta property="og:image" content="https://storage.tramino.net/wurzelrudi/1605601/freude-beim-rodeln-mit-mutter-kind-sommer-800.jpg?r=1">
5627
5628<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 5628-5629
5628
5629<script async src="https://www.googletagmanager.com/gtag/js?id=
5629G-1SNRGGDHCN
vendor: 13 bytes, line 5629
5629"></script>
5630<script>
5631  
vendor: 138 bytes, lines 5631-5635
5631window.dataLayer = window.dataLayer || [];
5632  function gtag(){dataLayer.push(arguments);}
5633  gtag('js', new Date());
5634
5635  gtag('config', '
5635G-1SNRGGDHCN
vendor: 5 bytes, line 5635
5635');
5636</script>
5636
5637
5638
5639<link rel="alternate" hreflang="x-default" href="https://www.wurzelrudi.de/sommer/">
5640<link rel="alternate" hreflang="de" href="https://www.wurzelrudi.de/sommer/">
5641<link rel="alternate" hreflang="cs" href="https://www.wurzelrudi.de/cs/sommer/">
5642<link rel="alternate" hreflang="en" href="https://www.wurzelrudi.de/en/sommer/">
5643
5644</head>
5645<body  id="body" class=" Mandant_61367 Rubrik_151596" >
5646
5647			
5648			
5649			<div class="dashboard" data-endpoint="https://wurzelrudi.tramino.de/api/dashboard/"></div>
5650		
5651
5652<div id="page">
5653
5654<div id="TraminoRubrik">
5655				
5656
5657		<div id="TraminoInhalt">
5658			
5659				<header class="TraminoVorlage T5517  overlaylogo no_padding TraminoVorlage_1" id="TraminoAnhang562031"   >
5660					<div class="nav-bar bg_color">
5661
5662	<div class="icon_wrapper primary" data-type="primary">
5663		<svg class="menu" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m2 5v2h20v-2zm0 6v2h20v-2zm0 6v2h20v-2z"/></svg>
5664		<svg class="close" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m4.7070312 3.2929688-1.4140624 1.4140624 7.2929692 7.2929688-7.2929692 7.292969 1.4140624 1.414062 7.2929688-7.292969 7.292969 7.292969 1.414062-1.414062-7.292969-7.292969 7.292969-7.2929688-1.414062-1.4140624-7.292969 7.2929692z"/></svg>
5665	</div>
5666
5667	<a href="/" class="logo">
5668		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1651369/element-3wrklein78.svg" width="400" height="0" loading='lazy' alt="Element 3WRklein78" /></picture>
5669	</a>
5670	<a href="/" rel="nofollow" class="logo_scroll">
5671		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1649710/400.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1649710/400.png 1x" type="image/png" ><img src="https://storage.tramino.net/wurzelrudi/1649710/400.png" width="400" height="355" loading='lazy' alt="Logo scroll" /></picture>
5672	</a>
5673
5674	<div class="icon_wrapper secondary">
5675		
5676			
5677			
5678			<a class="button booking" href="/planen/tickets/">
5679				
5680					
5681						<div class="icon">
5682		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1616581/icon-ticket-w.svg" width="40" height="40" loading='lazy' alt="Icon-ticket W" /></picture>
5683	</div>
5684					
5685				
5686				<span>Ticketshop</span>
5687			</a>
5688		
5689	</div>
5690
5691</div>
5692
5693
5694
5695
5696
5697
5698
5699
5700<div class="wrapper_hidden wrapper_primary sticky_content" data-type="primary">
5701
5702	
5703		<div class="headline specialfont fontsize_small color">Erlebnis für Klein &amp; Groß</div>
5704	
5705
5706	<div class="nav-outer">
5707
5708		<nav class="nav-item-wrapper elm_mobile4 elm_desktop4">
5709			
5710			
5711				
5712				
5713				
5714				<a href="/sommer/" class="nav-item open">
5715					<div class="nav-icon">
5716		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1625488/wurzelrudi-icon-01.svg" width="100" height="100" loading='lazy' alt="Wurzelrudi-icon-01" /></picture>
5717	</div>
5718					<div class="nav-label">Wurzelrudis Erlebniswelt</div>
5719				</a>
5720			
5721				
5722				
5723				
5724				<a href="/planen/" class="nav-item ">
5725					<div class="nav-icon">
5726		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1625492/wurzelrudi-icon-05.svg" width="100" height="100" loading='lazy' alt="Wurzelrudi-icon-05" /></picture>
5727	</div>
5728					<div class="nav-label">Besuch planen</div>
5729				</a>
5730			
5731				
5732				
5733				
5734				<a href="/essen-trinken/" class="nav-item ">
5735					<div class="nav-icon">
5736		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1625490/wurzelrudi-icon-03.svg" width="100" height="100" loading='lazy' alt="Wurzelrudi-icon-03" /></picture>
5737	</div>
5738					<div class="nav-label">Essen &amp; Trinken</div>
5739				</a>
5740			
5741				
5742				
5743				
5744				<a href="/hostel/" class="nav-item ">
5745					<div class="nav-icon">
5746		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1625491/wurzelrudi-icon-04.svg" width="100" height="100" loading='lazy' alt="Wurzelrudi-icon-04" /></picture>
5747	</div>
5748					<div class="nav-label">Wurzelrudis Hostel</div>
5749				</a>
5750			
5751				
5752				
5753				
5754				<a href="/ski-arena/" class="nav-item ">
5755					<div class="nav-icon">
5756		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1625496/wurzelrudi-icon-09.svg" width="100" height="100" loading='lazy' alt="Wurzelrudi-icon-09" /></picture>
5757	</div>
5758					<div class="nav-label">SkiArena Eibenstock</div>
5759				</a>
5760			
5761				
5762				
5763				
5764				<a href="/winter/" class="nav-item ">
5765					<div class="nav-icon">
5766		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1625489/wurzelrudi-icon-02.svg" width="100" height="100" loading='lazy' alt="Wurzelrudi-icon-02" /></picture>
5767	</div>
5768					<div class="nav-label">Winterspaß</div>
5769				</a>
5770			
5771				
5772				
5773				
5774				<a href="/gruppen-schulen/" class="nav-item ">
5775					<div class="nav-icon">
5776		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1625494/wurzelrudi-icon-07.svg" width="100" height="100" loading='lazy' alt="Wurzelrudi-icon-07" /></picture>
5777	</div>
5778					<div class="nav-label">Gruppentipp</div>
5779				</a>
5780			
5781				
5782				
5783				
5784				<a href="/familienzeit/" class="nav-item ">
5785					<div class="nav-icon">
5786		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1625495/wurzelrudi-icon-08.svg" width="100" height="100" loading='lazy' alt="Wurzelrudi-icon-08" /></picture>
5787	</div>
5788					<div class="nav-label">Familienzeit</div>
5789				</a>
5790			
5791		</nav>
5792
5793		
5794		
5795
5796			<nav class="nav-sublevel nav-sublevel-menu">
5797				<div class="arrow"></div>
5798				
5799					<a class="nav-sublevel-item " href="/sommer/allwetterbobbahn/" >
5800						<div class="nav-sublevel-content">
5801							<div class="nav-sublevel-headline">Allwetterbobbahn</div>
5802						</div>
5803					</a>
5804				
5805					<a class="nav-sublevel-item " href="/sommer/irrgarten/" >
5806						<div class="nav-sublevel-content">
5807							<div class="nav-sublevel-headline">Irrgarten</div>
5808						</div>
5809					</a>
5810				
5811					<a class="nav-sublevel-item " href="/sommer/reifenrutsche/" >
5812						<div class="nav-sublevel-content">
5813							<div class="nav-sublevel-headline">Reifenrutsche</div>
5814						</div>
5815					</a>
5816				
5817					<a class="nav-sublevel-item " href="/sommer/burgspielplatz/" >
5818						<div class="nav-sublevel-content">
5819							<div class="nav-sublevel-headline">Burgspielplatz</div>
5820						</div>
5821					</a>
5822				
5823					<a class="nav-sublevel-item " href="/sommer/haustierzoo/" >
5824						<div class="nav-sublevel-content">
5825							<div class="nav-sublevel-headline">Haustierzoo</div>
5826						</div>
5827					</a>
5828				
5829					<a class="nav-sublevel-item " href="/sommer/sesselbahn/" >
5830						<div class="nav-sublevel-content">
5831							<div class="nav-sublevel-headline">Sesselbahn</div>
5832						</div>
5833					</a>
5834				
5835					<a class="nav-sublevel-item " href="/sommer/freche-flitzer/" >
5836						<div class="nav-sublevel-content">
5837							<div class="nav-sublevel-headline">Freche Flitzer</div>
5838						</div>
5839					</a>
5840				
5841					<a class="nav-sublevel-item " href="/sommer/murmelwald/" >
5842						<div class="nav-sublevel-content">
5843							<div class="nav-sublevel-headline">Murmelwald</div>
5844						</div>
5845					</a>
5846				
5847					<a class="nav-sublevel-item " href="/sommer/seedorf/" >
5848						<div class="nav-sublevel-content">
5849							<div class="nav-sublevel-headline">Seedorf</div>
5850						</div>
5851					</a>
5852				
5853			</nav>
5854
5855		
5856
5857	</div>
5858
5859	
5860
5861		<div class="topics border-top" style="padding-top: 0.3em;">
5862
5863			
5864				
5865					
5866				
5867
5868				
5869					<a href="/planen/veranstaltungen/" class="color fontsize_small">
5870						
5871						<div class="icon">
5872		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1689092/eventb.svg" width="200" height="0" loading='lazy' alt="EventB" /></picture>
5873	</div>
5874						
5875						<span>
5876							
5877							Events
5878						</span>
5879						
5880						<svg class="arrow" height="40" viewBox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg"><path d="m14.980469 2.980469c-.816406 0-1.546875.496094-1.851563 1.25-.308593.753906-.125 1.617187.457032 2.183594l18.585937 18.585937-18.585937 18.585938c-.523438.5-.734375 1.246093-.550782 1.949218.183594.699219.730469 1.246094 1.429688 1.429688.703125.183594 1.449219-.027344 1.949219-.550781l20-20c.78125-.78125.78125-2.046875 0-2.828125l-20-20c-.378907-.386719-.894532-.605469-1.433594-.605469z"/></svg>
5881						
5882					</a>			   
5883				
5884					<a href="/info/jobs-karriere/" class="color fontsize_small">
5885						
5886						<div class="icon">
5887		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1689117/jobiib.svg" width="200" height="0" loading='lazy' alt="JOBIIB" /></picture>
5888	</div>
5889						
5890						<span>
5891							
5892							Jobs
5893						</span>
5894						
5895						<svg class="arrow" height="40" viewBox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg"><path d="m14.980469 2.980469c-.816406 0-1.546875.496094-1.851563 1.25-.308593.753906-.125 1.617187.457032 2.183594l18.585937 18.585937-18.585937 18.585938c-.523438.5-.734375 1.246093-.550782 1.949218.183594.699219.730469 1.246094 1.429688 1.429688.703125.183594 1.449219-.027344 1.949219-.550781l20-20c.78125-.78125.78125-2.046875 0-2.828125l-20-20c-.378907-.386719-.894532-.605469-1.433594-.605469z"/></svg>
5896						
5897					</a>			   
5898				
5899					<a href="/planen/karte/" class="color fontsize_small">
5900						
5901						<div class="icon">
5902		<picture class="format_svg"><img src="https://storage.tramino.net/wurzelrudi/1689098/karteb.svg" width="200" height="0" loading='lazy' alt="KarteB" /></picture>
5903	</div>
5904						
5905						<span>
5906							
5907							RegioGuide
5908						</span>
5909						
5910						<svg class="arrow" height="40" viewBox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg"><path d="m14.980469 2.980469c-.816406 0-1.546875.496094-1.851563 1.25-.308593.753906-.125 1.617187.457032 2.183594l18.585937 18.585937-18.585937 18.585938c-.523438.5-.734375 1.246093-.550782 1.949218.183594.699219.730469 1.246094 1.429688 1.429688.703125.183594 1.449219-.027344 1.949219-.550781l20-20c.78125-.78125.78125-2.046875 0-2.828125l-20-20c-.378907-.386719-.894532-.605469-1.433594-.605469z"/></svg>
5911						
5912					</a>			   
5913				
5914
5915			
5916
5917			
5918			
5919			   
5920			   <div id="langswitch" data-elementtrigger="TraminoLangSwitch"  data-traminolang="de" data-knownlang="de,en,cs,en,cs" >
5921	<div class="langswitch_inner">
5922		
5923		
5924			<div class="headline">Website</div>
5925			<ul>			
5926			
5927			
5928				
5929				
5930				
5931					
5932						
5933					
5934				
5935                
5936				
5937				<li data-lang="de" data-flag="de">
5938			<a href="/sommer/">
5939				<div>Deutsch</div>
5940				
5941				<div class="name_en">(German)</div>
5942				
5943			</a>
5944		</li>
5945				
5946				
5947			
5948			
5949				
5950				
5951				
5952					
5953						
5954					
5955				
5956                
5957				
5958				<li data-lang="en" data-flag="en">
5959			<a href="/en/sommer/">
5960				<div>English</div>
5961				
5962				<div class="name_en">(English)</div>
5963				
5964			</a>
5965		</li>
5966				
5967				
5968			
5969			
5970				
5971				
5972				
5973					
5974						
5975					
5976				
5977                
5978				
5979				<li data-lang="cs" data-flag="cs">
5980			<a href="/cs/sommer/">
5981				<div>Čeština</div>
5982				
5983				<div class="name_en">(Czech)</div>
5984				
5985			</a>
5986		</li>
5987				
5988				
5989			
5990		</ul>
5991		
5992		
5993	</div>
5994
5995
5996</div>
5997
5998				<a 	href="#" 
5999					data-langswitch="TraminoLangSwitch" 
6000					id="TraminoLangSwitchFooter" 
6001					style="display: flex; margin-right: auto;"
6002					class="color fontsize_small"
6003				>	
6004					<i class="icon-globe"></i>&nbsp;
6005					<span>
6006						
6007						
6008
6009						Deutsch
6010							
6011					</span>
6012				</a>
6013			
6014		</div>
6015	
6016
6017</div>
6018					
6019				</header>
6020			
6021				<section class="TraminoVorlage T4120 S9038 nomargin TraminoVorlage_2" id="TraminoAnhang554435"  style=" margin-top: -4vw !important; "   >
6022					<div class="wrapper r83" data-breakpoint="">
6023	
6024	<div class="backgroundvideo">
6025	
6026		<video class="responsiveVideo" data-test="1" width="100%" height="auto"  autoplay muted="false" playsinline loop aria-label="Sommerteaser (Q)">
6027		
6028		<source data-mobile="https://comet.tramino.net/s3/s/wurzelrudi/1627305/hochformat.mp4" data-desktop="https://comet.tramino.net/s3/s/wurzelrudi/1627293/test-export.mp4" src="" type="video/mp4">
6029		
6030		Your browser does not support the video tag.
6031	</video> 
6032
6033
6034
6035
6036
6037
6038
6039
6040<script>
6041	
6042	var videoBreakpoints = new Map(); // Speichert den aktuellen Zustand pro Video
6043
6044	function updateVideoSources() {
6045        let videos = document.querySelectorAll(".responsiveVideo");
6046        let isMobile = window.matchMedia("(max-width: 567px)").matches;
6047
6048        videos.forEach( video => {
6049            let source = video.querySelector("source");
6050            let newBreakpoint = isMobile ? "mobile" : "desktop";
6051
6052            // Nur aktualisieren, wenn sich der Breakpoint wirklich ändert
6053            if (videoBreakpoints.get(video) !== newBreakpoint) {
6054                videoBreakpoints.set(video, newBreakpoint);
6055
6056                source.src = isMobile ? source.dataset.mobile : source.dataset.desktop;
6057                video.load(); // Video neu laden
6058            }
6059        });
6060    }
6061
6062    // Beim Laden der Seite und beim Resizing die richtige Quelle setzen
6063    window.addEventListener("DOMContentLoaded", updateVideoSources);
6064    window.addEventListener("resize", updateVideoSources);
6065
6066</script>
6066
6067		
6068	</div>
6069	
6070
6071	
6072
6073	
6074	<div class="textwrapper">
6075		<div class="headline specialfont fontsize_large">Wurzelrudis Erlebniswelt</div>
6076		<div class="text fontsize_xlarge">Der Familienspaß für Groß und Klein</div>
6077	</div>
6078	
6079
6080	<div class="mask"></div>
6081
6082</div>
6083					
6084				</section>
6085			
6086				<section class="TraminoVorlage T2897 S8820 S8467 S6859 S8705 TraminoVorlage_3" id="TraminoAnhang554424"  style=" margin-top: -4vw !important;  margin-bottom: 0vw !important; "   >
6087					<div class="width_wrapper maxwidth">
6088<div class="wrapper background" >
6089
6090	
6091
6092	<div data-shortcut="subheadline" class="subheadline fontsize_large bold hyphens">Klettern, staunen, entdecken – Wurzelrudis Erlebniswelt steckt voller Highlights</div>
6093	<div data-shortcut="headline" class="headline color specialfont fontsize_xlarge bold hyphens">Abenteuer, Natur, Nervenkitzel</div>
6094
6095	
6096
6097	<div class="text textile" data-shortcut="col1_text">
6098		<p>Von der Irren Kletterwelt über den Irrgarten bis hin zum Rollenspieldorf: In Wurzelrudis Erlebniswelt sind Köpfchen, Geschick und Neugier gefragt. Kleine Abenteurer kraxeln hoch hinaus, verlieren sich im Irrgarten, balancieren übers Wasser oder entdecken geheime Gänge im Schloss.</p><p>Ruhiger, aber genauso spannend wird’s im Murmelwald mit Piratenschiff, Riesenmurmelbahn und Mini-Adlersee. Im Haustierzoo warten Ponys, Meerschweinchen und Enten auf neugierige Besucher. Natur erleben, Tiere beobachten, planschen, spielen und toben – hier gibt es für Familien jeden Tag neue Entdeckungen!</p><p>Tipp: Wechselsachen mitbringen – es wird nass, wild und wunderbar!</p>
6099		
6100	</div>	
6101
6102</div>
6103</div>
6104					
6105				</section>
6106			
6107				<section class="TraminoVorlage T4014 S9316 TraminoVorlage_4" id="TraminoAnhang590351"  style=" margin-bottom: 0vw !important; "   >
6108					<div class="maxwidth"  >
6109
6110	
6111	
6112	<div class="col path">
6113		<i class="icon icon-poi"></i>
6114		<span >
6115			
6116			
6117			<a href="/" ><span >Wurzelrudis Erlebniswelt</span></a>
6118		</span>
6119		
6120		
6121		<span >
6122			
6123			
6124			&nbsp;&rsaquo;&nbsp; <a href="/sommer/" ><span >Wurzelrudis Erlebniswelt</span></a>
6125		</span>
6126		
6127		
6128		
6129	</div>
6130
6131	
6132	
6133	
6134	
6135	
6136	
6137	<div class="break"></div>
6138	
6139</div>
6140					
6141				</section>
6142			
6143				<section class="TraminoVorlage T4681 TraminoVorlage_5" id="TraminoAnhang590285"   >
6144					<div class="partline maxwidth">
6145	
6146	
6147	
6148	
6149	
6150	
6151	
6152	
6153		
6154		<div class="bordertext specialfont fontsize_small ">
6155			
6156				<span class="">Wurzelrudis Sommererlebnisse</span>
6157			
6158		</div>
6159	
6160</div>
6161
6162
6163	<style>
6164	#TraminoAnhang590285.T4681 {
6165		--color: #f18607;
6166	}
6167	</style>
6168					
6169				</section>
6170			
6171				<section class="TraminoVorlage T5559 S9101 TraminoVorlage_6" id="TraminoAnhang569728"   >
6172					<div class="grid-stack-item" data-gs-id="569728">
6173	<div class="wrap_wrapper grid-stack-item-content ">
6174	<div class="wrap_inner">
6175	
6176		
6177		
6178		
6179		
6180
6181		
6182		
6183		
6184		<div class="maxwidth">
6185			
6186			<div class="meta-wrap-content">
6187				
6188
6189	
6190	
6191	
6192
6193	
6194	
6195	
6196	
6197	
6198	
6199	
6200		
6201
6202		
6203
6204		
6205	
6206		
6207		
6208		
6209
6210		
6211
6212		
6213		
6214	
6215	
6216	
6217		
6218
6219		
6220
6221		
6222	
6223		
6224		
6225		
6226
6227		
6228
6229		
6230		
6231	
6232	
6233	
6234		
6235
6236		
6237
6238		
6239	
6240		
6241		
6242		
6243
6244		
6245
6246		
6247		
6248	
6249	
6250	
6251		
6252
6253		
6254
6255		
6256	
6257		
6258		
6259		
6260
6261		
6262
6263		
6264		
6265	
6266	
6267	
6268		
6269
6270		
6271
6272		
6273	
6274		
6275		
6276		
6277
6278		
6279
6280		
6281		
6282	
6283	
6284	
6285		
6286
6287		
6288
6289		
6290	
6291		
6292		
6293		
6294
6295		
6296
6297		
6298		
6299	
6300	
6301	
6302		
6303
6304		
6305
6306		
6307	
6308		
6309		
6310		
6311
6312		
6313
6314		
6315		
6316	
6317	
6318	
6319		
6320
6321		
6322
6323		
6324	
6325		
6326		
6327		
6328
6329		
6330
6331		
6332		
6333	
6334	
6335	
6336		
6337
6338		
6339
6340		
6341	
6342		
6343		
6344		
6345
6346		
6347
6348		
6349		
6350	
6351	
6352	
6353	
6354	<!-- MetaDetail -->
6355
6356
6357	<!-- MetaDetail: load_css only -->
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438<div class="T5277 display_mobile_grid display_tablet_grid display_desktop_grid cols_mobile_1 cols_tablet_1 cols_desktop_3 layout_below layout_tablet_below layout_mobile_below ratio_landscape slider_slice_1 meta-teaser-up-right-icon meta-teaser-headline-inside meta-teaser-hover-bright meta-teaser-image-radius-light">
6439
6440
6441
6442
6443
6444
6445
6446	<div class="teaser_head noselect">
6447		<div class="filter_count"><span>9</span> von 9</div>
6448		<div class="filter_selected"></div>
6449		<div class="paginator_pages" role="navigation" aria-label="Pagination"></div>
6450	</div>
6451
6452	<div class="outer ">
6453		
6454		
6455			
6456		<div class="elements elements_569728
6457                
6458                "
6459                    >
6460
6461                
6462
6463			
6464			
6465			
6466
6467			
6468						
6469			
6470				
6471				
6472			
6473				
6474				
6475				
6476
6477				
6478				
6479				
6480				
6481				
6482				
6483				
6484				
6485				
6486				
6487
6488				
6489				
6490
6491				
6492
6493				
6494				
6495				
6496				
6497				
6498				
6499
6500				
6501				
6502
6503				
6504
6505				
6506
6507
6508				
6509				
6510				
6511				
6512
6513				
6514
6515				
6516				
6517				
6518
6519				
6520				
6521
6522
6523				
6524
6525				
6526				
6527
6528
6529				
6530				
6531				
6532				
6533			
6534				
6535				
6536				
6537
6538
6539				
6540
6541				
6542
6543
6544
6545
6546				
6547
6548
6549
6550			
6551						
6552					
6553					
6554
6555						
6556					
6557					
6558				
6559				
6560				
6561				
6562				
6563				
6564				
6565
6566				
6567
6568
6569				
6570
6571				
6572				<a class="element  clickable "  data-id='152356' href='/sommer/allwetterbobbahn/'>
6573					
6574
6575
6576
6577
6578
6579					
6580					<div class="bild">
6581					
6582
6583						
6584
6585						
6586
6587
6588							
6589							   	
6590									
6591								
6592							
6593
6594							
6595
6596							<div class="meta-teaser-images" >
6597	
6598	
6599
6600	
6601
6602		
6603		
6604
6605		
6606
6607		
6608
6609		
6610
6611		
6612
6613		
6614		
6615
6616		
6617
6618		
6619		
6620		
6621		
6622		
6623	
6624		
6625		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1513221/600x450.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1513221/400x300.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1513221/600x450.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1513221/400x300.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1513221/400x300.jpg" width="400" height="300" loading='lazy' alt="Wurzelrudi@TMGS Thomas Schlorke" /></picture>
6626	
6627	
6628	
6629	</div>
6630
6631							
6632
6633						
6634						
6635						
6636
6637						
6638
6639						
6640
6641						
6642
6643
6644					
6645					</div>
6646					
6647				
6648					
6649
6650
6651
6652
6653
6654					
6655
6656					<div class="metateaser-content">
6657
6658						<div class="metateaser-content-text">
6659							
6660							
6661
6662							
6663							
6664
6665							
6666
6667							
6668							
6669
6670							
6671							
6672							
6673							
6674							
6675							
6676							
6677
6678							<div class="default_font teaser-name clamp clamp2" >Allwetterbobbahn</div>
6679
6680
6681							
6682
6683
6684							
6685
6686							
6687							
6688							
6689
6690							
6691							
6692							
6693						</div>
6694
6695						
6696
6697						
6698
6699						
6700						
6701						
6702						
6703						
6704						
6705						
6706						
6707						
6708						
6709						
6710						
6711
6712						
6713						
6714
6715					</div>
6716					
6717
6718					
6719
6720				</a>
6721			
6722				
6723
6724				
6725
6726				
6727				
6728				
6729				
6730				
6731				
6732				
6733				
6734				
6735				
6736				
6737			
6738				
6739				
6740				
6741
6742				
6743				
6744				
6745				
6746				
6747				
6748				
6749				
6750				
6751				
6752
6753				
6754				
6755
6756				
6757
6758				
6759				
6760				
6761				
6762				
6763				
6764
6765				
6766				
6767
6768				
6769
6770				
6771
6772
6773				
6774				
6775				
6776				
6777
6778				
6779
6780				
6781				
6782				
6783
6784				
6785				
6786
6787
6788				
6789
6790				
6791				
6792
6793
6794				
6795				
6796				
6797				
6798			
6799				
6800				
6801				
6802
6803
6804				
6805
6806				
6807
6808
6809
6810
6811				
6812
6813
6814
6815			
6816						
6817					
6818					
6819
6820						
6821					
6822					
6823				
6824				
6825				
6826				
6827				
6828				
6829				
6830
6831				
6832
6833
6834				
6835
6836				
6837				<a class="element  clickable "  data-id='151604' href='/sommer/irrgarten/'>
6838					
6839
6840
6841
6842
6843
6844					
6845					<div class="bild">
6846					
6847
6848						
6849
6850						
6851
6852
6853							
6854							   	
6855									
6856								
6857							
6858
6859							
6860
6861							<div class="meta-teaser-images" >
6862	
6863	
6864
6865	
6866
6867		
6868		
6869
6870		
6871
6872		
6873
6874		
6875
6876		
6877
6878		
6879		
6880
6881		
6882
6883		
6884		
6885		
6886		
6887		
6888	
6889		
6890		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1513455/600.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1513455/400.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1513455/600.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1513455/400.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1513455/400.jpg" width="400" height="300" loading='lazy' alt="Wurzelrudi Irrgarten" /></picture>
6891	
6892	
6893	
6894	</div>
6895
6896							
6897
6898						
6899						
6900						
6901
6902						
6903
6904						
6905
6906						
6907
6908
6909					
6910					</div>
6911					
6912				
6913					
6914
6915
6916
6917
6918
6919					
6920
6921					<div class="metateaser-content">
6922
6923						<div class="metateaser-content-text">
6924							
6925							
6926
6927							
6928							
6929
6930							
6931
6932							
6933							
6934
6935							
6936							
6937							
6938							
6939							
6940							
6941							
6942
6943							<div class="default_font teaser-name clamp clamp2" >Irrgarten</div>
6944
6945
6946							
6947
6948
6949							
6950
6951							
6952							
6953							
6954
6955							
6956							
6957							
6958						</div>
6959
6960						
6961
6962						
6963
6964						
6965						
6966						
6967						
6968						
6969						
6970						
6971						
6972						
6973						
6974						
6975						
6976
6977						
6978						
6979
6980					</div>
6981					
6982
6983					
6984
6985				</a>
6986			
6987				
6988
6989				
6990
6991				
6992				
6993				
6994				
6995				
6996				
6997				
6998				
6999				
7000				
7001				
7002			
7003				
7004				
7005				
7006
7007				
7008				
7009				
7010				
7011				
7012				
7013				
7014				
7015				
7016				
7017
7018				
7019				
7020
7021				
7022
7023				
7024				
7025				
7026				
7027				
7028				
7029
7030				
7031				
7032
7033				
7034
7035				
7036
7037
7038				
7039				
7040				
7041				
7042
7043				
7044
7045				
7046				
7047				
7048
7049				
7050				
7051
7052
7053				
7054
7055				
7056				
7057
7058
7059				
7060				
7061				
7062				
7063			
7064				
7065				
7066				
7067
7068
7069				
7070
7071				
7072
7073
7074
7075
7076				
7077
7078
7079
7080			
7081						
7082					
7083					
7084
7085						
7086					
7087					
7088				
7089				
7090				
7091				
7092				
7093				
7094				
7095
7096				
7097
7098
7099				
7100
7101				
7102				<a class="element  clickable "  data-id='151611' href='/sommer/reifenrutsche/'>
7103					
7104
7105
7106
7107
7108
7109					
7110					<div class="bild">
7111					
7112
7113						
7114
7115						
7116
7117
7118							
7119							   	
7120									
7121								
7122							
7123
7124							
7125
7126							<div class="meta-teaser-images" >
7127	
7128	
7129
7130	
7131
7132		
7133		
7134
7135		
7136
7137		
7138
7139		
7140
7141		
7142
7143		
7144		
7145
7146		
7147
7148		
7149		
7150		
7151		
7152		
7153	
7154		
7155		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1662079/schlauchreifen-sonne-warten-die-nutzung-600x450.webp?r=2 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1662079/schlauchreifen-sonne-warten-die-nutzung-400x300.webp?r=2 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1662079/schlauchreifen-sonne-warten-die-nutzung-600x450.jpg?r=2 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1662079/schlauchreifen-sonne-warten-die-nutzung-400x300.jpg?r=2 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1662079/schlauchreifen-sonne-warten-die-nutzung-400x300.jpg?r=2" width="400" height="300" loading='lazy' alt="Mehrere bunte Schlauchreifen liegen auf einem Netz." /></picture>
7156	
7157	
7158	
7159	</div>
7160
7161							
7162
7163						
7164						
7165						
7166
7167						
7168
7169						
7170
7171						
7172
7173
7174					
7175					</div>
7176					
7177				
7178					
7179
7180
7181
7182
7183
7184					
7185
7186					<div class="metateaser-content">
7187
7188						<div class="metateaser-content-text">
7189							
7190							
7191
7192							
7193							
7194
7195							
7196
7197							
7198							
7199
7200							
7201							
7202							
7203							
7204							
7205							
7206							
7207
7208							<div class="default_font teaser-name clamp clamp2" >Reifenrutsche</div>
7209
7210
7211							
7212
7213
7214							
7215
7216							
7217							
7218							
7219
7220							
7221							
7222							
7223						</div>
7224
7225						
7226
7227						
7228
7229						
7230						
7231						
7232						
7233						
7234						
7235						
7236						
7237						
7238						
7239						
7240						
7241
7242						
7243						
7244
7245					</div>
7246					
7247
7248					
7249
7250				</a>
7251			
7252				
7253
7254				
7255
7256				
7257				
7258				
7259				
7260				
7261				
7262				
7263				
7264				
7265				
7266				
7267			
7268				
7269				
7270				
7271
7272				
7273				
7274				
7275				
7276				
7277				
7278				
7279				
7280				
7281				
7282
7283				
7284				
7285
7286				
7287
7288				
7289				
7290				
7291				
7292				
7293				
7294
7295				
7296				
7297
7298				
7299
7300				
7301
7302
7303				
7304				
7305				
7306				
7307
7308				
7309
7310				
7311				
7312				
7313
7314				
7315				
7316
7317
7318				
7319
7320				
7321				
7322
7323
7324				
7325				
7326				
7327				
7328			
7329				
7330				
7331				
7332
7333
7334				
7335
7336				
7337
7338
7339
7340
7341				
7342
7343
7344
7345			
7346						
7347					
7348					
7349
7350						
7351					
7352					
7353				
7354				
7355				
7356				
7357				
7358				
7359				
7360
7361				
7362
7363
7364				
7365
7366				
7367				<a class="element  clickable "  data-id='151608' href='/sommer/burgspielplatz/'>
7368					
7369
7370
7371
7372
7373
7374					
7375					<div class="bild">
7376					
7377
7378						
7379
7380						
7381
7382
7383							
7384							   	
7385									
7386								
7387							
7388
7389							
7390
7391							<div class="meta-teaser-images" >
7392	
7393	
7394
7395	
7396
7397		
7398		
7399
7400		
7401
7402		
7403
7404		
7405
7406		
7407
7408		
7409		
7410
7411		
7412
7413		
7414		
7415		
7416		
7417		
7418	
7419		
7420		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1514017/600x450.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1514017/400x300.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1514017/600x450.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1514017/400x300.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1514017/400x300.jpg" width="400" height="300" loading='lazy' alt="Wurzelrudi Spielplatz" /></picture>
7421	
7422	
7423	
7424	</div>
7425
7426							
7427
7428						
7429						
7430						
7431
7432						
7433
7434						
7435
7436						
7437
7438
7439					
7440					</div>
7441					
7442				
7443					
7444
7445
7446
7447
7448
7449					
7450
7451					<div class="metateaser-content">
7452
7453						<div class="metateaser-content-text">
7454							
7455							
7456
7457							
7458							
7459
7460							
7461
7462							
7463							
7464
7465							
7466							
7467							
7468							
7469							
7470							
7471							
7472
7473							<div class="default_font teaser-name clamp clamp2" >Burgspielplatz</div>
7474
7475
7476							
7477
7478
7479							
7480
7481							
7482							
7483							
7484
7485							
7486							
7487							
7488						</div>
7489
7490						
7491
7492						
7493
7494						
7495						
7496						
7497						
7498						
7499						
7500						
7501						
7502						
7503						
7504						
7505						
7506
7507						
7508						
7509
7510					</div>
7511					
7512
7513					
7514
7515				</a>
7516			
7517				
7518
7519				
7520
7521				
7522				
7523				
7524				
7525				
7526				
7527				
7528				
7529				
7530				
7531				
7532			
7533				
7534				
7535				
7536
7537				
7538				
7539				
7540				
7541				
7542				
7543				
7544				
7545				
7546				
7547
7548				
7549				
7550
7551				
7552
7553				
7554				
7555				
7556				
7557				
7558				
7559
7560				
7561				
7562
7563				
7564
7565				
7566
7567
7568				
7569				
7570				
7571				
7572
7573				
7574
7575				
7576				
7577				
7578
7579				
7580				
7581
7582
7583				
7584
7585				
7586				
7587
7588
7589				
7590				
7591				
7592				
7593			
7594				
7595				
7596				
7597
7598
7599				
7600
7601				
7602
7603
7604
7605
7606				
7607
7608
7609
7610			
7611						
7612					
7613					
7614
7615						
7616					
7617					
7618				
7619				
7620				
7621				
7622				
7623				
7624				
7625
7626				
7627
7628
7629				
7630
7631				
7632				<a class="element  clickable "  data-id='151603' href='/sommer/haustierzoo/'>
7633					
7634
7635
7636
7637
7638
7639					
7640					<div class="bild">
7641					
7642
7643						
7644
7645						
7646
7647
7648							
7649							   	
7650									
7651								
7652							
7653
7654							
7655
7656							<div class="meta-teaser-images" >
7657	
7658	
7659
7660	
7661
7662		
7663		
7664
7665		
7666
7667		
7668
7669		
7670
7671		
7672
7673		
7674		
7675
7676		
7677
7678		
7679		
7680		
7681		
7682		
7683	
7684		
7685		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1662672/600x450.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1662672/400x300.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1662672/600x450.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1662672/400x300.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1662672/400x300.jpg" width="400" height="300" loading='lazy' alt="TMGS2019 Thomas Schlorke (119)" /></picture>
7686	
7687	
7688	
7689	</div>
7690
7691							
7692
7693						
7694						
7695						
7696
7697						
7698
7699						
7700
7701						
7702
7703
7704					
7705					</div>
7706					
7707				
7708					
7709
7710
7711
7712
7713
7714					
7715
7716					<div class="metateaser-content">
7717
7718						<div class="metateaser-content-text">
7719							
7720							
7721
7722							
7723							
7724
7725							
7726
7727							
7728							
7729
7730							
7731							
7732							
7733							
7734							
7735							
7736							
7737
7738							<div class="default_font teaser-name clamp clamp2" >Haustierzoo</div>
7739
7740
7741							
7742
7743
7744							
7745
7746							
7747							
7748							
7749
7750							
7751							
7752							
7753						</div>
7754
7755						
7756
7757						
7758
7759						
7760						
7761						
7762						
7763						
7764						
7765						
7766						
7767						
7768						
7769						
7770						
7771
7772						
7773						
7774
7775					</div>
7776					
7777
7778					
7779
7780				</a>
7781			
7782				
7783
7784				
7785
7786				
7787				
7788				
7789				
7790				
7791				
7792				
7793				
7794				
7795				
7796				
7797			
7798				
7799				
7800				
7801
7802				
7803				
7804				
7805				
7806				
7807				
7808				
7809				
7810				
7811				
7812
7813				
7814				
7815
7816				
7817
7818				
7819				
7820				
7821				
7822				
7823				
7824
7825				
7826				
7827
7828				
7829
7830				
7831
7832
7833				
7834				
7835				
7836				
7837
7838				
7839
7840				
7841				
7842				
7843
7844				
7845				
7846
7847
7848				
7849
7850				
7851				
7852
7853
7854				
7855				
7856				
7857				
7858			
7859				
7860				
7861				
7862
7863
7864				
7865
7866				
7867
7868
7869
7870
7871				
7872
7873
7874
7875			
7876						
7877					
7878					
7879
7880						
7881					
7882					
7883				
7884				
7885				
7886				
7887				
7888				
7889				
7890
7891				
7892
7893
7894				
7895
7896				
7897				<a class="element  clickable "  data-id='151610' href='/sommer/se
7897sselbahn/'>
7898					
7899
7900
7901
7902
7903
7904					
7905					<div class="bild">
7906					
7907
7908						
7909
7910						
7911
7912
7913							
7914							   	
7915									
7916								
7917							
7918
7919							
7920
7921							<div class="meta-teaser-images" >
7922	
7923	
7924
7925	
7926
7927		
7928		
7929
7930		
7931
7932		
7933
7934		
7935
7936		
7937
7938		
7939		
7940
7941		
7942
7943		
7944		
7945		
7946		
7947		
7948	
7949		
7950		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1627779/sessellift-faehrt-ueber-berg-fruehling-600x450.webp?r=1 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1627779/sessellift-faehrt-ueber-berg-fruehling-400x300.webp?r=1 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1627779/sessellift-faehrt-ueber-berg-fruehling-600x450.jpg?r=1 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1627779/sessellift-faehrt-ueber-berg-fruehling-400x300.jpg?r=1 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1627779/sessellift-faehrt-ueber-berg-fruehling-400x300.jpg?r=1" width="400" height="300" loading='lazy' alt="Ein Sessellift schwebt über einen Berg in der Frühlingszeit. Die Sonne scheint, und der Himmel ist blau." /></picture>
7951	
7952	
7953	
7954	</div>
7955
7956							
7957
7958						
7959						
7960						
7961
7962						
7963
7964						
7965
7966						
7967
7968
7969					
7970					</div>
7971					
7972				
7973					
7974
7975
7976
7977
7978
7979					
7980
7981					<div class="metateaser-content">
7982
7983						<div class="metateaser-content-text">
7984							
7985							
7986
7987							
7988							
7989
7990							
7991
7992							
7993							
7994
7995							
7996							
7997							
7998							
7999							
8000							
8001							
8002
8003							<div class="default_font teaser-name clamp clamp2" >Sesselbahn</div>
8004
8005
8006							
8007
8008
8009							
8010
8011							
8012							
8013							
8014
8015							
8016							
8017							
8018						</div>
8019
8020						
8021
8022						
8023
8024						
8025						
8026						
8027						
8028						
8029						
8030						
8031						
8032						
8033						
8034						
8035						
8036
8037						
8038						
8039
8040					</div>
8041					
8042
8043					
8044
8045				</a>
8046			
8047				
8048
8049				
8050
8051				
8052				
8053				
8054				
8055				
8056				
8057				
8058				
8059				
8060				
8061				
8062			
8063				
8064				
8065				
8066
8067				
8068				
8069				
8070				
8071				
8072				
8073				
8074				
8075				
8076				
8077
8078				
8079				
8080
8081				
8082
8083				
8084				
8085				
8086				
8087				
8088				
8089
8090				
8091				
8092
8093				
8094
8095				
8096
8097
8098				
8099				
8100				
8101				
8102
8103				
8104
8105				
8106				
8107				
8108
8109				
8110				
8111
8112
8113				
8114
8115				
8116				
8117
8118
8119				
8120				
8121				
8122				
8123			
8124				
8125				
8126				
8127
8128
8129				
8130
8131				
8132
8133
8134
8135
8136				
8137
8138
8139
8140			
8141						
8142					
8143					
8144
8145						
8146					
8147					
8148				
8149				
8150				
8151				
8152				
8153				
8154				
8155
8156				
8157
8158
8159				
8160
8161				
8162				<a class="element  clickable "  data-id='151605' href='/sommer/freche-flitzer/'>
8163					
8164
8165
8166
8167
8168
8169					
8170					<div class="bild">
8171					
8172
8173						
8174
8175						
8176
8177
8178							
8179							   	
8180									
8181								
8182							
8183
8184							
8185
8186							<div class="meta-teaser-images" >
8187	
8188	
8189
8190	
8191
8192		
8193		
8194
8195		
8196
8197		
8198
8199		
8200
8201		
8202
8203		
8204		
8205
8206		
8207
8208		
8209		
8210		
8211		
8212		
8213	
8214		
8215		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1513565/600x450.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1513565/400x300.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1513565/600x450.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1513565/400x300.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1513565/400x300.jpg" width="400" height="300" loading='lazy' alt="Wurzelrudi@TMGS Thomas Schlorke 4" /></picture>
8216	
8217	
8218	
8219	</div>
8220
8221							
8222
8223						
8224						
8225						
8226
8227						
8228
8229						
8230
8231						
8232
8233
8234					
8235					</div>
8236					
8237				
8238					
8239
8240
8241
8242
8243
8244					
8245
8246					<div class="metateaser-content">
8247
8248						<div class="metateaser-content-text">
8249							
8250							
8251
8252							
8253							
8254
8255							
8256
8257							
8258							
8259
8260							
8261							
8262							
8263							
8264							
8265							
8266							
8267
8268							<div class="default_font teaser-name clamp clamp2" >Freche Flitzer</div>
8269
8270
8271							
8272
8273
8274							
8275
8276							
8277							
8278							
8279
8280							
8281							
8282							
8283						</div>
8284
8285						
8286
8287						
8288
8289						
8290						
8291						
8292						
8293						
8294						
8295						
8296						
8297						
8298						
8299						
8300						
8301
8302						
8303						
8304
8305					</div>
8306					
8307
8308					
8309
8310				</a>
8311			
8312				
8313
8314				
8315
8316				
8317				
8318				
8319				
8320				
8321				
8322				
8323				
8324				
8325				
8326				
8327			
8328				
8329				
8330				
8331
8332				
8333				
8334				
8335				
8336				
8337				
8338				
8339				
8340				
8341				
8342
8343				
8344				
8345
8346				
8347
8348				
8349				
8350				
8351				
8352				
8353				
8354
8355				
8356				
8357
8358				
8359
8360				
8361
8362
8363				
8364				
8365				
8366				
8367
8368				
8369
8370				
8371				
8372				
8373
8374				
8375				
8376
8377
8378				
8379
8380				
8381				
8382
8383
8384				
8385				
8386				
8387				
8388			
8389				
8390				
8391				
8392
8393
8394				
8395
8396				
8397
8398
8399
8400
8401				
8402
8403
8404
8405			
8406						
8407					
8408					
8409
8410						
8411					
8412					
8413				
8414				
8415				
8416				
8417				
8418				
8419				
8420
8421				
8422
8423
8424				
8425
8426				
8427				<a class="element  clickable "  data-id='151606' href='/sommer/murmelwald/'>
8428					
8429
8430
8431
8432
8433
8434					
8435					<div class="bild">
8436					
8437
8438						
8439
8440						
8441
8442
8443							
8444							   	
8445									
8446								
8447							
8448
8449							
8450
8451							<div class="meta-teaser-images" >
8452	
8453	
8454
8455	
8456
8457		
8458		
8459
8460		
8461
8462		
8463
8464		
8465
8466		
8467
8468		
8469		
8470
8471		
8472
8473		
8474		
8475		
8476		
8477		
8478	
8479		
8480		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1627784/holzball-rollt-einer-bank-freien-600x450.webp?r=1 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1627784/holzball-rollt-einer-bank-freien-400x300.webp?r=1 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1627784/holzball-rollt-einer-bank-freien-600x450.jpg?r=1 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1627784/holzball-rollt-einer-bank-freien-400x300.jpg?r=1 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1627784/holzball-rollt-einer-bank-freien-400x300.jpg?r=1" width="400" height="300" loading='lazy' alt="Ein Holzball liegt auf einer Bank und rollt. Es ist ein sonniger Tag und die Umgebung ist ruhig und grün." /></picture>
8481	
8482	
8483	
8484	</div>
8485
8486							
8487
8488						
8489						
8490						
8491
8492						
8493
8494						
8495
8496						
8497
8498
8499					
8500					</div>
8501					
8502				
8503					
8504
8505
8506
8507
8508
8509					
8510
8511					<div class="metateaser-content">
8512
8513						<div class="metateaser-content-text">
8514							
8515							
8516
8517							
8518							
8519
8520							
8521
8522							
8523							
8524
8525							
8526							
8527							
8528							
8529							
8530							
8531							
8532
8533							<div class="default_font teaser-name clamp clamp2" >Murmelwald</div>
8534
8535
8536							
8537
8538
8539							
8540
8541							
8542							
8543							
8544
8545							
8546							
8547							
8548						</div>
8549
8550						
8551
8552						
8553
8554						
8555						
8556						
8557						
8558						
8559						
8560						
8561						
8562						
8563						
8564						
8565						
8566
8567						
8568						
8569
8570					</div>
8571					
8572
8573					
8574
8575				</a>
8576			
8577				
8578
8579				
8580
8581				
8582				
8583				
8584				
8585				
8586				
8587				
8588				
8589				
8590				
8591				
8592			
8593				
8594				
8595				
8596
8597				
8598				
8599				
8600				
8601				
8602				
8603				
8604				
8605				
8606				
8607
8608				
8609				
8610
8611				
8612
8613				
8614				
8615				
8616				
8617				
8618				
8619
8620				
8621				
8622
8623				
8624
8625				
8626
8627
8628				
8629				
8630				
8631				
8632
8633				
8634
8635				
8636				
8637				
8638
8639				
8640				
8641
8642
8643				
8644
8645				
8646				
8647
8648
8649				
8650				
8651				
8652				
8653			
8654				
8655				
8656				
8657
8658
8659				
8660
8661				
8662
8663
8664
8665
8666				
8667
8668
8669
8670			
8671						
8672					
8673					
8674
8675						
8676					
8677					
8678				
8679				
8680				
8681				
8682				
8683				
8684				
8685
8686				
8687
8688
8689				
8690
8691				
8692				<a class="element  clickable "  data-id='151607' href='/sommer/seedorf/'>
8693					
8694
8695
8696
8697
8698
8699					
8700					<div class="bild">
8701					
8702
8703						
8704
8705						
8706
8707
8708							
8709							   	
8710									
8711								
8712							
8713
8714							
8715
8716							<div class="meta-teaser-images" >
8717	
8718	
8719
8720	
8721
8722		
8723		
8724
8725		
8726
8727		
8728
8729		
8730
8731		
8732
8733		
8734		
8735
8736		
8737
8738		
8739		
8740		
8741		
8742		
8743	
8744		
8745		<picture >
8745<source srcset="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-600.webp?r=1 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-400.webp?r=1 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-600.jpg?r=1 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-400.jpg?r=1 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-400.jpg?r=1" width="400" height="300" loading='lazy' alt="Kinder spielen fröhlich in einer bunten Burg mit Rutsche, umgeben von Bäumen und grauem Himmel." /></picture>
8746	
8747	
8748	
8749	</div>
8750
8751							
8752
8753						
8754						
8755						
8756
8757						
8758
8759						
8760
8761						
8762
8763
8764					
8765					</div>
8766					
8767				
8768					
8769
8770
8771
8772
8773
8774					
8775
8776					<div class="metateaser-content">
8777
8778						<div class="metateaser-content-text">
8779							
8780							
8781
8782							
8783							
8784
8785							
8786
8787							
8788							
8789
8790							
8791							
8792							
8793							
8794							
8795							
8796							
8797
8798							<div class="default_font teaser-name clamp clamp2" >Seedorf</div>
8799
8800
8801							
8802
8803
8804							
8805
8806							
8807							
8808							
8809
8810							
8811							
8812							
8813						</div>
8814
8815						
8816
8817						
8818
8819						
8820						
8821						
8822						
8823						
8824						
8825						
8826						
8827						
8828						
8829						
8830						
8831
8832						
8833						
8834
8835					</div>
8836					
8837
8838					
8839
8840				</a>
8841			
8842				
8843
8844				
8845
8846				
8847				
8848				
8849				
8850				
8851				
8852				
8853				
8854				
8855
8856			
8857
8858		</div>
8859
8860		
8861
8862		
8863		
8864	</div>
8865
8866	<div style="display: none;">
8867						<div id="152356">
8868							<!-- MetaDetail -->
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881	
8882	
8883	
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902	
8903		
8904	
8905	
8906
8907
8908
8909
8910
8911
8912
8913 
8914
8915
8916
8917
8918
8919<div class="MetaDetail"
8920
8921	>
8922	
8923
8924	
8925	
8926	
8927	
8928	
8929
8930
8931	
8932
8933
8934
8935
8936
8937
8938	
8939
8940	
8941
8942		
8943			
8944			
8945			
8946			
8947
8948			
8949				
8950				
8951				
8952				
8953			
8954			
8955			
8956			
8957			
8958			
8959
8960			
8961			
8962				
8963
8964				
8965					
8966				
8967			
8968
8969			
8970
8971
8972			
8973			<div class="sheet-bilder slider-outer " data-count="1">
8974				
8975				<div class="slider-wrapper slider-elements">
8976					
8977
8978						
8979						
8980
8981						
8982							<div class="sheet-bild b1513221 slider-element ">
8983								
8984								
8985
8986
8987								<figure>
8988		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1513221/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1513221/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1513221/800x480.jpg" width="800" height="480" loading='lazy' alt="Wurzelrudi@TMGS Thomas Schlorke" /></picture>
8989	</figure>
8990								
8991								
8992							</div>
8993
8994						
8995					
8996						
8997					
8998					
8999				</div>
9000
9001				
9002					<div class="slider-arrows">
9003						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
9004						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
9005					</div>
9006				
9007
9008				
9009				
9010				
9011
9012
9013				
9014				
9015				
9016
9017				
9018
9019				
9020
9021				
9022
9023
9024				
9025
9026
9027				
9028
9029				
9030								
9031
9032			</div>
9033			
9034
9035		
9036		
9037
9038
9039
9040
9041
9042
9043
9044
9045	
9046
9047
9048		<div class="content">
9049
9050			
9051
9052			
9053			
9054
9055
9056			<div class="name">Allwetterbobbahn</div>
9057			
9058
9059
9060			
9061
9062
9063
9064
9065
9066			
9067
9068			
9069			
9070
9071			
9072
9073			
9074
9075
9076			
9077			<div class="text"><p>Unsere Allwetterbobbahn verspricht Adrenalin pur. Vom Tal aus wirst du bequem nach oben gezogen, bevor es richtig losgeht. Einsteigen, anschnallen, losrodeln – der Fahrspaß kennt keine Grenzen. Mitfahren dürfen Kinder ab 3 Jahre. Ab einem Alter von 12 Jahren können Kinder auch alleine rodeln. Ob zu zweit oder solo: Das bleibt euch überlassen.</p></div>
9078			
9079
9080				
9081			
9082
9083
9084
9085
9086
9087			
9088
9089				
9090			
9091
9092
9093			
9094			
9095			
9096
9097			
9098			
9099			
9100				
9101				
9102				
9103				
9104			
9105			
9106
9107			
9108
9109
9110
9111			
9112
9113
9114			
9115
9116			
9117			
9118				
9119			
9120			
9121			
9122
9123			
9124			
9125
9126			
9127			
9128
9129				
9130			
9131
9132			
9133			
9134			
9135			
9136			
9137			
9138			
9139
9140			
9141
9142			
9143
9144			
9145
9146			
9147			
9148			
9149			
9150
9151			
9152			
9153
9154			
9155
9156			
9157
9158			
9159
9160			
9161			
9162
9163			
9164			
9165
9166			
9167			
9168
9169			
9170
9171
9172
9173
9174			
9175
9176
9177				
9178
9179				
9180
9181				
9182				
9183
9184
9185				
9186
9187
9188					
9189				
9190				
9191
9192
9193
9194				
9195				
9196				
9197				
9198				
9199				
9200				
9201
9202
9203
9204
9205
9206
9207
9208				
9209				
9210				
9211
9212				
9213
9214				
9215		
9216				
9217				
9218
9219				
9220
9221				
9222
9223				
9224				
9225				
9226
9227
9228		
9229
9230
9231				
9232
9233
9234
9235
9236
9237
9238				
9239
9240			
9241
9242				
9243
9244
9245				
9246				
9247				
9248				
9249			
9250				
9251				
9252				
9253				
9254					
9254<script>
9255
9256window.gmaps_init = false;
9257
9258var initMap = function(map) {
9259
9260	let $geodata_map = $(map);
9261	let geodata = $geodata_map.data('geodata');
9262
9263	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
9264	const safeFloat = (v, fb = 0) => {
9265		const n = parseFloat(v);
9266		return Number.isFinite(n) ? n : fb;
9267	};
9268	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
9269	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
9270	var center_lat = safeFloat(centerLatRaw, 0);
9271	var center_lng = safeFloat(centerLngRaw, 0);
9272
9273	//  Calculate Zoom Level
9274	var zoom = 8;
9275	if ( geodata.zoom > 0 ) {
9276		zoom = geodata.zoom;
9277	}
9278
9279	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
9280
9281	let MAP_BOUNDS = undefined;
9282	if ( geodata.bounds !== undefined ) {
9283		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
9284		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
9285		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
9286		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
9287		if ([east, north, south, west].every(Number.isFinite)) {
9288			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
9289		} else {
9290			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
9291		}
9292	}
9293
9294	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
9295		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
9296		zoom = zoom - 2;
9297	}
9298
9299	if ( zoom == "-Infinity" ) {
9300		if ( geodata.zoom > 0 ) {
9301			zoom = geodata.zoom;
9302		} else {
9303			zoom = 8;
9304		}
9305	}
9306
9307	// console.log("MAP_BOUNDS",MAP_BOUNDS);
9308
9309	
9310	
9311    var map = new google.maps.Map($geodata_map[0], {
9312		center: { lat: center_lat, lng: center_lng },
9313		disableDefaultUI: true,
9314		zoomControl: true,
9315		zoom: zoom,
9316		clickableIcons: false,	
9317		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
9318	});
9319	
9320
9321	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
9322
9323		var infowindow = new google.maps.InfoWindow();
9324		var marker, i;
9325
9326		var icon_obj;
9327		if ( $geodata_map.data('icon') ) {	
9328			icon_obj = {
9329				url: $geodata_map.data('icon'),
9330				size: new google.maps.Size(40, 40),
9331				scaledSize: new google.maps.Size(40, 40),
9332			};
9333		}
9334
9335		// Sanitize locations (avoid NaN -> pan/setCenter errors)
9336		const validLocations = [];
9337		for (let j = 0; j < geodata.locations.length; j++) {
9338			const lat = parseFloat(geodata.locations[j][1]);
9339			const lng = parseFloat(geodata.locations[j][2]);
9340			if (Number.isFinite(lat) && Number.isFinite(lng)) {
9341				validLocations.push([
9342					geodata.locations[j][0],
9343					lat,
9344					lng,
9345					geodata.locations[j][3],
9346					geodata.locations[j][4]
9347				]);
9348			} else {
9349				console.warn('Skipping invalid location', geodata.locations[j]);
9350			}
9351		}
9352
9353		for (i = 0; i < validLocations.length; i++) { 
9354
9355			marker = new google.maps.Marker({
9356				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
9357				icon: icon_obj, 
9358				scale: 0.5,
9359				map: map
9360			});
9361
9362			google.maps.event.addListener(marker, 'click', (function(marker, i) {
9363				return function() {
9364					if ( validLocations[i][0] ) {
9365						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
9366						if ( validLocations[i][3] ) {
9367							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
9368						} 
9369						$content += '</div>';
9370						
9371						infowindow.setContent($content);
9372						infowindow.open(map, marker);
9373					}
9374				}
9375			})(marker, i));
9376		}
9377
9378	}
9379
9380	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
9381
9382		// Need floats + filter invalid points
9383		const validPath = [];
9384		for (var i = 0; i < geodata.path.length; i++) {
9385			const lat = parseFloat(geodata.path[i]['lat']);
9386			const lng = parseFloat(geodata.path[i]['lng']);
9387			if (Number.isFinite(lat) && Number.isFinite(lng)) {
9388				validPath.push({ lat, lng });
9389			} else {
9390				console.warn('Skipping invalid path point', geodata.path[i]);
9391			}
9392		}
9393
9394		var path = new google.maps.Polyline({
9395			path: validPath,
9396			geodesic: true,
9397			strokeColor: '#FF0000',
9398			strokeOpacity: 1.0,
9399			strokeWeight: 3
9400		});
9401
9402		path.setMap(map);
9403
9404	}
9405
9406
9407	var userLat = parseFloat($geodata_map.data('userlat'));
9408	var userLng = parseFloat($geodata_map.data('userlng'));
9409
9410	if ( userLat > 0 && userLng > 0 ) {
9411
9412		var icon = {
9413			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
9414			fillColor: '#1181FA',
9415			fillOpacity: 1,
9416			strokeColor: '#ffffff',
9417   			strokeWeight: 4,
9418			anchor: new google.maps.Point(0,0),
9419			scale: 2
9420		}
9421
9422		var userlocation = new google.maps.Marker( { 
9423			position: { lat: userLat, lng: userLng }, 
9424			map: map,
9425			icon: icon
9426		});
9427	}
9428
9429	$geodata_map.addClass("init");
9430
9431}
9432
9433$('body').on('click', '.geodata-map:not(.init)', function() {
9434
9435	var divmap = this;
9436
9437	if ( gmaps_init === false ) {
9438		$(divmap).html($(divmap).data("loadinginfo"));
9439
9440		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
9441			.done(function( script, textStatus ) {
9442				console.log( textStatus );
9443				window.gmaps_init = true;
9444				setTimeout(function(){ initMap(divmap) },1000);
9445			})
9446			.fail(function( jqxhr, settings, exception ) {
9447				console.log( jqxhr, settings, exception  );
9448			});
9449		
9450	} else {
9451		initMap(divmap);
9452	}
9453
9454});
9455
9456
9457
9458	
9459
9460</script>
9460
9461
9462<style>
9463    .T5304.grid-stack-item-content {
9464        background: #fff !important;
9465    }
9466
9467    .geodata-map {
9468        margin: 1rem 0;
9469        aspect-ratio: 16/11;
9470        width:  100%;
9471    }
9472
9473    .geodata-map:not(.init) {
9474        display: flex;
9475        justify-content: center;
9476        align-items: center;
9477        background-color: #ddd;
9478        border-radius: 0.7rem;
9479        color:  #333;
9480    }
9481</style>
9482					
9483					
9484					
9485					
9486				
9487
9488
9489
9490			
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505			
9506			
9507			
9508			
9509			
9510			
9511			
9512
9513			
9514			
9515			
9516
9517			
9518			
9519
9520			
9521
9522			
9523
9524
9525			
9526
9527			
9528
9529			
9530
9531			
9532
9533
9534
9535
9536
9537
9538
9539			
9540
9541
9542			
9543
9544			
9545
9546		</div>
9547
9548		
9549
9550	
9551
9552	
9553
9554	
9555	
9556	
9557
9558</div>
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572	
9573
9574	
9574<script>
9575	"use strict";
9576		
9577	TraminoReady(function() {
9578		$('body').on('click', '.sheet-bild.iframe', function(event) {
9579			event.preventDefault();
9580			
9581			$(this).find("picture").addClass('hidden');
9582			$(this).find("i").addClass('hidden');
9583			const $iframe = $(this).find("iframe");
9584			$iframe.attr("src",$iframe.data('src')).removeClass('hidden');
9585
9586		});
9587
9588
9589		if ( typeof checkArrows == "function" ) {
9590			checkArrows({all: true});
9591		}
9592
9593		if ( typeof window.sliderArrowVisible == "function" ) {
9594
9595			$('body').on('mouseenter', '.slider-outer:not(.wrap):not(.show_arrows)', function(event) {
9596
9597				window.sliderArrowVisible();
9598			});
9599		}
9600	
9601	});
9602		
9603		
9604	</script>
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613<!-- /MetaDetail -->
9614						</div>
9615					
9616						<div id="151604">
9617							<!-- MetaDetail -->
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630	
9631	
9632	
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651	
9652		
9653	
9654	
9655
9656
9657
9658
9659
9660
9661
9662 
9663
9664
9665
9666
9667
9668<div class="MetaDetail"
9669
9670	>
9671	
9672
9673	
9674	
9675	
9676	
9677	
9678
9679
9680	
9681
9682
9683
9684
9685
9686
9687	
9688
9689	
9690
9691		
9692			
9693			
9694			
9695			
9696
9697			
9698				
9699				
9700				
9701				
9702			
9703			
9704			
9705			
9706			
9707			
9708
9709			
9710			
9711				
9712
9713				
9714					
9715				
9716			
9717
9718			
9719
9720
9721			
9722			<div class="sheet-bilder slider-outer " data-count="1">
9723				
9724				<div class="slider-wrapper slider-elements">
9725					
9726
9727						
9728						
9729
9730						
9731							<div class="sheet-bild b1513455 slider-element ">
9732								
9733								
9734
9735
9736								<figure>
9737		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1513455/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1513455/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1513455/800x480.jpg" width="800" height="480" loading='lazy' alt="Wurzelrudi Irrgarten" /></picture>
9738	</figure>
9739								
9740								
9741							</div>
9742
9743						
9744					
9745						
9746					
9747					
9748				</div>
9749
9750				
9751					<div class="slider-arrows">
9752						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
9753						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
9754					</div>
9755				
9756
9757				
9758				
9759				
9760
9761
9762				
9763				
9764				
9765
9766				
9767
9768				
9769
9770				
9771
9772
9773				
9774
9775
9776				
9777
9778				
9779								
9780
9781			</div>
9782			
9783
9784		
9785		
9786
9787
9788
9789
9790
9791
9792
9793
9794	
9795
9796
9797		<div class="content">
9798
9799			
9800
9801			
9802			
9803
9804
9805			<div class="name">Irrgarten</div>
9806			
9807
9808
9809			
9810
9811
9812
9813
9814
9815			
9816
9817			
9818			
9819
9820			
9821
9822			
9823
9824
9825			
9826			<div class="text"><p>Zwei Eingänge, ein Ausgang: Wie schnell findest du den richtigen Weg? Im Irrgarten braucht es Köpfchen, Orientierung und manchmal auch ein bisschen Glück. Direkt daneben wartet Wurzelrudis Kletterwelt – perfekt für alle, die balancieren, kraxeln und Grenzen testen wollen. Verlaufen, wieder herausfinden und losklettern: ein doppeltes Erlebnis!<br />Altersempfehlung: 4+</p></div>
9827			
9828
9829				
9830			
9831
9832
9833
9834
9835
9836			
9837
9838				
9839			
9840
9841
9842			
9843			
9844			
9845
9846			
9847			
9848			
9849				
9850				
9851				
9852				
9853			
9854			
9855
9856			
9857
9858
9859
9860			
9861
9862
9863			
9864
9865			
9866			
9867				
9868			
9869			
9870			
9871
9872			
9873			
9874
9875			
9876			
9877
9878				
9879			
9880
9881			
9882			
9883			
9884			
9885			
9886			
9887			
9888
9889			
9890
9891			
9892
9893			
9894
9895			
9896			
9897			
9898			
9899
9900			
9901			
9902
9903			
9904
9905			
9906
9907			
9908
9909			
9910			
9911
9912			
9913			
9914
9915			
9916			
9917
9918			
9919
9920
9921
9922
9923			
9924
9925
9926				
9927
9928				
9929
9930				
9931				
9932
9933
9934				
9935
9936
9937					
9938				
9939				
9940
9941
9942
9943				
9944				
9945				
9946				
9947				
9948				
9949				
9950
9951
9952
9953
9954
9955
9956
9957				
9958				
9959				
9960
9961				
9962
9963				
9964		
9965				
9966				
9967
9968				
9969
9970				
9971
9972				
9973				
9974				
9975
9976
9977		
9978
9979
9980				
9981
9982
9983
9984
9985
9986
9987				
9988
9989			
9990
9991				
9992
9993
9994				
9995				
9996				
9997				
9998			
9999				
10000				
10001				
10002				
10003					
10003<script>
10004
10005window.gmaps_init = false;
10006
10007var initMap = function(map) {
10008
10009	let $geodata_map = $(map);
10010	let geodata = $geodata_map.data('geodata');
10011
10012	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
10013	const safeFloat = (v, fb = 0) => {
10014		const n = parseFloat(v);
10015		return Number.isFinite(n) ? n : fb;
10016	};
10017	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
10018	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
10019	var center_lat = safeFloat(centerLatRaw, 0);
10020	var center_lng = safeFloat(centerLngRaw, 0);
10021
10022	//  Calculate Zoom Level
10023	var zoom = 8;
10024	if ( geodata.zoom > 0 ) {
10025		zoom = geodata.zoom;
10026	}
10027
10028	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
10029
10030	let MAP_BOUNDS = undefined;
10031	if ( geodata.bounds !== undefined ) {
10032		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
10033		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
10034		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
10035		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
10036		if ([east, north, south, west].every(Number.isFinite)) {
10037			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
10038		} else {
10039			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
10040		}
10041	}
10042
10043	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
10044		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
10045		zoom = zoom - 2;
10046	}
10047
10048	if ( zoom == "-Infinity" ) {
10049		if ( geodata.zoom > 0 ) {
10050			zoom = geodata.zoom;
10051		} else {
10052			zoom = 8;
10053		}
10054	}
10055
10056	// console.log("MAP_BOUNDS",MAP_BOUNDS);
10057
10058	
10059	
10060    var map = new google.maps.Map($geodata_map[0], {
10061		center: { lat: center_lat, lng: center_lng },
10062		disableDefaultUI: true,
10063		zoomControl: true,
10064		zoom: zoom,
10065		clickableIcons: false,	
10066		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
10067	});
10068	
10069
10070	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
10071
10072		var infowindow = new google.maps.InfoWindow();
10073		var marker, i;
10074
10075		var icon_obj;
10076		if ( $geodata_map.data('icon') ) {	
10077			icon_obj = {
10078				url: $geodata_map.data('icon'),
10079				size: new google.maps.Size(40, 40),
10080				scaledSize: new google.maps.Size(40, 40),
10081			};
10082		}
10083
10084		// Sanitize locations (avoid NaN -> pan/setCenter errors)
10085		const validLocations = [];
10086		for (let j = 0; j < geodata.locations.length; j++) {
10087			const lat = parseFloat(geodata.locations[j][1]);
10088			const lng = parseFloat(geodata.locations[j][2]);
10089			if (Number.isFinite(lat) && Number.isFinite(lng)) {
10090				validLocations.push([
10091					geodata.locations[j][0],
10092					lat,
10093					lng,
10094					geodata.locations[j][3],
10095					geodata.locations[j][4]
10096				]);
10097			} else {
10098				console.warn('Skipping invalid location', geodata.locations[j]);
10099			}
10100		}
10101
10102		for (i = 0; i < validLocations.length; i++) { 
10103
10104			marker = new google.maps.Marker({
10105				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
10106				icon: icon_obj, 
10107				scale: 0.5,
10108				map: map
10109			});
10110
10111			google.maps.event.addListener(marker, 'click', (function(marker, i) {
10112				return function() {
10113					if ( validLocations[i][0] ) {
10114						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
10115						if ( validLocations[i][3] ) {
10116							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
10117						} 
10118						$content += '</div>';
10119						
10120						infowindow.setContent($content);
10121						infowindow.open(map, marker);
10122					}
10123				}
10124			})(marker, i));
10125		}
10126
10127	}
10128
10129	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
10130
10131		// Need floats + filter invalid points
10132		const validPath = [];
10133		for (var i = 0; i < geodata.path.length; i++) {
10134			const lat = parseFloat(geodata.path[i]['lat']);
10135			const lng = parseFloat(geodata.path[i]['lng']);
10136			if (Number.isFinite(lat) && Number.isFinite(lng)) {
10137				validPath.push({ lat, lng });
10138			} else {
10139				console.warn('Skipping invalid path point', geodata.path[i]);
10140			}
10141		}
10142
10143		var path = new google.maps.Polyline({
10144			path: validPath,
10145			geodesic: true,
10146			strokeColor: '#FF0000',
10147			strokeOpacity: 1.0,
10148			strokeWeight: 3
10149		});
10150
10151		path.setMap(map);
10152
10153	}
10154
10155
10156	var userLat = parseFloat($geodata_map.data('userlat'));
10157	var userLng = parseFloat($geodata_map.data('userlng'));
10158
10159	if ( userLat > 0 && userLng > 0 ) {
10160
10161		var icon = {
10162			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
10163			fillColor: '#1181FA',
10164			fillOpacity: 1,
10165			strokeColor: '#ffffff',
10166   			strokeWeight: 4,
10167			anchor: new google.maps.Point(0,0),
10168			scale: 2
10169		}
10170
10171		var userlocation = new google.maps.Marker( { 
10172			position: { lat: userLat, lng: userLng }, 
10173			map: map,
10174			icon: icon
10175		});
10176	}
10177
10178	$geodata_map.addClass("init");
10179
10180}
10181
10182$('body').on('click', '.geodata-map:not(.init)', function() {
10183
10184	var divmap = this;
10185
10186	if ( gmaps_init === false ) {
10187		$(divmap).html($(divmap).data("loadinginfo"));
10188
10189		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
10190			.done(function( script, textStatus ) {
10191				console.log( textStatus );
10192				window.gmaps_init = true;
10193				setTimeout(function(){ initMap(divmap) },1000);
10194			})
10195			.fail(function( jqxhr, settings, exception ) {
10196				console.log( jqxhr, settings, exception  );
10197			});
10198		
10199	} else {
10200		initMap(divmap);
10201	}
10202
10203});
10204
10205
10206
10207	
10208
10209</script>
10209
10210
10211<style>
10212    .T5304.grid-stack-item-content {
10213        background: #fff !important;
10214    }
10215
10216    .geodata-map {
10217        margin: 1rem 0;
10218        aspect-ratio: 16/11;
10219        width:  100%;
10220    }
10221
10222    .geodata-map:not(.init) {
10223        display: flex;
10224        justify-content: center;
10225        align-items: center;
10226        background-color: #ddd;
10227        border-radius: 0.7rem;
10228        color:  #333;
10229    }
10230</style>
10231					
10232					
10233					
10234					
10235				
10236
10237
10238
10239			
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254			
10255			
10256			
10257			
10258			
10259			
10260			
10261
10262			
10263			
10264			
10265
10266			
10267			
10268
10269			
10270
10271			
10272
10273
10274			
10275
10276			
10277
10278			
10279
10280			
10281
10282
10283
10284
10285
10286
10287
10288			
10289
10290
10291			
10292
10293			
10294
10295		</div>
10296
10297		
10298
10299	
10300
10301	
10302
10303	
10304	
10305	
10306
10307</div>
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326<!-- /MetaDetail -->
10327						</div>
10328					
10329						<div id="151611">
10330							<!-- MetaDetail -->
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343	
10344	
10345	
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364	
10365		
10366	
10367	
10368
10369
10370
10371
10372
10373
10374
10375 
10376
10377
10378
10379
10380
10381<div class="MetaDetail"
10382
10383	>
10384	
10385
10386	
10387	
10388	
10389	
10390	
10391
10392
10393	
10394
10395
10396
10397
10398
10399
10400	
10401
10402	
10403
10404		
10405			
10406			
10407			
10408			
10409
10410			
10411				
10412				
10413				
10414				
10415			
10416			
10417			
10418			
10419			
10420			
10421
10422			
10423			
10424				
10425
10426				
10427					
10428				
10429			
10430
10431			
10432
10433
10434			
10435			<div class="sheet-bilder slider-outer " data-count="1">
10436				
10437				<div class="slider-wrapper slider-elements">
10438					
10439
10440						
10441						
10442
10443						
10444							<div class="sheet-bild b1662079 slider-element ">
10445								
10446								
10447
10448
10449								<figure>
10450		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1662079/schlauchreifen-sonne-warten-die-nutzung-800x480.webp?r=2 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1662079/schlauchreifen-sonne-warten-die-nutzung-800x480.jpg?r=2 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1662079/schlauchreifen-sonne-warten-die-nutzung-800x480.jpg?r=2" width="800" height="480" loading='lazy' alt="Mehrere bunte Schlauchreifen liegen auf einem Netz." /></picture>
10451	<footer><small>&copy;&nbsp;Wurzelrudi</small></footer></figure>
10452								
10453								
10454							</div>
10455
10456						
10457					
10458						
10459					
10460					
10461				</div>
10462
10463				
10464					<div class="slider-arrows">
10465						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
10466						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
10467					</div>
10468				
10469
10470				
10471				
10472				
10473
10474
10475				
10476				
10477				
10478
10479				
10480
10481				
10482
10483				
10484
10485
10486				
10487
10488
10489				
10490
10491				
10492								
10493
10494			</div>
10495			
10496
10497		
10498		
10499
10500
10501
10502
10503
10504
10505
10506
10507	
10508
10509
10510		<div class="content">
10511
10512			
10513
10514			
10515			
10516
10517
10518			<div class="name">Reifenrutsche</div>
10519			
10520
10521
10522			
10523
10524
10525
10526
10527
10528			
10529
10530			
10531			
10532
10533			
10534
10535			
10536
10537
10538			
10539			<div class="text"><p>Große, luftgefüllte Reifen drehen sich talwärts – ein Spaß der in alle Richtungen wirbelt. Der Rückweg ist dank Zauberteppich für alle sehr bequem. Den Reifen zieht ihr einfach hinterher. Gefahren wird immer allein. Altersempfehlung: 4+</p></div>
10540			
10541
10542				
10543			
10544
10545
10546
10547
10548
10549			
10550
10551				
10552			
10553
10554
10555			
10556			
10557			
10558
10559			
10560			
10561			
10562				
10563				
10564				
10565				
10566			
10567			
10568
10569			
10570
10571
10572
10573			
10574
10575
10576			
10577
10578			
10579			
10580				
10581			
10582			
10583			
10584
10585			
10586			
10587
10588			
10589			
10590
10591				
10592			
10593
10594			
10595			
10596			
10597			
10598			
10599			
10600			
10601
10602			
10603
10604			
10605
10606			
10607
10608			
10609			
10610			
10611			
10612
10613			
10614			
10615
10616			
10617
10618			
10619
10620			
10621
10622			
10623			
10624
10625			
10626			
10627
10628			
10629			
10630
10631			
10632
10633
10634
10635
10636			
10637
10638
10639				
10640
10641				
10642
10643				
10644				
10645
10646
10647				
10648
10649
10650					
10651				
10652				
10653
10654
10655
10656				
10657				
10658				
10659				
10660				
10661				
10662				
10663
10664
10665
10666
10667
10668
10669
10670				
10671				
10672				
10673
10674				
10675
10676				
10677		
10678				
10679				
10680
10681				
10682
10683				
10684
10685				
10686				
10687				
10688
10689
10690		
10691
10692
10693				
10694
10695
10696
10697
10698
10699
10700				
10701
10702			
10703
10704				
10705
10706
10707				
10708				
10709				
10710				
10711			
10712				
10713				
10714				
10715				
10716					
10716<script>
10717
10718window.gmaps_init = false;
10719
10720var initMap = function(map) {
10721
10722	let $geodata_map = $(map);
10723	let geodata = $geodata_map.data('geodata');
10724
10725	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
10726	const safeFloat = (v, fb = 0) => {
10727		const n = parseFloat(v);
10728		return Number.isFinite(n) ? n : fb;
10729	};
10730	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
10731	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
10732	var center_lat = safeFloat(centerLatRaw, 0);
10733	var center_lng = safeFloat(centerLngRaw, 0);
10734
10735	//  Calculate Zoom Level
10736	var zoom = 8;
10737	if ( geodata.zoom > 0 ) {
10738		zoom = geodata.zoom;
10739	}
10740
10741	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
10742
10743	let MAP_BOUNDS = undefined;
10744	if ( geodata.bounds !== undefined ) {
10745		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
10746		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
10747		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
10748		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
10749		if ([east, north, south, west].every(Number.isFinite)) {
10750			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
10751		} else {
10752			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
10753		}
10754	}
10755
10756	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
10757		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
10758		zoom = zoom - 2;
10759	}
10760
10761	if ( zoom == "-Infinity" ) {
10762		if ( geodata.zoom > 0 ) {
10763			zoom = geodata.zoom;
10764		} else {
10765			zoom = 8;
10766		}
10767	}
10768
10769	// console.log("MAP_BOUNDS",MAP_BOUNDS);
10770
10771	
10772	
10773    var map = new google.maps.Map($geodata_map[0], {
10774		center: { lat: center_lat, lng: center_lng },
10775		disableDefaultUI: true,
10776		zoomControl: true,
10777		zoom: zoom,
10778		clickableIcons: false,	
10779		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
10780	});
10781	
10782
10783	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
10784
10785		var infowindow = new google.maps.InfoWindow();
10786		var marker, i;
10787
10788		var icon_obj;
10789		if ( $geodata_map.data('icon') ) {	
10790			icon_obj = {
10791				url: $geodata_map.data('icon'),
10792				size: new google.maps.Size(40, 40),
10793				scaledSize: new google.maps.Size(40, 40),
10794			};
10795		}
10796
10797		// Sanitize locations (avoid NaN -> pan/setCenter errors)
10798		const validLocations = [];
10799		for (let j = 0; j < geodata.locations.length; j++) {
10800			const lat = parseFloat(geodata.locations[j][1]);
10801			const lng = parseFloat(geodata.locations[j][2]);
10802			if (Number.isFinite(lat) && Number.isFinite(lng)) {
10803				validLocations.push([
10804					geodata.locations[j][0],
10805					lat,
10806					lng,
10807					geodata.locations[j][3],
10808					geodata.locations[j][4]
10809				]);
10810			} else {
10811				console.warn('Skipping invalid location', geodata.locations[j]);
10812			}
10813		}
10814
10815		for (i = 0; i < validLocations.length; i++) { 
10816
10817			marker = new google.maps.Marker({
10818				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
10819				icon: icon_obj, 
10820				scale: 0.5,
10821				map: map
10822			});
10823
10824			google.maps.event.addListener(marker, 'click', (function(marker, i) {
10825				return function() {
10826					if ( validLocations[i][0] ) {
10827						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
10828						if ( validLocations[i][3] ) {
10829							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
10830						} 
10831						$content += '</div>';
10832						
10833						infowindow.setContent($content);
10834						infowindow.open(map, marker);
10835					}
10836				}
10837			})(marker, i));
10838		}
10839
10840	}
10841
10842	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
10843
10844		// Need floats + filter invalid points
10845		const validPath = [];
10846		for (var i = 0; i < geodata.path.length; i++) {
10847			const lat = parseFloat(geodata.path[i]['lat']);
10848			const lng = parseFloat(geodata.path[i]['lng']);
10849			if (Number.isFinite(lat) && Number.isFinite(lng)) {
10850				validPath.push({ lat, lng });
10851			} else {
10852				console.warn('Skipping invalid path point', geodata.path[i]);
10853			}
10854		}
10855
10856		var path = new google.maps.Polyline({
10857			path: validPath,
10858			geodesic: true,
10859			strokeColor: '#FF0000',
10860			strokeOpacity: 1.0,
10861			strokeWeight: 3
10862		});
10863
10864		path.setMap(map);
10865
10866	}
10867
10868
10869	var userLat = parseFloat($geodata_map.data('userlat'));
10870	var userLng = parseFloat($geodata_map.data('userlng'));
10871
10872	if ( userLat > 0 && userLng > 0 ) {
10873
10874		var icon = {
10875			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
10876			fillColor: '#1181FA',
10877			fillOpacity: 1,
10878			strokeColor: '#ffffff',
10879   			strokeWeight: 4,
10880			anchor: new google.maps.Point(0,0),
10881			scale: 2
10882		}
10883
10884		var userlocation = new google.maps.Marker( { 
10885			position: { lat: userLat, lng: userLng }, 
10886			map: map,
10887			icon: icon
10888		});
10889	}
10890
10891	$geodata_map.addClass("init");
10892
10893}
10894
10895$('body').on('click', '.geodata-map:not(.init)', function() {
10896
10897	var divmap = this;
10898
10899	if ( gmaps_init === false ) {
10900		$(divmap).html($(divmap).data("loadinginfo"));
10901
10902		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
10903			.done(function( script, textStatus ) {
10904				console.log( textStatus );
10905				window.gmaps_init = true;
10906				setTimeout(function(){ initMap(divmap) },1000);
10907			})
10908			.fail(function( jqxhr, settings, exception ) {
10909				console.log( jqxhr, settings, exception  );
10910			});
10911		
10912	} else {
10913		initMap(divmap);
10914	}
10915
10916});
10917
10918
10919
10920	
10921
10922</script>
10922
10923
10924<style>
10925    .T5304.grid-stack-item-content {
10926        background: #fff !important;
10927    }
10928
10929    .geodata-map {
10930        margin: 1rem 0;
10931        aspect-ratio: 16/11;
10932        width:  100%;
10933    }
10934
10935    .geodata-map:not(.init) {
10936        display: flex;
10937        justify-content: center;
10938        align-items: center;
10939        background-color: #ddd;
10940        border-radius: 0.7rem;
10941        color:  #333;
10942    }
10943</style>
10944					
10945					
10946					
10947					
10948				
10949
10950
10951
10952			
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967			
10968			
10969			
10970			
10971			
10972			
10973			
10974
10975			
10976			
10977			
10978
10979			
10980			
10981
10982			
10983
10984			
10985
10986
10987			
10988
10989			
10990
10991			
10992
10993			
10994
10995
10996
10997
10998
10999
11000
11001			
11002
11003
11004			
11005
11006			
11007
11008		</div>
11009
11010		
11011
11012	
11013
11014	
11015
11016	
11017	
11018	
11019
11020</div>
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039<!-- /MetaDetail -->
11040						</div>
11041					
11042						<div id="151608">
11043							<!-- MetaDetail -->
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056	
11057	
11058	
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077	
11078		
11079	
11080	
11081
11082
11083
11084
11085
11086
11087
11088 
11089
11090
11091
11092
11093
11094<div class="MetaDetail"
11095
11096	>
11097	
11098
11099	
11100	
11101	
11102	
11103	
11104
11105
11106	
11107
11108
11109
11110
11111
11112
11113	
11114
11115	
11116
11117		
11118			
11119			
11120			
11121			
11122
11123			
11124				
11125				
11126				
11127				
11128			
11129			
11130			
11131			
11132			
11133			
11134
11135			
11136			
11137				
11138
11139				
11140					
11141				
11142			
11143
11144			
11145
11146
11147			
11148			<div class="sheet-bilder slider-outer " data-count="1">
11149				
11150				<div class="slider-wrapper slider-elements">
11151					
11152
11153						
11154						
11155
11156						
11157							<div class="sheet-bild b1514017 slider-element ">
11158								
11159								
11160
11161
11162								<figure>
11163		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1514017/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1514017/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1514017/800x480.jpg" width="800" height="480" loading='lazy' alt="Wurzelrudi Spielplatz" /></picture>
11164	</figure>
11165								
11166								
11167							</div>
11168
11169						
11170					
11171						
11172					
11173					
11174				</div>
11175
11176				
11177					<div class="slider-arrows">
11178						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
11179						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
11180					</div>
11181				
11182
11183				
11184				
11185				
11186
11187
11188				
11189				
11190				
11191
11192				
11193
11194				
11195
11196				
11197
11198
11199				
11200
11201
11202				
11203
11204				
11205								
11206
11207			</div>
11208			
11209
11210		
11211		
11212
11213
11214
11215
11216
11217
11218
11219
11220	
11221
11222
11223		<div class="content">
11224
11225			
11226
11227			
11228			
11229
11230
11231			<div class="name">Burgspielplatz</div>
11232			
11233
11234
11235			
11236
11237
11238
11239
11240
11241			
11242
11243			
11244			
11245
11246			
11247
11248			
11249
11250
11251			
11252			<div class="text"><p>Sand und Wasser zum Matschen, eine Burg zum Erobern und eine Rakete zum Toben – all das bietet unser Burgspielplatz an der Allwetterbobbahn. Er ist frei zugänglich für alle. Im Kräutergarten rund um die Burg wachsen viele Pflanzen. Schattige Plätzchen gibt es ebenso wie Bänke zum Verweilen. Matschhose nicht vergessen – und auf die Kleinsten achten.<br />Altersempfehlung: 3+</p></div>
11253			
11254
11255				
11256			
11257
11258
11259
11260
11261
11262			
11263
11264				
11265			
11266
11267
11268			
11269			
11270			
11271
11272			
11273			
11274			
11275				
11276				
11277				
11278				
11279			
11280			
11281
11282			
11283
11284
11285
11286			
11287
11288
11289			
11290
11291			
11292			
11293				
11294			
11295			
11296			
11297
11298			
11299			
11300
11301			
11302			
11303
11304				
11305			
11306
11307			
11308			
11309			
11310			
11311			
11312			
11313			
11314
11315			
11316
11317			
11318
11319			
11320
11321			
11322			
11323			
11324			
11325
11326			
11327			
11328
11329			
11330
11331			
11332
11333			
11334
11335			
11336			
11337
11338			
11339			
11340
11341			
11342			
11343
11344			
11345
11346
11347
11348
11349			
11350
11351
11352				
11353
11354				
11355
11356				
11357				
11358
11359
11360				
11361
11362
11363					
11364				
11365				
11366
11367
11368
11369				
11370				
11371				
11372				
11373				
11374				
11375				
11376
11377
11378
11379
11380
11381
11382
11383				
11384				
11385				
11386
11387				
11388
11389				
11390		
11391				
11392				
11393
11394				
11395
11396				
11397
11398				
11399				
11400				
11401
11402
11403		
11404
11405
11406				
11407
11408
11409
11410
11411
11412
11413				
11414
11415			
11416
11417				
11418
11419
11420				
11421				
11422				
11423				
11424			
11425				
11426				
11427				
11428				
11429					
11429<script>
11430
11431window.gmaps_init = false;
11432
11433var initMap = function(map) {
11434
11435	let $geodata_map = $(map);
11436	let geodata = $geodata_map.data('geodata');
11437
11438	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
11439	const safeFloat = (v, fb = 0) => {
11440		const n = parseFloat(v);
11441		return Number.isFinite(n) ? n : fb;
11442	};
11443	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
11444	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
11445	var center_lat = safeFloat(centerLatRaw, 0);
11446	var center_lng = safeFloat(centerLngRaw, 0);
11447
11448	//  Calculate Zoom Level
11449	var zoom = 8;
11450	if ( geodata.zoom > 0 ) {
11451		zoom = geodata.zoom;
11452	}
11453
11454	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
11455
11456	let MAP_BOUNDS = undefined;
11457	if ( geodata.bounds !== undefined ) {
11458		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
11459		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
11460		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
11461		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
11462		if ([east, north, south, west].every(Number.isFinite)) {
11463			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
11464		} else {
11465			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
11466		}
11467	}
11468
11469	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
11470		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
11471		zoom = zoom - 2;
11472	}
11473
11474	if ( zoom == "-Infinity" ) {
11475		if ( geodata.zoom > 0 ) {
11476			zoom = geodata.zoom;
11477		} else {
11478			zoom = 8;
11479		}
11480	}
11481
11482	// console.log("MAP_BOUNDS",MAP_BOUNDS);
11483
11484	
11485	
11486    var map = new google.maps.Map($geodata_map[0], {
11487		center: { lat: center_lat, lng: center_lng },
11488		disableDefaultUI: true,
11489		zoomControl: true,
11490		zoom: zoom,
11491		clickableIcons: false,	
11492		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
11493	});
11494	
11495
11496	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
11497
11498		var infowindow = new google.maps.InfoWindow();
11499		var marker, i;
11500
11501		var icon_obj;
11502		if ( $geodata_map.data('icon') ) {	
11503			icon_obj = {
11504				url: $geodata_map.data('icon'),
11505				size: new google.maps.Size(40, 40),
11506				scaledSize: new google.maps.Size(40, 40),
11507			};
11508		}
11509
11510		// Sanitize locations (avoid NaN -> pan/setCenter errors)
11511		const validLocations = [];
11512		for (let j = 0; j < geodata.locations.length; j++) {
11513			const lat = parseFloat(geodata.locations[j][1]);
11514			const lng = parseFloat(geodata.locations[j][2]);
11515			if (Number.isFinite(lat) && Number.isFinite(lng)) {
11516				validLocations.push([
11517					geodata.locations[j][0],
11518					lat,
11519					lng,
11520					geodata.locations[j][3],
11521					geodata.locations[j][4]
11522				]);
11523			} else {
11524				console.warn('Skipping invalid location', geodata.locations[j]);
11525			}
11526		}
11527
11528		for (i = 0; i < validLocations.length; i++) { 
11529
11530			marker = new google.maps.Marker({
11531				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
11532				icon: icon_obj, 
11533				scale: 0.5,
11534				map: map
11535			});
11536
11537			google.maps.event.addListener(marker, 'click', (function(marker, i) {
11538				return function() {
11539					if ( validLocations[i][0] ) {
11540						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
11541						if ( validLocations[i][3] ) {
11542							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
11543						} 
11544						$content += '</div>';
11545						
11546						infowindow.setContent($content);
11547						infowindow.open(map, marker);
11548					}
11549				}
11550			})(marker, i));
11551		}
11552
11553	}
11554
11555	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
11556
11557		// Need floats + filter invalid points
11558		const validPath = [];
11559		for (var i = 0; i < geodata.path.length; i++) {
11560			const lat = parseFloat(geodata.path[i]['lat']);
11561			const lng = parseFloat(geodata.path[i]['lng']);
11562			if (Number.isFinite(lat) && Number.isFinite(lng)) {
11563				validPath.push({ lat, lng });
11564			} else {
11565				console.warn('Skipping invalid path point', geodata.path[i]);
11566			}
11567		}
11568
11569		var path = new google.maps.Polyline({
11570			path: validPath,
11571			geodesic: true,
11572			strokeColor: '#FF0000',
11573			strokeOpacity: 1.0,
11574			strokeWeight: 3
11575		});
11576
11577		path.setMap(map);
11578
11579	}
11580
11581
11582	var userLat = parseFloat($geodata_map.data('userlat'));
11583	var userLng = parseFloat($geodata_map.data('userlng'));
11584
11585	if ( userLat > 0 && userLng > 0 ) {
11586
11587		var icon = {
11588			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
11589			fillColor: '#1181FA',
11590			fillOpacity: 1,
11591			strokeColor: '#ffffff',
11592   			strokeWeight: 4,
11593			anchor: new google.maps.Point(0,0),
11594			scale: 2
11595		}
11596
11597		var userlocation = new google.maps.Marker( { 
11598			position: { lat: userLat, lng: userLng }, 
11599			map: map,
11600			icon: icon
11601		});
11602	}
11603
11604	$geodata_map.addClass("init");
11605
11606}
11607
11608$('body').on('click', '.geodata-map:not(.init)', function() {
11609
11610	var divmap = this;
11611
11612	if ( gmaps_init === false ) {
11613		$(divmap).html($(divmap).data("loadinginfo"));
11614
11615		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
11616			.done(function( script, textStatus ) {
11617				console.log( textStatus );
11618				window.gmaps_init = true;
11619				setTimeout(function(){ initMap(divmap) },1000);
11620			})
11621			.fail(function( jqxhr, settings, exception ) {
11622				console.log( jqxhr, settings, exception  );
11623			});
11624		
11625	} else {
11626		initMap(divmap);
11627	}
11628
11629});
11630
11631
11632
11633	
11634
11635</script>
11635
11636
11637<style>
11638    .T5304.grid-stack-item-content {
11639        background: #fff !important;
11640    }
11641
11642    .geodata-map {
11643        margin: 1rem 0;
11644        aspect-ratio: 16/11;
11645        width:  100%;
11646    }
11647
11648    .geodata-map:not(.init) {
11649        display: flex;
11650        justify-content: center;
11651        align-items: center;
11652        background-color: #ddd;
11653        border-radius: 0.7rem;
11654        color:  #333;
11655    }
11656</style>
11657					
11658					
11659					
11660					
11661				
11662
11663
11664
11665			
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
11680			
11681			
11682			
11683			
11684			
11685			
11686			
11687
11688			
11689			
11690			
11691
11692			
11693			
11694
11695			
11696
11697			
11698
11699
11700			
11701
11702			
11703
11704			
11705
11706			
11707
11708
11709
11710
11711
11712
11713
11714			
11715
11716
11717			
11718
11719			
11720
11721		</div>
11722
11723		
11724
11725	
11726
11727	
11728
11729	
11730	
11731	
11732
11733</div>
11734
11735
11736
11737
11738
11739
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752<!-- /MetaDetail -->
11753						</div>
11754					
11755						<div id="151603">
11756							<!-- MetaDetail -->
11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769	
11770	
11771	
11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790	
11791		
11792	
11793	
11794
11795
11796
11797
11798
11799
11800
11801 
11802
11803
11804
11805
11806
11807<div class="MetaDetail"
11808
11809	>
11810	
11811
11812	
11813	
11814	
11815	
11816	
11817
11818
11819	
11820
11821
11822
11823
11824
11825
11826	
11827
11828	
11829
11830		
11831			
11832			
11833			
11834			
11835
11836			
11837				
11838				
11839				
11840				
11841			
11842			
11843			
11844			
11845			
11846			
11847
11848			
11849			
11850				
11851
11852				
11853					
11854				
11855			
11856
11857			
11858
11859
11860			
11861			<div class="sheet-bilder slider-outer " data-count="1">
11862				
11863				<div class="slider-wrapper slider-elements">
11864					
11865
11866						
11867						
11868
11869						
11870							<div class="sheet-bild b1662672 slider-element ">
11871								
11872								
11873
11874
11875								<figure>
11876		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1662672/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1662672/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1662672/800x480.jpg" width="800" height="480" loading='lazy' alt="TMGS2019 Thomas Schlorke (119)" /></picture>
11877	<footer><small>&copy;&nbsp;TMGS - Thomas Schlorke / Thomas Schlorke</small></footer></figure>
11878								
11879								
11880							</div>
11881
11882						
11883					
11884						
11885					
11886					
11887				</div>
11888
11889				
11890					<div class="slider-arrows">
11891						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
11892						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
11893					</div>
11894				
11895
11896				
11897				
11898				
11899
11900
11901				
11902				
11903				
11904
11905				
11906
11907				
11908
11909				
11910
11911
11912				
11913
11914
11915				
11916
11917				
11918								
11919
11920			</div>
11921			
11922
11923		
11924		
11925
11926
11927
11928
11929
11930
11931
11932
11933	
11934
11935
11936		<div class="content">
11937
11938			
11939
11940			
11941			
11942
11943
11944			<div class="name">Haustierzoo</div>
11945			
11946
11947
11948			
11949
11950
11951
11952
11953
11954			
11955
11956			
11957			
11958
11959			
11960
11961			
11962
11963
11964			
11965			<div class="text"><p>Hasen und Meerschweinchen, Enten und die Truthahnsippe sowie Pony, Esel &amp; Co. – in unserem Haustierzoo freuen sich viele Bewohner auf euren Besuch. Du kannst sie ganz aus der Nähe beobachten. Der Zugang ist frei. Bitte füttere die Tiere nur mit Körnern aus dem Futterautomaten. So bleiben sie gesund. <br />Altersempfehlung: 2+</p></div>
11966			
11967
11968				
11969			
11970
11971
11972
11973
11974
11975			
11976
11977				
11978			
11979
11980
11981			
11982			
11983			
11984
11985			
11986			
11987			
11988				
11989				
11990				
11991				
11992			
11993			
11994
11995			
11996
11997
11998
11999			
12000
12001
12002			
12003
12004			
12005			
12006				
12007			
12008			
12009			
12010
12011			
12012			
12013
12014			
12015			
12016
12017				
12018			
12019
12020			
12021			
12022			
12023			
12024			
12025			
12026			
12027
12028			
12029
12030			
12031
12032			
12033
12034			
12035			
12036			
12037			
12038
12039			
12040			
12041
12042			
12043
12044			
12045
12046			
12047
12048			
12049			
12050
12051			
12052			
12053
12054			
12055			
12056
12057			
12058
12059
12060
12061
12062			
12063
12064
12065				
12066
12067				
12068
12069				
12070				
12071
12072
12073				
12074
12075
12076					
12077				
12078				
12079
12080
12081
12082				
12083				
12084				
12085				
12086				
12087				
12088				
12089
12090
12091
12092
12093
12094
12095
12096				
12097				
12098				
12099
12100				
12101
12102				
12103		
12104				
12105				
12106
12107				
12108
12109				
12110
12111				
12112				
12113				
12114
12115
12116		
12117
12118
12119				
12120
12121
12122
12123
12124
12125
12126				
12127
12128			
12129
12130				
12131
12132
12133				
12134				
12135				
12136				
12137			
12138				
12139				
12140				
12141				
12142					
12142<script>
12143
12144window.gmaps_init = false;
12145
12146var initMap = function(map) {
12147
12148	let $geodata_map = $(map);
12149	let geodata = $geodata_map.data('geodata');
12150
12151	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
12152	const safeFloat = (v, fb = 0) => {
12153		const n = parseFloat(v);
12154		return Number.isFinite(n) ? n : fb;
12155	};
12156	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
12157	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
12158	var center_lat = safeFloat(centerLatRaw, 0);
12159	var center_lng = safeFloat(centerLngRaw, 0);
12160
12161	//  Calculate Zoom Level
12162	var zoom = 8;
12163	if ( geodata.zoom > 0 ) {
12164		zoom = geodata.zoom;
12165	}
12166
12167	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
12168
12169	let MAP_BOUNDS = undefined;
12170	if ( geodata.bounds !== undefined ) {
12171		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
12172		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
12173		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
12174		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
12175		if ([east, north, south, west].every(Number.isFinite)) {
12176			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
12177		} else {
12178			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
12179		}
12180	}
12181
12182	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
12183		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
12184		zoom = zoom - 2;
12185	}
12186
12187	if ( zoom == "-Infinity" ) {
12188		if ( geodata.zoom > 0 ) {
12189			zoom = geodata.zoom;
12190		} else {
12191			zoom = 8;
12192		}
12193	}
12194
12195	// console.log("MAP_BOUNDS",MAP_BOUNDS);
12196
12197	
12198	
12199    var map = new google.maps.Map($geodata_map[0], {
12200		center: { lat: center_lat, lng: center_lng },
12201		disableDefaultUI: true,
12202		zoomControl: true,
12203		zoom: zoom,
12204		clickableIcons: false,	
12205		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
12206	});
12207	
12208
12209	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
12210
12211		var infowindow = new google.maps.InfoWindow();
12212		var marker, i;
12213
12214		var icon_obj;
12215		if ( $geodata_map.data('icon') ) {	
12216			icon_obj = {
12217				url: $geodata_map.data('icon'),
12218				size: new google.maps.Size(40, 40),
12219				scaledSize: new google.maps.Size(40, 40),
12220			};
12221		}
12222
12223		// Sanitize locations (avoid NaN -> pan/setCenter errors)
12224		const validLocations = [];
12225		for (let j = 0; j < geodata.locations.length; j++) {
12226			const lat = parseFloat(geodata.locations[j][1]);
12227			const lng = parseFloat(geodata.locations[j][2]);
12228			if (Number.isFinite(lat) && Number.isFinite(lng)) {
12229				validLocations.push([
12230					geodata.locations[j][0],
12231					lat,
12232					lng,
12233					geodata.locations[j][3],
12234					geodata.locations[j][4]
12235				]);
12236			} else {
12237				console.warn('Skipping invalid location', geodata.locations[j]);
12238			}
12239		}
12240
12241		for (i = 0; i < validLocations.length; i++) { 
12242
12243			marker = new google.maps.Marker({
12244				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
12245				icon: icon_obj, 
12246				scale: 0.5,
12247				map: map
12248			});
12249
12250			google.maps.event.addListener(marker, 'click', (function(marker, i) {
12251				return function() {
12252					if ( validLocations[i][0] ) {
12253						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
12254						if ( validLocations[i][3] ) {
12255							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
12256						} 
12257						$content += '</div>';
12258						
12259						infowindow.setContent($content);
12260						infowindow.open(map, marker);
12261					}
12262				}
12263			})(marker, i));
12264		}
12265
12266	}
12267
12268	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
12269
12270		// Need floats + filter invalid points
12271		const validPath = [];
12272		for (var i = 0; i < geodata.path.length; i++) {
12273			const lat = parseFloat(geodata.path[i]['lat']);
12274			const lng = parseFloat(geodata.path[i]['lng']);
12275			if (Number.isFinite(lat) && Number.isFinite(lng)) {
12276				validPath.push({ lat, lng });
12277			} else {
12278				console.warn('Skipping invalid path point', geodata.path[i]);
12279			}
12280		}
12281
12282		var path = new google.maps.Polyline({
12283			path: validPath,
12284			geodesic: true,
12285			strokeColor: '#FF0000',
12286			strokeOpacity: 1.0,
12287			strokeWeight: 3
12288		});
12289
12290		path.setMap(map);
12291
12292	}
12293
12294
12295	var userLat = parseFloat($geodata_map.data('userlat'));
12296	var userLng = parseFloat($geodata_map.data('userlng'));
12297
12298	if ( userLat > 0 && userLng > 0 ) {
12299
12300		var icon = {
12301			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
12302			fillColor: '#1181FA',
12303			fillOpacity: 1,
12304			strokeColor: '#ffffff',
12305   			strokeWeight: 4,
12306			anchor: new google.maps.Point(0,0),
12307			scale: 2
12308		}
12309
12310		var userlocation = new google.maps.Marker( { 
12311			position: { lat: userLat, lng: userLng }, 
12312			map: map,
12313			icon: icon
12314		});
12315	}
12316
12317	$geodata_map.addClass("init");
12318
12319}
12320
12321$('body').on('click', '.geodata-map:not(.init)', function() {
12322
12323	var divmap = this;
12324
12325	if ( gmaps_init === false ) {
12326		$(divmap).html($(divmap).data("loadinginfo"));
12327
12328		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
12329			.done(function( script, textStatus ) {
12330				console.log( textStatus );
12331				window.gmaps_init = true;
12332				setTimeout(function(){ initMap(divmap) },1000);
12333			})
12334			.fail(function( jqxhr, settings, exception ) {
12335				console.log( jqxhr, settings, exception  );
12336			});
12337		
12338	} else {
12339		initMap(divmap);
12340	}
12341
12342});
12343
12344
12345
12346	
12347
12348</script>
12348
12349
12350<style>
12351    .T5304.grid-stack-item-content {
12352        background: #fff !important;
12353    }
12354
12355    .geodata-map {
12356        margin: 1rem 0;
12357        aspect-ratio: 16/11;
12358        width:  100%;
12359    }
12360
12361    .geodata-map:not(.init) {
12362        display: flex;
12363        justify-content: center;
12364        align-items: center;
12365        background-color: #ddd;
12366        border-radius: 0.7rem;
12367        color:  #333;
12368    }
12369</style>
12370					
12371					
12372					
12373					
12374				
12375
12376
12377
12378			
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393			
12394			
12395			
12396			
12397			
12398			
12399			
12400
12401			
12402			
12403			
12404
12405			
12406			
12407
12408			
12409
12410			
12411
12412
12413			
12414
12415			
12416
12417			
12418
12419			
12420
12421
12422
12423
12424
12425
12426
12427			
12428
12429
12430			
12431
12432			
12433
12434		</div>
12435
12436		
12437
12438	
12439
12440	
12441
12442	
12443	
12444	
12445
12446</div>
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465<!-- /MetaDetail -->
12466						</div>
12467					
12468						<div id="151610">
12469							<!-- MetaDetail -->
12470
12471
12472
12473
12474
12475
12476
12477
12478
12479
12480
12481
12482	
12483	
12484	
12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
12497
12498
12499
12500
12501
12502
12503	
12504		
12505	
12506	
12507
12508
12509
12510
12511
12512
12513
12514 
12515
12516
12517
12518
12519
12520<div class="MetaDetail"
12521
12522	>
12523	
12524
12525	
12526	
12527	
12528	
12529	
12530
12531
12532	
12533
12534
12535
12536
12537
12538
12539	
12540
12541	
12542
12543		
12544			
12545			
12546			
12547			
12548
12549			
12550				
12551				
12552				
12553				
12554			
12555			
12556			
12557			
12558			
12559			
12560
12561			
12562			
12563				
12564
12565				
12566					
12567				
12568			
12569
12570			
12571
12572
12573			
12574			<div class="sheet-bilder slider-outer " data-count="1">
12575				
12576				<div class="slider-wrapper slider-elements">
12577					
12578
12579						
12580						
12581
12582						
12583							<div class="sheet-bild b1627779 slider-element ">
12584								
12585								
12586
12587
12588								<figure>
12589		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1627779/sessellift-faehrt-ueber-berg-fruehling-800x480.webp?r=1 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1627779/sessellift-faehrt-ueber-berg-fruehling-800x480.jpg?r=1 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1627779/sessellift-faehrt-ueber-berg-fruehling-800x480.jpg?r=1" width="800" height="480" loading='lazy' alt="Ein Sessellift schwebt über einen Berg in der Frühlingszeit. Die Sonne scheint, und der Himmel ist blau." /></picture>
12590	<footer><small>&copy;&nbsp;JU Photography / Justus Uhlmann</small></footer></figure>
12591								
12592								
12593							</div>
12594
12595						
12596					
12597						
12598					
12599					
12600				</div>
12601
12602				
12603					<div class="slider-arrows">
12604						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
12605						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
12606					</div>
12607				
12608
12609				
12610				
12611				
12612
12613
12614				
12615				
12616				
12617
12618				
12619
12620				
12621
12622				
12623
12624
12625				
12626
12627
12628				
12629
12630				
12631								
12632
12633			</div>
12634			
12635
12636		
12637		
12638
12639
12640
12641
12642
12643
12644
12645
12646	
12647
12648
12649		<div class="content">
12650
12651			
12652
12653			
12654			
12655
12656
12657			<div class="name">Sesselbahn</div>
12658			
12659
12660
12661			
12662
12663
12664
12665
12666
12667			
12668
12669			
12670			
12671
12672			
12673
12674			
12675
12676
12677			
12678			<div class="text"><p>Mit unserer Sesselbahn spart ihr euch den Bergmarsch. Oben warten Adleralm, Murmelwald mit Spielschiff, Wasserspielplatz und ein Riesen-Bilderrahmen für das perfekte Familienfoto. Von der Bergstation sind es nur etwa 5 Minuten zu Fuß zu Wurzelrudis Seedorf. Die Talfahrt bietet ein atemberaubendes Panaroma samt Blick auf die Talsperre.<br />Beachte bitte unsere Fahrtage!<br />Kinderwagen und Buggys fahren zusammengeklappt und leer kostenlos mit. Auch Fahrräder und E-Bikes nehmen wir mit bergan. Kleine Hunde dürfen auf dem Schoß ihrer Besitzer mitfahren. Kinder können ab einer Körpergröße von 1,25 Meter ohne erwachsene Begleitung fahren.</p></div>
12679			
12680
12681				
12682			
12683
12684
12685
12686
12687
12688			
12689
12690				
12691			
12692
12693
12694			
12695			
12696			
12697
12698			
12699			
12700			
12701				
12702				
12703				
12704				
12705			
12706			
12707
12708			
12709
12710
12711
12712			
12713
12714
12715			
12716
12717			
12718			
12719				
12720			
12721			
12722			
12723
12724			
12725			
12726
12727			
12728			
12729
12730				
12731			
12732
12733			
12734			
12735			
12736			
12737			
12738			
12739			
12740
12741			
12742
12743			
12744
12745			
12746
12747			
12748			
12749			
12750			
12751
12752			
12753			
12754
12755			
12756
12757			
12758
12759			
12760
12761			
12762			
12763
12764			
12765			
12766
12767			
12768			
12769
12770			
12771
12772
12773
12774
12775			
12776
12777
12778				
12779
12780				
12781
12782				
12783				
12784
12785
12786				
12787
12788
12789					
12790				
12791				
12792
12793
12794
12795				
12796				
12797				
12798				
12799				
12800				
12801				
12802
12803
12804
12805
12806
12807
12808
12809				
12810				
12811				
12812
12813				
12814
12815				
12816		
12817				
12818				
12819
12820				
12821
12822				
12823
12824				
12825				
12826				
12827
12828
12829		
12830
12831
12832				
12833
12834
12835
12836
12837
12838
12839				
12840
12841			
12842
12843				
12844
12845
12846				
12847				
12848				
12849				
12850			
12851				
12852				
12853				
12854				
12855					
12855<script>
12856
12857window.gmaps_init = false;
12858
12859var initMap = function(map) {
12860
12861	let $geodata_map = $(map);
12862	let geodata = $geodata_map.data('geodata');
12863
12864	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
12865	const safeFloat = (v, fb = 0) => {
12866		const n = parseFloat(v);
12867		return Number.isFinite(n) ? n : fb;
12868	};
12869	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
12870	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
12871	var center_lat = safeFloat(centerLatRaw, 0);
12872	var center_lng = safeFloat(centerLngRaw, 0);
12873
12874	//  Calculate Zoom Level
12875	var zoom = 8;
12876	if ( geodata.zoom > 0 ) {
12877		zoom = geodata.zoom;
12878	}
12879
12880	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
12881
12882	let MAP_BOUNDS = undefined;
12883	if ( geodata.bounds !== undefined ) {
12884		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
12885		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
12886		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
12887		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
12888		if ([east, north, south, west].every(Number.isFinite)) {
12889			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
12890		} else {
12891			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
12892		}
12893	}
12894
12895	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
12896		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
12897		zoom = zoom - 2;
12898	}
12899
12900	if ( zoom == "-Infinity" ) {
12901		if ( geodata.zoom > 0 ) {
12902			zoom = geodata.zoom;
12903		} else {
12904			zoom = 8;
12905		}
12906	}
12907
12908	// console.log("MAP_BOUNDS",MAP_BOUNDS);
12909
12910	
12911	
12912    var map = new google.maps.Map($geodata_map[0], {
12913		center: { lat: center_lat, lng: center_lng },
12914		disableDefaultUI: true,
12915		zoomControl: true,
12916		zoom: zoom,
12917		clickableIcons: false,	
12918		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
12919	});
12920	
12921
12922	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
12923
12924		var infowindow = new google.maps.InfoWindow();
12925		var marker, i;
12926
12927		var icon_obj;
12928		if ( $geodata_map.data('icon') ) {	
12929			icon_obj = {
12930				url: $geodata_map.data('icon'),
12931				size: new google.maps.Size(40, 40),
12932				scaledSize: new google.maps.Size(40, 40),
12933			};
12934		}
12935
12936		// Sanitize locations (avoid NaN -> pan/setCenter errors)
12937		const validLocations = [];
12938		for (let j = 0; j < geodata.locations.length; j++) {
12939			const lat = parseFloat(geodata.locations[j][1]);
12940			const lng = parseFloat(geodata.locations[j][2]);
12941			if (Number.isFinite(lat) && Number.isFinite(lng)) {
12942				validLocations.push([
12943					geodata.locations[j][0],
12944					lat,
12945					lng,
12946					geodata.locations[j][3],
12947					geodata.locations[j][4]
12948				]);
12949			} else {
12950				console.warn('Skipping invalid location', geodata.locations[j]);
12951			}
12952		}
12953
12954		for (i = 0; i < validLocations.length; i++) { 
12955
12956			marker = new google.maps.Marker({
12957				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
12958				icon: icon_obj, 
12959				scale: 0.5,
12960				map: map
12961			});
12962
12963			google.maps.event.addListener(marker, 'click', (function(marker, i) {
12964				return function() {
12965					if ( validLocations[i][0] ) {
12966						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
12967						if ( validLocations[i][3] ) {
12968							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
12969						} 
12970						$content += '</div>';
12971						
12972						infowindow.setContent($content);
12973						infowindow.open(map, marker);
12974					}
12975				}
12976			})(marker, i));
12977		}
12978
12979	}
12980
12981	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
12982
12983		// Need floats + filter invalid points
12984		const validPath = [];
12985		for (var i = 0; i < geodata.path.length; i++) {
12986			const lat = parseFloat(geodata.path[i]['lat']);
12987			const lng = parseFloat(geodata.path[i]['lng']);
12988			if (Number.isFinite(lat) && Number.isFinite(lng)) {
12989				validPath.push({ lat, lng });
12990			} else {
12991				console.warn('Skipping invalid path point', geodata.path[i]);
12992			}
12993		}
12994
12995		var path = new google.maps.Polyline({
12996			path: validPath,
12997			geodesic: true,
12998			strokeColor: '#FF0000',
12999			strokeOpacity: 1.0,
13000			strokeWeight: 3
13001		});
13002
13003		path.setMap(map);
13004
13005	}
13006
13007
13008	var userLat = parseFloat($geodata_map.data('userlat'));
13009	var userLng = parseFloat($geodata_map.data('userlng'));
13010
13011	if ( userLat > 0 && userLng > 0 ) {
13012
13013		var icon = {
13014			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
13015			fillColor: '#1181FA',
13016			fillOpacity: 1,
13017			strokeColor: '#ffffff',
13018   			strokeWeight: 4,
13019			anchor: new google.maps.Point(0,0),
13020			scale: 2
13021		}
13022
13023		var userlocation = new google.maps.Marker( { 
13024			position: { lat: userLat, lng: userLng }, 
13025			map: map,
13026			icon: icon
13027		});
13028	}
13029
13030	$geodata_map.addClass("init");
13031
13032}
13033
13034$('body').on('click', '.geodata-map:not(.init)', function() {
13035
13036	var divmap = this;
13037
13038	if ( gmaps_init === false ) {
13039		$(divmap).html($(divmap).data("loadinginfo"));
13040
13041		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
13042			.done(function( script, textStatus ) {
13043				console.log( textStatus );
13044				window.gmaps_init = true;
13045				setTimeout(function(){ initMap(divmap) },1000);
13046			})
13047			.fail(function( jqxhr, settings, exception ) {
13048				console.log( jqxhr, settings, exception  );
13049			});
13050		
13051	} else {
13052		initMap(divmap);
13053	}
13054
13055});
13056
13057
13058
13059	
13060
13061</script>
13061
13062
13063<style>
13064    .T5304.grid-stack-item-content {
13065        background: #fff !important;
13066    }
13067
13068    .geodata-map {
13069        margin: 1rem 0;
13070        aspect-ratio: 16/11;
13071        width:  100%;
13072    }
13073
13074    .geodata-map:not(.init) {
13075        display: flex;
13076        justify-content: center;
13077        align-items: center;
13078        background-color: #ddd;
13079        border-radius: 0.7rem;
13080        color:  #333;
13081    }
13082</style>
13083					
13084					
13085					
13086					
13087				
13088
13089
13090
13091			
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
13104
13105
13106			
13107			
13108			
13109			
13110			
13111			
13112			
13113
13114			
13115			
13116			
13117
13118			
13119			
13120
13121			
13122
13123			
13124
13125
13126			
13127
13128			
13129
13130			
13131
13132			
13133
13134
13135
13136
13137
13138
13139
13140			
13141
13142
13143			
13144
13145			
13146
13147		</div>
13148
13149		
13150
13151	
13152
13153	
13154
13155	
13156	
13157	
13158
13159</div>
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
13172
13173
13174
13175
13176
13177
13178<!-- /MetaDetail -->
13179						</div>
13180					
13181						<div id="151605">
13182							<!-- MetaDetail -->
13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195	
13196	
13197	
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216	
13217		
13218	
13219	
13220
13221
13222
13223
13224
13225
13226
13227 
13228
13229
13230
13231
13232
13233<div class="MetaDetail"
13234
13235	>
13236	
13237
13238	
13239	
13240	
13241	
13242	
13243
13244
13245	
13246
13247
13248
13249
13250
13251
13252	
13253
13254	
13255
13256		
13257			
13258			
13259			
13260			
13261
13262			
13263				
13264				
13265				
13266				
13267			
13268			
13269			
13270			
13271			
13272			
13273
13274			
13275			
13276				
13277
13278				
13279					
13280				
13281			
13282
13283			
13284
13285
13286			
13287			<div class="sheet-bilder slider-outer " data-count="1">
13288				
13289				<div class="slider-wrapper slider-elements">
13290					
13291
13292						
13293						
13294
13295						
13296							<div class="sheet-bild b1513565 slider-element ">
13297								
13298								
13299
13300
13301								<figure>
13302		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1513565/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1513565/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1513565/800x480.jpg" width="800" height="480" loading='lazy' alt="Wurzelrudi@TMGS Thomas Schlorke 4" /></picture>
13303	</figure>
13304								
13305								
13306							</div>
13307
13308						
13309					
13310						
13311					
13312					
13313				</div>
13314
13315				
13316					<div class="slider-arrows">
13317						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
13318						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
13319					</div>
13320				
13321
13322				
13323				
13324				
13325
13326
13327				
13328				
13329				
13330
13331				
13332
13333				
13334
13335				
13336
13337
13338				
13339
13340
13341				
13342
13343				
13344								
13345
13346			</div>
13347			
13348
13349		
13350		
13351
13352
13353
13354
13355
13356
13357
13358
13359	
13360
13361
13362		<div class="content">
13363
13364			
13365
13366			
13367			
13368
13369
13370			<div class="name">Freche Flitzer</div>
13371			
13372
13373
13374			
13375
13376
13377
13378
13379
13380			
13381
13382			
13383			
13384
13385			
13386
13387			
13388
13389
13390			
13391			<div class="text"><p>Wurzelrudis Freche Flitzer sind extra coole Dreiräder mit tiefem Schwerpunkt. Perfekt also für alle, die gern mit Schwung unterwegs sind. Und so einfach geht es: Du steigst in die Sesselbahn und fährst entspannt auf den Berg. Oben angekommen erhältst du nach einer Einweisung deinen Frechen Flitzer. Über eine festgelegte Strecke geht es dann talwärts. Natürlich mit Helm – Sicherheit geht vor!<br />Kinder ab 10 Jahre dürfen allein fahren.<br />Kinder unter 10 Jahre, die noch keine 140 Zentimeter groß sind, können bei einem Erwachsenen mitfahren.<br />Das Maximalgewicht beträgt 120 Kilogramm.</p></div>
13392			
13393
13394				
13395			
13396
13397
13398
13399
13400
13401			
13402
13403				
13404			
13405
13406
13407			
13408			
13409			
13410
13411			
13412			
13413			
13414				
13415				
13416				
13417				
13418			
13419			
13420
13421			
13422
13423
13424
13425			
13426
13427
13428			
13429
13430			
13431			
13432				
13433			
13434			
13435			
13436
13437			
13438			
13439
13440			
13441			
13442
13443				
13444			
13445
13446			
13447			
13448			
13449			
13450			
13451			
13452			
13453
13454			
13455
13456			
13457
13458			
13459
13460			
13461			
13462			
13463			
13464
13465			
13466			
13467
13468			
13469
13470			
13471
13472			
13473
13474			
13475			
13476
13477			
13478			
13479
13480			
13481			
13482
13483			
13484
13485
13486
13487
13488			
13489
13490
13491				
13492
13493				
13494
13495				
13496				
13497
13498
13499				
13500
13501
13502					
13503				
13504				
13505
13506
13507
13508				
13509				
13510				
13511				
13512				
13513				
13514				
13515
13516
13517
13518
13519
13520
13521
13522				
13523				
13524				
13525
13526				
13527
13528				
13529		
13530				
13531				
13532
13533				
13534
13535				
13536
13537				
13538				
13539				
13540
13541
13542		
13543
13544
13545				
13546
13547
13548
13549
13550
13551
13552				
13553
13554			
13555
13556				
13557
13558
13559				
13560				
13561				
13562				
13563			
13564				
13565				
13566				
13567				
13568					
13568<script>
13569
13570window.gmaps_init = false;
13571
13572var initMap = function(map) {
13573
13574	let $geodata_map = $(map);
13575	let geodata = $geodata_map.data('geodata');
13576
13577	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
13578	const safeFloat = (v, fb = 0) => {
13579		const n = parseFloat(v);
13580		return Number.isFinite(n) ? n : fb;
13581	};
13582	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
13583	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
13584	var center_lat = safeFloat(centerLatRaw, 0);
13585	var center_lng = safeFloat(centerLngRaw, 0);
13586
13587	//  Calculate Zoom Level
13588	var zoom = 8;
13589	if ( geodata.zoom > 0 ) {
13590		zoom = geodata.zoom;
13591	}
13592
13593	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
13594
13595	let MAP_BOUNDS = undefined;
13596	if ( geodata.bounds !== undefined ) {
13597		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
13598		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
13599		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
13600		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
13601		if ([east, north, south, west].every(Number.isFinite)) {
13602			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
13603		} else {
13604			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
13605		}
13606	}
13607
13608	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
13609		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
13610		zoom = zoom - 2;
13611	}
13612
13613	if ( zoom == "-Infinity" ) {
13614		if ( geodata.zoom > 0 ) {
13615			zoom = geodata.zoom;
13616		} else {
13617			zoom = 8;
13618		}
13619	}
13620
13621	// console.log("MAP_BOUNDS",MAP_BOUNDS);
13622
13623	
13624	
13625    var map = new google.maps.Map($geodata_map[0], {
13626		center: { lat: center_lat, lng: center_lng },
13627		disableDefaultUI: true,
13628		zoomControl: true,
13629		zoom: zoom,
13630		clickableIcons: false,	
13631		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
13632	});
13633	
13634
13635	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
13636
13637		var infowindow = new google.maps.InfoWindow();
13638		var marker, i;
13639
13640		var icon_obj;
13641		if ( $geodata_map.data('icon') ) {	
13642			icon_obj = {
13643				url: $geodata_map.data('icon'),
13644				size: new google.maps.Size(40, 40),
13645				scaledSize: new google.maps.Size(40, 40),
13646			};
13647		}
13648
13649		// Sanitize locations (avoid NaN -> pan/setCenter errors)
13650		const validLocations = [];
13651		for (let j = 0; j < geodata.locations.length; j++) {
13652			const lat = parseFloat(geodata.locations[j][1]);
13653			const lng = parseFloat(geodata.locations[j][2]);
13654			if (Number.isFinite(lat) && Number.isFinite(lng)) {
13655				validLocations.push([
13656					geodata.locations[j][0],
13657					lat,
13658					lng,
13659					geodata.locations[j][3],
13660					geodata.locations[j][4]
13661				]);
13662			} else {
13663				console.warn('Skipping invalid location', geodata.locations[j]);
13664			}
13665		}
13666
13667		for (i = 0; i < validLocations.length; i++) { 
13668
13669			marker = new google.maps.Marker({
13670				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
13671				icon: icon_obj, 
13672				scale: 0.5,
13673				map: map
13674			});
13675
13676			google.maps.event.addListener(marker, 'click', (function(marker, i) {
13677				return function() {
13678					if ( validLocations[i][0] ) {
13679						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
13680						if ( validLocations[i][3] ) {
13681							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
13682						} 
13683						$content += '</div>';
13684						
13685						infowindow.setContent($content);
13686						infowindow.open(map, marker);
13687					}
13688				}
13689			})(marker, i));
13690		}
13691
13692	}
13693
13694	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
13695
13696		// Need floats + filter invalid points
13697		const validPath = [];
13698		for (var i = 0; i < geodata.path.length; i++) {
13699			const lat = parseFloat(geodata.path[i]['lat']);
13700			const lng = parseFloat(geodata.path[i]['lng']);
13701			if (Number.isFinite(lat) && Number.isFinite(lng)) {
13702				validPath.push({ lat, lng });
13703			} else {
13704				console.warn('Skipping invalid path point', geodata.path[i]);
13705			}
13706		}
13707
13708		var path = new google.maps.Polyline({
13709			path: validPath,
13710			geodesic: true,
13711			strokeColor: '#FF0000',
13712			strokeOpacity: 1.0,
13713			strokeWeight: 3
13714		});
13715
13716		path.setMap(map);
13717
13718	}
13719
13720
13721	var userLat = parseFloat($geodata_map.data('userlat'));
13722	var userLng = parseFloat($geodata_map.data('userlng'));
13723
13724	if ( userLat > 0 && userLng > 0 ) {
13725
13726		var icon = {
13727			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
13728			fillColor: '#1181FA',
13729			fillOpacity: 1,
13730			strokeColor: '#ffffff',
13731   			strokeWeight: 4,
13732			anchor: new google.maps.Point(0,0),
13733			scale: 2
13734		}
13735
13736		var userlocation = new google.maps.Marker( { 
13737			position: { lat: userLat, lng: userLng }, 
13738			map: map,
13739			icon: icon
13740		});
13741	}
13742
13743	$geodata_map.addClass("init");
13744
13745}
13746
13747$('body').on('click', '.geodata-map:not(.init)', function() {
13748
13749	var divmap = this;
13750
13751	if ( gmaps_init === false ) {
13752		$(divmap).html($(divmap).data("loadinginfo"));
13753
13754		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
13755			.done(function( script, textStatus ) {
13756				console.log( textStatus );
13757				window.gmaps_init = true;
13758				setTimeout(function(){ initMap(divmap) },1000);
13759			})
13760			.fail(function( jqxhr, settings, exception ) {
13761				console.log( jqxhr, settings, exception  );
13762			});
13763		
13764	} else {
13765		initMap(divmap);
13766	}
13767
13768});
13769
13770
13771
13772	
13773
13774</script>
13774
13775
13776<style>
13777    .T5304.grid-stack-item-content {
13778        background: #fff !important;
13779    }
13780
13781    .geodata-map {
13782        margin: 1rem 0;
13783        aspect-ratio: 16/11;
13784        width:  100%;
13785    }
13786
13787    .geodata-map:not(.init) {
13788        display: flex;
13789        justify-content: center;
13790        align-items: center;
13791        background-color: #ddd;
13792        border-radius: 0.7rem;
13793        color:  #333;
13794    }
13795</style>
13796					
13797					
13798					
13799					
13800				
13801
13802
13803
13804			
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819			
13820			
13821			
13822			
13823			
13824			
13825			
13826
13827			
13828			
13829			
13830
13831			
13832			
13833
13834			
13835
13836			
13837
13838
13839			
13840
13841			
13842
13843			
13844
13845			
13846
13847
13848
13849
13850
13851
13852
13853			
13854
13855
13856			
13857
13858			
13859
13860		</div>
13861
13862		
13863
13864	
13865
13866	
13867
13868	
13869	
13870	
13871
13872</div>
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891<!-- /MetaDetail -->
13892						</div>
13893					
13894						<div id="151606">
13895							<!-- MetaDetail -->
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908	
13909	
13910	
13911
13912
13913
13914
13915
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926
13927
13928
13929	
13930		
13931	
13932	
13933
13934
13935
13936
13937
13938
13939
13940 
13941
13942
13943
13944
13945
13946<div class="MetaDetail"
13947
13948	>
13949	
13950
13951	
13952	
13953	
13954	
13955	
13956
13957
13958	
13959
13960
13961
13962
13963
13964
13965	
13966
13967	
13968
13969		
13970			
13971			
13972			
13973			
13974
13975			
13976				
13977				
13978				
13979				
13980			
13981			
13982			
13983			
13984			
13985			
13986
13987			
13988			
13989				
13990
13991				
13992					
13993				
13994			
13995
13996			
13997
13998
13999			
14000			<div class="sheet-bilder slider-outer " data-count="1">
14001				
14002				<div class="slider-wrapper slider-elements">
14003					
14004
14005						
14006						
14007
14008						
14009							<div class="sheet-bild b1627784 slider-element ">
14010								
14011								
14012
14013
14014								<figure>
14015		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1627784/holzball-rollt-einer-bank-freien-800x480.webp?r=1 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1627784/holzball-rollt-einer-bank-freien-800x480.jpg?r=1 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1627784/holzball-rollt-einer-bank-freien-800x480.jpg?r=1" width="800" height="480" loading='lazy' alt="Ein Holzball liegt auf einer Bank und rollt. Es ist ein sonniger Tag und die Umgebung ist ruhig und grün." /></picture>
14016	<footer><small>&copy;&nbsp;JU Photography / Justus Uhlmann</small></footer></figure>
14017								
14018								
14019							</div>
14020
14021						
14022					
14023						
14024					
14025					
14026				</div>
14027
14028				
14029					<div class="slider-arrows">
14030						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
14031						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
14032					</div>
14033				
14034
14035				
14036				
14037				
14038
14039
14040				
14041				
14042				
14043
14044				
14045
14046				
14047
14048				
14049
14050
14051				
14052
14053
14054				
14055
14056				
14057								
14058
14059			</div>
14060			
14061
14062		
14063		
14064
14065
14066
14067
14068
14069
14070
14071
14072	
14073
14074
14075		<div class="content">
14076
14077			
14078
14079			
14080			
14081
14082
14083			<div class="name">Murmelwald</div>
14084			
14085
14086
14087			
14088
14089
14090
14091
14092
14093			
14094
14095			
14096			
14097
14098			
14099
14100			
14101
14102
14103			
14104			<div class="text"><p>Zugegeben: Unsere Murmelbahn ist ein wenig aus der Norm geraten. Sie passt nicht in dein Kinderzimmer, aber hervorragend in unseren Wald. Die 11,5 Zentimeter großen Holzmurmeln sausen auf vorgegebenen Bahnen durchs Gelände, müssen über Seilzüge gezogen werden, klingeln oder landen mit Aha-Effekt polternd im Eimer. Mitten im Murmelwald befinden sich das Piratenspielschiff und der Mini-Adlersee für die jüngsten Besucher.<br />Murmeln kannst du an der Sesselbahn, an der Bobbahn oder direkt auf dem Berg ausleihen!</p></div>
14105			
14106
14107				
14108			
14109
14110
14111
14112
14113
14114			
14115
14116				
14117			
14118
14119
14120			
14121			
14122			
14123
14124			
14125			
14126			
14127				
14128				
14129				
14130				
14131			
14132			
14133
14134			
14135
14136
14137
14138			
14139
14140
14141			
14142
14143			
14144			
14145				
14146			
14147			
14148			
14149
14150			
14151			
14152
14153			
14154			
14155
14156				
14157			
14158
14159			
14160			
14161			
14162			
14163			
14164			
14165			
14166
14167			
14168
14169			
14170
14171			
14172
14173			
14174			
14175			
14176			
14177
14178			
14179			
14180
14181			
14182
14183			
14184
14185			
14186
14187			
14188			
14189
14190			
14191			
14192
14193			
14194			
14195
14196			
14197
14198
14199
14200
14201			
14202
14203
14204				
14205
14206				
14207
14208				
14209				
14210
14211
14212				
14213
14214
14215					
14216				
14217				
14218
14219
14220
14221				
14222				
14223				
14224				
14225				
14226				
14227				
14228
14229
14230
14231
14232
14233
14234
14235				
14236				
14237				
14238
14239				
14240
14241				
14242		
14243				
14244				
14245
14246				
14247
14248				
14249
14250				
14251				
14252				
14253
14254
14255		
14256
14257
14258				
14259
14260
14261
14262
14263
14264
14265				
14266
14267			
14268
14269				
14270
14271
14272				
14273				
14274				
14275				
14276			
14277				
14278				
14279				
14280				
14281					
14281<script>
14282
14283window.gmaps_init = false;
14284
14285var initMap = function(map) {
14286
14287	let $geodata_map = $(map);
14288	let geodata = $geodata_map.data('geodata');
14289
14290	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
14291	const safeFloat = (v, fb = 0) => {
14292		const n = parseFloat(v);
14293		return Number.isFinite(n) ? n : fb;
14294	};
14295	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
14296	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
14297	var center_lat = safeFloat(centerLatRaw, 0);
14298	var center_lng = safeFloat(centerLngRaw, 0);
14299
14300	//  Calculate Zoom Level
14301	var zoom = 8;
14302	if ( geodata.zoom > 0 ) {
14303		zoom = geodata.zoom;
14304	}
14305
14306	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
14307
14308	let MAP_BOUNDS = undefined;
14309	if ( geodata.bounds !== undefined ) {
14310		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
14311		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
14312		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
14313		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
14314		if ([east, north, south, west].every(Number.isFinite)) {
14315			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
14316		} else {
14317			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
14318		}
14319	}
14320
14321	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
14322		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
14323		zoom = zoom - 2;
14324	}
14325
14326	if ( zoom == "-Infinity" ) {
14327		if ( geodata.zoom > 0 ) {
14328			zoom = geodata.zoom;
14329		} else {
14330			zoom = 8;
14331		}
14332	}
14333
14334	// console.log("MAP_BOUNDS",MAP_BOUNDS);
14335
14336	
14337	
14338    var map = new google.maps.Map($geodata_map[0], {
14339		center: { lat: center_lat, lng: center_lng },
14340		disableDefaultUI: true,
14341		zoomControl: true,
14342		zoom: zoom,
14343		clickableIcons: false,	
14344		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
14345	});
14346	
14347
14348	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
14349
14350		var infowindow = new google.maps.InfoWindow();
14351		var marker, i;
14352
14353		var icon_obj;
14354		if ( $geodata_map.data('icon') ) {	
14355			icon_obj = {
14356				url: $geodata_map.data('icon'),
14357				size: new google.maps.Size(40, 40),
14358				scaledSize: new google.maps.Size(40, 40),
14359			};
14360		}
14361
14362		// Sanitize locations (avoid NaN -> pan/setCenter errors)
14363		const validLocations = [];
14364		for (let j = 0; j < geodata.locations.length; j++) {
14365			const lat = parseFloat(geodata.locations[j][1]);
14366			const lng = parseFloat(geodata.locations[j][2]);
14367			if (Number.isFinite(lat) && Number.isFinite(lng)) {
14368				validLocations.push([
14369					geodata.locations[j][0],
14370					lat,
14371					lng,
14372					geodata.locations[j][3],
14373					geodata.locations[j][4]
14374				]);
14375			} else {
14376				console.warn('Skipping invalid location', geodata.locations[j]);
14377			}
14378		}
14379
14380		for (i = 0; i < validLocations.length; i++) { 
14381
14382			marker = new google.maps.Marker({
14383				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
14384				icon: icon_obj, 
14385				scale: 0.5,
14386				map: map
14387			});
14388
14389			google.maps.event.addListener(marker, 'click', (function(marker, i) {
14390				return function() {
14391					if ( validLocations[i][0] ) {
14392						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
14393						if ( validLocations[i][3] ) {
14394							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
14395						} 
14396						$content += '</div>';
14397						
14398						infowindow.setContent($content);
14399						infowindow.open(map, marker);
14400					}
14401				}
14402			})(marker, i));
14403		}
14404
14405	}
14406
14407	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
14408
14409		// Need floats + filter invalid points
14410		const validPath = [];
14411		for (var i = 0; i < geodata.path.length; i++) {
14412			const lat = parseFloat(geodata.path[i]['lat']);
14413			const lng = parseFloat(geodata.path[i]['lng']);
14414			if (Number.isFinite(lat) && Number.isFinite(lng)) {
14415				validPath.push({ lat, lng });
14416			} else {
14417				console.warn('Skipping invalid path point', geodata.path[i]);
14418			}
14419		}
14420
14421		var path = new google.maps.Polyline({
14422			path: validPath,
14423			geodesic: true,
14424			strokeColor: '#FF0000',
14425			strokeOpacity: 1.0,
14426			strokeWeight: 3
14427		});
14428
14429		path.setMap(map);
14430
14431	}
14432
14433
14434	var userLat = parseFloat($geodata_map.data('userlat'));
14435	var userLng = parseFloat($geodata_map.data('userlng'));
14436
14437	if ( userLat > 0 && userLng > 0 ) {
14438
14439		var icon = {
14440			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
14441			fillColor: '#1181FA',
14442			fillOpacity: 1,
14443			strokeColor: '#ffffff',
14444   			strokeWeight: 4,
14445			anchor: new google.maps.Point(0,0),
14446			scale: 2
14447		}
14448
14449		var userlocation = new google.maps.Marker( { 
14450			position: { lat: userLat, lng: userLng }, 
14451			map: map,
14452			icon: icon
14453		});
14454	}
14455
14456	$geodata_map.addClass("init");
14457
14458}
14459
14460$('body').on('click', '.geodata-map:not(.init)', function() {
14461
14462	var divmap = this;
14463
14464	if ( gmaps_init === false ) {
14465		$(divmap).html($(divmap).data("loadinginfo"));
14466
14467		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
14468			.done(function( script, textStatus ) {
14469				console.log( textStatus );
14470				window.gmaps_init = true;
14471				setTimeout(function(){ initMap(divmap) },1000);
14472			})
14473			.fail(function( jqxhr, settings, exception ) {
14474				console.log( jqxhr, settings, exception  );
14475			});
14476		
14477	} else {
14478		initMap(divmap);
14479	}
14480
14481});
14482
14483
14484
14485	
14486
14487</script>
14487
14488
14489<style>
14490    .T5304.grid-stack-item-content {
14491        background: #fff !important;
14492    }
14493
14494    .geodata-map {
14495        margin: 1rem 0;
14496        aspect-ratio: 16/11;
14497        width:  100%;
14498    }
14499
14500    .geodata-map:not(.init) {
14501        display: flex;
14502        justify-content: center;
14503        align-items: center;
14504        background-color: #ddd;
14505        border-radius: 0.7rem;
14506        color:  #333;
14507    }
14508</style>
14509					
14510					
14511					
14512					
14513				
14514
14515
14516
14517			
14518
14519
14520
14521
14522
14523
14524
14525
14526
14527
14528
14529
14530
14531
14532			
14533			
14534			
14535			
14536			
14537			
14538			
14539
14540			
14541			
14542			
14543
14544			
14545			
14546
14547			
14548
14549			
14550
14551
14552			
14553
14554			
14555
14556			
14557
14558			
14559
14560
14561
14562
14563
14564
14565
14566			
14567
14568
14569			
14570
14571			
14572
14573		</div>
14574
14575		
14576
14577	
14578
14579	
14580
14581	
14582	
14583	
14584
14585</div>
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604<!-- /MetaDetail -->
14605						</div>
14606					
14607						<div id="151607">
14608							<!-- MetaDetail -->
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621	
14622	
14623	
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642	
14643		
14644	
14645	
14646
14647
14648
14649
14650
14651
14652
14653 
14654
14655
14656
14657
14658
14659<div class="MetaDetail"
14660
14661	>
14662	
14663
14664	
14665	
14666	
14667	
14668	
14669
14670
14671	
14672
14673
14674
14675
14676
14677
14678	
14679
14680	
14681
14682		
14683			
14684			
14685			
14686			
14687
14688			
14689				
14690				
14691				
14692				
14693			
14694			
14695			
14696			
14697			
14698			
14699
14700			
14701			
14702				
14703
14704				
14705					
14706				
14707			
14708
14709			
14710
14711
14712			
14713			<div class="sheet-bilder slider-outer " data-count="1">
14714				
14715				<div class="slider-wrapper slider-elements">
14716					
14717
14718						
14719						
14720
14721						
14722							<div class="sheet-bild b1605526 slider-element ">
14723								
14724								
14725
14726
14727								<figure>
14728		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-800x480.webp?r=1 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-800x480.jpg?r=1 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-800x480.jpg?r=1" width="800" height="480" loading='lazy' alt="Kinder spielen fröhlich in einer bunten Burg mit Rutsche, umgeben von Bäumen und grauem Himmel." /></picture>
14729	</figure>
14730								
14731								
14732							</div>
14733
14734						
14735					
14736						
14737					
14738					
14739				</div>
14740
14741				
14742					<div class="slider-arrows">
14743						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
14744						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
14745					</div>
14746				
14747
14748				
14749				
14750				
14751
14752
14753				
14754				
14755				
14756
14757				
14758
14759				
14760
14761				
14762
14763
14764				
14765
14766
14767				
14768
14769				
14770								
14771
14772			</div>
14773			
14774
14775		
14776		
14777
14778
14779
14780
14781
14782
14783
14784
14785	
14786
14787
14788		<div class="content">
14789
14790			
14791
14792			
14793			
14794
14795
14796			<div class="name">Seedorf</div>
14797			
14798
14799
14800			
14801
14802
14803
14804
14805
14806			
14807
14808			
14809			
14810
14811			
14812
14813			
14814
14815
14816			
14817			<div class="text"><p>Das Seedorf ist die höchstgelegene Attraktion in Wurzelrudis Erlebniswelt: Mit einem Verlies für Entdecker, einem Turmbüro, geheimen Gängen, Klettertürmen und rasanten Rutschen. Auf dem Wipfelpfad bieten sich für Jung und Alt tolle Aussichten auf das Erzgebirge und die umliegenden Wälder. Im Rollenspieldorf darf die Fantasie Purzelbäume schlagen, denn die Kinder werden zu kleinen Bäckern, Friseuren und Krämern – echte Helden eben. Gleich nebenan kannst du über das Wasser balancieren, hangeln oder um die Wette Floß fahren. Und dann sind da noch die Himmelsschaukel, der Speichersee und das Dorfbistro. <br />Tipp: Wechselsachen nicht vergessen!</p></div>
14818			
14819
14820				
14821			
14822
14823
14824
14825
14826
14827			
14828
14829				
14830			
14831
14832
14833			
14834			
14835			
14836
14837			
14838			
14839			
14840				
14841				
14842				
14843				
14844			
14845			
14846
14847			
14848
14849
14850
14851			
14852
14853
14854			
14855
14856			
14857			
14858				
14859			
14860			
14861			
14862
14863			
14864			
14865
14866			
14867			
14868
14869				
14870			
14871
14872			
14873			
14874			
14875			
14876			
14877			
14878			
14879
14880			
14881
14882			
14883
14884			
14885
14886			
14887			
14888			
14889			
14890
14891			
14892			
14893
14894			
14895
14896			
14897
14898			
14899
14900			
14901			
14902
14903			
14904			
14905
14906			
14907			
14908
14909			
14910
14911
14912
14913
14914			
14915
14916
14917				
14918
14919				
14920
14921				
14922				
14923
14924
14925				
14926
14927
14928					
14929				
14930				
14931
14932
14933
14934				
14935				
14936				
14937				
14938				
14939				
14940				
14941
14942
14943
14944
14945
14946
14947
14948				
14949				
14950				
14951
14952				
14953
14954				
14955		
14956				
14957				
14958
14959				
14960
14961				
14962
14963				
14964				
14965				
14966
14967
14968		
14969
14970
14971				
14972
14973
14974
14975
14976
14977
14978				
14979
14980			
14981
14982				
14983
14984
14985				
14986				
14987				
14988				
14989			
14990				
14991				
14992				
14993				
14994					
14994<script>
14995
14996window.gmaps_init = false;
14997
14998var initMap = function(map) {
14999
15000	let $geodata_map = $(map);
15001	let geodata = $geodata_map.data('geodata');
15002
15003	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
15004	const safeFloat = (v, fb = 0) => {
15005		const n = parseFloat(v);
15006		return Number.isFinite(n) ? n : fb;
15007	};
15008	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
15009	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
15010	var center_lat = safeFloat(centerLatRaw, 0);
15011	var center_lng = safeFloat(centerLngRaw, 0);
15012
15013	//  Calculate Zoom Level
15014	var zoom = 8;
15015	if ( geodata.zoom > 0 ) {
15016		zoom = geodata.zoom;
15017	}
15018
15019	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
15020
15021	let MAP_BOUNDS = undefined;
15022	if ( geodata.bounds !== undefined ) {
15023		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
15024		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
15025		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
15026		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
15027		if ([east, north, south, west].every(Number.isFinite)) {
15028			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
15029		} else {
15030			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
15031		}
15032	}
15033
15034	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
15035		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
15036		zoom = zoom - 2;
15037	}
15038
15039	if ( zoom == "-Infinity" ) {
15040		if ( geodata.zoom > 0 ) {
15041			zoom = geodata.zoom;
15042		} else {
15043			zoom = 8;
15044		}
15045	}
15046
15047	// console.log("MAP_BOUNDS",MAP_BOUNDS);
15048
15049	
15050	
15051    var map = new google.maps.Map($geodata_map[0], {
15052		center: { lat: center_lat, lng: center_lng },
15053		disableDefaultUI: true,
15054		zoomControl: true,
15055		zoom: zoom,
15056		clickableIcons: false,	
15057		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
15058	});
15059	
15060
15061	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
15062
15063		var infowindow = new google.maps.InfoWindow();
15064		var marker, i;
15065
15066		var icon_obj;
15067		if ( $geodata_map.data('icon') ) {	
15068			icon_obj = {
15069				url: $geodata_map.data('icon'),
15070				size: new google.maps.Size(40, 40),
15071				scaledSize: new google.maps.Size(40, 40),
15072			};
15073		}
15074
15075		// Sanitize locations (avoid NaN -> pan/setCenter errors)
15076		const validLocations = [];
15077		for (let j = 0; j < geodata.locations.length; j++) {
15078			const lat = parseFloat(geodata.locations[j][1]);
15079			const lng = parseFloat(geodata.locations[j][2]);
15080			if (Number.isFinite(lat) && Number.isFinite(lng)) {
15081				validLocations.push([
15082					geodata.locations[j][0],
15083					lat,
15084					lng,
15085					geodata.locations[j][3],
15086					geodata.locations[j][4]
15087				]);
15088			} else {
15089				console.warn('Skipping invalid location', geodata.locations[j]);
15090			}
15091		}
15092
15093		for (i = 0; i < validLocations.length; i++) { 
15094
15095			marker = new google.maps.Marker({
15096				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
15097				icon: icon_obj, 
15098				scale: 0.5,
15099				map: map
15100			});
15101
15102			google.maps.event.addListener(marker, 'click', (function(marker, i) {
15103				return function() {
15104					if ( validLocations[i][0] ) {
15105						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
15106						if ( validLocations[i][3] ) {
15107							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
15108						} 
15109						$content += '</div>';
15110						
15111						infowindow.setContent($content);
15112						infowindow.open(map, marker);
15113					}
15114				}
15115			})(marker, i));
15116		}
15117
15118	}
15119
15120	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
15121
15122		// Need floats + filter invalid points
15123		const validPath = [];
15124		for (var i = 0; i < geodata.path.length; i++) {
15125			const lat = parseFloat(geodata.path[i]['lat']);
15126			const lng = parseFloat(geodata.path[i]['lng']);
15127			if (Number.isFinite(lat) && Number.isFinite(lng)) {
15128				validPath.push({ lat, lng });
15129			} else {
15130				console.warn('Skipping invalid path point', geodata.path[i]);
15131			}
15132		}
15133
15134		var path = new google.maps.Polyline({
15135			path: validPath,
15136			geodesic: true,
15137			strokeColor: '#FF0000',
15138			strokeOpacity: 1.0,
15139			strokeWeight: 3
15140		});
15141
15142		path.setMap(map);
15143
15144	}
15145
15146
15147	var userLat = parseFloat($geodata_map.data('userlat'));
15148	var userLng = parseFloat($geodata_map.data('userlng'));
15149
15150	if ( userLat > 0 && userLng > 0 ) {
15151
15152		var icon = {
15153			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
15154			fillColor: '#1181FA',
15155			fillOpacity: 1,
15156			strokeColor: '#ffffff',
15157   			strokeWeight: 4,
15158			anchor: new google.maps.Point(0,0),
15159			scale: 2
15160		}
15161
15162		var userlocation = new google.maps.Marker( { 
15163			position: { lat: userLat, lng: userLng }, 
15164			map: map,
15165			icon: icon
15166		});
15167	}
15168
15169	$geodata_map.addClass("init");
15170
15171}
15172
15173$('body').on('click', '.geodata-map:not(.init)', function() {
15174
15175	var divmap = this;
15176
15177	if ( gmaps_init === false ) {
15178		$(divmap).html($(divmap).data("loadinginfo"));
15179
15180		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
15181			.done(function( script, textStatus ) {
15182				console.log( textStatus );
15183				window.gmaps_init = true;
15184				setTimeout(function(){ initMap(divmap) },1000);
15185			})
15186			.fail(function( jqxhr, settings, exception ) {
15187				console.log( jqxhr, settings, exception  );
15188			});
15189		
15190	} else {
15191		initMap(divmap);
15192	}
15193
15194});
15195
15196
15197
15198	
15199
15200</script>
15200
15201
15202<style>
15203    .T5304.grid-stack-item-content {
15204        background: #fff !important;
15205    }
15206
15207    .geodata-map {
15208        margin: 1rem 0;
15209        aspect-ratio: 16/11;
15210        width:  100%;
15211    }
15212
15213    .geodata-map:not(.init) {
15214        display: flex;
15215        justify-content: center;
15216        align-items: center;
15217        background-color: #ddd;
15218        border-radius: 0.7rem;
15219        color:  #333;
15220    }
15221</style>
15222					
15223					
15224					
15225					
15226				
15227
15228
15229
15230			
15231
15232
15233
15234
15235
15236
15237
15238
15239
15240
15241
15242
15243
15244
15245			
15246			
15247			
15248			
15249			
15250			
15251			
15252
15253			
15254			
15255			
15256
15257			
15258			
15259
15260			
15261
15262			
15263
15264
15265			
15266
15267			
15268
15269			
15270
15271			
15272
15273
15274
15275
15276
15277
15278
15279			
15280
15281
15282			
15283
15284			
15285
15286		</div>
15287
15288		
15289
15290	
15291
15292	
15293
15294	
15295	
15296	
15297
15298</div>
15299
15300
15301
15302
15303
15304
15305
15306
15307
15308
15309
15310
15311
15312
15313
15314
15315
15316
15317<!-- /MetaDetail -->
15318						</div>
15319					</div>
15320
15321
15322	
15323	<div style="display: none;">
15324	<!-- MetaDetail -->
15325
15326
15327
15328
15329
15330
15331
15332
15333
15334
15335
15336
15337	
15338	
15339	
15340
15341
15342
15343
15344
15345
15346
15347
15348
15349
15350
15351
15352
15353
15354
15355
15356
15357
15358	
15359		
15360	
15361	
15362
15363
15364
15365
15366
15367
15368
15369 
15370
15371
15372
15373
15374
15375<div class="MetaDetail hidden"
15376
15377	>
15378	
15379
15380	
15381	
15382	
15383	
15384	
15385
15386
15387	
15388
15389
15390
15391
15392
15393
15394	
15395
15396	
15397
15398		
15399			
15400			
15401			
15402			
15403
15404			
15405				
15406				
15407				
15408				
15409			
15410			
15411			
15412			
15413			
15414			
15415
15416			
15417			
15418				
15419
15420				
15421					
15422				
15423			
15424
15425			
15426
15427
15428			
15429			<div class="sheet-bilder slider-outer " data-count="1">
15430				
15431				<div class="slider-wrapper slider-elements">
15432					
15433
15434						
15435						
15436
15437						
15438							<div class="sheet-bild b1605526 slider-element ">
15439								
15440								
15441
15442
15443								<figure>
15444		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-800x480.webp?r=1 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-800x480.jpg?r=1 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1605526/bunte-burg-mit-rutsche-einem-spielplatz-800x480.jpg?r=1" width="800" height="480" loading='lazy' alt="Kinder spielen fröhlich in einer bunten Burg mit Rutsche, umgeben von Bäumen und grauem Himmel." /></picture>
15445	</figure>
15446								
15447								
15448							</div>
15449
15450						
15451					
15452						
15453					
15454					
15455				</div>
15456
15457				
15458					<div class="slider-arrows">
15459						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
15460						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
15461					</div>
15462				
15463
15464				
15465				
15466				
15467
15468
15469				
15470				
15471				
15472
15473				
15474
15475				
15476
15477				
15478
15479
15480				
15481
15482
15483				
15484
15485				
15486								
15487
15488			</div>
15489			
15490
15491		
15492		
15493
15494
15495
15496
15497
15498
15499
15500
15501	
15502
15503
15504		<div class="content">
15505
15506			
15507
15508			
15509			
15510
15511
15512			<div class="name">Seedorf</div>
15513			
15514
15515
15516			
15517
15518
15519
15520
15521
15522			
15523
15524			
15525			
15526
15527			
15528
15529			
15530
15531
15532			
15533			<div class="text"><p>Das Seedorf ist die höchstgelegene Attraktion in Wurzelrudis Erlebniswelt: Mit einem Verlies für Entdecker, einem Turmbüro, geheimen Gängen, Klettertürmen und rasanten Rutschen. Auf dem Wipfelpfad bieten sich für Jung und Alt tolle Aussichten auf das Erzgebirge und die umliegenden Wälder. Im Rollenspieldorf darf die Fantasie Purzelbäume schlagen, denn die Kinder werden zu kleinen Bäckern, Friseuren und Krämern – echte Helden eben. Gleich nebenan kannst du über das Wasser balancieren, hangeln oder um die Wette Floß fahren. Und dann sind da noch die Himmelsschaukel, der Speichersee und das Dorfbistro. <br />Tipp: Wechselsachen nicht vergessen!</p></div>
15534			
15535
15536				
15537			
15538
15539
15540
15541
15542
15543			
15544
15545				
15546			
15547
15548
15549			
15550			
15551			
15552
15553			
15554			
15555			
15556				
15557				
15558				
15559				
15560			
15561			
15562
15563			
15564
15565
15566
15567			
15568
15569
15570			
15571
15572			
15573			
15574				
15575			
15576			
15577			
15578
15579			
15580			
15581
15582			
15583			
15584
15585				
15586			
15587
15588			
15589			
15590			
15591			
15592			
15593			
15594			
15595
15596			
15597
15598			
15599
15600			
15601
15602			
15603			
15604			
15605			
15606
15607			
15608			
15609
15610			
15611
15612			
15613
15614			
15615
15616			
15617			
15618
15619			
15620			
15621
15622			
15623			
15624
15625			
15626
15627
15628
15629
15630			
15631
15632
15633				
15634
15635				
15636
15637				
15638				
15639
15640
15641				
15642
15643
15644					
15645				
15646				
15647
15648
15649
15650				
15651				
15652				
15653				
15654				
15655				
15656				
15657
15658
15659
15660
15661
15662
15663
15664				
15665				
15666				
15667
15668				
15669
15670				
15671		
15672				
15673				
15674
15675				
15676
15677				
15678
15679				
15680				
15681				
15682
15683
15684		
15685
15686
15687				
15688
15689
15690
15691
15692
15693
15694				
15695
15696			
15697
15698				
15699
15700
15701				
15702				
15703				
15704				
15705			
15706				
15707				
15708				
15709				
15710					
15710<script>
15711
15712window.gmaps_init = false;
15713
15714var initMap = function(map) {
15715
15716	let $geodata_map = $(map);
15717	let geodata = $geodata_map.data('geodata');
15718
15719	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
15720	const safeFloat = (v, fb = 0) => {
15721		const n = parseFloat(v);
15722		return Number.isFinite(n) ? n : fb;
15723	};
15724	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
15725	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
15726	var center_lat = safeFloat(centerLatRaw, 0);
15727	var center_lng = safeFloat(centerLngRaw, 0);
15728
15729	//  Calculate Zoom Level
15730	var zoom = 8;
15731	if ( geodata.zoom > 0 ) {
15732		zoom = geodata.zoom;
15733	}
15734
15735	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
15736
15737	let MAP_BOUNDS = undefined;
15738	if ( geodata.bounds !== undefined ) {
15739		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
15740		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
15741		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
15742		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
15743		if ([east, north, south, west].every(Number.isFinite)) {
15744			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
15745		} else {
15746			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
15747		}
15748	}
15749
15750	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
15751		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
15752		zoom = zoom - 2;
15753	}
15754
15755	if ( zoom == "-Infinity" ) {
15756		if ( geodata.zoom > 0 ) {
15757			zoom = geodata.zoom;
15758		} else {
15759			zoom = 8;
15760		}
15761	}
15762
15763	// console.log("MAP_BOUNDS",MAP_BOUNDS);
15764
15765	
15766	
15767    var map = new google.maps.Map($geodata_map[0], {
15768		center: { lat: center_lat, lng: center_lng },
15769		disableDefaultUI: true,
15770		zoomControl: true,
15771		zoom: zoom,
15772		clickableIcons: false,	
15773		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
15774	});
15775	
15776
15777	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
15778
15779		var infowindow = new google.maps.InfoWindow();
15780		var marker, i;
15781
15782		var icon_obj;
15783		if ( $geodata_map.data('icon') ) {	
15784			icon_obj = {
15785				url: $geodata_map.data('icon'),
15786				size: new google.maps.Size(40, 40),
15787				scaledSize: new google.maps.Size(40, 40),
15788			};
15789		}
15790
15791		// Sanitize locations (avoid NaN -> pan/setCenter errors)
15792		const validLocations = [];
15793		for (let j = 0; j < geodata.locations.length; j++) {
15794			const lat = parseFloat(geodata.locations[j][1]);
15795			const lng = parseFloat(geodata.locations[j][2]);
15796			if (Number.isFinite(lat) && Number.isFinite(lng)) {
15797				validLocations.push([
15798					geodata.locations[j][0],
15799					lat,
15800					lng,
15801					geodata.locations[j][3],
15802					geodata.locations[j][4]
15803				]);
15804			} else {
15805				console.warn('Skipping invalid location', geodata.locations[j]);
15806			}
15807		}
15808
15809		for (i = 0; i < validLocations.length; i++) { 
15810
15811			marker = new google.maps.Marker({
15812				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
15813				icon: icon_obj, 
15814				scale: 0.5,
15815				map: map
15816			});
15817
15818			google.maps.event.addListener(marker, 'click', (function(marker, i) {
15819				return function() {
15820					if ( validLocations[i][0] ) {
15821						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
15822						if ( validLocations[i][3] ) {
15823							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
15824						} 
15825						$content += '</div>';
15826						
15827						infowindow.setContent($content);
15828						infowindow.open(map, marker);
15829					}
15830				}
15831			})(marker, i));
15832		}
15833
15834	}
15835
15836	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
15837
15838		// Need floats + filter invalid points
15839		const validPath = [];
15840		for (var i = 0; i < geodata.path.length; i++) {
15841			const lat = parseFloat(geodata.path[i]['lat']);
15842			const lng = parseFloat(geodata.path[i]['lng']);
15843			if (Number.isFinite(lat) && Number.isFinite(lng)) {
15844				validPath.push({ lat, lng });
15845			} else {
15846				console.warn('Skipping invalid path point', geodata.path[i]);
15847			}
15848		}
15849
15850		var path = new google.maps.Polyline({
15851			path: validPath,
15852			geodesic: true,
15853			strokeColor: '#FF0000',
15854			strokeOpacity: 1.0,
15855			strokeWeight: 3
15856		});
15857
15858		path.setMap(map);
15859
15860	}
15861
15862
15863	var userLat = parseFloat($geodata_map.data('userlat'));
15864	var userLng = parseFloat($geodata_map.data('userlng'));
15865
15866	if ( userLat > 0 && userLng > 0 ) {
15867
15868		var icon = {
15869			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
15870			fillColor: '#1181FA',
15871			fillOpacity: 1,
15872			strokeColor: '#ffffff',
15873   			strokeWeight: 4,
15874			anchor: new google.maps.Point(0,0),
15875			scale: 2
15876		}
15877
15878		var userlocation = new google.maps.Marker( { 
15879			position: { lat: userLat, lng: userLng }, 
15880			map: map,
15881			icon: icon
15882		});
15883	}
15884
15885	$geodata_map.addClass("init");
15886
15887}
15888
15889$('body').on('click', '.geodata-map:not(.init)', function() {
15890
15891	var divmap = this;
15892
15893	if ( gmaps_init === false ) {
15894		$(divmap).html($(divmap).data("loadinginfo"));
15895
15896		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
15897			.done(function( script, textStatus ) {
15898				console.log( textStatus );
15899				window.gmaps_init = true;
15900				setTimeout(function(){ initMap(divmap) },1000);
15901			})
15902			.fail(function( jqxhr, settings, exception ) {
15903				console.log( jqxhr, settings, exception  );
15904			});
15905		
15906	} else {
15907		initMap(divmap);
15908	}
15909
15910});
15911
15912
15913
15914	
15915
15916</script>
15916
15917
15918<style>
15919    .T5304.grid-stack-item-content {
15920        background: #fff !important;
15921    }
15922
15923    .geodata-map {
15924        margin: 1rem 0;
15925        aspect-ratio: 16/11;
15926        width:  100%;
15927    }
15928
15929    .geodata-map:not(.init) {
15930        display: flex;
15931        justify-content: center;
15932        align-items: center;
15933        background-color: #ddd;
15934        border-radius: 0.7rem;
15935        color:  #333;
15936    }
15937</style>
15938					
15939					
15940					
15941					
15942				
15943
15944
15945
15946			
15947
15948
15949
15950
15951
15952
15953
15954
15955
15956
15957
15958
15959
15960
15961			
15962			
15963			
15964			
15965			
15966			
15967			
15968
15969			
15970			
15971			
15972
15973			
15974			
15975
15976			
15977
15978			
15979
15980
15981			
15982
15983			
15984
15985			
15986
15987			
15988
15989
15990
15991
15992
15993
15994
15995			
15996
15997
15998			
15999
16000			
16001
16002		</div>
16003
16004		
16005
16006	
16007
16008	
16009
16010	
16011	
16012	
16013
16014</div>
16015
16016
16017
16018
16019
16020
16021
16022
16023
16024
16025
16026
16027
16028
16029
16030
16031
16032
16033<!-- /MetaDetail -->
16034	</div>
16035	
16036
16037</div>
16038
16039
16040
16041
16042					
16043
16044
16045
16046
16047
16048
16049
16050
16051
16052
16053
16054
16055
16056
16057
16058
16059
16060
16061
16062
16063
16064<!-- /MetaTeaser -->
16065
16066			
16067
16068			</div>
16069
16070			
16071
16072			
16073
16074
16075		</div>
16076
16077	
16078	</div><!-- wrap_inner end -->
16079	</div>
16080	</div>
16081	
16082
16083	
16084	
16085	<style>
16086		
16087		
16088		
16089	</style>
16090
16091
16092
16093
16094
16095
16096
16097<style>
16098
16099	/*	Loading Spinner */
16100	.grid-stack-item.progress {
16101		pointer-events: none;
16102		position: relative
16103	}
16104
16105	.grid-stack-item.progress:before {
16106		z-index: 100000;
16107		position: absolute;
16108		top: 0px; right: 0px; bottom: 0px; left: 0px;
16109		background-color: #f7f7f7dd;
16110		content: "";
16111		backdrop-filter: blur(5px);
16112		-webkit-backdrop-filter: blur(5px);
16113	}	
16114	
16115	@keyframes pos-spinner {
16116	  to {transform: rotate(360deg);}
16117	}
16118	
16119	.grid-stack-item:after { display: none; }
16120
16121	.grid-stack-item.progress:after {
16122	  display: block;
16123	  content: '';
16124	  box-sizing: border-box;
16125	  position: absolute;
16126	  z-index: 10000000;
16127	  top: min( 250px, 50% );
16128	  left: 50%;
16129	  width: 30px;
16130	  height: 30px;
16131	  margin-top: -15px;
16132	  margin-left: -15px;
16133	  border-radius: 50%;
16134	  border: 1px solid #ccc;
16135	  border-top-color: var(--bgcolor-button,#07d);
16136	  animation: pos-spinner .6s linear infinite;
16137	}
16138
16139
16140	.wrap_inner {overflow: hidden;}
16141
16142	.wrap_head {
16143		display: flex;
16144		flex-wrap: wrap;
16145		align-items: flex-start;
16146		position: relative;
16147		margin-bottom: 0.7em;
16148	}
16149
16150
16151
16152	.meta-wrap-wide .wrap_inner { overflow: visible; }
16153	.meta-wrap-wide .meta-wrap-content { margin: 0 calc( var(--margin-offset) * -1 ); }
16154	.meta-wrap-wide .T5277.display_desktop_slider .bumper { scroll-snap-align: start; width: var(--margin-offset,0);flex-grow: 0;flex-shrink: 0;display: block; }
16155
16156	.meta-wrap-narrow { max-width: 850px; margin-left: auto; margin-right: auto; }
16157	.meta-wrap-narrow .max-width, .meta-wrap-narrow .maxwidth { width: auto; }
16158
16159	.grid-stack-item-content.meta-wrap-slim { max-width: 520px; margin-left: auto; margin-right: auto; }
16160	.grid-stack-item-content.meta-wrap-slim .maxwidth { max-width: 520px; margin-left: auto; margin-right: auto; }
16161
16162	
16163	.wrap_head .wrap_subheadline {
16164		width: 90%;
16165		margin-bottom: 0.5em;
16166	}
16167
16168
16169	.wrap_head .wrap_subheadline.default {
16170		font-size: 0.8em;
16171		line-height: 1.10;
16172		font-weight: bold;
16173		width: 90%;
16174		opacity: 0.5;
16175	}
16176
16177	.wrap_head .wrap_headline {
16178		font-size: 1.4em;
16179		line-height: 1.10;
16180		margin-top: 0;
16181		margin-bottom: 0.25em;
16182		width: 90%;
16183	}
16184
16185	#TraminoInhalt .wrap_head .wrap_headline:not(.specialfont).normalfont {
16186		font-size: 1.8em;
16187	}
16188
16189	.wrap_head .wrap_intro {
16190		line-height: 1.3;
16191		margin: 0.2em 0 0.5em 0;
16192		width: 100%;
16193		text-wrap: balance;
16194		max-width: 1000px;
16195	}
16196
16197	.wrap_head .wrap_intro b { font-weight: bold; }
16198	
16199	
16200	.wrap_head .wrap-button.default {
16201		background: var(--bgcolor-button);
16202		color: #fff;
16203		font-size: 0.9em;
16204		white-space: nowrap;
16205		padding: 0.2em 1em;
16206		border-radius: 0.4em;
16207		cursor: pointer;
16208		text-decoration: none;
16209	}
16210
16211
16212	/* Order */ 
16213	.wrap_head .wrap_headline { order: 1; flex-shrink: 1; flow-grow: 0; }
16214	.wrap_head .button_wrapper { order: 2; flex-shrink: 0; flow-grow: 0; display: flex; justify-content: flex-end; }
16215	.wrap_head .meta-wrap-icon{ order: 2; flex-shrink: 0; flow-grow: 0; }
16216	.wrap_head .wrap_intro { order: 4; flex-shrink: 0; flow-grow: 0; }
16217
16218	/* Swap Icon */
16219	.meta-wrap-swap-icon .wrap_head { align-items: center; }
16220	.meta-wrap-swap-icon .meta-wrap-icon { order: 1; margin-right: 0.5em; }
16221	.meta-wrap-swap-icon .wrap_headline { order: 2; }
16222
16223
16224	.wrap_head.with_button {
16225
16226		justify-content: space-between;
16227
16228		.wrap_head { justify-content: space-between; }
16229
16230		.meta-wrap-icon { order: 1;  }
16231		.wrap_headline { order: 2; width: calc(65% - 2em); margin-right: 2em; }
16232		.button_wrapper { order: 3;  }
16233	}
16234
16235	.wrap_head.with_icon.with_button {
16236
16237		justify-content: flex-start;
16238
16239		.meta-wrap-icon{ order: 1; }
16240		.wrap_headline { order: 2; width: calc(70% - 2em - 2em); margin-right: 2em; }
16241		.button_wrapper { order: 3; }
16242	}
16243
16244
16245	@media (max-width: 768px) {
16246	  
16247	    .wrap_head.mobile_wrap  .wrap_headline {
16248	        order: 3;
16249	        margin-top: 0;
16250	        width: auto;
16251	    }
16252
16253	    .wrap_head.mobile_wrap.with_icon .wrap_headline { width: auto; }
16254
16255	    .wrap_head.mobile_wrap .meta-wrap-icon{
16256	        order: 1;
16257	    }
16258	    .wrap_head.mobile_wrap .button_wrapper {
16259	        width: auto;
16260	        order: 3;
16261	        margin-top: 0rem;
16262	        margin-bottom: 0.2rem;
16263	    }
16264
16265	    /* Swap Icon */
16266		.meta-wrap-swap-icon .meta-wrap-icon{ order: 1; margin-right: 0.5em; }
16267		.meta-wrap-swap-icon .wrap_headline { order: 2; }
16268	}
16269
16270	.wrap_head .meta-wrap-icon { aspect-ratio: 1 / 1; }
16271	.wrap_head .meta-wrap-icon  img { display: block; width: 2em; height: auto; aspect-ratio: 1 / 1 !important; }
16272
16273	/* Icon als Badge im Bild oben rechts */
16274
16275	.wrap_wrapper.meta-wrap-icon-badge .wrap_inner { position: relative; }
16276	.wrap_wrapper.meta-wrap-icon-badge .wrap_head { position: unset; }
16277	.wrap_wrapper.meta-wrap-icon-badge .wrap_head .meta-wrap-icon img { width: 100% !important; }
16278	.wrap_wrapper.meta-wrap-icon-badge .wrap_head .meta-wrap-icon {
16279		position: absolute;
16280		right: 0; 
16281		top: 0;
16282		width: 20%;
16283		height: auto;
16284		aspect-ratio: 1 / 1;
16285		max-width: 10em;
16286		margin: 2.5%;
16287		background-color: #fff;
16288		padding: 2.5%; 
16289		box-shadow: 0.3em 0.3em 0.3em #0003;
16290		border-radius: 0.4em;
16291	}
16292	.narrow	.wrap_wrapper.meta-wrap-icon-badge .wrap_head .meta-wrap-icon { right: 1em; }
16293
16294
16295
16296
16297
16298
16299	.wrap_motiv { margin-bottom: 0.9em; position: relative; }
16300	.wrap_motiv picture { width: 100%; height: auto; }
16301	.wrap_motiv picture img { 
16302		width: 100%; 
16303		height: auto;
16304		aspect-ratio: 2 / 1;
16305		object-fit: cover;
16306		border-radius: 0.7rem;
16307	}
16308
16309	.wrap_motiv .wrap_logo { position: absolute; right: 1em; bottom: 1em; width: 30%; }
16310	.wrap_motiv .wrap_logo picture img { width: 100%; height: auto; aspect-ratio: 4 / 3 }
16311
16312
16313
16314
16315	.wrap-footer {}
16316
16317	.wrap-footer-text {
16318		opacity: 0.8;
16319		font-size: 0.80em;
16320		line-height: 1.25;
16321		margin-top: 0.7em;
16322		width: 100%;
16323		max-width: 1000px;
16324	}
16325
16326
16327	.wrap-footer-buttons {
16328		display: flex;
16329		align-items: flex-end;	
16330		justify-content: flex-end;
16331		padding-top: 0.2em;
16332		margin-top: 0.5em;
16333		border-top: 1px solid #BBB;
16334		gap: 0.5em;
16335		flex-wrap: wrap;
16336	}
16337	.meta-wrap-footer-buttons-no-border .wrap-footer-buttons { border-top-width: 0; }
16338	.meta-wrap-footer-buttons-jc-start .wrap-footer-buttons { justify-content: flex-start; }
16339	.meta-wrap-footer-buttons-jc-center .wrap-footer-buttons { justify-content: center; }
16340
16341	.wrap-footer-buttons.no-icons { gap: 0.7em; }
16342
16343	.wrap-footer-buttons .wrap-footer-button {
16344		color: #333;
16345		font-size: 0.8em;
16346		white-space: nowrap;
16347		cursor: pointer;
16348		text-decoration: none;
16349
16350	}
16351
16352
16353	.wrap-footer-buttons .wrap-footer-button.with_icon {
16354		display: flex;
16355		align-items: center;
16356	}
16357
16358	.wrap-footer-buttons .wrap-footer-button.with_icon .footer-button-icon {
16359		width: 1.1em;
16360		flex-grow: 0;
16361		flex-shrink: 0;
16362		margin-right: 0.4em;
16363
16364		display: flex;
16365        align-items: center;
16366        justify-content: center;
16367
16368	}
16369
16370	.wrap-footer-buttons .wrap-footer-button.with_icon .footer-button-icon img { width: 100%; height: auto; }
16371
16372	.grid-stack-item.width2 .wrap-footer-buttons {
16373		flex-direction: row;
16374		flex-wrap: wrap;
16375	}
16376
16377	body.wide .wrap-footer-buttons.no-icons { gap: 1em; }
16378	body.extrawide .wrap-footer-buttons.no-icons { gap: 1em; }
16379
16380	/* Darstellungsoptionen */
16381
16382	/* Reset */
16383	html body .grid-stack-item-content:has(.wrap_wrapper) {
16384		border-radius: 0 !important;
16385		overflow: visible !important;
16386	}
16387
16388	.meta-wrap-background, .meta-wrap-background {
16389		padding: 0.6em 1em 1em 1em !important;
16390	}
16391
16392	/* Schatten */
16393	.meta-wrap-shadow {
16394	  box-shadow: 0.1875em 0.1875em 0.625em rgba(0,0,0,0.2);
16395	}
16396
16397
16398	/* Rundung */
16399	.meta-wrap-border-radius {
16400	  border-radius: 0.5em;
16401	}
16402
16403
16404	/* Schatten */
16405	body.narrow .meta-wrap-border-mobile-margin {
16406	  margin-left: 1em; 
16407	  margin-right: 1em;
16408	}
16409
16410
16411	/* Verlinkungen unter Widget als Button */
16412	.meta-wrap-footer-button .wrap-footer-button {
16413		background-color: var(--bgcolor-button);
16414		color: #FFF;
16415		padding: 0.2em 1em;
16416		border-radius: 0.4em;
16417		cursor: pointer;
16418		text-decoration: none;
16419		font-size: 0.9em;
16420	}
16421
16422
16423/* Motiv als Hintergrund */
16424
16425/* Wrap bleibt im bestehenden Oberstdorf-Container */
16426.wrap_wrapper.meta-wrap-motiv-background {
16427    position: relative;
16428    overflow: visible;
16429    isolation: isolate;
16430}
16431
16432/* Motiv aus dem begrenzten Container herausziehen */
16433.wrap_wrapper.meta-wrap-motiv-background .wrap_motiv {
16434    position: absolute;
16435    top: 0;
16436    bottom: 0;
16437    left: 50%;
16438    transform: translateX(-50%);
16439    width: 100vw;
16440    height: 100%;
16441    margin: 0;
16442    z-index: -1;
16443    pointer-events: none;
16444    overflow: hidden;
16445}
16446
16447/* Picture über die gesamte Hintergrundfläche */
16448.wrap_wrapper.meta-wrap-motiv-background .wrap_motiv picture {
16449    display: block;
16450    width: 100%;
16451    height: 100%;
16452}
16453
16454/* Motiv hell und dezent darstellen */
16455.wrap_wrapper.meta-wrap-motiv-background .wrap_motiv img {
16456    display: block;
16457    width: 100%;
16458    height: 100%;
16459    max-width: none;
16460    aspect-ratio: auto;
16461    object-fit: cover;
16462    object-position: center;
16463    border-radius: 0;
16464    opacity: 0.12;
16465    filter:
16466        brightness(1.3)
16467        saturate(0.6);
16468}
16469
16470/* Inhalt bleibt über dem Hintergrund */
16471.wrap_wrapper.meta-wrap-motiv-background .wrap_inner {
16472    position: relative;
16473    z-index: 1;
16474}
16475
16476/* =========================================================
16477   META WRAP – MOTIV FADEOUT
16478
16479   Benötigte Darstellungsoptionen:
16480   1. meta-wrap-motiv-background
16481   2. meta-wrap-motiv-fadeout
16482   ========================================================= */
16483
16484.wrap_wrapper.meta-wrap-motiv-background.meta-wrap-motiv-fadeout
16485.wrap_motiv {
16486    -webkit-mask-image: linear-gradient(
16487        to bottom,
16488        transparent 0%,
16489        black 22%,
16490        black 78%,
16491        transparent 100%
16492    );
16493
16494    mask-image: linear-gradient(
16495        to bottom,
16496        transparent 0%,
16497        black 22%,
16498        black 78%,
16499        transparent 100%
16500    );
16501}
16502
16503
16504
16505	/* Linien oben/unten */
16506	.meta-wrap-border-top .maxwidth { border-top: 2px solid #000; padding-top: 1em; }
16507	.meta-wrap-border-bottom .maxwidth { border-bottom: 2px solid #000; padding-bottom: 1em; }
16508
16509	/* Head und Contnet desktop nebeneinander */
16510	@container metateaser-content (min-width: 567px) {}
16511	@container metateaser-content (min-width: 768px) {
16512		.wrap_wrapper.meta-wrap-desktop-flex .maxwidth,
16513                .wrap_wrapper.meta-wrap-desktop-flex .maxwidth-wide {
16514                        --meta-wrap-gap: 5rem;
16515
16516                        display: grid;
16517                        grid-template-columns: 3fr 7fr;
16518                        gap: var(--meta-wrap-gap);
16519                        align-items: start;
16520                }
16521
16522		.wrap_wrapper.meta-wrap-desktop-flex .maxwidth > .wrap-footer {
16523			grid-column: 1 / -1;
16524		}
16525	}
16526	@container metateaser-content (min-width: 1024px) {}
16527	@container metateaser-content (min-width: 1280px) {}
16528	
16529	
16530	/* Buttons mit in Head */
16531       .wrap_wrapper.meta-wrap-buttons-in-head .maxwidth .wrap_head .wrap-footer,
16532        .wrap_wrapper.meta-wrap-buttons-in-head .maxwidth-wide .wrap_head .wrap-footer {
16533                order: 5;
16534                width: 100%;
16535        }
16536	.wrap_wrapper.meta-wrap-buttons-in-head .maxwidth .wrap_head .wrap-footer .wrap-footer-buttons,
16537        .wrap_wrapper.meta-wrap-buttons-in-head .maxwidth-wide .wrap_head .wrap-footer .wrap-footer-buttons{
16538                border-top-width: 0;
16539        }
16540</style>
16541					
16542				</section>
16543			
16544				<section class="TraminoVorlage T4244 TraminoVorlage_7" id="TraminoAnhang554421"   >
16545					
16546					
16547				</section>
16548			
16549				<section class="TraminoVorlage T5812 TraminoVorlage_8" id="TraminoAnhang577381"   >
16550					<div style="position: relative; width: 100%;">
16551	
16552	
16553	<div class="overlap-bottom">
16554		<img src="https://storage.tramino.net/wurzelrudi/1667658/trenner-oben-klein.svg">
16555	</div>
16556	
16557</div>
16558					
16559				</section>
16560			
16561				<section class="TraminoVorlage T3201 S7538 TraminoVorlage_9" id="TraminoAnhang554429"   >
16562					<div class="parallax">
16563	<div class="overlay">
16564		<div class="caption">
16565
16566			
16567			
16568			
16569			
16570			
16571			
16572			
16573
16574		</div>
16575	</div>
16576</div>
16577					
16578				</section>
16579			
16580				<section class="TraminoVorlage T5812 TraminoVorlage_10" id="TraminoAnhang580986"   >
16581					<div style="position: relative; width: 100%;">
16582	
16583	<div class="overlap-top">
16584		<img src="https://storage.tramino.net/wurzelrudi/1667929/trenner-burg-klein.svg">
16585	</div>
16586	
16587	
16588</div>
16589					
16590				</section>
16591			
16592				<section class="TraminoVorlage T2897 S8820 S8467 S6859 TraminoVorlage_11" id="TraminoAnhang554434"  style=" margin-top: 0vw !important;  margin-bottom: 0vw !important; "   >
16593					<div class="width_wrapper maxwidth">
16594<div class="wrapper background" >
16595
16596	
16597
16598	<div data-shortcut="subheadline" class="subheadline fontsize_large bold hyphens">Sommerabenteuer in Wurzelrudis Erlebniswelt</div>
16599	<div data-shortcut="headline" class="headline color specialfont fontsize_xlarge bold hyphens">Spiel &amp; Spaß<br> von Gipfel bis Tal</div>
16600
16601	
16602
16603	<div class="text textile" data-shortcut="col1_text">
16604		<p>Dein Besuch in Eibenstock wird wunderbar! In Wurzelrudis Erlebniswelt warten spannende Attraktionen unter freiem Himmel: Ob du im Seedorf über das Wasser balancierst, im Irrgarten die Richtung verlierst oder im Schloss Rutschen und Geheimgänge entdeckst – hier wird dein Tag nie langweilig.</p><p>Die Allwetterbobbahn, Reifenrutsche und die Fahrt mit den Frechen Flitzern sorgen für den Extra-Kick. Wer’s lieber gemütlich mag, genießt die Aussicht mit der Sesselbahn und stärkt sich auf der Adleralm oder im Dorfbistro. Alles inmitten herrlicher Natur – ein perfektes Sommerziel für Familien!</p>
16605		
16606	</div>	
16607
16608</div>
16609</div>
16610					
16611				</section>
16612			
16613				<section class="TraminoVorlage T4681 TraminoVorlage_12" id="TraminoAnhang568898"   >
16614					<div class="partline maxwidth">
16615	
16616	
16617	
16618	
16619	
16620	
16621	
16622	
16623		
16624		<div class="bordertext specialfont fontsize_small ">
16625			
16626				<span class="">Das könnte dich noch interessieren! </span>
16627			
16628		</div>
16629	
16630</div>
16631
16632
16633	<style>
16634	#TraminoAnhang568898.T4681 {
16635		--color: #2c296f;
16636	}
16637	</style>
16638					
16639				</section>
16640			
16641				<section class="TraminoVorlage T5559 S9101 TraminoVorlage_13" id="TraminoAnhang568899"   >
16642					<div class="grid-stack-item" data-gs-id="568899">
16643	<div class="wrap_wrapper grid-stack-item-content ">
16644	<div class="wrap_inner">
16645	
16646		
16647		
16648		
16649		
16650
16651		
16652		
16653		
16654		<div class="maxwidth">
16655			
16656			<div class="meta-wrap-content">
16657				
16658
16659	
16660	
16661	
16662
16663	
16664	
16665	
16666	
16667	
16668	
16669	
16670		
16671
16672		
16673
16674		
16675	
16676		
16677		
16678		
16679
16680		
16681
16682		
16683		
16684	
16685	
16686	
16687		
16688
16689		
16690
16691		
16692	
16693		
16694		
16695		
16696
16697		
16698
16699		
16700		
16701	
16702	
16703	
16704		
16705
16706		
16707
16708		
16709	
16710		
16711		
16712		
16713
16714		
16715
16716		
16717		
16718	
16719	
16720	
16721		
16722
16723		
16724
16725		
16726	
16727		
16728		
16729		
16730
16731		
16732
16733		
16734		
16735	
16736	
16737	
16738		
16739
16740		
16741
16742		
16743	
16744		
16745		
16746		
16747
16748		
16749
16750		
16751		
16752	
16753	
16754	
16755		
16756
16757		
16758
16759		
16760	
16761		
16762		
16763		
16764
16765		
16766
16767		
16768		
16769	
16770	
16771	
16772		
16773
16774		
16775
16776		
16777	
16778		
16779		
16780		
16781
16782		
16783
16784		
16785		
16786	
16787	
16788	
16789		
16790
16791		
16792
16793		
16794	
16795		
16796		
16797		
16798
16799		
16800
16801		
16802		
16803	
16804	
16805	
16806		
16807
16808		
16809
16810		
16811	
16812		
16813		
16814		
16815
16816		
16817
16818		
16819		
16820	
16821	
16822	
16823	
16824	<!-- MetaDetail -->
16825
16826
16827	<!-- MetaDetail: load_css only -->
16828
16829
16830
16831
16832
16833
16834
16835
16836
16837
16838
16839
16840
16841
16842
16843
16844
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
16868
16869
16870
16871
16872
16873
16874
16875
16876
16877
16878
16879
16880
16881
16882
16883
16884
16885
16886
16887
16888
16889
16890
16891
16892
16893
16894
16895
16896
16897
16898
16899
16900
16901
16902
16903
16904
16905
16906
16907
16908<div class="T5277 display_mobile_grid display_tablet_grid display_desktop_grid cols_mobile_1 cols_tablet_1 cols_desktop_3 layout_below layout_tablet_below layout_mobile_below ratio_landscape meta-teaser-up-right-icon meta-teaser-image-radius-light meta-teaser-headline-inside meta-teaser-hover-bright">
16909
16910
16911
16912
16913
16914
16915
16916	<div class="teaser_head noselect">
16917		<div class="filter_count"><span>9</span> von 9</div>
16918		<div class="filter_selected"></div>
16919		<div class="paginator_pages" role="navigation" aria-label="Pagination"></div>
16920	</div>
16921
16922	<div class="outer ">
16923		
16924		
16925			
16926		<div class="elements elements_568899
16927                
16928                "
16929                    >
16930
16931                
16932
16933			
16934			
16935			
16936
16937			
16938						
16939			
16940				
16941				
16942			
16943				
16944				
16945				
16946
16947				
16948				
16949				
16950				
16951				
16952				
16953				
16954				
16955				
16956				
16957
16958				
16959				
16960
16961				
16962
16963				
16964				
16965				
16966				
16967				
16968				
16969
16970				
16971				
16972
16973				
16974
16975				
16976
16977
16978				
16979				
16980				
16981				
16982
16983				
16984
16985				
16986				
16987				
16988
16989				
16990				
16991
16992
16993				
16994
16995				
16996				
16997
16998
16999				
17000				
17001				
17002				
17003			
17004				
17005				
17006				
17007
17008
17009				
17010
17011				
17012
17013
17014
17015
17016				
17017
17018
17019
17020			
17021						
17022					
17023					
17024
17025						
17026					
17027					
17028				
17029				
17030				
17031				
17032				
17033				
17034				
17035
17036				
17037
17038
17039				
17040
17041				
17042				<a class="element  clickable "  data-id='154715' href='/planen/oeffnungszeiten/'>
17043					
17044
17045
17046
17047
17048
17049					
17050					<div class="bild">
17051					
17052
17053						
17054
17055						
17056
17057
17058							
17059							   	
17060									
17061								
17062							
17063
17064							
17065
17066							<div class="meta-teaser-images" >
17067	
17068	
17069
17070	
17071
17072		
17073		
17074
17075		
17076
17077		
17078
17079		
17080
17081		
17082
17083		
17084		
17085
17086		
17087
17088		
17089		
17090		
17091		
17092		
17093	
17094		
17095		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1663145/600.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1663145/400.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1663145/600.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1663145/400.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1663145/400.jpg" width="400" height="300" loading='lazy' alt="Wandern (3)" /></picture>
17096	
17097	
17098	
17099	</div>
17100
17101							
17102
17103						
17104						
17105						
17106
17107						
17108
17109						
17110
17111						
17112
17113
17114					
17115					</div>
17116					
17117				
17118					
17119
17120
17121
17122
17123
17124					
17125
17126					<div class="metateaser-content">
17127
17128						<div class="metateaser-content-text">
17129							
17130							
17131
17132							
17133							
17134
17135							
17136
17137							
17138							
17139
17140							
17141							
17142							
17143							
17144							
17145							
17146							
17147
17148							<div class="default_font teaser-name clamp clamp1" >Öffnungszeit &amp; Preis</div>
17149
17150
17151							
17152
17153
17154							
17155
17156							
17157							
17158							
17159
17160							
17161							
17162							
17163						</div>
17164
17165						
17166
17167						
17168
17169						
17170						
17171						
17172						
17173						
17174						
17175						
17176						
17177						
17178						
17179						
17180						
17181
17182						
17183						
17184
17185					</div>
17186					
17187
17188					
17189
17190				</a>
17191			
17192				
17193
17194				
17195
17196				
17197				
17198				
17199				
17200				
17201				
17202				
17203				
17204				
17205				
17206				
17207			
17208				
17209				
17210				
17211
17212				
17213				
17214				
17215				
17216				
17217				
17218				
17219				
17220				
17221				
17222
17223				
17224				
17225
17226				
17227
17228				
17229				
17230				
17231				
17232				
17233				
17234
17235				
17236				
17237
17238				
17239
17240				
17241
17242
17243				
17244				
17245				
17246				
17247
17248				
17249
17250				
17251				
17252				
17253
17254				
17255				
17256
17257
17258				
17259
17260				
17261				
17262
17263
17264				
17265				
17266				
17267				
17268			
17269				
17270				
17271				
17272
17273
17274				
17275
17276				
17277
17278
17279
17280
17281				
17282
17283
17284
17285			
17286						
17287					
17288					
17289
17290						
17291					
17292					
17293				
17294				
17295				
17296				
17297				
17298				
17299				
17300
17301				
17302
17303
17304				
17305
17306				
17307				<a class="element  clickable "  data-id='151647' href='/planen/orientierungsplan/'>
17308					
17309
17310
17311
17312
17313
17314					
17315					<div class="bild">
17316					
17317
17318						
17319
17320						
17321
17322
17323							
17324							   	
17325									
17326								
17327							
17328
17329							
17330
17331							<div class="meta-teaser-images" >
17332	
17333	
17334
17335	
17336
17337		
17338		
17339
17340		
17341
17342		
17343
17344		
17345
17346		
17347
17348		
17349		
17350
17351		
17352
17353		
17354		
17355		
17356		
17357		
17358	
17359		
17360		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1689088/600x450.webp?r=3 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1689088/400x300.webp?r=3 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1689088/600x450.jpg?r=3 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1689088/400x300.jpg?r=3 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1689088/400x300.jpg?r=3" width="400" height="300" loading='lazy' alt="Sommer Plan" /></picture>
17361	
17362	
17363	
17364	</div>
17365
17366							
17367
17368						
17369						
17370						
17371
17372						
17373
17374						
17375
17376						
17377
17378
17379					
17380					</div>
17381					
17382				
17383					
17384
17385
17386
17387
17388
17389					
17390
17391					<div class="metateaser-content">
17392
17393						<div class="metateaser-content-text">
17394							
17395							
17396
17397							
17398							
17399
17400							
17401
17402							
17403							
17404
17405							
17406							
17407							
17408							
17409							
17410							
17411							
17412
17413							<div class="default_font teaser-name clamp clamp1" >Geländeplan</div>
17414
17415
17416							
17417
17418
17419							
17420
17421							
17422							
17423							
17424
17425							
17426							
17427							
17428						</div>
17429
17430						
17431
17432						
17433
17434						
17435						
17436						
17437						
17438						
17439						
17440						
17441						
17442						
17443						
17444						
17445						
17446
17447						
17448						
17449
17450					</div>
17451					
17452
17453					
17454
17455				</a>
17456			
17457				
17458
17459				
17460
17461				
17462				
17463				
17464				
17465				
17466				
17467				
17468				
17469				
17470				
17471				
17472			
17473				
17474				
17475				
17476
17477				
17478				
17479				
17480				
17481				
17482				
17483				
17484				
17485				
17486				
17487
17488				
17489				
17490
17491				
17492
17493				
17494				
17495				
17496				
17497				
17498				
17499
17500				
17501				
17502
17503				
17504
17505				
17506
17507
17508				
17509				
17510				
17511				
17512
17513				
17514
17515				
17516				
17517				
17518
17519				
17520				
17521
17522
17523				
17524
17525				
17526				
17527
17528
17529				
17530				
17531				
17532				
17533			
17534				
17535				
17536				
17537
17538
17539				
17540
17541				
17542
17543
17544
17545
17546				
17547
17548
17549
17550			
17551						
17552					
17553					
17554
17555						
17556					
17557					
17558				
17559				
17560				
17561				
17562				
17563				
17564				
17565
17566				
17567
17568
17569				
17570
17571				
17572				<a class="element  clickable "  data-id='152371' href='/plane
17572n/tickets/'>
17573					
17574
17575
17576
17577
17578
17579					
17580					<div class="bild">
17581					
17582
17583						
17584
17585						
17586
17587
17588							
17589							   	
17590									
17591								
17592							
17593
17594							
17595
17596							<div class="meta-teaser-images" >
17597	
17598	
17599
17600	
17601
17602		
17603		
17604
17605		
17606
17607		
17608
17609		
17610
17611		
17612
17613		
17614		
17615
17616		
17617
17618		
17619		
17620		
17621		
17622		
17623	
17624		
17625		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1662660/600x450.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1662660/400x300.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1662660/600x450.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1662660/400x300.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1662660/400x300.jpg" width="400" height="300" loading='lazy' alt="TMGS2019 Thomas Schlorke (106)" /></picture>
17626	
17627	
17628	
17629	</div>
17630
17631							
17632
17633						
17634						
17635						
17636
17637						
17638
17639						
17640
17641						
17642
17643
17644					
17645					</div>
17646					
17647				
17648					
17649
17650
17651
17652
17653
17654					
17655
17656					<div class="metateaser-content">
17657
17658						<div class="metateaser-content-text">
17659							
17660							
17661
17662							
17663							
17664
17665							
17666
17667							
17668							
17669
17670							
17671							
17672							
17673							
17674							
17675							
17676							
17677
17678							<div class="default_font teaser-name clamp clamp1" >Preis &Ticket</div>
17679
17680
17681							
17682
17683
17684							
17685
17686							
17687							
17688							
17689
17690							
17691							
17692							
17693						</div>
17694
17695						
17696
17697						
17698
17699						
17700						
17701						
17702						
17703						
17704						
17705						
17706						
17707						
17708						
17709						
17710						
17711
17712						
17713						
17714
17715					</div>
17716					
17717
17718					
17719
17720				</a>
17721			
17722				
17723
17724				
17725
17726				
17727				
17728				
17729				
17730				
17731				
17732				
17733				
17734				
17735				
17736				
17737			
17738				
17739				
17740				
17741
17742				
17743				
17744				
17745				
17746				
17747				
17748				
17749				
17750				
17751				
17752
17753				
17754				
17755
17756				
17757
17758				
17759				
17760				
17761				
17762				
17763				
17764
17765				
17766				
17767
17768				
17769
17770				
17771
17772
17773				
17774				
17775				
17776				
17777
17778				
17779
17780				
17781				
17782				
17783
17784				
17785				
17786
17787
17788				
17789
17790				
17791				
17792
17793
17794				
17795				
17796				
17797				
17798			
17799				
17800				
17801				
17802
17803
17804				
17805
17806				
17807
17808
17809
17810
17811				
17812
17813
17814
17815			
17816						
17817					
17818					
17819
17820						
17821					
17822					
17823				
17824				
17825				
17826				
17827				
17828				
17829				
17830
17831				
17832
17833
17834				
17835
17836				
17837				<a class="element  clickable "  data-id='151599' href='/essen-trinken/'>
17838					
17839
17840
17841
17842
17843
17844					
17845					<div class="bild">
17846					
17847
17848						
17849
17850						
17851
17852
17853							
17854							   	
17855									
17856								
17857							
17858
17859							
17860
17861							<div class="meta-teaser-images" >
17862	
17863	
17864
17865	
17866
17867		
17868		
17869
17870		
17871
17872		
17873
17874		
17875
17876		
17877
17878		
17879		
17880
17881		
17882
17883		
17884		
17885		
17886		
17887		
17888	
17889		
17890		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1627138/besucher-geniessen-einen-tag-waldrand-600x450.webp?r=1 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1627138/besucher-geniessen-einen-tag-waldrand-400x300.webp?r=1 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1627138/besucher-geniessen-einen-tag-waldrand-600x450.jpg?r=1 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1627138/besucher-geniessen-einen-tag-waldrand-400x300.jpg?r=1 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1627138/besucher-geniessen-einen-tag-waldrand-400x300.jpg?r=1" width="400" height="300" loading='lazy' alt="Menschen sitzen an Tischen und genießen Essen und Trinken in der Nähe einer Hütte im Wald." /></picture>
17891	
17892	
17893	
17894	</div>
17895
17896							
17897
17898						
17899						
17900						
17901
17902						
17903
17904						
17905
17906						
17907
17908
17909					
17910					</div>
17911					
17912				
17913					
17914
17915
17916
17917
17918
17919					
17920
17921					<div class="metateaser-content">
17922
17923						<div class="metateaser-content-text">
17924							
17925							
17926
17927							
17928							
17929
17930							
17931
17932							
17933							
17934
17935							
17936							
17937							
17938							
17939							
17940							
17941							
17942
17943							<div class="default_font teaser-name clamp clamp1" >Essen &amp; Trinken</div>
17944
17945
17946							
17947
17948
17949							
17950
17951							
17952							
17953							
17954
17955							
17956							
17957							
17958						</div>
17959
17960						
17961
17962						
17963
17964						
17965						
17966						
17967						
17968						
17969						
17970						
17971						
17972						
17973						
17974						
17975						
17976
17977						
17978						
17979
17980					</div>
17981					
17982
17983					
17984
17985				</a>
17986			
17987				
17988
17989				
17990
17991				
17992				
17993				
17994				
17995				
17996				
17997				
17998				
17999				
18000				
18001				
18002			
18003				
18004				
18005				
18006
18007				
18008				
18009				
18010				
18011				
18012				
18013				
18014				
18015				
18016				
18017
18018				
18019				
18020
18021				
18022
18023				
18024				
18025				
18026				
18027				
18028				
18029
18030				
18031				
18032
18033				
18034
18035				
18036
18037
18038				
18039				
18040				
18041				
18042
18043				
18044
18045				
18046				
18047				
18048
18049				
18050				
18051
18052
18053				
18054
18055				
18056				
18057
18058
18059				
18060				
18061				
18062				
18063			
18064				
18065				
18066				
18067
18068
18069				
18070
18071				
18072
18073
18074
18075
18076				
18077
18078
18079
18080			
18081						
18082					
18083					
18084
18085						
18086					
18087					
18088				
18089				
18090				
18091				
18092				
18093				
18094				
18095
18096				
18097
18098
18099				
18100
18101				
18102				<a class="element  clickable "  data-id='151609' href='/familienzeit/schatzsuche/'>
18103					
18104
18105
18106
18107
18108
18109					
18110					<div class="bild">
18111					
18112
18113						
18114
18115						
18116
18117
18118							
18119							   	
18120									
18121								
18122							
18123
18124							
18125
18126							<div class="meta-teaser-images" >
18127	
18128	
18129
18130	
18131
18132		
18133		
18134
18135		
18136
18137		
18138
18139		
18140
18141		
18142
18143		
18144		
18145
18146		
18147
18148		
18149		
18150		
18151		
18152		
18153	
18154		
18155		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/600.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1514818/400.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/600.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1514818/400.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1514818/400.jpg" width="400" height="300" loading='lazy' alt="Wurzelrudi Fernrohr Schatzsuche" /></picture>
18156	
18157	
18158	
18159	</div>
18160
18161							
18162
18163						
18164						
18165						
18166
18167						
18168
18169						
18170
18171						
18172
18173
18174					
18175					</div>
18176					
18177				
18178					
18179
18180
18181
18182
18183
18184					
18185
18186					<div class="metateaser-content">
18187
18188						<div class="metateaser-content-text">
18189							
18190							
18191
18192							
18193							
18194
18195							
18196
18197							
18198							
18199
18200							
18201							
18202							
18203							
18204							
18205							
18206							
18207
18208							<div class="default_font teaser-name clamp clamp1" >Schatzsuche</div>
18209
18210
18211							
18212
18213
18214							
18215
18216							
18217							
18218							
18219
18220							
18221							
18222							
18223						</div>
18224
18225						
18226
18227						
18228
18229						
18230						
18231						
18232						
18233						
18234						
18235						
18236						
18237						
18238						
18239						
18240						
18241
18242						
18243						
18244
18245					</div>
18246					
18247
18248					
18249
18250				</a>
18251			
18252				
18253
18254				
18255
18256				
18257				
18258				
18259				
18260				
18261				
18262				
18263				
18264				
18265				
18266				
18267			
18268				
18269				
18270				
18271
18272				
18273				
18274				
18275				
18276				
18277				
18278				
18279				
18280				
18281				
18282
18283				
18284				
18285
18286				
18287
18288				
18289				
18290				
18291				
18292				
18293				
18294
18295				
18296				
18297
18298				
18299
18300				
18301
18302
18303				
18304				
18305				
18306				
18307
18308				
18309
18310				
18311				
18312				
18313
18314				
18315				
18316
18317
18318				
18319
18320				
18321				
18322
18323
18324				
18325				
18326				
18327				
18328			
18329				
18330				
18331				
18332
18333
18334				
18335
18336				
18337
18338
18339
18340
18341				
18342
18343
18344
18345			
18346						
18347					
18348					
18349
18350						
18351					
18352					
18353				
18354				
18355				
18356				
18357				
18358				
18359				
18360
18361				
18362
18363
18364				
18365
18366				
18367				<a class="element  clickable "  data-id='152359' href='/familienzeit/kindergeburtstage/'>
18368					
18369
18370
18371
18372
18373
18374					
18375					<div class="bild">
18376					
18377
18378						
18379
18380						
18381
18382
18383							
18384							   	
18385									
18386								
18387							
18388
18389							
18390
18391							<div class="meta-teaser-images" >
18392	
18393	
18394
18395	
18396
18397		
18398		
18399
18400		
18401
18402		
18403
18404		
18405
18406		
18407
18408		
18409		
18410
18411		
18412
18413		
18414		
18415		
18416		
18417		
18418	
18419		
18420		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1530222/600x450.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1530222/400x300.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1530222/600x450.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1530222/400x300.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1530222/400x300.jpg" width="400" height="300" loading='lazy' alt="Minisee" /></picture>
18421	
18422	
18423	
18424	</div>
18425
18426							
18427
18428						
18429						
18430						
18431
18432						
18433
18434						
18435
18436						
18437
18438
18439					
18440					</div>
18441					
18442				
18443					
18444
18445
18446
18447
18448
18449					
18450
18451					<div class="metateaser-content">
18452
18453						<div class="metateaser-content-text">
18454							
18455							
18456
18457							
18458							
18459
18460							
18461
18462							
18463							
18464
18465							
18466							
18467							
18468							
18469							
18470							
18471							
18472
18473							<div class="default_font teaser-name clamp clamp1" >Kindergeburtstag</div>
18474
18475
18476							
18477
18478
18479							
18480
18481							
18482							
18483							
18484
18485							
18486							
18487							
18488						</div>
18489
18490						
18491
18492						
18493
18494						
18495						
18496						
18497						
18498						
18499						
18500						
18501						
18502						
18503						
18504						
18505						
18506
18507						
18508						
18509
18510					</div>
18511					
18512
18513					
18514
18515				</a>
18516			
18517				
18518
18519				
18520
18521				
18522				
18523				
18524				
18525				
18526				
18527				
18528				
18529				
18530				
18531				
18532			
18533				
18534				
18535				
18536
18537				
18538				
18539				
18540				
18541				
18542				
18543				
18544				
18545				
18546				
18547
18548				
18549				
18550
18551				
18552
18553				
18554				
18555				
18556				
18557				
18558				
18559
18560				
18561				
18562
18563				
18564
18565				
18566
18567
18568				
18569				
18570				
18571				
18572
18573				
18574
18575				
18576				
18577				
18578
18579				
18580				
18581
18582
18583				
18584
18585				
18586				
18587
18588
18589				
18590				
18591				
18592				
18593			
18594				
18595				
18596				
18597
18598
18599				
18600
18601				
18602
18603
18604
18605
18606				
18607
18608
18609
18610			
18611						
18612					
18613					
18614
18615						
18616					
18617					
18618				
18619				
18620				
18621				
18622				
18623				
18624				
18625
18626				
18627
18628
18629				
18630
18631				
18632				<a class="element  clickable "  data-id='152363' href='/gruppen-schulen/gruppenangebot/'>
18633					
18634
18635
18636
18637
18638
18639					
18640					<div class="bild">
18641					
18642
18643						
18644
18645						
18646
18647
18648							
18649							   	
18650									
18651								
18652							
18653
18654							
18655
18656							<div class="meta-teaser-images" >
18657	
18658	
18659
18660	
18661
18662		
18663		
18664
18665		
18666
18667		
18668
18669		
18670
18671		
18672
18673		
18674		
18675
18676		
18677
18678		
18679		
18680		
18681		
18682		
18683	
18684		
18685		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1411225/600x450.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1411225/400x300.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1411225/600x450.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1411225/400x300.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1411225/400x300.jpg" width="400" height="300" loading='lazy' alt="Ein Spielplatz mit einem Holzboot steht auf einer Wiese. Die Landschaft zeigt Hügel und einen See im Hintergrund." /></picture>
18686	
18687	
18688	
18689	</div>
18690
18691							
18692
18693						
18694						
18695						
18696
18697						
18698
18699						
18700
18701						
18702
18703
18704					
18705					</div>
18706					
18707				
18708					
18709
18710
18711
18712
18713
18714					
18715
18716					<div class="metateaser-content">
18717
18718						<div class="metateaser-content-text">
18719							
18720							
18721
18722							
18723							
18724
18725							
18726
18727							
18728							
18729
18730							
18731							
18732							
18733							
18734							
18735							
18736							
18737
18738							<div class="default_font teaser-name clamp clamp1" >Gruppenangebot</div>
18739
18740
18741							
18742
18743
18744							
18745
18746							
18747							
18748							
18749
18750							
18751							
18752							
18753						</div>
18754
18755						
18756
18757						
18758
18759						
18760						
18761						
18762						
18763						
18764						
18765						
18766						
18767						
18768						
18769						
18770						
18771
18772						
18773						
18774
18775					</div>
18776					
18777
18778					
18779
18780				</a>
18781			
18782				
18783
18784				
18785
18786				
18787				
18788				
18789				
18790				
18791				
18792				
18793				
18794				
18795				
18796				
18797			
18798				
18799				
18800				
18801
18802				
18803				
18804				
18805				
18806				
18807				
18808				
18809				
18810				
18811				
18812
18813				
18814				
18815
18816				
18817
18818				
18819				
18820				
18821				
18822				
18823				
18824
18825				
18826				
18827
18828				
18829
18830				
18831
18832
18833				
18834				
18835				
18836				
18837
18838				
18839
18840				
18841				
18842				
18843
18844				
18845				
18846
18847
18848				
18849
18850				
18851				
18852
18853
18854				
18855				
18856				
18857				
18858			
18859				
18860				
18861				
18862
18863
18864				
18865
18866				
18867
18868
18869
18870
18871				
18872
18873
18874
18875			
18876						
18877					
18878					
18879
18880						
18881					
18882					
18883				
18884				
18885				
18886				
18887				
18888				
18889				
18890
18891				
18892
18893
18894				
18895
18896				
18897				<a class="element  clickable "  data-id='152357' href='/familienzeit/familienwandern/'>
18898					
18899
18900
18901
18902
18903
18904					
18905					<div class="bild">
18906					
18907
18908						
18909
18910						
18911
18912
18913							
18914							   	
18915									
18916								
18917							
18918
18919							
18920
18921							<div class="meta-teaser-images" >
18922	
18923	
18924
18925	
18926
18927		
18928		
18929
18930		
18931
18932		
18933
18934		
18935
18936		
18937
18938		
18939		
18940
18941		
18942
18943		
18944		
18945		
18946		
18947		
18948	
18949		
18950		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1515351/600x450.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1515351/400x300.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1515351/600x450.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1515351/400x300.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1515351/400x300.jpg" width="400" height="300" loading='lazy' alt="Wurzelrudi Bilderrahmen Blick auf Eibenstock" /></picture>
18951	
18952	
18953	
18954	</div>
18955
18956							
18957
18958						
18959						
18960						
18961
18962						
18963
18964						
18965
18966						
18967
18968
18969					
18970					</div>
18971					
18972				
18973					
18974
18975
18976
18977
18978
18979					
18980
18981					<div class="metateaser-content">
18982
18983						<div class="metateaser-content-text">
18984							
18985							
18986
18987							
18988							
18989
18990							
18991
18992							
18993							
18994
18995							
18996							
18997							
18998							
18999							
19000							
19001							
19002
19003							<div class="default_font teaser-name clamp clamp1" >Wandern in Familie</div>
19004
19005
19006							
19007
19008
19009							
19010
19011							
19012							
19013							
19014
19015							
19016							
19017							
19018						</div>
19019
19020						
19021
19022						
19023
19024						
19025						
19026						
19027						
19028						
19029						
19030						
19031						
19032						
19033						
19034						
19035						
19036
19037						
19038						
19039
19040					</div>
19041					
19042
19043					
19044
19045				</a>
19046			
19047				
19048
19049				
19050
19051				
19052				
19053				
19054				
19055				
19056				
19057				
19058				
19059				
19060				
19061				
19062			
19063				
19064				
19065				
19066
19067				
19068				
19069				
19070				
19071				
19072				
19073				
19074				
19075				
19076				
19077
19078				
19079				
19080
19081				
19082
19083				
19084				
19085				
19086				
19087				
19088				
19089
19090				
19091				
19092
19093				
19094
19095				
19096
19097
19098				
19099				
19100				
19101				
19102
19103				
19104
19105				
19106				
19107				
19108
19109				
19110				
19111
19112
19113				
19114
19115				
19116				
19117
19118
19119				
19120				
19121				
19122				
19123			
19124				
19125				
19126				
19127
19128
19129				
19130
19131				
19132
19133
19134
19135
19136				
19137
19138
19139
19140			
19141						
19142					
19143					
19144
19145						
19146					
19147					
19148				
19149				
19150				
19151				
19152				
19153				
19154				
19155
19156				
19157
19158
19159				
19160
19161				
19162				<a class="element  clickable "  data-id='154603' href='/familienzeit/familientreffen/'>
19163					
19164
19165
19166
19167
19168
19169					
19170					<div class="bild">
19171					
19172
19173						
19174
19175						
19176
19177
19178							
19179							   	
19180									
19181								
19182							
19183
19184							
19185
19186							<div class="meta-teaser-images" >
19187	
19188	
19189
19190	
19191
19192		
19193		
19194
19195		
19196
19197		
19198
19199		
19200
19201		
19202
19203		
19204		
19205
19206		
19207
19208		
19209		
19210		
19211		
19212		
19213	
19214		
19215		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/600.webp 1x" type="image/webp" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1514818/400.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/600.jpg 1x" type="image/jpeg" media="(min-width: 567px)"><source srcset="https://storage.tramino.net/wurzelrudi/1514818/400.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1514818/400.jpg" width="400" height="300" loading='lazy' alt="Wurzelrudi Fernrohr Schatzsuche" /></picture>
19216	
19217	
19218	
19219	</div>
19220
19221							
19222
19223						
19224						
19225						
19226
19227						
19228
19229						
19230
19231						
19232
19233
19234					
19235					</div>
19236					
19237				
19238					
19239
19240
19241
19242
19243
19244					
19245
19246					<div class="metateaser-content">
19247
19248						<div class="metateaser-content-text">
19249							
19250							
19251
19252							
19253							
19254
19255							
19256
19257							
19258							
19259
19260							
19261							
19262							
19263							
19264							
19265							
19266							
19267
19268							<div class="default_font teaser-name clamp clamp1" >Familientreffen</div>
19269
19270
19271							
19272
19273
19274							
19275
19276							
19277							
19278							
19279
19280							
19281							
19282							
19283						</div>
19284
19285						
19286
19287						
19288
19289						
19290						
19291						
19292						
19293						
19294						
19295						
19296						
19297						
19298						
19299						
19300						
19301
19302						
19303						
19304
19305					</div>
19306					
19307
19308					
19309
19310				</a>
19311			
19312				
19313
19314				
19315
19316				
19317				
19318				
19319				
19320				
19321				
19322				
19323				
19324				
19325
19326			
19327
19328		</div>
19329
19330		
19331
19332		
19333		
19334	</div>
19335
19336	<div style="display: none;">
19337						<div id="154715">
19338							<!-- MetaDetail -->
19339
19340
19341
19342
19343
19344
19345
19346
19347
19348
19349
19350
19351	
19352	
19353	
19354
19355
19356
19357
19358
19359
19360
19361
19362
19363
19364
19365
19366
19367
19368
19369
19370
19371
19372	
19373		
19374	
19375	
19376
19377
19378
19379
19380
19381
19382
19383 
19384
19385
19386
19387
19388
19389<div class="MetaDetail"
19390
19391	>
19392	
19393
19394	
19395	
19396	
19397	
19398	
19399
19400
19401	
19402
19403
19404
19405
19406
19407
19408	
19409
19410	
19411
19412		
19413			
19414			
19415			
19416			
19417
19418			
19419				
19420				
19421				
19422				
19423			
19424			
19425			
19426			
19427			
19428			
19429
19430			
19431			
19432				
19433
19434				
19435					
19436				
19437			
19438
19439			
19440
19441
19442			
19443			<div class="sheet-bilder slider-outer " data-count="1">
19444				
19445				<div class="slider-wrapper slider-elements">
19446					
19447
19448						
19449						
19450
19451						
19452							<div class="sheet-bild b1663145 slider-element ">
19453								
19454								
19455
19456
19457								<figure>
19458		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1663145/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1663145/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1663145/800x480.jpg" width="800" height="480" loading='lazy' alt="Wandern (3)" /></picture>
19459	<footer><small>&copy;&nbsp;Wurzelrudi</small></footer></figure>
19460								
19461								
19462							</div>
19463
19464						
19465					
19466						
19467					
19468					
19469				</div>
19470
19471				
19472					<div class="slider-arrows">
19473						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
19474						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
19475					</div>
19476				
19477
19478				
19479				
19480				
19481
19482
19483				
19484				
19485				
19486
19487				
19488
19489				
19490
19491				
19492
19493
19494				
19495
19496
19497				
19498
19499				
19500								
19501
19502			</div>
19503			
19504
19505		
19506		
19507
19508
19509
19510
19511
19512
19513
19514
19515	
19516
19517
19518		<div class="content">
19519
19520			
19521
19522			
19523			
19524
19525
19526			<div class="name">Öffnungszeit &amp; Preis</div>
19527			
19528
19529
19530			
19531
19532
19533
19534
19535
19536			
19537
19538			
19539			
19540
19541			
19542
19543			
19544
19545
19546			
19547			
19548			
19549
19550				
19551			
19552
19553
19554
19555
19556
19557			
19558
19559				
19560			
19561
19562
19563			
19564			
19565			
19566
19567			
19568			
19569			
19570				
19571				
19572				
19573				
19574			
19575			
19576
19577			
19578
19579
19580
19581			
19582
19583
19584			
19585
19586			
19587			
19588				
19589			
19590			
19591			
19592
19593			
19594			
19595
19596			
19597			
19598
19599				
19600			
19601
19602			
19603			
19604			
19605			
19606			
19607			
19608			
19609
19610			
19611
19612			
19613
19614			
19615
19616			
19617			
19618			
19619			
19620
19621			
19622			
19623
19624			
19625
19626			
19627
19628			
19629
19630			
19631			
19632
19633			
19634			
19635
19636			
19637			
19638
19639			
19640
19641
19642
19643
19644			
19645
19646
19647				
19648
19649				
19650
19651				
19652				
19653
19654
19655				
19656
19657
19658					
19659				
19660				
19661
19662
19663
19664				
19665				
19666				
19667				
19668				
19669				
19670				
19671
19672
19673
19674
19675
19676
19677
19678				
19679				
19680				
19681
19682				
19683
19684				
19685		
19686				
19687				
19688
19689				
19690
19691				
19692
19693				
19694				
19695				
19696
19697
19698		
19699
19700
19701				
19702
19703
19704
19705
19706
19707
19708				
19709
19710			
19711
19712				
19713
19714
19715				
19716				
19717				
19718				
19719			
19720				
19721				
19722				
19723				
19724					
19724<script>
19725
19726window.gmaps_init = false;
19727
19728var initMap = function(map) {
19729
19730	let $geodata_map = $(map);
19731	let geodata = $geodata_map.data('geodata');
19732
19733	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
19734	const safeFloat = (v, fb = 0) => {
19735		const n = parseFloat(v);
19736		return Number.isFinite(n) ? n : fb;
19737	};
19738	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
19739	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
19740	var center_lat = safeFloat(centerLatRaw, 0);
19741	var center_lng = safeFloat(centerLngRaw, 0);
19742
19743	//  Calculate Zoom Level
19744	var zoom = 8;
19745	if ( geodata.zoom > 0 ) {
19746		zoom = geodata.zoom;
19747	}
19748
19749	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
19750
19751	let MAP_BOUNDS = undefined;
19752	if ( geodata.bounds !== undefined ) {
19753		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
19754		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
19755		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
19756		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
19757		if ([east, north, south, west].every(Number.isFinite)) {
19758			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
19759		} else {
19760			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
19761		}
19762	}
19763
19764	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
19765		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
19766		zoom = zoom - 2;
19767	}
19768
19769	if ( zoom == "-Infinity" ) {
19770		if ( geodata.zoom > 0 ) {
19771			zoom = geodata.zoom;
19772		} else {
19773			zoom = 8;
19774		}
19775	}
19776
19777	// console.log("MAP_BOUNDS",MAP_BOUNDS);
19778
19779	
19780	
19781    var map = new google.maps.Map($geodata_map[0], {
19782		center: { lat: center_lat, lng: center_lng },
19783		disableDefaultUI: true,
19784		zoomControl: true,
19785		zoom: zoom,
19786		clickableIcons: false,	
19787		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
19788	});
19789	
19790
19791	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
19792
19793		var infowindow = new google.maps.InfoWindow();
19794		var marker, i;
19795
19796		var icon_obj;
19797		if ( $geodata_map.data('icon') ) {	
19798			icon_obj = {
19799				url: $geodata_map.data('icon'),
19800				size: new google.maps.Size(40, 40),
19801				scaledSize: new google.maps.Size(40, 40),
19802			};
19803		}
19804
19805		// Sanitize locations (avoid NaN -> pan/setCenter errors)
19806		const validLocations = [];
19807		for (let j = 0; j < geodata.locations.length; j++) {
19808			const lat = parseFloat(geodata.locations[j][1]);
19809			const lng = parseFloat(geodata.locations[j][2]);
19810			if (Number.isFinite(lat) && Number.isFinite(lng)) {
19811				validLocations.push([
19812					geodata.locations[j][0],
19813					lat,
19814					lng,
19815					geodata.locations[j][3],
19816					geodata.locations[j][4]
19817				]);
19818			} else {
19819				console.warn('Skipping invalid location', geodata.locations[j]);
19820			}
19821		}
19822
19823		for (i = 0; i < validLocations.length; i++) { 
19824
19825			marker = new google.maps.Marker({
19826				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
19827				icon: icon_obj, 
19828				scale: 0.5,
19829				map: map
19830			});
19831
19832			google.maps.event.addListener(marker, 'click', (function(marker, i) {
19833				return function() {
19834					if ( validLocations[i][0] ) {
19835						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
19836						if ( validLocations[i][3] ) {
19837							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
19838						} 
19839						$content += '</div>';
19840						
19841						infowindow.setContent($content);
19842						infowindow.open(map, marker);
19843					}
19844				}
19845			})(marker, i));
19846		}
19847
19848	}
19849
19850	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
19851
19852		// Need floats + filter invalid points
19853		const validPath = [];
19854		for (var i = 0; i < geodata.path.length; i++) {
19855			const lat = parseFloat(geodata.path[i]['lat']);
19856			const lng = parseFloat(geodata.path[i]['lng']);
19857			if (Number.isFinite(lat) && Number.isFinite(lng)) {
19858				validPath.push({ lat, lng });
19859			} else {
19860				console.warn('Skipping invalid path point', geodata.path[i]);
19861			}
19862		}
19863
19864		var path = new google.maps.Polyline({
19865			path: validPath,
19866			geodesic: true,
19867			strokeColor: '#FF0000',
19868			strokeOpacity: 1.0,
19869			strokeWeight: 3
19870		});
19871
19872		path.setMap(map);
19873
19874	}
19875
19876
19877	var userLat = parseFloat($geodata_map.data('userlat'));
19878	var userLng = parseFloat($geodata_map.data('userlng'));
19879
19880	if ( userLat > 0 && userLng > 0 ) {
19881
19882		var icon = {
19883			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
19884			fillColor: '#1181FA',
19885			fillOpacity: 1,
19886			strokeColor: '#ffffff',
19887   			strokeWeight: 4,
19888			anchor: new google.maps.Point(0,0),
19889			scale: 2
19890		}
19891
19892		var userlocation = new google.maps.Marker( { 
19893			position: { lat: userLat, lng: userLng }, 
19894			map: map,
19895			icon: icon
19896		});
19897	}
19898
19899	$geodata_map.addClass("init");
19900
19901}
19902
19903$('body').on('click', '.geodata-map:not(.init)', function() {
19904
19905	var divmap = this;
19906
19907	if ( gmaps_init === false ) {
19908		$(divmap).html($(divmap).data("loadinginfo"));
19909
19910		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
19911			.done(function( script, textStatus ) {
19912				console.log( textStatus );
19913				window.gmaps_init = true;
19914				setTimeout(function(){ initMap(divmap) },1000);
19915			})
19916			.fail(function( jqxhr, settings, exception ) {
19917				console.log( jqxhr, settings, exception  );
19918			});
19919		
19920	} else {
19921		initMap(divmap);
19922	}
19923
19924});
19925
19926
19927
19928	
19929
19930</script>
19930
19931
19932<style>
19933    .T5304.grid-stack-item-content {
19934        background: #fff !important;
19935    }
19936
19937    .geodata-map {
19938        margin: 1rem 0;
19939        aspect-ratio: 16/11;
19940        width:  100%;
19941    }
19942
19943    .geodata-map:not(.init) {
19944        display: flex;
19945        justify-content: center;
19946        align-items: center;
19947        background-color: #ddd;
19948        border-radius: 0.7rem;
19949        color:  #333;
19950    }
19951</style>
19952					
19953					
19954					
19955					
19956				
19957
19958
19959
19960			
19961
19962
19963
19964
19965
19966
19967
19968
19969
19970
19971
19972
19973
19974
19975			
19976			
19977			
19978			
19979			
19980			
19981			
19982
19983			
19984			
19985			
19986
19987			
19988			
19989
19990			
19991
19992			
19993
19994
19995			
19996
19997			
19998
19999			
20000
20001			
20002
20003
20004
20005
20006
20007
20008
20009			
20010
20011
20012			
20013
20014			
20015
20016		</div>
20017
20018		
20019
20020	
20021
20022	
20023
20024	
20025	
20026	
20027
20028</div>
20029
20030
20031
20032
20033
20034
20035
20036
20037
20038
20039
20040
20041
20042
20043
20044
20045
20046
20047<!-- /MetaDetail -->
20048						</div>
20049					
20050						<div id="151647">
20051							<!-- MetaDetail -->
20052
20053
20054
20055
20056
20057
20058
20059
20060
20061
20062
20063
20064	
20065	
20066	
20067
20068
20069
20070
20071
20072
20073
20074
20075
20076
20077
20078
20079
20080
20081
20082
20083
20084
20085	
20086		
20087	
20088	
20089
20090
20091
20092
20093
20094
20095
20096 
20097
20098
20099
20100
20101
20102<div class="MetaDetail"
20103
20104	>
20105	
20106
20107	
20108	
20109	
20110	
20111	
20112
20113
20114	
20115
20116
20117
20118
20119
20120
20121	
20122
20123	
20124
20125		
20126			
20127			
20128			
20129			
20130
20131			
20132				
20133				
20134				
20135				
20136			
20137			
20138			
20139			
20140			
20141			
20142
20143			
20144			
20145				
20146
20147				
20148					
20149				
20150			
20151
20152			
20153
20154
20155			
20156			<div class="sheet-bilder slider-outer " data-count="1">
20157				
20158				<div class="slider-wrapper slider-elements">
20159					
20160
20161						
20162						
20163
20164						
20165							<div class="sheet-bild b1689088 slider-element ">
20166								
20167								
20168
20169
20170								<figure>
20171		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1689088/800x480.webp?r=3 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1689088/800x480.jpg?r=3 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1689088/800x480.jpg?r=3" width="800" height="480" loading='lazy' alt="Sommer Plan" /></picture>
20172	</figure>
20173								
20174								
20175							</div>
20176
20177						
20178					
20179						
20180					
20181					
20182				</div>
20183
20184				
20185					<div class="slider-arrows">
20186						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
20187						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
20188					</div>
20189				
20190
20191				
20192				
20193				
20194
20195
20196				
20197				
20198				
20199
20200				
20201
20202				
20203
20204				
20205
20206
20207				
20208
20209
20210				
20211
20212				
20213								
20214
20215			</div>
20216			
20217
20218		
20219		
20220
20221
20222
20223
20224
20225
20226
20227
20228	
20229
20230
20231		<div class="content">
20232
20233			
20234
20235			
20236			
20237
20238
20239			<div class="name">Geländeplan</div>
20240			
20241
20242
20243			
20244
20245
20246
20247
20248
20249			
20250
20251			
20252			
20253
20254			
20255
20256			
20257
20258
20259			
20260			
20261			
20262
20263				
20264			
20265
20266
20267
20268
20269
20270			
20271
20272				
20273			
20274
20275
20276			
20277			
20278			
20279
20280			
20281			
20282			
20283				
20284				
20285				
20286				
20287			
20288			
20289
20290			
20291
20292
20293
20294			
20295
20296
20297			
20298
20299			
20300			
20301				
20302			
20303			
20304			
20305
20306			
20307			
20308
20309			
20310			
20311
20312				
20313			
20314
20315			
20316			
20317			
20318			
20319			
20320			
20321			
20322
20323			
20324
20325			
20326
20327			
20328
20329			
20330			
20331			
20332			
20333
20334			
20335			
20336
20337			
20338
20339			
20340
20341			
20342
20343			
20344			
20345
20346			
20347			
20348
20349			
20350			
20351
20352			
20353
20354
20355
20356
20357			
20358
20359
20360				
20361
20362				
20363
20364				
20365				
20366
20367
20368				
20369
20370
20371					
20372				
20373				
20374
20375
20376
20377				
20378				
20379				
20380				
20381				
20382				
20383				
20384
20385
20386
20387
20388
20389
20390
20391				
20392				
20393				
20394
20395				
20396
20397				
20398		
20399				
20400				
20401
20402				
20403
20404				
20405
20406				
20407				
20408				
20409
20410
20411		
20412
20413
20414				
20415
20416
20417
20418
20419
20420
20421				
20422
20423			
20424
20425				
20426
20427
20428				
20429				
20430				
20431				
20432			
20433				
20434				
20435				
20436				
20437					
20437<script>
20438
20439window.gmaps_init = false;
20440
20441var initMap = function(map) {
20442
20443	let $geodata_map = $(map);
20444	let geodata = $geodata_map.data('geodata');
20445
20446	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
20447	const safeFloat = (v, fb = 0) => {
20448		const n = parseFloat(v);
20449		return Number.isFinite(n) ? n : fb;
20450	};
20451	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
20452	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
20453	var center_lat = safeFloat(centerLatRaw, 0);
20454	var center_lng = safeFloat(centerLngRaw, 0);
20455
20456	//  Calculate Zoom Level
20457	var zoom = 8;
20458	if ( geodata.zoom > 0 ) {
20459		zoom = geodata.zoom;
20460	}
20461
20462	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
20463
20464	let MAP_BOUNDS = undefined;
20465	if ( geodata.bounds !== undefined ) {
20466		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
20467		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
20468		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
20469		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
20470		if ([east, north, south, west].every(Number.isFinite)) {
20471			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
20472		} else {
20473			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
20474		}
20475	}
20476
20477	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
20478		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
20479		zoom = zoom - 2;
20480	}
20481
20482	if ( zoom == "-Infinity" ) {
20483		if ( geodata.zoom > 0 ) {
20484			zoom = geodata.zoom;
20485		} else {
20486			zoom = 8;
20487		}
20488	}
20489
20490	// console.log("MAP_BOUNDS",MAP_BOUNDS);
20491
20492	
20493	
20494    var map = new google.maps.Map($geodata_map[0], {
20495		center: { lat: center_lat, lng: center_lng },
20496		disableDefaultUI: true,
20497		zoomControl: true,
20498		zoom: zoom,
20499		clickableIcons: false,	
20500		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
20501	});
20502	
20503
20504	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
20505
20506		var infowindow = new google.maps.InfoWindow();
20507		var marker, i;
20508
20509		var icon_obj;
20510		if ( $geodata_map.data('icon') ) {	
20511			icon_obj = {
20512				url: $geodata_map.data('icon'),
20513				size: new google.maps.Size(40, 40),
20514				scaledSize: new google.maps.Size(40, 40),
20515			};
20516		}
20517
20518		// Sanitize locations (avoid NaN -> pan/setCenter errors)
20519		const validLocations = [];
20520		for (let j = 0; j < geodata.locations.length; j++) {
20521			const lat = parseFloat(geodata.locations[j][1]);
20522			const lng = parseFloat(geodata.locations[j][2]);
20523			if (Number.isFinite(lat) && Number.isFinite(lng)) {
20524				validLocations.push([
20525					geodata.locations[j][0],
20526					lat,
20527					lng,
20528					geodata.locations[j][3],
20529					geodata.locations[j][4]
20530				]);
20531			} else {
20532				console.warn('Skipping invalid location', geodata.locations[j]);
20533			}
20534		}
20535
20536		for (i = 0; i < validLocations.length; i++) { 
20537
20538			marker = new google.maps.Marker({
20539				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
20540				icon: icon_obj, 
20541				scale: 0.5,
20542				map: map
20543			});
20544
20545			google.maps.event.addListener(marker, 'click', (function(marker, i) {
20546				return function() {
20547					if ( validLocations[i][0] ) {
20548						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
20549						if ( validLocations[i][3] ) {
20550							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
20551						} 
20552						$content += '</div>';
20553						
20554						infowindow.setContent($content);
20555						infowindow.open(map, marker);
20556					}
20557				}
20558			})(marker, i));
20559		}
20560
20561	}
20562
20563	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
20564
20565		// Need floats + filter invalid points
20566		const validPath = [];
20567		for (var i = 0; i < geodata.path.length; i++) {
20568			const lat = parseFloat(geodata.path[i]['lat']);
20569			const lng = parseFloat(geodata.path[i]['lng']);
20570			if (Number.isFinite(lat) && Number.isFinite(lng)) {
20571				validPath.push({ lat, lng });
20572			} else {
20573				console.warn('Skipping invalid path point', geodata.path[i]);
20574			}
20575		}
20576
20577		var path = new google.maps.Polyline({
20578			path: validPath,
20579			geodesic: true,
20580			strokeColor: '#FF0000',
20581			strokeOpacity: 1.0,
20582			strokeWeight: 3
20583		});
20584
20585		path.setMap(map);
20586
20587	}
20588
20589
20590	var userLat = parseFloat($geodata_map.data('userlat'));
20591	var userLng = parseFloat($geodata_map.data('userlng'));
20592
20593	if ( userLat > 0 && userLng > 0 ) {
20594
20595		var icon = {
20596			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
20597			fillColor: '#1181FA',
20598			fillOpacity: 1,
20599			strokeColor: '#ffffff',
20600   			strokeWeight: 4,
20601			anchor: new google.maps.Point(0,0),
20602			scale: 2
20603		}
20604
20605		var userlocation = new google.maps.Marker( { 
20606			position: { lat: userLat, lng: userLng }, 
20607			map: map,
20608			icon: icon
20609		});
20610	}
20611
20612	$geodata_map.addClass("init");
20613
20614}
20615
20616$('body').on('click', '.geodata-map:not(.init)', function() {
20617
20618	var divmap = this;
20619
20620	if ( gmaps_init === false ) {
20621		$(divmap).html($(divmap).data("loadinginfo"));
20622
20623		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
20624			.done(function( script, textStatus ) {
20625				console.log( textStatus );
20626				window.gmaps_init = true;
20627				setTimeout(function(){ initMap(divmap) },1000);
20628			})
20629			.fail(function( jqxhr, settings, exception ) {
20630				console.log( jqxhr, settings, exception  );
20631			});
20632		
20633	} else {
20634		initMap(divmap);
20635	}
20636
20637});
20638
20639
20640
20641	
20642
20643</script>
20643
20644
20645<style>
20646    .T5304.grid-stack-item-content {
20647        background: #fff !important;
20648    }
20649
20650    .geodata-map {
20651        margin: 1rem 0;
20652        aspect-ratio: 16/11;
20653        width:  100%;
20654    }
20655
20656    .geodata-map:not(.init) {
20657        display: flex;
20658        justify-content: center;
20659        align-items: center;
20660        background-color: #ddd;
20661        border-radius: 0.7rem;
20662        color:  #333;
20663    }
20664</style>
20665					
20666					
20667					
20668					
20669				
20670
20671
20672
20673			
20674
20675
20676
20677
20678
20679
20680
20681
20682
20683
20684
20685
20686
20687
20688			
20689			
20690			
20691			
20692			
20693			
20694			
20695
20696			
20697			
20698			
20699
20700			
20701			
20702
20703			
20704
20705			
20706
20707
20708			
20709
20710			
20711
20712			
20713
20714			
20715
20716
20717
20718
20719
20720
20721
20722			
20723
20724
20725			
20726
20727			
20728
20729		</div>
20730
20731		
20732
20733	
20734
20735	
20736
20737	
20738	
20739	
20740
20741</div>
20742
20743
20744
20745
20746
20747
20748
20749
20750
20751
20752
20753
20754
20755
20756
20757
20758
20759
20760<!-- /MetaDetail -->
20761						</div>
20762					
20763						<div id="152371">
20764							<!-- MetaDetail -->
20765
20766
20767
20768
20769
20770
20771
20772
20773
20774
20775
20776
20777	
20778	
20779	
20780
20781
20782
20783
20784
20785
20786
20787
20788
20789
20790
20791
20792
20793
20794
20795
20796
20797
20798	
20799		
20800	
20801	
20802
20803
20804
20805
20806
20807
20808
20809 
20810
20811
20812
20813
20814
20815<div class="MetaDetail"
20816
20817	>
20818	
20819
20820	
20821	
20822	
20823	
20824	
20825
20826
20827	
20828
20829
20830
20831
20832
20833
20834	
20835
20836	
20837
20838		
20839			
20840			
20841			
20842			
20843
20844			
20845				
20846				
20847				
20848				
20849			
20850			
20851			
20852			
20853			
20854			
20855
20856			
20857			
20858				
20859
20860				
20861					
20862				
20863			
20864
20865			
20866
20867
20868			
20869			<div class="sheet-bilder slider-outer " data-count="1">
20870				
20871				<div class="slider-wrapper slider-elements">
20872					
20873
20874						
20875						
20876
20877						
20878							<div class="sheet-bild b1662660 slider-element ">
20879								
20880								
20881
20882
20883								<figure>
20884		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1662660/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1662660/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1662660/800x480.jpg" width="800" height="480" loading='lazy' alt="TMGS2019 Thomas Schlorke (106)" /></picture>
20885	<footer><small>&copy;&nbsp;TMGS - Thomas Schlorke / Thomas Schlorke</small></footer></figure>
20886								
20887								
20888							</div>
20889
20890						
20891					
20892						
20893					
20894					
20895				</div>
20896
20897				
20898					<div class="slider-arrows">
20899						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
20900						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
20901					</div>
20902				
20903
20904				
20905				
20906				
20907
20908
20909				
20910				
20911				
20912
20913				
20914
20915				
20916
20917				
20918
20919
20920				
20921
20922
20923				
20924
20925				
20926								
20927
20928			</div>
20929			
20930
20931		
20932		
20933
20934
20935
20936
20937
20938
20939
20940
20941	
20942
20943
20944		<div class="content">
20945
20946			
20947
20948			
20949			
20950
20951
20952			<div class="name">Preis &Ticket</div>
20953			
20954
20955
20956			
20957
20958
20959
20960
20961
20962			
20963
20964			
20965			
20966
20967			
20968
20969			
20970
20971
20972			
20973			
20974			
20975
20976				
20977			
20978
20979
20980
20981
20982
20983			
20984
20985				
20986			
20987
20988
20989			
20990			
20991			
20992
20993			
20994			
20995			
20996				
20997				
20998				
20999				
21000			
21001			
21002
21003			
21004
21005
21006
21007			
21008
21009
21010			
21011
21012			
21013			
21014				
21015			
21016			
21017			
21018
21019			
21020			
21021
21022			
21023			
21024
21025				
21026			
21027
21028			
21029			
21030			
21031			
21032			
21033			
21034			
21035
21036			
21037
21038			
21039
21040			
21041
21042			
21043			
21044			
21045			
21046
21047			
21048			
21049
21050			
21051
21052			
21053
21054			
21055
21056			
21057			
21058
21059			
21060			
21061
21062			
21063			
21064
21065			
21066
21067
21068
21069
21070			
21071
21072
21073				
21074
21075				
21076
21077				
21078				
21079
21080
21081				
21082
21083
21084					
21085				
21086				
21087
21088
21089
21090				
21091				
21092				
21093				
21094				
21095				
21096				
21097
21098
21099
21100
21101
21102
21103
21104				
21105				
21106				
21107
21108				
21109
21110				
21111		
21112				
21113				
21114
21115				
21116
21117				
21118
21119				
21120				
21121				
21122
21123
21124		
21125
21126
21127				
21128
21129
21130
21131
21132
21133
21134				
21135
21136			
21137
21138				
21139
21140
21141				
21142				
21143				
21144				
21145			
21146				
21147				
21148				
21149				
21150					
21150<script>
21151
21152window.gmaps_init = false;
21153
21154var initMap = function(map) {
21155
21156	let $geodata_map = $(map);
21157	let geodata = $geodata_map.data('geodata');
21158
21159	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
21160	const safeFloat = (v, fb = 0) => {
21161		const n = parseFloat(v);
21162		return Number.isFinite(n) ? n : fb;
21163	};
21164	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
21165	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
21166	var center_lat = safeFloat(centerLatRaw, 0);
21167	var center_lng = safeFloat(centerLngRaw, 0);
21168
21169	//  Calculate Zoom Level
21170	var zoom = 8;
21171	if ( geodata.zoom > 0 ) {
21172		zoom = geodata.zoom;
21173	}
21174
21175	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
21176
21177	let MAP_BOUNDS = undefined;
21178	if ( geodata.bounds !== undefined ) {
21179		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
21180		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
21181		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
21182		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
21183		if ([east, north, south, west].every(Number.isFinite)) {
21184			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
21185		} else {
21186			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
21187		}
21188	}
21189
21190	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
21191		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
21192		zoom = zoom - 2;
21193	}
21194
21195	if ( zoom == "-Infinity" ) {
21196		if ( geodata.zoom > 0 ) {
21197			zoom = geodata.zoom;
21198		} else {
21199			zoom = 8;
21200		}
21201	}
21202
21203	// console.log("MAP_BOUNDS",MAP_BOUNDS);
21204
21205	
21206	
21207    var map = new google.maps.Map($geodata_map[0], {
21208		center: { lat: center_lat, lng: center_lng },
21209		disableDefaultUI: true,
21210		zoomControl: true,
21211		zoom: zoom,
21212		clickableIcons: false,	
21213		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
21214	});
21215	
21216
21217	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
21218
21219		var infowindow = new google.maps.InfoWindow();
21220		var marker, i;
21221
21222		var icon_obj;
21223		if ( $geodata_map.data('icon') ) {	
21224			icon_obj = {
21225				url: $geodata_map.data('icon'),
21226				size: new google.maps.Size(40, 40),
21227				scaledSize: new google.maps.Size(40, 40),
21228			};
21229		}
21230
21231		// Sanitize locations (avoid NaN -> pan/setCenter errors)
21232		const validLocations = [];
21233		for (let j = 0; j < geodata.locations.length; j++) {
21234			const lat = parseFloat(geodata.locations[j][1]);
21235			const lng = parseFloat(geodata.locations[j][2]);
21236			if (Number.isFinite(lat) && Number.isFinite(lng)) {
21237				validLocations.push([
21238					geodata.locations[j][0],
21239					lat,
21240					lng,
21241					geodata.locations[j][3],
21242					geodata.locations[j][4]
21243				]);
21244			} else {
21245				console.warn('Skipping invalid location', geodata.locations[j]);
21246			}
21247		}
21248
21249		for (i = 0; i < validLocations.length; i++) { 
21250
21251			marker = new google.maps.Marker({
21252				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
21253				icon: icon_obj, 
21254				scale: 0.5,
21255				map: map
21256			});
21257
21258			google.maps.event.addListener(marker, 'click', (function(marker, i) {
21259				return function() {
21260					if ( validLocations[i][0] ) {
21261						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
21262						if ( validLocations[i][3] ) {
21263							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
21264						} 
21265						$content += '</div>';
21266						
21267						infowindow.setContent($content);
21268						infowindow.open(map, marker);
21269					}
21270				}
21271			})(marker, i));
21272		}
21273
21274	}
21275
21276	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
21277
21278		// Need floats + filter invalid points
21279		const validPath = [];
21280		for (var i = 0; i < geodata.path.length; i++) {
21281			const lat = parseFloat(geodata.path[i]['lat']);
21282			const lng = parseFloat(geodata.path[i]['lng']);
21283			if (Number.isFinite(lat) && Number.isFinite(lng)) {
21284				validPath.push({ lat, lng });
21285			} else {
21286				console.warn('Skipping invalid path point', geodata.path[i]);
21287			}
21288		}
21289
21290		var path = new google.maps.Polyline({
21291			path: validPath,
21292			geodesic: true,
21293			strokeColor: '#FF0000',
21294			strokeOpacity: 1.0,
21295			strokeWeight: 3
21296		});
21297
21298		path.setMap(map);
21299
21300	}
21301
21302
21303	var userLat = parseFloat($geodata_map.data('userlat'));
21304	var userLng = parseFloat($geodata_map.data('userlng'));
21305
21306	if ( userLat > 0 && userLng > 0 ) {
21307
21308		var icon = {
21309			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
21310			fillColor: '#1181FA',
21311			fillOpacity: 1,
21312			strokeColor: '#ffffff',
21313   			strokeWeight: 4,
21314			anchor: new google.maps.Point(0,0),
21315			scale: 2
21316		}
21317
21318		var userlocation = new google.maps.Marker( { 
21319			position: { lat: userLat, lng: userLng }, 
21320			map: map,
21321			icon: icon
21322		});
21323	}
21324
21325	$geodata_map.addClass("init");
21326
21327}
21328
21329$('body').on('click', '.geodata-map:not(.init)', function() {
21330
21331	var divmap = this;
21332
21333	if ( gmaps_init === false ) {
21334		$(divmap).html($(divmap).data("loadinginfo"));
21335
21336		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
21337			.done(function( script, textStatus ) {
21338				console.log( textStatus );
21339				window.gmaps_init = true;
21340				setTimeout(function(){ initMap(divmap) },1000);
21341			})
21342			.fail(function( jqxhr, settings, exception ) {
21343				console.log( jqxhr, settings, exception  );
21344			});
21345		
21346	} else {
21347		initMap(divmap);
21348	}
21349
21350});
21351
21352
21353
21354	
21355
21356</script>
21356
21357
21358<style>
21359    .T5304.grid-stack-item-content {
21360        background: #fff !important;
21361    }
21362
21363    .geodata-map {
21364        margin: 1rem 0;
21365        aspect-ratio: 16/11;
21366        width:  100%;
21367    }
21368
21369    .geodata-map:not(.init) {
21370        display: flex;
21371        justify-content: center;
21372        align-items: center;
21373        background-color: #ddd;
21374        border-radius: 0.7rem;
21375        color:  #333;
21376    }
21377</style>
21378					
21379					
21380					
21381					
21382				
21383
21384
21385
21386			
21387
21388
21389
21390
21391
21392
21393
21394
21395
21396
21397
21398
21399
21400
21401			
21402			
21403			
21404			
21405			
21406			
21407			
21408
21409			
21410			
21411			
21412
21413			
21414			
21415
21416			
21417
21418			
21419
21420
21421			
21422
21423			
21424
21425			
21426
21427			
21428
21429
21430
21431
21432
21433
21434
21435			
21436
21437
21438			
21439
21440			
21441
21442		</div>
21443
21444		
21445
21446	
21447
21448	
21449
21450	
21451	
21452	
21453
21454</div>
21455
21456
21457
21458
21459
21460
21461
21462
21463
21464
21465
21466
21467
21468
21469
21470
21471
21472
21473<!-- /MetaDetail -->
21474						</div>
21475					
21476						<div id="151599">
21477							<!-- MetaDetail -->
21478
21479
21480
21481
21482
21483
21484
21485
21486
21487
21488
21489
21490	
21491	
21492	
21493
21494
21495
21496
21497
21498
21499
21500
21501
21502
21503
21504
21505
21506
21507
21508
21509
21510
21511	
21512		
21513	
21514	
21515
21516
21517
21518
21519
21520
21521
21522 
21523
21524
21525
21526
21527
21528<div class="MetaDetail"
21529
21530	>
21531	
21532
21533	
21534	
21535	
21536	
21537	
21538
21539
21540	
21541
21542
21543
21544
21545
21546
21547	
21548
21549	
21550
21551		
21552			
21553			
21554			
21555			
21556
21557			
21558				
21559				
21560				
21561				
21562			
21563			
21564			
21565			
21566			
21567			
21568
21569			
21570			
21571				
21572
21573				
21574					
21575				
21576			
21577
21578			
21579
21580
21581			
21582			<div class="sheet-bilder slider-outer " data-count="1">
21583				
21584				<div class="slider-wrapper slider-elements">
21585					
21586
21587						
21588						
21589
21590						
21591							<div class="sheet-bild b1627138 slider-element ">
21592								
21593								
21594
21595
21596								<figure>
21597		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1627138/besucher-geniessen-einen-tag-waldrand-800x480.webp?r=1 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1627138/besucher-geniessen-einen-tag-waldrand-800x480.jpg?r=1 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1627138/besucher-geniessen-einen-tag-waldrand-800x480.jpg?r=1" width="800" height="480" loading='lazy' alt="Menschen sitzen an Tischen und genießen Essen und Trinken in der Nähe einer Hütte im Wald." /></picture>
21598	</figure>
21599								
21600								
21601							</div>
21602
21603						
21604					
21605						
21606					
21607					
21608				</div>
21609
21610				
21611					<div class="slider-arrows">
21612						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
21613						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
21614					</div>
21615				
21616
21617				
21618				
21619				
21620
21621
21622				
21623				
21624				
21625
21626				
21627
21628				
21629
21630				
21631
21632
21633				
21634
21635
21636				
21637
21638				
21639								
21640
21641			</div>
21642			
21643
21644		
21645		
21646
21647
21648
21649
21650
21651
21652
21653
21654	
21655
21656
21657		<div class="content">
21658
21659			
21660
21661			
21662			
21663
21664
21665			<div class="name">Essen &amp; Trinken</div>
21666			
21667
21668
21669			
21670
21671
21672
21673
21674
21675			
21676
21677			
21678			
21679
21680			
21681
21682			
21683
21684
21685			
21686			
21687			
21688
21689				
21690			
21691
21692
21693
21694
21695
21696			
21697
21698				
21699			
21700
21701
21702			
21703			
21704			
21705
21706			
21707			
21708			
21709				
21710				
21711				
21712				
21713			
21714			
21715
21716			
21717
21718
21719
21720			
21721
21722
21723			
21724
21725			
21726			
21727				
21728			
21729			
21730			
21731
21732			
21733			
21734
21735			
21736			
21737
21738				
21739			
21740
21741			
21742			
21743			
21744			
21745			
21746			
21747			
21748
21749			
21750
21751			
21752
21753			
21754
21755			
21756			
21757			
21758			
21759
21760			
21761			
21762
21763			
21764
21765			
21766
21767			
21768
21769			
21770			
21771
21772			
21773			
21774
21775			
21776			
21777
21778			
21779
21780
21781
21782
21783			
21784
21785
21786				
21787
21788				
21789
21790				
21791				
21792
21793
21794				
21795
21796
21797					
21798				
21799				
21800
21801
21802
21803				
21804				
21805				
21806				
21807				
21808				
21809				
21810
21811
21812
21813
21814
21815
21816
21817				
21818				
21819				
21820
21821				
21822
21823				
21824		
21825				
21826				
21827
21828				
21829
21830				
21831
21832				
21833				
21834				
21835
21836
21837		
21838
21839
21840				
21841
21842
21843
21844
21845
21846
21847				
21848
21849			
21850
21851				
21852
21853
21854				
21855				
21856				
21857				
21858			
21859				
21860				
21861				
21862				
21863					
21863<script>
21864
21865window.gmaps_init = false;
21866
21867var initMap = function(map) {
21868
21869	let $geodata_map = $(map);
21870	let geodata = $geodata_map.data('geodata');
21871
21872	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
21873	const safeFloat = (v, fb = 0) => {
21874		const n = parseFloat(v);
21875		return Number.isFinite(n) ? n : fb;
21876	};
21877	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
21878	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
21879	var center_lat = safeFloat(centerLatRaw, 0);
21880	var center_lng = safeFloat(centerLngRaw, 0);
21881
21882	//  Calculate Zoom Level
21883	var zoom = 8;
21884	if ( geodata.zoom > 0 ) {
21885		zoom = geodata.zoom;
21886	}
21887
21888	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
21889
21890	let MAP_BOUNDS = undefined;
21891	if ( geodata.bounds !== undefined ) {
21892		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
21893		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
21894		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
21895		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
21896		if ([east, north, south, west].every(Number.isFinite)) {
21897			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
21898		} else {
21899			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
21900		}
21901	}
21902
21903	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
21904		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
21905		zoom = zoom - 2;
21906	}
21907
21908	if ( zoom == "-Infinity" ) {
21909		if ( geodata.zoom > 0 ) {
21910			zoom = geodata.zoom;
21911		} else {
21912			zoom = 8;
21913		}
21914	}
21915
21916	// console.log("MAP_BOUNDS",MAP_BOUNDS);
21917
21918	
21919	
21920    var map = new google.maps.Map($geodata_map[0], {
21921		center: { lat: center_lat, lng: center_lng },
21922		disableDefaultUI: true,
21923		zoomControl: true,
21924		zoom: zoom,
21925		clickableIcons: false,	
21926		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
21927	});
21928	
21929
21930	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
21931
21932		var infowindow = new google.maps.InfoWindow();
21933		var marker, i;
21934
21935		var icon_obj;
21936		if ( $geodata_map.data('icon') ) {	
21937			icon_obj = {
21938				url: $geodata_map.data('icon'),
21939				size: new google.maps.Size(40, 40),
21940				scaledSize: new google.maps.Size(40, 40),
21941			};
21942		}
21943
21944		// Sanitize locations (avoid NaN -> pan/setCenter errors)
21945		const validLocations = [];
21946		for (let j = 0; j < geodata.locations.length; j++) {
21947			const lat = parseFloat(geodata.locations[j][1]);
21948			const lng = parseFloat(geodata.locations[j][2]);
21949			if (Number.isFinite(lat) && Number.isFinite(lng)) {
21950				validLocations.push([
21951					geodata.locations[j][0],
21952					lat,
21953					lng,
21954					geodata.locations[j][3],
21955					geodata.locations[j][4]
21956				]);
21957			} else {
21958				console.warn('Skipping invalid location', geodata.locations[j]);
21959			}
21960		}
21961
21962		for (i = 0; i < validLocations.length; i++) { 
21963
21964			marker = new google.maps.Marker({
21965				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
21966				icon: icon_obj, 
21967				scale: 0.5,
21968				map: map
21969			});
21970
21971			google.maps.event.addListener(marker, 'click', (function(marker, i) {
21972				return function() {
21973					if ( validLocations[i][0] ) {
21974						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
21975						if ( validLocations[i][3] ) {
21976							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
21977						} 
21978						$content += '</div>';
21979						
21980						infowindow.setContent($content);
21981						infowindow.open(map, marker);
21982					}
21983				}
21984			})(marker, i));
21985		}
21986
21987	}
21988
21989	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
21990
21991		// Need floats + filter invalid points
21992		const validPath = [];
21993		for (var i = 0; i < geodata.path.length; i++) {
21994			const lat = parseFloat(geodata.path[i]['lat']);
21995			const lng = parseFloat(geodata.path[i]['lng']);
21996			if (Number.isFinite(lat) && Number.isFinite(lng)) {
21997				validPath.push({ lat, lng });
21998			} else {
21999				console.warn('Skipping invalid path point', geodata.path[i]);
22000			}
22001		}
22002
22003		var path = new google.maps.Polyline({
22004			path: validPath,
22005			geodesic: true,
22006			strokeColor: '#FF0000',
22007			strokeOpacity: 1.0,
22008			strokeWeight: 3
22009		});
22010
22011		path.setMap(map);
22012
22013	}
22014
22015
22016	var userLat = parseFloat($geodata_map.data('userlat'));
22017	var userLng = parseFloat($geodata_map.data('userlng'));
22018
22019	if ( userLat > 0 && userLng > 0 ) {
22020
22021		var icon = {
22022			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
22023			fillColor: '#1181FA',
22024			fillOpacity: 1,
22025			strokeColor: '#ffffff',
22026   			strokeWeight: 4,
22027			anchor: new google.maps.Point(0,0),
22028			scale: 2
22029		}
22030
22031		var userlocation = new google.maps.Marker( { 
22032			position: { lat: userLat, lng: userLng }, 
22033			map: map,
22034			icon: icon
22035		});
22036	}
22037
22038	$geodata_map.addClass("init");
22039
22040}
22041
22042$('body').on('click', '.geodata-map:not(.init)', function() {
22043
22044	var divmap = this;
22045
22046	if ( gmaps_init === false ) {
22047		$(divmap).html($(divmap).data("loadinginfo"));
22048
22049		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
22050			.done(function( script, textStatus ) {
22051				console.log( textStatus );
22052				window.gmaps_init = true;
22053				setTimeout(function(){ initMap(divmap) },1000);
22054			})
22055			.fail(function( jqxhr, settings, exception ) {
22056				console.log( jqxhr, settings, exception  );
22057			});
22058		
22059	} else {
22060		initMap(divmap);
22061	}
22062
22063});
22064
22065
22066
22067	
22068
22069</script>
22069
22070
22071<style>
22072    .T5304.grid-stack-item-content {
22073        background: #fff !important;
22074    }
22075
22076    .geodata-map {
22077        margin: 1rem 0;
22078        aspect-ratio: 16/11;
22079        width:  100%;
22080    }
22081
22082    .geodata-map:not(.init) {
22083        display: flex;
22084        justify-content: center;
22085        align-items: center;
22086        background-color: #ddd;
22087        border-radius: 0.7rem;
22088        color:  #333;
22089    }
22090</style>
22091					
22092					
22093					
22094					
22095				
22096
22097
22098
22099			
22100
22101
22102
22103
22104
22105
22106
22107
22108
22109
22110
22111
22112
22113
22114			
22115			
22116			
22117			
22118			
22119			
22120			
22121
22122			
22123			
22124			
22125
22126			
22127			
22128
22129			
22130
22131			
22132
22133
22134			
22135
22136			
22137
22138			
22139
22140			
22141
22142
22143
22144
22145
22146
22147
22148			
22149
22150
22151			
22152
22153			
22154
22155		</div>
22156
22157		
22158
22159	
22160
22161	
22162
22163	
22164	
22165	
22166
22167</div>
22168
22169
22170
22171
22172
22173
22174
22175
22176
22177
22178
22179
22180
22181
22182
22183
22184
22185
22186<!-- /MetaDetail -->
22187						</div>
22188					
22189						<div id="151609">
22190							<!-- MetaDetail -->
22191
22192
22193
22194
22195
22196
22197
22198
22199
22200
22201
22202
22203	
22204	
22205	
22206
22207
22208
22209
22210
22211
22212
22213
22214
22215
22216
22217
22218
22219
22220
22221
22222
22223
22224	
22225		
22226	
22227	
22228
22229
22230
22231
22232
22233
22234
22235 
22236
22237
22238
22239
22240
22241<div class="MetaDetail"
22242
22243	>
22244	
22245
22246	
22247	
22248	
22249	
22250	
22251
22252
22253	
22254
22255
22256
22257
22258
22259
22260	
22261
22262	
22263
22264		
22265			
22266			
22267			
22268			
22269
22270			
22271				
22272				
22273				
22274				
22275			
22276			
22277			
22278			
22279			
22280			
22281
22282			
22283			
22284				
22285
22286				
22287					
22288				
22289			
22290
22291			
22292
22293
22294			
22295			<div class="sheet-bilder slider-outer " data-count="1">
22296				
22297				<div class="slider-wrapper slider-elements">
22298					
22299
22300						
22301						
22302
22303						
22304							<div class="sheet-bild b1514818 slider-element ">
22305								
22306								
22307
22308
22309								<figure>
22310		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1514818/800x480.jpg" width="800" height="480" loading='lazy' alt="Wurzelrudi Fernrohr Schatzsuche" /></picture>
22311	<footer><small>&copy;&nbsp;Wurzelrudi</small></footer></figure>
22312								
22313								
22314							</div>
22315
22316						
22317					
22318						
22319					
22320					
22321				</div>
22322
22323				
22324					<div class="slider-arrows">
22325						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
22326						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
22327					</div>
22328				
22329
22330				
22331				
22332				
22333
22334
22335				
22336				
22337				
22338
22339				
22340
22341				
22342
22343				
22344
22345
22346				
22347
22348
22349				
22350
22351				
22352								
22353
22354			</div>
22355			
22356
22357		
22358		
22359
22360
22361
22362
22363
22364
22365
22366
22367	
22368
22369
22370		<div class="content">
22371
22372			
22373
22374			
22375			
22376
22377
22378			<div class="name">Schatzsuche</div>
22379			
22380
22381
22382			
22383
22384
22385
22386
22387
22388			
22389
22390			
22391			
22392
22393			
22394
22395			
22396
22397
22398			
22399			
22400			
22401
22402				
22403			
22404
22405
22406
22407
22408
22409			
22410
22411				
22412			
22413
22414
22415			
22416			
22417			
22418
22419			
22420			
22421			
22422				
22423				
22424				
22425				
22426			
22427			
22428
22429			
22430
22431
22432
22433			
22434
22435
22436			
22437
22438			
22439			
22440				
22441			
22442			
22443			
22444
22445			
22446			
22447
22448			
22449			
22450
22451				
22452			
22453
22454			
22455			
22456			
22457			
22458			
22459			
22460			
22461
22462			
22463
22464			
22465
22466			
22467
22468			
22469			
22470			
22471			
22472
22473			
22474			
22475
22476			
22477
22478			
22479
22480			
22481
22482			
22483			
22484
22485			
22486			
22487
22488			
22489			
22490
22491			
22492
22493
22494
22495
22496			
22497
22498
22499				
22500
22501				
22502
22503				
22504				
22505
22506
22507				
22508
22509
22510					
22511				
22512				
22513
22514
22515
22516				
22517				
22518				
22519				
22520				
22521				
22522				
22523
22524
22525
22526
22527
22528
22529
22530				
22531				
22532				
22533
22534				
22535
22536				
22537		
22538				
22539				
22540
22541				
22542
22543				
22544
22545				
22546				
22547				
22548
22549
22550		
22551
22552
22553				
22554
22555
22556
22557
22558
22559
22560				
22561
22562			
22563
22564				
22565
22566
22567				
22568				
22569				
22570				
22571			
22572				
22573				
22574				
22575				
22576					
22576<script>
22577
22578window.gmaps_init = false;
22579
22580var initMap = function(map) {
22581
22582	let $geodata_map = $(map);
22583	let geodata = $geodata_map.data('geodata');
22584
22585	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
22586	const safeFloat = (v, fb = 0) => {
22587		const n = parseFloat(v);
22588		return Number.isFinite(n) ? n : fb;
22589	};
22590	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
22591	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
22592	var center_lat = safeFloat(centerLatRaw, 0);
22593	var center_lng = safeFloat(centerLngRaw, 0);
22594
22595	//  Calculate Zoom Level
22596	var zoom = 8;
22597	if ( geodata.zoom > 0 ) {
22598		zoom = geodata.zoom;
22599	}
22600
22601	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
22602
22603	let MAP_BOUNDS = undefined;
22604	if ( geodata.bounds !== undefined ) {
22605		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
22606		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
22607		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
22608		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
22609		if ([east, north, south, west].every(Number.isFinite)) {
22610			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
22611		} else {
22612			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
22613		}
22614	}
22615
22616	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
22617		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
22618		zoom = zoom - 2;
22619	}
22620
22621	if ( zoom == "-Infinity" ) {
22622		if ( geodata.zoom > 0 ) {
22623			zoom = geodata.zoom;
22624		} else {
22625			zoom = 8;
22626		}
22627	}
22628
22629	// console.log("MAP_BOUNDS",MAP_BOUNDS);
22630
22631	
22632	
22633    var map = new google.maps.Map($geodata_map[0], {
22634		center: { lat: center_lat, lng: center_lng },
22635		disableDefaultUI: true,
22636		zoomControl: true,
22637		zoom: zoom,
22638		clickableIcons: false,	
22639		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
22640	});
22641	
22642
22643	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
22644
22645		var infowindow = new google.maps.InfoWindow();
22646		var marker, i;
22647
22648		var icon_obj;
22649		if ( $geodata_map.data('icon') ) {	
22650			icon_obj = {
22651				url: $geodata_map.data('icon'),
22652				size: new google.maps.Size(40, 40),
22653				scaledSize: new google.maps.Size(40, 40),
22654			};
22655		}
22656
22657		// Sanitize locations (avoid NaN -> pan/setCenter errors)
22658		const validLocations = [];
22659		for (let j = 0; j < geodata.locations.length; j++) {
22660			const lat = parseFloat(geodata.locations[j][1]);
22661			const lng = parseFloat(geodata.locations[j][2]);
22662			if (Number.isFinite(lat) && Number.isFinite(lng)) {
22663				validLocations.push([
22664					geodata.locations[j][0],
22665					lat,
22666					lng,
22667					geodata.locations[j][3],
22668					geodata.locations[j][4]
22669				]);
22670			} else {
22671				console.warn('Skipping invalid location', geodata.locations[j]);
22672			}
22673		}
22674
22675		for (i = 0; i < validLocations.length; i++) { 
22676
22677			marker = new google.maps.Marker({
22678				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
22679				icon: icon_obj, 
22680				scale: 0.5,
22681				map: map
22682			});
22683
22684			google.maps.event.addListener(marker, 'click', (function(marker, i) {
22685				return function() {
22686					if ( validLocations[i][0] ) {
22687						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
22688						if ( validLocations[i][3] ) {
22689							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
22690						} 
22691						$content += '</div>';
22692						
22693						infowindow.setContent($content);
22694						infowindow.open(map, marker);
22695					}
22696				}
22697			})(marker, i));
22698		}
22699
22700	}
22701
22702	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
22703
22704		// Need floats + filter invalid points
22705		const validPath = [];
22706		for (var i = 0; i < geodata.path.length; i++) {
22707			const lat = parseFloat(geodata.path[i]['lat']);
22708			const lng = parseFloat(geodata.path[i]['lng']);
22709			if (Number.isFinite(lat) && Number.isFinite(lng)) {
22710				validPath.push({ lat, lng });
22711			} else {
22712				console.warn('Skipping invalid path point', geodata.path[i]);
22713			}
22714		}
22715
22716		var path = new google.maps.Polyline({
22717			path: validPath,
22718			geodesic: true,
22719			strokeColor: '#FF0000',
22720			strokeOpacity: 1.0,
22721			strokeWeight: 3
22722		});
22723
22724		path.setMap(map);
22725
22726	}
22727
22728
22729	var userLat = parseFloat($geodata_map.data('userlat'));
22730	var userLng = parseFloat($geodata_map.data('userlng'));
22731
22732	if ( userLat > 0 && userLng > 0 ) {
22733
22734		var icon = {
22735			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
22736			fillColor: '#1181FA',
22737			fillOpacity: 1,
22738			strokeColor: '#ffffff',
22739   			strokeWeight: 4,
22740			anchor: new google.maps.Point(0,0),
22741			scale: 2
22742		}
22743
22744		var userlocation = new google.maps.Marker( { 
22745			position: { lat: userLat, lng: userLng }, 
22746			map: map,
22747			icon: icon
22748		});
22749	}
22750
22751	$geodata_map.addClass("init");
22752
22753}
22754
22755$('body').on('click', '.geodata-map:not(.init)', function() {
22756
22757	var divmap = this;
22758
22759	if ( gmaps_init === false ) {
22760		$(divmap).html($(divmap).data("loadinginfo"));
22761
22762		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
22763			.done(function( script, textStatus ) {
22764				console.log( textStatus );
22765				window.gmaps_init = true;
22766				setTimeout(function(){ initMap(divmap) },1000);
22767			})
22768			.fail(function( jqxhr, settings, exception ) {
22769				console.log( jqxhr, settings, exception  );
22770			});
22771		
22772	} else {
22773		initMap(divmap);
22774	}
22775
22776});
22777
22778
22779
22780	
22781
22782</script>
22782
22783
22784<style>
22785    .T5304.grid-stack-item-content {
22786        background: #fff !important;
22787    }
22788
22789    .geodata-map {
22790        margin: 1rem 0;
22791        aspect-ratio: 16/11;
22792        width:  100%;
22793    }
22794
22795    .geodata-map:not(.init) {
22796        display: flex;
22797        justify-content: center;
22798        align-items: center;
22799        background-color: #ddd;
22800        border-radius: 0.7rem;
22801        color:  #333;
22802    }
22803</style>
22804					
22805					
22806					
22807					
22808				
22809
22810
22811
22812			
22813
22814
22815
22816
22817
22818
22819
22820
22821
22822
22823
22824
22825
22826
22827			
22828			
22829			
22830			
22831			
22832			
22833			
22834
22835			
22836			
22837			
22838
22839			
22840			
22841
22842			
22843
22844			
22845
22846
22847			
22848
22849			
22850
22851			
22852
22853			
22854
22855
22856
22857
22858
22859
22860
22861			
22862
22863
22864			
22865
22866			
22867
22868		</div>
22869
22870		
22871
22872	
22873
22874	
22875
22876	
22877	
22878	
22879
22880</div>
22881
22882
22883
22884
22885
22886
22887
22888
22889
22890
22891
22892
22893
22894
22895
22896
22897
22898
22899<!-- /MetaDetail -->
22900						</div>
22901					
22902						<div id="152359">
22903							<!-- MetaDetail -->
22904
22905
22906
22907
22908
22909
22910
22911
22912
22913
22914
22915
22916	
22917	
22918	
22919
22920
22921
22922
22923
22924
22925
22926
22927
22928
22929
22930
22931
22932
22933
22934
22935
22936
22937	
22938		
22939	
22940	
22941
22942
22943
22944
22945
22946
22947
22948 
22949
22950
22951
22952
22953
22954<div class="MetaDetail"
22955
22956	>
22957	
22958
22959	
22960	
22961	
22962	
22963	
22964
22965
22966	
22967
22968
22969
22970
22971
22972
22973	
22974
22975	
22976
22977		
22978			
22979			
22980			
22981			
22982
22983			
22984				
22985				
22986				
22987				
22988			
22989			
22990			
22991			
22992			
22993			
22994
22995			
22996			
22997				
22998
22999				
23000					
23001				
23002			
23003
23004			
23005
23006
23007			
23008			<div class="sheet-bilder slider-outer " data-count="1">
23009				
23010				<div class="slider-wrapper slider-elements">
23011					
23012
23013						
23014						
23015
23016						
23017							<div class="sheet-bild b1530222 slider-element ">
23018								
23019								
23020
23021
23022								<figure>
23023		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1530222/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1530222/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1530222/800x480.jpg" width="800" height="480" loading='lazy' alt="Minisee" /></picture>
23024	<footer><small>&copy;&nbsp;JU Photography / Justus Uhlmann</small></footer></figure>
23025								
23026								
23027							</div>
23028
23029						
23030					
23031						
23032					
23033					
23034				</div>
23035
23036				
23037					<div class="slider-arrows">
23038						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
23039						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
23040					</div>
23041				
23042
23043				
23044				
23045				
23046
23047
23048				
23049				
23050				
23051
23052				
23053
23054				
23055
23056				
23057
23058
23059				
23060
23061
23062				
23063
23064				
23065								
23066
23067			</div>
23068			
23069
23070		
23071		
23072
23073
23074
23075
23076
23077
23078
23079
23080	
23081
23082
23083		<div class="content">
23084
23085			
23086
23087			
23088			
23089
23090
23091			<div class="name">Kindergeburtstag</div>
23092			
23093
23094
23095			
23096
23097
23098
23099
23100
23101			
23102
23103			
23104			
23105
23106			
23107
23108			
23109
23110
23111			
23112			
23113			
23114
23115				
23116			
23117
23118
23119
23120
23121
23122			
23123
23124				
23125			
23126
23127
23128			
23129			
23130			
23131
23132			
23133			
23134			
23135				
23136				
23137				
23138				
23139			
23140			
23141
23142			
23143
23144
23145
23146			
23147
23148
23149			
23150
23151			
23152			
23153				
23154			
23155			
23156			
23157
23158			
23159			
23160
23161			
23162			
23163
23164				
23165			
23166
23167			
23168			
23169			
23170			
23171			
23172			
23173			
23174
23175			
23176
23177			
23178
23179			
23180
23181			
23182			
23183			
23184			
23185
23186			
23187			
23188
23189			
23190
23191			
23192
23193			
23194
23195			
23196			
23197
23198			
23199			
23200
23201			
23202			
23203
23204			
23205
23206
23207
23208
23209			
23210
23211
23212				
23213
23214				
23215
23216				
23217				
23218
23219
23220				
23221
23222
23223					
23224				
23225				
23226
23227
23228
23229				
23230				
23231				
23232				
23233				
23234				
23235				
23236
23237
23238
23239
23240
23241
23242
23243				
23244				
23245				
23246
23247				
23248
23249				
23250		
23251				
23252				
23253
23254				
23255
23256				
23257
23258				
23259				
23260				
23261
23262
23263		
23264
23265
23266				
23267
23268
23269
23270
23271
23272
23273				
23274
23275			
23276
23277				
23278
23279
23280				
23281				
23282				
23283				
23284			
23285				
23286				
23287				
23288				
23289					
23289<script>
23290
23291window.gmaps_init = false;
23292
23293var initMap = function(map) {
23294
23295	let $geodata_map = $(map);
23296	let geodata = $geodata_map.data('geodata');
23297
23298	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
23299	const safeFloat = (v, fb = 0) => {
23300		const n = parseFloat(v);
23301		return Number.isFinite(n) ? n : fb;
23302	};
23303	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
23304	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
23305	var center_lat = safeFloat(centerLatRaw, 0);
23306	var center_lng = safeFloat(centerLngRaw, 0);
23307
23308	//  Calculate Zoom Level
23309	var zoom = 8;
23310	if ( geodata.zoom > 0 ) {
23311		zoom = geodata.zoom;
23312	}
23313
23314	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
23315
23316	let MAP_BOUNDS = undefined;
23317	if ( geodata.bounds !== undefined ) {
23318		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
23319		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
23320		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
23321		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
23322		if ([east, north, south, west].every(Number.isFinite)) {
23323			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
23324		} else {
23325			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
23326		}
23327	}
23328
23329	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
23330		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
23331		zoom = zoom - 2;
23332	}
23333
23334	if ( zoom == "-Infinity" ) {
23335		if ( geodata.zoom > 0 ) {
23336			zoom = geodata.zoom;
23337		} else {
23338			zoom = 8;
23339		}
23340	}
23341
23342	// console.log("MAP_BOUNDS",MAP_BOUNDS);
23343
23344	
23345	
23346    var map = new google.maps.Map($geodata_map[0], {
23347		center: { lat: center_lat, lng: center_lng },
23348		disableDefaultUI: true,
23349		zoomControl: true,
23350		zoom: zoom,
23351		clickableIcons: false,	
23352		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
23353	});
23354	
23355
23356	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
23357
23358		var infowindow = new google.maps.InfoWindow();
23359		var marker, i;
23360
23361		var icon_obj;
23362		if ( $geodata_map.data('icon') ) {	
23363			icon_obj = {
23364				url: $geodata_map.data('icon'),
23365				size: new google.maps.Size(40, 40),
23366				scaledSize: new google.maps.Size(40, 40),
23367			};
23368		}
23369
23370		// Sanitize locations (avoid NaN -> pan/setCenter errors)
23371		const validLocations = [];
23372		for (let j = 0; j < geodata.locations.length; j++) {
23373			const lat = parseFloat(geodata.locations[j][1]);
23374			const lng = parseFloat(geodata.locations[j][2]);
23375			if (Number.isFinite(lat) && Number.isFinite(lng)) {
23376				validLocations.push([
23377					geodata.locations[j][0],
23378					lat,
23379					lng,
23380					geodata.locations[j][3],
23381					geodata.locations[j][4]
23382				]);
23383			} else {
23384				console.warn('Skipping invalid location', geodata.locations[j]);
23385			}
23386		}
23387
23388		for (i = 0; i < validLocations.length; i++) { 
23389
23390			marker = new google.maps.Marker({
23391				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
23392				icon: icon_obj, 
23393				scale: 0.5,
23394				map: map
23395			});
23396
23397			google.maps.event.addListener(marker, 'click', (function(marker, i) {
23398				return function() {
23399					if ( validLocations[i][0] ) {
23400						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
23401						if ( validLocations[i][3] ) {
23402							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
23403						} 
23404						$content += '</div>';
23405						
23406						infowindow.setContent($content);
23407						infowindow.open(map, marker);
23408					}
23409				}
23410			})(marker, i));
23411		}
23412
23413	}
23414
23415	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
23416
23417		// Need floats + filter invalid points
23418		const validPath = [];
23419		for (var i = 0; i < geodata.path.length; i++) {
23420			const lat = parseFloat(geodata.path[i]['lat']);
23421			const lng = parseFloat(geodata.path[i]['lng']);
23422			if (Number.isFinite(lat) && Number.isFinite(lng)) {
23423				validPath.push({ lat, lng });
23424			} else {
23425				console.warn('Skipping invalid path point', geodata.path[i]);
23426			}
23427		}
23428
23429		var path = new google.maps.Polyline({
23430			path: validPath,
23431			geodesic: true,
23432			strokeColor: '#FF0000',
23433			strokeOpacity: 1.0,
23434			strokeWeight: 3
23435		});
23436
23437		path.setMap(map);
23438
23439	}
23440
23441
23442	var userLat = parseFloat($geodata_map.data('userlat'));
23443	var userLng = parseFloat($geodata_map.data('userlng'));
23444
23445	if ( userLat > 0 && userLng > 0 ) {
23446
23447		var icon = {
23448			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
23449			fillColor: '#1181FA',
23450			fillOpacity: 1,
23451			strokeColor: '#ffffff',
23452   			strokeWeight: 4,
23453			anchor: new google.maps.Point(0,0),
23454			scale: 2
23455		}
23456
23457		var userlocation = new google.maps.Marker( { 
23458			position: { lat: userLat, lng: userLng }, 
23459			map: map,
23460			icon: icon
23461		});
23462	}
23463
23464	$geodata_map.addClass("init");
23465
23466}
23467
23468$('body').on('click', '.geodata-map:not(.init)', function() {
23469
23470	var divmap = this;
23471
23472	if ( gmaps_init === false ) {
23473		$(divmap).html($(divmap).data("loadinginfo"));
23474
23475		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
23476			.done(function( script, textStatus ) {
23477				console.log( textStatus );
23478				window.gmaps_init = true;
23479				setTimeout(function(){ initMap(divmap) },1000);
23480			})
23481			.fail(function( jqxhr, settings, exception ) {
23482				console.log( jqxhr, settings, exception  );
23483			});
23484		
23485	} else {
23486		initMap(divmap);
23487	}
23488
23489});
23490
23491
23492
23493	
23494
23495</script>
23495
23496
23497<style>
23498    .T5304.grid-stack-item-content {
23499        background: #fff !important;
23500    }
23501
23502    .geodata-map {
23503        margin: 1rem 0;
23504        aspect-ratio: 16/11;
23505        width:  100%;
23506    }
23507
23508    .geodata-map:not(.init) {
23509        display: flex;
23510        justify-content: center;
23511        align-items: center;
23512        background-color: #ddd;
23513        border-radius: 0.7rem;
23514        color:  #333;
23515    }
23516</style>
23517					
23518					
23519					
23520					
23521				
23522
23523
23524
23525			
23526
23527
23528
23529
23530
23531
23532
23533
23534
23535
23536
23537
23538
23539
23540			
23541			
23542			
23543			
23544			
23545			
23546			
23547
23548			
23549			
23550			
23551
23552			
23553			
23554
23555			
23556
23557			
23558
23559
23560			
23561
23562			
23563
23564			
23565
23566			
23567
23568
23569
23570
23571
23572
23573
23574			
23575
23576
23577			
23578
23579			
23580
23581		</div>
23582
23583		
23584
23585	
23586
23587	
23588
23589	
23590	
23591	
23592
23593</div>
23594
23595
23596
23597
23598
23599
23600
23601
23602
23603
23604
23605
23606
23607
23608
23609
23610
23611
23612<!-- /MetaDetail -->
23613						</div>
23614					
23615						<div id="152363">
23616							<!-- MetaDetail -->
23617
23618
23619
23620
23621
23622
23623
23624
23625
23626
23627
23628
23629	
23630	
23631	
23632
23633
23634
23635
23636
23637
23638
23639
23640
23641
23642
23643
23644
23645
23646
23647
23648
23649
23650	
23651		
23652	
23653	
23654
23655
23656
23657
23658
23659
23660
23661 
23662
23663
23664
23665
23666
23667<div class="MetaDetail"
23668
23669	>
23670	
23671
23672	
23673	
23674	
23675	
23676	
23677
23678
23679	
23680
23681
23682
23683
23684
23685
23686	
23687
23688	
23689
23690		
23691			
23692			
23693			
23694			
23695
23696			
23697				
23698				
23699				
23700				
23701			
23702			
23703			
23704			
23705			
23706			
23707
23708			
23709			
23710				
23711
23712				
23713					
23714				
23715			
23716
23717			
23718
23719
23720			
23721			<div class="sheet-bilder slider-outer " data-count="1">
23722				
23723				<div class="slider-wrapper slider-elements">
23724					
23725
23726						
23727						
23728
23729						
23730							<div class="sheet-bild b1411225 slider-element ">
23731								
23732								
23733
23734
23735								<figure>
23736		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1411225/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1411225/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1411225/800x480.jpg" width="800" height="480" loading='lazy' alt="Ein Spielplatz mit einem Holzboot steht auf einer Wiese. Die Landschaft zeigt Hügel und einen See im Hintergrund." /></picture>
23737	</figure>
23738								
23739								
23740							</div>
23741
23742						
23743					
23744						
23745					
23746					
23747				</div>
23748
23749				
23750					<div class="slider-arrows">
23751						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
23752						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
23753					</div>
23754				
23755
23756				
23757				
23758				
23759
23760
23761				
23762				
23763				
23764
23765				
23766
23767				
23768
23769				
23770
23771
23772				
23773
23774
23775				
23776
23777				
23778								
23779
23780			</div>
23781			
23782
23783		
23784		
23785
23786
23787
23788
23789
23790
23791
23792
23793	
23794
23795
23796		<div class="content">
23797
23798			
23799
23800			
23801			
23802
23803
23804			<div class="name">Gruppenangebot</div>
23805			
23806
23807
23808			
23809
23810
23811
23812
23813
23814			
23815
23816			
23817			
23818
23819			
23820
23821			
23822
23823
23824			
23825			
23826			
23827
23828				
23829			
23830
23831
23832
23833
23834
23835			
23836
23837				
23838			
23839
23840
23841			
23842			
23843			
23844
23845			
23846			
23847			
23848				
23849				
23850				
23851				
23852			
23853			
23854
23855			
23856
23857
23858
23859			
23860
23861
23862			
23863
23864			
23865			
23866				
23867			
23868			
23869			
23870
23871			
23872			
23873
23874			
23875			
23876
23877				
23878			
23879
23880			
23881			
23882			
23883			
23884			
23885			
23886			
23887
23888			
23889
23890			
23891
23892			
23893
23894			
23895			
23896			
23897			
23898
23899			
23900			
23901
23902			
23903
23904			
23905
23906			
23907
23908			
23909			
23910
23911			
23912			
23913
23914			
23915			
23916
23917			
23918
23919
23920
23921
23922			
23923
23924
23925				
23926
23927				
23928
23929				
23930				
23931
23932
23933				
23934
23935
23936					
23937				
23938				
23939
23940
23941
23942				
23943				
23944				
23945				
23946				
23947				
23948				
23949
23950
23951
23952
23953
23954
23955
23956				
23957				
23958				
23959
23960				
23961
23962				
23963		
23964				
23965				
23966
23967				
23968
23969				
23970
23971				
23972				
23973				
23974
23975
23976		
23977
23978
23979				
23980
23981
23982
23983
23984
23985
23986				
23987
23988			
23989
23990				
23991
23992
23993				
23994				
23995				
23996				
23997			
23998				
23999				
24000				
24001				
24002					
24002<script>
24003
24004window.gmaps_init = false;
24005
24006var initMap = function(map) {
24007
24008	let $geodata_map = $(map);
24009	let geodata = $geodata_map.data('geodata');
24010
24011	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
24012	const safeFloat = (v, fb = 0) => {
24013		const n = parseFloat(v);
24014		return Number.isFinite(n) ? n : fb;
24015	};
24016	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
24017	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
24018	var center_lat = safeFloat(centerLatRaw, 0);
24019	var center_lng = safeFloat(centerLngRaw, 0);
24020
24021	//  Calculate Zoom Level
24022	var zoom = 8;
24023	if ( geodata.zoom > 0 ) {
24024		zoom = geodata.zoom;
24025	}
24026
24027	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
24028
24029	let MAP_BOUNDS = undefined;
24030	if ( geodata.bounds !== undefined ) {
24031		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
24032		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
24033		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
24034		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
24035		if ([east, north, south, west].every(Number.isFinite)) {
24036			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
24037		} else {
24038			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
24039		}
24040	}
24041
24042	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
24043		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
24044		zoom = zoom - 2;
24045	}
24046
24047	if ( zoom == "-Infinity" ) {
24048		if ( geodata.zoom > 0 ) {
24049			zoom = geodata.zoom;
24050		} else {
24051			zoom = 8;
24052		}
24053	}
24054
24055	// console.log("MAP_BOUNDS",MAP_BOUNDS);
24056
24057	
24058	
24059    var map = new google.maps.Map($geodata_map[0], {
24060		center: { lat: center_lat, lng: center_lng },
24061		disableDefaultUI: true,
24062		zoomControl: true,
24063		zoom: zoom,
24064		clickableIcons: false,	
24065		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
24066	});
24067	
24068
24069	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
24070
24071		var infowindow = new google.maps.InfoWindow();
24072		var marker, i;
24073
24074		var icon_obj;
24075		if ( $geodata_map.data('icon') ) {	
24076			icon_obj = {
24077				url: $geodata_map.data('icon'),
24078				size: new google.maps.Size(40, 40),
24079				scaledSize: new google.maps.Size(40, 40),
24080			};
24081		}
24082
24083		// Sanitize locations (avoid NaN -> pan/setCenter errors)
24084		const validLocations = [];
24085		for (let j = 0; j < geodata.locations.length; j++) {
24086			const lat = parseFloat(geodata.locations[j][1]);
24087			const lng = parseFloat(geodata.locations[j][2]);
24088			if (Number.isFinite(lat) && Number.isFinite(lng)) {
24089				validLocations.push([
24090					geodata.locations[j][0],
24091					lat,
24092					lng,
24093					geodata.locations[j][3],
24094					geodata.locations[j][4]
24095				]);
24096			} else {
24097				console.warn('Skipping invalid location', geodata.locations[j]);
24098			}
24099		}
24100
24101		for (i = 0; i < validLocations.length; i++) { 
24102
24103			marker = new google.maps.Marker({
24104				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
24105				icon: icon_obj, 
24106				scale: 0.5,
24107				map: map
24108			});
24109
24110			google.maps.event.addListener(marker, 'click', (function(marker, i) {
24111				return function() {
24112					if ( validLocations[i][0] ) {
24113						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
24114						if ( validLocations[i][3] ) {
24115							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
24116						} 
24117						$content += '</div>';
24118						
24119						infowindow.setContent($content);
24120						infowindow.open(map, marker);
24121					}
24122				}
24123			})(marker, i));
24124		}
24125
24126	}
24127
24128	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
24129
24130		// Need floats + filter invalid points
24131		const validPath = [];
24132		for (var i = 0; i < geodata.path.length; i++) {
24133			const lat = parseFloat(geodata.path[i]['lat']);
24134			const lng = parseFloat(geodata.path[i]['lng']);
24135			if (Number.isFinite(lat) && Number.isFinite(lng)) {
24136				validPath.push({ lat, lng });
24137			} else {
24138				console.warn('Skipping invalid path point', geodata.path[i]);
24139			}
24140		}
24141
24142		var path = new google.maps.Polyline({
24143			path: validPath,
24144			geodesic: true,
24145			strokeColor: '#FF0000',
24146			strokeOpacity: 1.0,
24147			strokeWeight: 3
24148		});
24149
24150		path.setMap(map);
24151
24152	}
24153
24154
24155	var userLat = parseFloat($geodata_map.data('userlat'));
24156	var userLng = parseFloat($geodata_map.data('userlng'));
24157
24158	if ( userLat > 0 && userLng > 0 ) {
24159
24160		var icon = {
24161			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
24162			fillColor: '#1181FA',
24163			fillOpacity: 1,
24164			strokeColor: '#ffffff',
24165   			strokeWeight: 4,
24166			anchor: new google.maps.Point(0,0),
24167			scale: 2
24168		}
24169
24170		var userlocation = new google.maps.Marker( { 
24171			position: { lat: userLat, lng: userLng }, 
24172			map: map,
24173			icon: icon
24174		});
24175	}
24176
24177	$geodata_map.addClass("init");
24178
24179}
24180
24181$('body').on('click', '.geodata-map:not(.init)', function() {
24182
24183	var divmap = this;
24184
24185	if ( gmaps_init === false ) {
24186		$(divmap).html($(divmap).data("loadinginfo"));
24187
24188		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
24189			.done(function( script, textStatus ) {
24190				console.log( textStatus );
24191				window.gmaps_init = true;
24192				setTimeout(function(){ initMap(divmap) },1000);
24193			})
24194			.fail(function( jqxhr, settings, exception ) {
24195				console.log( jqxhr, settings, exception  );
24196			});
24197		
24198	} else {
24199		initMap(divmap);
24200	}
24201
24202});
24203
24204
24205
24206	
24207
24208</script>
24208
24209
24210<style>
24211    .T5304.grid-stack-item-content {
24212        background: #fff !important;
24213    }
24214
24215    .geodata-map {
24216        margin: 1rem 0;
24217        aspect-ratio: 16/11;
24218        width:  100%;
24219    }
24220
24221    .geodata-map:not(.init) {
24222        display: flex;
24223        justify-content: center;
24224        align-items: center;
24225        background-color: #ddd;
24226        border-radius: 0.7rem;
24227        color:  #333;
24228    }
24229</style>
24230					
24231					
24232					
24233					
24234				
24235
24236
24237
24238			
24239
24240
24241
24242
24243
24244
24245
24246
24247
24248
24249
24250
24251
24252
24253			
24254			
24255			
24256			
24257			
24258			
24259			
24260
24261			
24262			
24263			
24264
24265			
24266			
24267
24268			
24269
24270			
24271
24272
24273			
24274
24275			
24276
24277			
24278
24279			
24280
24281
24282
24283
24284
24285
24286
24287			
24288
24289
24290			
24291
24292			
24293
24294		</div>
24295
24296		
24297
24298	
24299
24300	
24301
24302	
24303	
24304	
24305
24306</div>
24307
24308
24309
24310
24311
24312
24313
24314
24315
24316
24317
24318
24319
24320
24321
24322
24323
24324
24325<!-- /MetaDetail -->
24326						</div>
24327					
24328						<div id="152357">
24329							<!-- MetaDetail -->
24330
24331
24332
24333
24334
24335
24336
24337
24338
24339
24340
24341
24342	
24343	
24344	
24345
24346
24347
24348
24349
24350
24351
24352
24353
24354
24355
24356
24357
24358
24359
24360
24361
24362
24363	
24364		
24365	
24366	
24367
24368
24369
24370
24371
24372
24373
24374 
24375
24376
24377
24378
24379
24380<div class="MetaDetail"
24381
24382	>
24383	
24384
24385	
24386	
24387	
24388	
24389	
24390
24391
24392	
24393
24394
24395
24396
24397
24398
24399	
24400
24401	
24402
24403		
24404			
24405			
24406			
24407			
24408
24409			
24410				
24411				
24412				
24413				
24414			
24415			
24416			
24417			
24418			
24419			
24420
24421			
24422			
24423				
24424
24425				
24426					
24427				
24428			
24429
24430			
24431
24432
24433			
24434			<div class="sheet-bilder slider-outer " data-count="1">
24435				
24436				<div class="slider-wrapper slider-elements">
24437					
24438
24439						
24440						
24441
24442						
24443							<div class="sheet-bild b1515351 slider-element ">
24444								
24445								
24446
24447
24448								<figure>
24449		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1515351/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1515351/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1515351/800x480.jpg" width="800" height="480" loading='lazy' alt="Wurzelrudi Bilderrahmen Blick auf Eibenstock" /></picture>
24450	<footer><small>&copy;&nbsp;Wurzelrudi</small></footer></figure>
24451								
24452								
24453							</div>
24454
24455						
24456					
24457						
24458					
24459					
24460				</div>
24461
24462				
24463					<div class="slider-arrows">
24464						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
24465						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
24466					</div>
24467				
24468
24469				
24470				
24471				
24472
24473
24474				
24475				
24476				
24477
24478				
24479
24480				
24481
24482				
24483
24484
24485				
24486
24487
24488				
24489
24490				
24491								
24492
24493			</div>
24494			
24495
24496		
24497		
24498
24499
24500
24501
24502
24503
24504
24505
24506	
24507
24508
24509		<div class="content">
24510
24511			
24512
24513			
24514			
24515
24516
24517			<div class="name">Wandern in Familie</div>
24518			
24519
24520
24521			
24522
24523
24524
24525
24526
24527			
24528
24529			
24530			
24531
24532			
24533
24534			
24535
24536
24537			
24538			
24539			
24540
24541				
24542			
24543
24544
24545
24546
24547
24548			
24549
24550				
24551			
24552
24553
24554			
24555			
24556			
24557
24558			
24559			
24560			
24561				
24562				
24563				
24564				
24565			
24566			
24567
24568			
24569
24570
24571
24572			
24573
24574
24575			
24576
24577			
24578			
24579				
24580			
24581			
24582			
24583
24584			
24585			
24586
24587			
24588			
24589
24590				
24591			
24592
24593			
24594			
24595			
24596			
24597			
24598			
24599			
24600
24601			
24602
24603			
24604
24605			
24606
24607			
24608			
24609			
24610			
24611
24612			
24613			
24614
24615			
24616
24617			
24618
24619			
24620
24621			
24622			
24623
24624			
24625			
24626
24627			
24628			
24629
24630			
24631
24632
24633
24634
24635			
24636
24637
24638				
24639
24640				
24641
24642				
24643				
24644
24645
24646				
24647
24648
24649					
24650				
24651				
24652
24653
24654
24655				
24656				
24657				
24658				
24659				
24660				
24661				
24662
24663
24664
24665
24666
24667
24668
24669				
24670				
24671				
24672
24673				
24674
24675				
24676		
24677				
24678				
24679
24680				
24681
24682				
24683
24684				
24685				
24686				
24687
24688
24689		
24690
24691
24692				
24693
24694
24695
24696
24697
24698
24699				
24700
24701			
24702
24703				
24704
24705
24706				
24707				
24708				
24709				
24710			
24711				
24712				
24713				
24714				
24715					
24715<script>
24716
24717window.gmaps_init = false;
24718
24719var initMap = function(map) {
24720
24721	let $geodata_map = $(map);
24722	let geodata = $geodata_map.data('geodata');
24723
24724	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
24725	const safeFloat = (v, fb = 0) => {
24726		const n = parseFloat(v);
24727		return Number.isFinite(n) ? n : fb;
24728	};
24729	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
24730	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
24731	var center_lat = safeFloat(centerLatRaw, 0);
24732	var center_lng = safeFloat(centerLngRaw, 0);
24733
24734	//  Calculate Zoom Level
24735	var zoom = 8;
24736	if ( geodata.zoom > 0 ) {
24737		zoom = geodata.zoom;
24738	}
24739
24740	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
24741
24742	let MAP_BOUNDS = undefined;
24743	if ( geodata.bounds !== undefined ) {
24744		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
24745		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
24746		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
24747		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
24748		if ([east, north, south, west].every(Number.isFinite)) {
24749			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
24750		} else {
24751			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
24752		}
24753	}
24754
24755	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
24756		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
24757		zoom = zoom - 2;
24758	}
24759
24760	if ( zoom == "-Infinity" ) {
24761		if ( geodata.zoom > 0 ) {
24762			zoom = geodata.zoom;
24763		} else {
24764			zoom = 8;
24765		}
24766	}
24767
24768	// console.log("MAP_BOUNDS",MAP_BOUNDS);
24769
24770	
24771	
24772    var map = new google.maps.Map($geodata_map[0], {
24773		center: { lat: center_lat, lng: center_lng },
24774		disableDefaultUI: true,
24775		zoomControl: true,
24776		zoom: zoom,
24777		clickableIcons: false,	
24778		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
24779	});
24780	
24781
24782	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
24783
24784		var infowindow = new google.maps.InfoWindow();
24785		var marker, i;
24786
24787		var icon_obj;
24788		if ( $geodata_map.data('icon') ) {	
24789			icon_obj = {
24790				url: $geodata_map.data('icon'),
24791				size: new google.maps.Size(40, 40),
24792				scaledSize: new google.maps.Size(40, 40),
24793			};
24794		}
24795
24796		// Sanitize locations (avoid NaN -> pan/setCenter errors)
24797		const validLocations = [];
24798		for (let j = 0; j < geodata.locations.length; j++) {
24799			const lat = parseFloat(geodata.locations[j][1]);
24800			const lng = parseFloat(geodata.locations[j][2]);
24801			if (Number.isFinite(lat) && Number.isFinite(lng)) {
24802				validLocations.push([
24803					geodata.locations[j][0],
24804					lat,
24805					lng,
24806					geodata.locations[j][3],
24807					geodata.locations[j][4]
24808				]);
24809			} else {
24810				console.warn('Skipping invalid location', geodata.locations[j]);
24811			}
24812		}
24813
24814		for (i = 0; i < validLocations.length; i++) { 
24815
24816			marker = new google.maps.Marker({
24817				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
24818				icon: icon_obj, 
24819				scale: 0.5,
24820				map: map
24821			});
24822
24823			google.maps.event.addListener(marker, 'click', (function(marker, i) {
24824				return function() {
24825					if ( validLocations[i][0] ) {
24826						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
24827						if ( validLocations[i][3] ) {
24828							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
24829						} 
24830						$content += '</div>';
24831						
24832						infowindow.setContent($content);
24833						infowindow.open(map, marker);
24834					}
24835				}
24836			})(marker, i));
24837		}
24838
24839	}
24840
24841	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
24842
24843		// Need floats + filter invalid points
24844		const validPath = [];
24845		for (var i = 0; i < geodata.path.length; i++) {
24846			const lat = parseFloat(geodata.path[i]['lat']);
24847			const lng = parseFloat(geodata.path[i]['lng']);
24848			if (Number.isFinite(lat) && Number.isFinite(lng)) {
24849				validPath.push({ lat, lng });
24850			} else {
24851				console.warn('Skipping invalid path point', geodata.path[i]);
24852			}
24853		}
24854
24855		var path = new google.maps.Polyline({
24856			path: validPath,
24857			geodesic: true,
24858			strokeColor: '#FF0000',
24859			strokeOpacity: 1.0,
24860			strokeWeight: 3
24861		});
24862
24863		path.setMap(map);
24864
24865	}
24866
24867
24868	var userLat = parseFloat($geodata_map.data('userlat'));
24869	var userLng = parseFloat($geodata_map.data('userlng'));
24870
24871	if ( userLat > 0 && userLng > 0 ) {
24872
24873		var icon = {
24874			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
24875			fillColor: '#1181FA',
24876			fillOpacity: 1,
24877			strokeColor: '#ffffff',
24878   			strokeWeight: 4,
24879			anchor: new google.maps.Point(0,0),
24880			scale: 2
24881		}
24882
24883		var userlocation = new google.maps.Marker( { 
24884			position: { lat: userLat, lng: userLng }, 
24885			map: map,
24886			icon: icon
24887		});
24888	}
24889
24890	$geodata_map.addClass("init");
24891
24892}
24893
24894$('body').on('click', '.geodata-map:not(.init)', function() {
24895
24896	var divmap = this;
24897
24898	if ( gmaps_init === false ) {
24899		$(divmap).html($(divmap).data("loadinginfo"));
24900
24901		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
24902			.done(function( script, textStatus ) {
24903				console.log( textStatus );
24904				window.gmaps_init = true;
24905				setTimeout(function(){ initMap(divmap) },1000);
24906			})
24907			.fail(function( jqxhr, settings, exception ) {
24908				console.log( jqxhr, settings, exception  );
24909			});
24910		
24911	} else {
24912		initMap(divmap);
24913	}
24914
24915});
24916
24917
24918
24919	
24920
24921</script>
24921
24922
24923<style>
24924    .T5304.grid-stack-item-content {
24925        background: #fff !important;
24926    }
24927
24928    .geodata-map {
24929        margin: 1rem 0;
24930        aspect-ratio: 16/11;
24931        width:  100%;
24932    }
24933
24934    .geodata-map:not(.init) {
24935        display: flex;
24936        justify-content: center;
24937        align-items: center;
24938        background-color: #ddd;
24939        border-radius: 0.7rem;
24940        color:  #333;
24941    }
24942</style>
24943					
24944					
24945					
24946					
24947				
24948
24949
24950
24951			
24952
24953
24954
24955
24956
24957
24958
24959
24960
24961
24962
24963
24964
24965
24966			
24967			
24968			
24969			
24970			
24971			
24972			
24973
24974			
24975			
24976			
24977
24978			
24979			
24980
24981			
24982
24983			
24984
24985
24986			
24987
24988			
24989
24990			
24991
24992			
24993
24994
24995
24996
24997
24998
24999
25000			
25001
25002
25003			
25004
25005			
25006
25007		</div>
25008
25009		
25010
25011	
25012
25013	
25014
25015	
25016	
25017	
25018
25019</div>
25020
25021
25022
25023
25024
25025
25026
25027
25028
25029
25030
25031
25032
25033
25034
25035
25036
25037
25038<!-- /MetaDetail -->
25039						</div>
25040					
25041						<div id="154603">
25042							<!-- MetaDetail -->
25043
25044
25045
25046
25047
25048
25049
25050
25051
25052
25053
25054
25055	
25056	
25057	
25058
25059
25060
25061
25062
25063
25064
25065
25066
25067
25068
25069
25070
25071
25072
25073
25074
25075
25076	
25077		
25078	
25079	
25080
25081
25082
25083
25084
25085
25086
25087 
25088
25089
25090
25091
25092
25093<div class="MetaDetail"
25094
25095	>
25096	
25097
25098	
25099	
25100	
25101	
25102	
25103
25104
25105	
25106
25107
25108
25109
25110
25111
25112	
25113
25114	
25115
25116		
25117			
25118			
25119			
25120			
25121
25122			
25123				
25124				
25125				
25126				
25127			
25128			
25129			
25130			
25131			
25132			
25133
25134			
25135			
25136				
25137
25138				
25139					
25140				
25141			
25142
25143			
25144
25145
25146			
25147			<div class="sheet-bilder slider-outer " data-count="1">
25148				
25149				<div class="slider-wrapper slider-elements">
25150					
25151
25152						
25153						
25154
25155						
25156							<div class="sheet-bild b1514818 slider-element ">
25157								
25158								
25159
25160
25161								<figure>
25162		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1514818/800x480.jpg" width="800" height="480" loading='lazy' alt="Wurzelrudi Fernrohr Schatzsuche" /></picture>
25163	<footer><small>&copy;&nbsp;Wurzelrudi</small></footer></figure>
25164								
25165								
25166							</div>
25167
25168						
25169					
25170						
25171					
25172					
25173				</div>
25174
25175				
25176					<div class="slider-arrows">
25177						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
25178						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
25179					</div>
25180				
25181
25182				
25183				
25184				
25185
25186
25187				
25188				
25189				
25190
25191				
25192
25193				
25194
25195				
25196
25197
25198				
25199
25200
25201				
25202
25203				
25204								
25205
25206			</div>
25207			
25208
25209		
25210		
25211
25212
25213
25214
25215
25216
25217
25218
25219	
25220
25221
25222		<div class="content">
25223
25224			
25225
25226			
25227			
25228
25229
25230			<div class="name">Familientreffen</div>
25231			
25232
25233
25234			
25235
25236
25237
25238
25239
25240			
25241
25242			
25243			
25244
25245			
25246
25247			
25248
25249
25250			
25251			
25252			
25253
25254				
25255			
25256
25257
25258
25259
25260
25261			
25262
25263				
25264			
25265
25266
25267			
25268			
25269			
25270
25271			
25272			
25273			
25274				
25275				
25276				
25277				
25278			
25279			
25280
25281			
25282
25283
25284
25285			
25286
25287
25288			
25289
25290			
25291			
25292				
25293			
25294			
25295			
25296
25297			
25298			
25299
25300			
25301			
25302
25303				
25304			
25305
25306			
25307			
25308			
25309			
25310			
25311			
25312			
25313
25314			
25315
25316			
25317
25318			
25319
25320			
25321			
25322			
25323			
25324
25325			
25326			
25327
25328			
25329
25330			
25331
25332			
25333
25334			
25335			
25336
25337			
25338			
25339
25340			
25341			
25342
25343			
25344
25345
25346
25347
25348			
25349
25350
25351				
25352
25353				
25354
25355				
25356				
25357
25358
25359				
25360
25361
25362					
25363				
25364				
25365
25366
25367
25368				
25369				
25370				
25371				
25372				
25373				
25374				
25375
25376
25377
25378
25379
25380
25381
25382				
25383				
25384				
25385
25386				
25387
25388				
25389		
25390				
25391				
25392
25393				
25394
25395				
25396
25397				
25398				
25399				
25400
25401
25402		
25403
25404
25405				
25406
25407
25408
25409
25410
25411
25412				
25413
25414			
25415
25416				
25417
25418
25419				
25420				
25421				
25422				
25423			
25424				
25425				
25426				
25427				
25428					
25428<script>
25429
25430window.gmaps_init = false;
25431
25432var initMap = function(map) {
25433
25434	let $geodata_map = $(map);
25435	let geodata = $geodata_map.data('geodata');
25436
25437	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
25438	const safeFloat = (v, fb = 0) => {
25439		const n = parseFloat(v);
25440		return Number.isFinite(n) ? n : fb;
25441	};
25442	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
25443	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
25444	var center_lat = safeFloat(centerLatRaw, 0);
25445	var center_lng = safeFloat(centerLngRaw, 0);
25446
25447	//  Calculate Zoom Level
25448	var zoom = 8;
25449	if ( geodata.zoom > 0 ) {
25450		zoom = geodata.zoom;
25451	}
25452
25453	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
25454
25455	let MAP_BOUNDS = undefined;
25456	if ( geodata.bounds !== undefined ) {
25457		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
25458		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
25459		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
25460		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
25461		if ([east, north, south, west].every(Number.isFinite)) {
25462			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
25463		} else {
25464			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
25465		}
25466	}
25467
25468	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
25469		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
25470		zoom = zoom - 2;
25471	}
25472
25473	if ( zoom == "-Infinity" ) {
25474		if ( geodata.zoom > 0 ) {
25475			zoom = geodata.zoom;
25476		} else {
25477			zoom = 8;
25478		}
25479	}
25480
25481	// console.log("MAP_BOUNDS",MAP_BOUNDS);
25482
25483	
25484	
25485    var map = new google.maps.Map($geodata_map[0], {
25486		center: { lat: center_lat, lng: center_lng },
25487		disableDefaultUI: true,
25488		zoomControl: true,
25489		zoom: zoom,
25490		clickableIcons: false,	
25491		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
25492	});
25493	
25494
25495	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
25496
25497		var infowindow = new google.maps.InfoWindow();
25498		var marker, i;
25499
25500		var icon_obj;
25501		if ( $geodata_map.data('icon') ) {	
25502			icon_obj = {
25503				url: $geodata_map.data('icon'),
25504				size: new google.maps.Size(40, 40),
25505				scaledSize: new google.maps.Size(40, 40),
25506			};
25507		}
25508
25509		// Sanitize locations (avoid NaN -> pan/setCenter errors)
25510		const validLocations = [];
25511		for (let j = 0; j < geodata.locations.length; j++) {
25512			const lat = parseFloat(geodata.locations[j][1]);
25513			const lng = parseFloat(geodata.locations[j][2]);
25514			if (Number.isFinite(lat) && Number.isFinite(lng)) {
25515				validLocations.push([
25516					geodata.locations[j][0],
25517					lat,
25518					lng,
25519					geodata.locations[j][3],
25520					geodata.locations[j][4]
25521				]);
25522			} else {
25523				console.warn('Skipping invalid location', geodata.locations[j]);
25524			}
25525		}
25526
25527		for (i = 0; i < validLocations.length; i++) { 
25528
25529			marker = new google.maps.Marker({
25530				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
25531				icon: icon_obj, 
25532				scale: 0.5,
25533				map: map
25534			});
25535
25536			google.maps.event.addListener(marker, 'click', (function(marker, i) {
25537				return function() {
25538					if ( validLocations[i][0] ) {
25539						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
25540						if ( validLocations[i][3] ) {
25541							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
25542						} 
25543						$content += '</div>';
25544						
25545						infowindow.setContent($content);
25546						infowindow.open(map, marker);
25547					}
25548				}
25549			})(marker, i));
25550		}
25551
25552	}
25553
25554	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
25555
25556		// Need floats + filter invalid points
25557		const validPath = [];
25558		for (var i = 0; i < geodata.path.length; i++) {
25559			const lat = parseFloat(geodata.path[i]['lat']);
25560			const lng = parseFloat(geodata.path[i]['lng']);
25561			if (Number.isFinite(lat) && Number.isFinite(lng)) {
25562				validPath.push({ lat, lng });
25563			} else {
25564				console.warn('Skipping invalid path point', geodata.path[i]);
25565			}
25566		}
25567
25568		var path = new google.maps.Polyline({
25569			path: validPath,
25570			geodesic: true,
25571			strokeColor: '#FF0000',
25572			strokeOpacity: 1.0,
25573			strokeWeight: 3
25574		});
25575
25576		path.setMap(map);
25577
25578	}
25579
25580
25581	var userLat = parseFloat($geodata_map.data('userlat'));
25582	var userLng = parseFloat($geodata_map.data('userlng'));
25583
25584	if ( userLat > 0 && userLng > 0 ) {
25585
25586		var icon = {
25587			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
25588			fillColor: '#1181FA',
25589			fillOpacity: 1,
25590			strokeColor: '#ffffff',
25591   			strokeWeight: 4,
25592			anchor: new google.maps.Point(0,0),
25593			scale: 2
25594		}
25595
25596		var userlocation = new google.maps.Marker( { 
25597			position: { lat: userLat, lng: userLng }, 
25598			map: map,
25599			icon: icon
25600		});
25601	}
25602
25603	$geodata_map.addClass("init");
25604
25605}
25606
25607$('body').on('click', '.geodata-map:not(.init)', function() {
25608
25609	var divmap = this;
25610
25611	if ( gmaps_init === false ) {
25612		$(divmap).html($(divmap).data("loadinginfo"));
25613
25614		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
25615			.done(function( script, textStatus ) {
25616				console.log( textStatus );
25617				window.gmaps_init = true;
25618				setTimeout(function(){ initMap(divmap) },1000);
25619			})
25620			.fail(function( jqxhr, settings, exception ) {
25621				console.log( jqxhr, settings, exception  );
25622			});
25623		
25624	} else {
25625		initMap(divmap);
25626	}
25627
25628});
25629
25630
25631
25632	
25633
25634</script>
25634
25635
25636<style>
25637    .T5304.grid-stack-item-content {
25638        background: #fff !important;
25639    }
25640
25641    .geodata-map {
25642        margin: 1rem 0;
25643        aspect-ratio: 16/11;
25644        width:  100%;
25645    }
25646
25647    .geodata-map:not(.init) {
25648        display: flex;
25649        justify-content: center;
25650        align-items: center;
25651        background-color: #ddd;
25652        border-radius: 0.7rem;
25653        color:  #333;
25654    }
25655</style>
25656					
25657					
25658					
25659					
25660				
25661
25662
25663
25664			
25665
25666
25667
25668
25669
25670
25671
25672
25673
25674
25675
25676
25677
25678
25679			
25680			
25681			
25682			
25683			
25684			
25685			
25686
25687			
25688			
25689			
25690
25691			
25692			
25693
25694			
25695
25696			
25697
25698
25699			
25700
25701			
25702
25703			
25704
25705			
25706
25707
25708
25709
25710
25711
25712
25713			
25714
25715
25716			
25717
25718			
25719
25720		</div>
25721
25722		
25723
25724	
25725
25726	
25727
25728	
25729	
25730	
25731
25732</div>
25733
25734
25735
25736
25737
25738
25739
25740
25741
25742
25743
25744
25745
25746
25747
25748
25749
25750
25751<!-- /MetaDetail -->
25752						</div>
25753					</div>
25754
25755
25756	
25757	<div style="display: none;">
25758	<!-- MetaDetail -->
25759
25760
25761
25762
25763
25764
25765
25766
25767
25768
25769
25770
25771	
25772	
25773	
25774
25775
25776
25777
25778
25779
25780
25781
25782
25783
25784
25785
25786
25787
25788
25789
25790
25791
25792	
25793		
25794	
25795	
25796
25797
25798
25799
25800
25801
25802
25803 
25804
25805
25806
25807
25808
25809<div class="MetaDetail hidden"
25810
25811	>
25812	
25813
25814	
25815	
25816	
25817	
25818	
25819
25820
25821	
25822
25823
25824
25825
25826
25827
25828	
25829
25830	
25831
25832		
25833			
25834			
25835			
25836			
25837
25838			
25839				
25840				
25841				
25842				
25843			
25844			
25845			
25846			
25847			
25848			
25849
25850			
25851			
25852				
25853
25854				
25855					
25856				
25857			
25858
25859			
25860
25861
25862			
25863			<div class="sheet-bilder slider-outer " data-count="1">
25864				
25865				<div class="slider-wrapper slider-elements">
25866					
25867
25868						
25869						
25870
25871						
25872							<div class="sheet-bild b1514818 slider-element ">
25873								
25874								
25875
25876
25877								<figure>
25878		<picture ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/800x480.webp 1x" type="image/webp" ><source srcset="https://storage.tramino.net/wurzelrudi/1514818/800x480.jpg 1x" type="image/jpeg" ><img src="https://storage.tramino.net/wurzelrudi/1514818/800x480.jpg" width="800" height="480" loading='lazy' alt="Wurzelrudi Fernrohr Schatzsuche" /></picture>
25879	<footer><small>&copy;&nbsp;Wurzelrudi</small></footer></figure>
25880								
25881								
25882							</div>
25883
25884						
25885					
25886						
25887					
25888					
25889				</div>
25890
25891				
25892					<div class="slider-arrows">
25893						<div class="arrow arrow-left"><i class="icon-arrow-left"></i></div>
25894						<div class="arrow arrow-right"><i class="icon-arrow-right"></i></div>
25895					</div>
25896				
25897
25898				
25899				
25900				
25901
25902
25903				
25904				
25905				
25906
25907				
25908
25909				
25910
25911				
25912
25913
25914				
25915
25916
25917				
25918
25919				
25920								
25921
25922			</div>
25923			
25924
25925		
25926		
25927
25928
25929
25930
25931
25932
25933
25934
25935	
25936
25937
25938		<div class="content">
25939
25940			
25941
25942			
25943			
25944
25945
25946			<div class="name">Familientreffen</div>
25947			
25948
25949
25950			
25951
25952
25953
25954
25955
25956			
25957
25958			
25959			
25960
25961			
25962
25963			
25964
25965
25966			
25967			
25968			
25969
25970				
25971			
25972
25973
25974
25975
25976
25977			
25978
25979				
25980			
25981
25982
25983			
25984			
25985			
25986
25987			
25988			
25989			
25990				
25991				
25992				
25993				
25994			
25995			
25996
25997			
25998
25999
26000
26001			
26002
26003
26004			
26005
26006			
26007			
26008				
26009			
26010			
26011			
26012
26013			
26014			
26015
26016			
26017			
26018
26019				
26020			
26021
26022			
26023			
26024			
26025			
26026			
26027			
26028			
26029
26030			
26031
26032			
26033
26034			
26035
26036			
26037			
26038			
26039			
26040
26041			
26042			
26043
26044			
26045
26046			
26047
26048			
26049
26050			
26051			
26052
26053			
26054			
26055
26056			
26057			
26058
26059			
26060
26061
26062
26063
26064			
26065
26066
26067				
26068
26069				
26070
26071				
26072				
26073
26074
26075				
26076
26077
26078					
26079				
26080				
26081
26082
26083
26084				
26085				
26086				
26087				
26088				
26089				
26090				
26091
26092
26093
26094
26095
26096
26097
26098				
26099				
26100				
26101
26102				
26103
26104				
26105		
26106				
26107				
26108
26109				
26110
26111				
26112
26113				
26114				
26115				
26116
26117
26118		
26119
26120
26121				
26122
26123
26124
26125
26126
26127
26128				
26129
26130			
26131
26132				
26133
26134
26135				
26136				
26137				
26138				
26139			
26140				
26141				
26142				
26143				
26144					
26144<script>
26145
26146window.gmaps_init = false;
26147
26148var initMap = function(map) {
26149
26150	let $geodata_map = $(map);
26151	let geodata = $geodata_map.data('geodata');
26152
26153	// Safe center parsing (avoid NaN -> Google Maps setCenter error)
26154	const safeFloat = (v, fb = 0) => {
26155		const n = parseFloat(v);
26156		return Number.isFinite(n) ? n : fb;
26157	};
26158	const centerLatRaw = (geodata && geodata.center && geodata.center.lat != null) ? geodata.center.lat : geodata.userlat;
26159	const centerLngRaw = (geodata && geodata.center && geodata.center.lng != null) ? geodata.center.lng : geodata.userlng;
26160	var center_lat = safeFloat(centerLatRaw, 0);
26161	var center_lng = safeFloat(centerLngRaw, 0);
26162
26163	//  Calculate Zoom Level
26164	var zoom = 8;
26165	if ( geodata.zoom > 0 ) {
26166		zoom = geodata.zoom;
26167	}
26168
26169	if ( geodata.bounds == "" ) { geodata.bounds = undefined; }
26170
26171	let MAP_BOUNDS = undefined;
26172	if ( geodata.bounds !== undefined ) {
26173		const east  = safeFloat(geodata.bounds.no && geodata.bounds.no.lng, NaN);
26174		const north = safeFloat(geodata.bounds.no && geodata.bounds.no.lat, NaN);
26175		const south = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lat, NaN);
26176		const west  = safeFloat(geodata.bounds.sw && geodata.bounds.sw.lng, NaN);
26177		if ([east, north, south, west].every(Number.isFinite)) {
26178			MAP_BOUNDS = { east: east + 0.05, north: north + 0.05, south: south - 0.05, west: west - 0.05 };
26179		} else {
26180			console.warn("Invalid bounds, ignoring restriction", geodata.bounds);
26181		}
26182	}
26183
26184	if ( geodata.bounds !== undefined && MAP_BOUNDS === undefined ) {
26185		zoom = Math.round(Math.log(($(map).width() -100) * 360 / ( (safeFloat(geodata.bounds.no.lng, 0) - safeFloat(geodata.bounds.sw.lng, 0)) || 1) / $(map).width()) / Math.LN2);
26186		zoom = zoom - 2;
26187	}
26188
26189	if ( zoom == "-Infinity" ) {
26190		if ( geodata.zoom > 0 ) {
26191			zoom = geodata.zoom;
26192		} else {
26193			zoom = 8;
26194		}
26195	}
26196
26197	// console.log("MAP_BOUNDS",MAP_BOUNDS);
26198
26199	
26200	
26201    var map = new google.maps.Map($geodata_map[0], {
26202		center: { lat: center_lat, lng: center_lng },
26203		disableDefaultUI: true,
26204		zoomControl: true,
26205		zoom: zoom,
26206		clickableIcons: false,	
26207		...(MAP_BOUNDS ? { restriction: { latLngBounds: MAP_BOUNDS, strictBounds: false } } : {} )
26208	});
26209	
26210
26211	if ( geodata.filter == 1 && geodata.locations !== undefined ) {
26212
26213		var infowindow = new google.maps.InfoWindow();
26214		var marker, i;
26215
26216		var icon_obj;
26217		if ( $geodata_map.data('icon') ) {	
26218			icon_obj = {
26219				url: $geodata_map.data('icon'),
26220				size: new google.maps.Size(40, 40),
26221				scaledSize: new google.maps.Size(40, 40),
26222			};
26223		}
26224
26225		// Sanitize locations (avoid NaN -> pan/setCenter errors)
26226		const validLocations = [];
26227		for (let j = 0; j < geodata.locations.length; j++) {
26228			const lat = parseFloat(geodata.locations[j][1]);
26229			const lng = parseFloat(geodata.locations[j][2]);
26230			if (Number.isFinite(lat) && Number.isFinite(lng)) {
26231				validLocations.push([
26232					geodata.locations[j][0],
26233					lat,
26234					lng,
26235					geodata.locations[j][3],
26236					geodata.locations[j][4]
26237				]);
26238			} else {
26239				console.warn('Skipping invalid location', geodata.locations[j]);
26240			}
26241		}
26242
26243		for (i = 0; i < validLocations.length; i++) { 
26244
26245			marker = new google.maps.Marker({
26246				position: new google.maps.LatLng(validLocations[i][1], validLocations[i][2]),
26247				icon: icon_obj, 
26248				scale: 0.5,
26249				map: map
26250			});
26251
26252			google.maps.event.addListener(marker, 'click', (function(marker, i) {
26253				return function() {
26254					if ( validLocations[i][0] ) {
26255						var $content = '<div id="content" style="padding-right: 10px;"><h4>' + validLocations[i][0] + '</h4>';
26256						if ( validLocations[i][3] ) {
26257							$content += '<div style="padding-bottom: 15px;">' + validLocations[i][3] + '</div>';
26258						} 
26259						$content += '</div>';
26260						
26261						infowindow.setContent($content);
26262						infowindow.open(map, marker);
26263					}
26264				}
26265			})(marker, i));
26266		}
26267
26268	}
26269
26270	if ( geodata.ispath == 1 && geodata.path !== undefined ) {
26271
26272		// Need floats + filter invalid points
26273		const validPath = [];
26274		for (var i = 0; i < geodata.path.length; i++) {
26275			const lat = parseFloat(geodata.path[i]['lat']);
26276			const lng = parseFloat(geodata.path[i]['lng']);
26277			if (Number.isFinite(lat) && Number.isFinite(lng)) {
26278				validPath.push({ lat, lng });
26279			} else {
26280				console.warn('Skipping invalid path point', geodata.path[i]);
26281			}
26282		}
26283
26284		var path = new google.maps.Polyline({
26285			path: validPath,
26286			geodesic: true,
26287			strokeColor: '#FF0000',
26288			strokeOpacity: 1.0,
26289			strokeWeight: 3
26290		});
26291
26292		path.setMap(map);
26293
26294	}
26295
26296
26297	var userLat = parseFloat($geodata_map.data('userlat'));
26298	var userLng = parseFloat($geodata_map.data('userlng'));
26299
26300	if ( userLat > 0 && userLng > 0 ) {
26301
26302		var icon = {
26303			path: "M-5,0a5,5 0 1,0 10,0a5,5 0 1,0 -10,0",
26304			fillColor: '#1181FA',
26305			fillOpacity: 1,
26306			strokeColor: '#ffffff',
26307   			strokeWeight: 4,
26308			anchor: new google.maps.Point(0,0),
26309			scale: 2
26310		}
26311
26312		var userlocation = new google.maps.Marker( { 
26313			position: { lat: userLat, lng: userLng }, 
26314			map: map,
26315			icon: icon
26316		});
26317	}
26318
26319	$geodata_map.addClass("init");
26320
26321}
26322
26323$('body').on('click', '.geodata-map:not(.init)', function() {
26324
26325	var divmap = this;
26326
26327	if ( gmaps_init === false ) {
26328		$(divmap).html($(divmap).data("loadinginfo"));
26329
26330		$.getScript( "https://maps.googleapis.com/maps/api/js?key=AIzaSyAwaY1WlujmfteuaOQMrJPElfkVIue7wr4&v=weekly" )
26331			.done(function( script, textStatus ) {
26332				console.log( textStatus );
26333				window.gmaps_init = true;
26334				setTimeout(function(){ initMap(divmap) },1000);
26335			})
26336			.fail(function( jqxhr, settings, exception ) {
26337				console.log( jqxhr, settings, exception  );
26338			});
26339		
26340	} else {
26341		initMap(divmap);
26342	}
26343
26344});
26345
26346
26347
26348	
26349
26350</script>
26350
26351
26352<style>
26353    .T5304.grid-stack-item-content {
26354        background: #fff !important;
26355    }
26356
26357    .geodata-map {
26358        margin: 1rem 0;
26359        aspect-ratio: 16/11;
26360        width:  100%;
26361    }
26362
26363    .geodata-map:not(.init) {
26364        display: flex;
26365        justify-content: center;
26366        align-items: center;
26367        background-color: #ddd;
26368        border-radius: 0.7rem;
26369        color:  #333;
26370    }
26371</style>
26372					
26373					
26374					
26375					
26376				
26377
26378
26379
26380			
26381
26382
26383
26384
26385
26386
26387
26388
26389
26390
26391
26392
26393
26394
26395			
26396			
26397			
26398			
26399			
26400			
26401			
26402
26403			
26404			
26405			
26406
26407			
26408			
26409
26410			
26411
26412			
26413
26414
26415			
26416
26417			
26418
26419			
26420
26421			
26422
26423
26424
26425
26426
26427
26428
26429			
26430
26431
26432			
26433
26434			
26435
26436		</div>
26437
26438		
26439
26440	
26441
26442	
26443
26444	
26445	
26446	
26447
26448</div>
26449
26450
26451
26452
26453
26454
26455
26456
26457
26458
26459
26460
26461
26462
26463
26464
26465
26466
26467<!-- /MetaDetail -->
26468	</div>
26469	
26470
26471</div>
26472
26473
26474
26475
26476					
26477
26478
26479
26480
26481
26482
26483
26484
26485
26486
26487
26488
26489
26490
26491
26492
26493
26494
26495
26496
26497
26498<!-- /MetaTeaser -->
26499
26500			
26501
26502			</div>
26503
26504			
26505
26506			
26507
26508
26509		</div>
26510
26511	
26512	</div><!-- wrap_inner end -->
26513	</div>
26514	</div>
26515	
26516
26517	
26518	
26519	<style>
26520		
26521		
26522		
26523	</style>
26524					
26525				</section>
26526			
26527				<section class="TraminoVorlage T5528 S9188 open size5 TraminoVorlage_14" id="TraminoAnhang554427"   >
26528					<div class="quickselect">
26529
26530	
26531
26532	
26533
26534	
26535	<a href="/sommer/" class="quickselect-item"
26536		>
26537	
26538		<div class="quickselect-icon"><img src="https://storage.tramino.net/wurzelrudi/1689104/sommerb.svg" alt="SommerB"  title="SommerB"    loading="lazy"  /></div>
26539		<div class="quickselect-label">Sommer</div>
26540	</a>
26541	
26542
26543	
26544	<a href="/ski-arena/" class="quickselect-item"
26545		>
26546	
26547		<div class="quickselect-icon"><img src="https://storage.tramino.net/wurzelrudi/1689115/winterb.svg" alt="WinterB"  title="WinterB"    loading="lazy"  /></div>
26548		<div class="quickselect-label">Winter</div>
26549	</a>
26550	
26551
26552	
26553	<a href="/planen/orientierungsplan/" class="quickselect-item"
26554		>
26555	
26556		<div class="quickselect-icon"><img src="https://storage.tramino.net/wurzelrudi/1689099/karteiib.svg" alt="KarteIIB"  title="KarteIIB"    loading="lazy"  /></div>
26557		<div class="quickselect-label">Karte</div>
26558	</a>
26559	
26560
26561	
26562	<a href="/planen/webcam-wetter/" class="quickselect-item"
26563		>
26564	
26565		<div class="quickselect-icon"><img src="https://storage.tramino.net/wurzelrudi/1689090/webcamb.svg" alt="WebcamB"  title="WebcamB"    loading="lazy"  /></div>
26566		<div class="quickselect-label">Webcam</div>
26567	</a>
26568	
26569
26570	
26571	<a href="/planen/" class="quickselect-item"
26572		>
26573	
26574		<div class="quickselect-icon"><img src="https://storage.tramino.net/wurzelrudi/1689102/oeffnungb.svg" alt="ÖffnungB"  title="ÖffnungB"    loading="lazy"  /></div>
26575		<div class="quickselect-label">Infos</div>
26576	</a>
26577	
26578
26579	<div class="rarr"><i class="icon-arrow-right"></i></div>
26580</div>
26581					
26582				</section>
26583			
26584				<footer class="TraminoVorlage T2820  noanimation TraminoVorlage_15" id="TraminoAnhang555095"   >
26585					<div class="pattern1"></div>
26586
26587
26588
26589
26590
26591
26592
26593
26594
26595
26596
26597
26598
26599
26600
26601
26602
26603
26604
26605
26606
26607
26608
26609
26610<div class="fontsize_medium  barrierefreiheit background wrapper text-transform noprint">
26611	<div class="inner boxes maxwidth">
26612		
26613
26614		<section class="box box1">
26615
26616			<div class="inner text">
26617
26618				
26619					
26620					<h3 class="headline color fontsize_medium bold">KONTAKT</h3>
26621					<p>Lohgasse 1 (Navi),<br />
2662208309 Eibenstock<br />
26623Telefon: 037752 69492<br />
26624Fax: 037752 69340<br />
26625E-Mail: <a href="mailto:%69%6E%66%6F%40%77%75%72%7A%65%6C%72%75%64%69%2E%64%65">[email protected]</a></p>
26626				 
26627				
26628				
26629			</div>
26630		</section>
26631
26632
26633
26634
26635
26636
26637		
26638		<section class="box box2 ">
26639			
26640			<div class="inner text">
26641
26642				
26643
26644					<h3 class="headline color fontsize_medium bold">FAMILIENURLAUB EIBENSTOCK</h3>
26645
26646					
26647
26648
26649					
26650
26651						
26652						
26653
26654						
26655
26656						
26657						
26658
26659						
26660						
26661
26662						
26663						<div class="clear"></div>
26664					
26665					
26666					
26667					
26668					<p>Im Winter, im Sommer; mit Kind und Kegel; für Aktive und Genießer; für Skifahrer und Winterwanderer; für Naturfreunde und Entdecker:<br />Wurzelrudis Erlebniswelt ist der ideale Platz für Urlaub, Wochenende und Abenteuer im Erzgebirge!</p>
26669
26670
26671					
26672
26673				
26674
26675				
26676				
26677			</div>
26678			
26679		</section>
26680		
26681
26682
26683
26684
26685
26686			
26687		<section class="box box3 ">
26688			
26689			<div class="inner text">
26690
26691				<h3 class="headline color fontsize_medium bold">DOWNLOADS &amp; PROSPEKTE</h3>
26692				
26693				<div class="clear"></div>
26694				<p>» <a href="https://wurzelrudi.de/planen/newsletter/" target="_blank" title="Externer Link auf wurzelrudi.de/planen/newsletter/, Sie verlassen diesen Internetauftritt" class="externlink"><span>Newsletter</span></a><br />» <a href="https://wurzelrudi.de/planen/downloads/" target="_blank" title="Externer Link auf wurzelrudi.de/planen/downloads/, Sie verlassen diesen Internetauftritt" class="externlink"><span>Sommerflyer</span></a><br />» <a href="https://wurzelrudi.de/planen/downloads/" target="_blank" title="Externer Link auf wurzelrudi.de/planen/downloads/, Sie verlassen diesen Internetauftritt" class="externlink"><span>Winterflyer</span></a><br />» <a href="https://wurzelrudi.de/gruppen-schulen/gruppenangebot/" target="_blank" title="Externer Link auf wurzelrudi.de/gruppen-schulen/gruppenangebot/, Sie verlassen diesen Internetauftritt" class="externlink"><span>Gruppenangebote Sommer</span></a><br />» <a href="https://wurzelrudi.de/gruppen-schulen/gruppenangebot/" target="_blank" title="Externer Link auf wurzelrudi.de/gruppen-schulen/gruppenangebot/, Sie verlassen diesen Internetauftritt" class="externlink"><span>Gruppenangebote Winter</span></a><br />» <a href="https://wurzelrudi.de/familienzeit/kindergeburtstage/" target="_blank" title="Externer Link auf wurzelrudi.de/familienzeit/kindergeburtstage/, Sie verlassen diesen Internetauftritt" class="externlink"><span>Kindergeburtstag</span></a><br />» <a href="https://www.hostel-wurzelrudi.de/" target="_blank" title="Externer Link auf www.hostel-wurzelrudi.de/, Sie verlassen diesen Internetauftritt" class="externlink"><span>WurzelrudisHostel</span></a><br />» <a href="https://wurzelrudi.de/info/jobs-karriere/" target="_blank" title="Externer Link auf wurzelrudi.de/info/jobs-karriere/, Sie verlassen diesen Internetauftritt" class="externlink"><span>Stellenangebote</span></a></p>
26695			</div>
26696			
26697		</section>
26698		
26699
26700
26701
26702
26703
26704
26705		
26706		<section class="box box4 ">
26707			
26708			<div class="inner text">
26709				
26710				
26711
26712				
26713				
26714				
26715					<h3 class="headline color fontsize_medium bold">ÖFFNUNGSZEITEN (Ostern - Mitte November)</h3>
26716					<div><p>Täglich 9:30 - 18:00 Uhr<br />
26717letzte Talfahrt<br />
26718Sesselbahn 17:15 Uhr<br />
26719(Bitte Fahrtage beachten!)</p></div>
26720				
26721				
26722				
26723
26724				
26725				<div class="social">
26726		
26727			
26728			<a href="https://www.facebook.com/Wurzelrudis.Erlebniswelt" title="Externer Link auf facebook.com, Sie verlassen diesen Internetauftritt" title="Externer Link, Sie verlassen diesen Internetauftritt" target="blank"><i class="icon-facebook"></i> Facebook</a>
26729		
26730		
26731			
26732			<a href="https://www.instagram.com/wurzelrudis_erlebniswelt/" title="Externer Link auf instagram.com, Sie verlassen diesen Internetauftritt" title="Externer Link, Sie verlassen diesen Internetauftritt" target="blank"><i class="icon-instagram"></i> Instagram</a>
26733		
26734		
26735		
26736		
26737		
26738		
26739		
26740		
26741		
26742		
26743		
26744			
26745			<a href="https://wurzelrudi.tramino.de/planen/webcam-wetter/" title="Externer Link auf wurzelrudi.tramino.de, Sie verlassen diesen Internetauftritt" target="blank"><i class="icon-webcam"></i>Webcam</a>
26746		
26747	</div>
26748				
26749				
26750			</div>
26751			
26752		</section>
26753		
26754
26755
26756	</div>
26757
26758	
26759	
26760	
26761
26762
26763
26764
26765
26766
26767
26768
26769	
26770	<div class="inner maxwidth copyright fontsize_small">
26771		<div class="links">
26772			<ul>
26773				
26774				
26775				
26776				<li>
26777					
26778						<a href="/impressum/">Impressum</a>
26779					
26780				</li>
26781
26782				
26783				
26784
26785				<li>
26786					
26787						<a href="/datenschutz/">Datenschutz</a>
26788					
26789				</li>
26790				
26791				
26792
26793				
26794
26795				
26796
26797				
26798				<li>
26799					
26800						<a href="/barrierefreiheit/">Barrierefreiheit</a>
26801					
26802				</li>
26803				
26804				
26805				
26806					<li class="widerruf">
26807						<a href="/widerruf/">Vertrag widerrufen</a>	
26808					</li>
26809				
26810				
26811				
26812				
26813
26814				<li><a href="#" data-openConsentSetttings="2">Cookie-Einstellungen</a></li>
26815				 
26816 				
26817
26818				
26819				
26820				
26821				
26822				<li>
26823					<a href="#" data-langswitch="TraminoLangSwitch" id="TraminoLangSwitchFooter" style="display: flex;">
26824						<i class="icon-globe"></i>
26825						<span>
26826						
26827						
26828
26829						Deutsch
26830							
26831						</span>
26832					</a>
26833				</li>
26834				
26835
26836			</ul>
26837		</div>
26838		
26839		<div id="langswitch" data-elementtrigger="TraminoLangSwitch"  data-traminolang="de" data-knownlang="de,en,cs,en,cs" >
26840	<div class="langswitch_inner">
26841		
26842		
26843			<div class="headline">Website</div>
26844			<ul>			
26845			
26846			
26847				
26848				
26849				
26850					
26851						
26852					
26853				
26854                
26855				
26856				<li data-lang="de" data-flag="de">
26857			<a href="/sommer/">
26858				<div>
26858Deutsch</div>
26859				
26860				<div class="name_en">(German)</div>
26861				
26862			</a>
26863		</li>
26864				
26865				
26866			
26867			
26868				
26869				
26870				
26871					
26872						
26873					
26874				
26875                
26876				
26877				<li data-lang="en" data-flag="en">
26878			<a href="/en/sommer/">
26879				<div>English</div>
26880				
26881				<div class="name_en">(English)</div>
26882				
26883			</a>
26884		</li>
26885				
26886				
26887			
26888			
26889				
26890				
26891				
26892					
26893						
26894					
26895				
26896                
26897				
26898				<li data-lang="cs" data-flag="cs">
26899			<a href="/cs/sommer/">
26900				<div>Čeština</div>
26901				
26902				<div class="name_en">(Czech)</div>
26903				
26904			</a>
26905		</li>
26906				
26907				
26908			
26909		</ul>
26910		
26911		
26912	</div>
26913
26914
26915</div>
26916
26917		
26918		
26919		<div class="tc ">
26920	
26921	Erstellt
26922	
26923	
26924	
26925	
26926	
26927	
26928	
26929	
26930	
26931	
26932	
26933		mit <a href="https://www.tramino.de" target="blank">Tramino</a>
26934	
26935</div>
26936		
26937		
26938		
26939		
26940	</div>
26941	
26942
26943
26944
26945	
26946		<div id="totop"><i class="color icon-arrow-up"></i></div>
26947	
26948
26949
26950
26951
26952</div>
26953
26954
26955
26956
26957
26958
26959
26960	<style>
26961		.T2820 .wrapper { 
26962			background: repeat-x url(https://storage.tramino.net/wurzelrudi/1536145/footer-hg-blau.png);
26963			background-color: var(--background_color);
26964			border: 0px;
26965		}
26966	</style>
26967
26968
26969
26970<style>
26971	.T2820 .pattern1 { background: repeat-x url(https://storage.tramino.net/wurzelrudi/1536137/footer-hg-oben-sommer-winter.png); height: 179px; }
26972</style>
26973
26974
26975
26976<style>
26977
26978.icon-whatsapp::before {
26979  color: unset;
26980}
26981
26982
26983
26984
26985
26986
26987
26988
26989footer#TraminoAnhang555095 {
26990		--footer_a_color: #ffffff;
26991	}
26992	footer#TraminoAnhang555095 .wrapper { color: #ffffff !important; }
26993	footer#TraminoAnhang555095 .wrapper :not(.widerruf) > a { 
26994		color: #ffffff !important;
26995	}
26996
26997
26998
26999
27000
27001</style>
27002
27003
27004
27005<script type="text/javascript">
27006"use strict";
27007
27008var isiPad = /iPad/i.test(navigator.userAgent) || /iPhone OS 3_1_2/i.test(navigator.userAgent) || /iPhone OS 3_2_2/i.test(navigator.userAgent) || /iPad|iPhone|iPod/i.test(navigator.userAgent) && !window.MSStream;
27009
27010TraminoReady(function() {
27011
27012	var stopclick = 0;
27013
27014	$('#totop').on('click', function(){
27015		
27016		if ( stopclick == 0 ) {
27017
27018			stopclick = 1;
27019			console.log(isiPad, navigator.userAgent);
27020			
27021			if ( isiPad ) {
27022 				$('#totop').fadeOut(20);
27023 				window.scrollTo(0,0);
27024				stopclick = 0;
27025			} else {
27026				$('html, body').animate({
27027					scrollTop: 0
27028				}, 800, function() {
27029					stopclick = 0;
27030				});
27031			}
27032
27033			
27034
27035
27036			
27037		}
27038	});
27039
27040	$(document).scroll(function(){
27041		var st = $(window).scrollTop();			
27042		if (st > 400 ) {
27043			$('#totop').fadeIn(300);
27044		} else {
27045			$('#totop').fadeOut(200);
27046		}
27047		
27048	});
27049});
27050
27051</script>
27051
27052					
27053				</footer>
27054			
27055		</div>
27056		
27057		
27058	
27059			</div>
27060		
27061
27062
27063
27064
27065	
27066		
27067		
27068	
27069
27070
27071
27072
27073
27074
27075
27076
27077
27078
27079
27080
27081
27082
27083
27084
27085
27086
27087
27088
27089
27090
27091
27092
27093	
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107
27108<div id="sheet" class="T0000" data-gs-id="">
27109	<div class="sheet-spacer"></div>
27110	<div class="sheet-outer">
27111		<button class="sheet-close"><div>&times;</div></button>
27112		<div class="sheet-handle"></div>
27113		<div class="sheet-inner"></div>
27114	</div>
27115</div>
27116
27117
27118
27119<script>
27120
27121TraminoReady(function() {
27122
27123	let opening = false;
27124
27125	window.closeSheet = function() {
27126
27127		console.log("closeSheet");
27128
27129		if ( typeof window.parent.deactivateFeature == "function" && window.map_init === true  ) {
27130			window.parent.deactivateFeature();
27131		}
27132
27133		$("#sheet").removeClass('open');
27134		$("#sheet").removeClass('no-sheet-images');
27135
27136		if ( $("#meta-map").length > 0 ) {
27137			$("#meta-map").removeClass("background");
27138		}
27139
27140		// Nach CSS Animation den Inhalt leeren
27141		setTimeout(function(){
27142			$("#sheet .sheet-inner").html("");
27143			$("#sheet").removeClass('no_close_button');
27144			$("#sheet").removeClass('no_outside_click');
27145		},250);
27146
27147	}
27148
27149	window.openSheet = function(sheet_id, clicked_element=undefined,options={}) {
27150
27151		let $clicked_element = $(clicked_element);
27152
27153
27154		console.log("openSheet");
27155		opening = true;
27156
27157		$("#sheet").attr('data-gs-id', $clicked_element.parents('div[data-gs-id]').data('gs-id') || options.id );
27158		$("#sheet").attr('data-hidden-id', sheet_id );
27159		
27160		if ( options.no_close_button === true ) {
27161			$("#sheet").addClass('no_close_button');
27162		}
27163		if ( options.no_outside_click === true ) {
27164			$("#sheet").addClass('no_outside_click');
27165		}
27166
27167		
27168
27169		
27170
27171
27172		
27173		// experimental map activation
27174		if ( typeof window.parent.activateFeature == "function" && window.map_init === true ) {		
27175
27176	 		let activate_id = sheet_id;
27177			if ( $clicked_element.data("zoom_infosystem") ) {
27178	 			activate_id = $clicked_element.data("zoom_infosystem");
27179	 		}
27180	 		window.parent.activateFeature( activate_id, { dashboard: $('#subpage').data("dashboard") } );		
27181		}
27182		
27183		
27184		if ( $("#sheet").attr('class').match(/T\d+/) ) {
27185			$("#sheet").removeClass( $("#sheet").attr('class').match(/T\d+/)[0] );
27186		}
27187		
27188		if ( $clicked_element.closest(".grid-stack-item-content").length
27189			&& $clicked_element.closest(".grid-stack-item-content").attr('class').match(/T\d+/) ) {
27190			$("#sheet").addClass( $clicked_element.closest(".grid-stack-item-content").attr('class').match(/T\d+/)[0] );
27191		}
27192
27193		if ( $("#"+sheet_id).length > 0 ) {
27194			console.log("Open Sheet from DOM");
27195			$("#sheet .sheet-inner").html( $("#"+sheet_id).html() );	
27196			
27197		} else if ( sheet_id ) {
27198			
27199			let session = "";
27200			session = localStorage.getItem('app_session');
27201			
27202			
27203			
27204
27205
27206			$("#sheet .sheet-inner").html("");
27207
27208			var data = "id=" + sheet_id;
27209			data = data + "&session=" + session;
27210			data = data + "&reloadtarget=" + ( $clicked_element.data("reloadtarget") || "" );
27211			
27212
27213			if ( ( $clicked_element.data("sheet-options") && $clicked_element.data("sheet-options").match("full_height" ) ) 
27214		      || ( options.full_height ) ) {
27215				$("#sheet").addClass( "full_height" );
27216			} else {
27217				$("#sheet").removeClass( "full_height" );
27218			}
27219			
27220
27221			if ( $clicked_element.data("query-string") ) {
27222				data = data + "&" + $clicked_element.data("query-string");
27223			}
27224
27225			if ( $clicked_element.closest(".grid-stack-item").data("gs-id") ) {
27226				data = data + "&block=" + $clicked_element.closest(".grid-stack-item").data("gs-id");
27227			}
27228
27229			if ( $clicked_element.data("extradata") ) {
27230				data = data + "&extra=" + JSON.stringify($clicked_element.data("extradata"));
27231			}
27232
27233			// Zusätuzliche Parameter aus den Optionen
27234			if ( options.group ) {
27235				data = data + "&infosystem_group=" + options.group;
27236			}
27237
27238			if (window.history && window.history.pushState) {
27239				history.pushState({ page: sheet_id }, 'Test', '');
27240			}
27241
27242			let lang = "de";
27243			const doc_html = document.querySelector("html");
27244			if ( doc_html != undefined ) {
27245				
27246				const doc_html_lang = doc_html.getAttribute("lang");
27247				if ( doc_html_lang ) {
27248					lang = doc_html_lang;
27249				}
27250			}
27251			if ( lang != "de" ) {
27252				data = data + `&lang=${lang}`;
27253			}
27254
27255			// nachladen falls kein hidden
27256			$.ajax( "https://wurzelrudi.tramino.de/api/infosystem/detail/", {
27257				dataType: "json",
27258				contentType: "text/plain",
27259				data: data,
27260				
27261				success: function( response ) {
27262					if ( response.session !== undefined ) { 
27263						localStorage.setItem('app_session', response.session );
27264					}
27265					// console.log( "response.html",response.html );
27266
27267					// Check if loaded Content contains `sheet-bilder`
27268					if ( $(response.html).find(".sheet-bilder .sheet-bild img").length > 0  ) {
27269						$("#sheet").removeClass('no-sheet-images');
27270					} else {
27271						$("#sheet").addClass('no-sheet-images');
27272					}
27273					$("#sheet .sheet-inner").html( response.html );
27274					
27275					// Falls <!-- action_refresh_widget --> drin steht, widget im background updaten
27276					if ( response.html.indexOf("-- action_refresh_widget --") !== -1 ) {
27277						let block_id = $('#sheet').attr('data-gs-id');
27278						refreshWidget( block_id );
27279					}
27280					
27281					// Falls <!-- sheet_close --> drin steht, sheet close
27282					if ( response.html.indexOf("-- sheet_close --") !== -1 ) {
27283						$('#sheet').removeClass('open');
27284					}
27285
27286
27287				},	
27288				error: function(jqxhr, textStatus, errorThrown) {
27289					console.log( jqxhr, textStatus, errorThrown );
27290				}
27291			});
27292			
27293		}
27294	
27295	
27296	
27297		if ( $clicked_element.data("sheet-set") ) {
27298			setDashboard( $clicked_element );
27299		}
27300		
27301		$("#sheet").scrollTop(0);		
27302		$("#sheet").addClass('open');
27303
27304		
27305
27306
27307		if ( $("#sheet .sheet-inner").find('[data-qrcode]').length ) {
27308			if ( !$("#sheet .sheet-inner").find('[data-qrcode]').hasClass('generated') ) {
27309				$.getScript('https://storage.tramino.net/static/js/easy.qrcode.min.js', function(data, textStatus) {
27310
27311					
27312
27313					var options = {
27314						text: $('#sheet .qrcode').data('qrcode'),
27315						
27316						//correctLevel: "QRCode.CorrectLevel.H",
27317						width: 600,
27318						height: 600,
27319						
27320						
27321
27322						logoBackgroundColor: "#FFFFFF",
27323						
27324						
27325						colorDark: "#000000",
27326						
27327						
27328						logoWidth: 200,
27329						logoHeight: 150,
27330
27331						dotScale: 0.8,
27332						dotScaleTiming: 0.9,
27333						dotScaleA: 0.9,
27334						dotScaleAO: 0.9,
27335						dotScaleAI: 0.9,
27336					};
27337
27338
27339					// Create QRCode Object
27340					let qrcode = new QRCode(document.querySelector("#sheet .qrcode"), options);
27341				});
27342				$("#sheet .sheet-inner").find('[data-qrcode]').addClass('generated');
27343			}
27344		}
27345		
27346		setTimeout( function(){ opening = false; },250 );
27347
27348	}
27349
27350	document.addEventListener('click', function(event) {
27351
27352		if ( opening === true ) {
27353			return false;
27354		}
27355
27356		const sheet = document.querySelector('#sheet');
27357		
27358		if ( sheet === null ) {
27359			return false;
27360		}
27361
27362		if ( sheet.classList.contains("no_outside_click") ) {
27363			return false;
27364		}
27365
27366        if ( sheet.classList.contains("open") ) {
27367
27368			const sheetOuter = sheet.querySelector('.sheet-outer');
27369			const metaCart = document.querySelector('#meta-cart');
27370
27371			if ( metaCart !== null ) {
27372				if ( metaCart.classList.contains("open") ) {
27373					return;
27374				}
27375			}
27376
27377			// prevent phantom click triggered by TeaserChatrooms
27378			const sheetEl = event.target.closest("[data-sheet]");
27379			if ( sheetEl && sheetEl.dataset.sheet == sheet.dataset.hiddenId ) {
27380				return false;
27381			}
27382
27383	        if ( ! sheetOuter.contains(event.target) ) {    
27384				closeSheet();
27385	        }
27386        }
27387    });
27388
27389	$('body').on('click', '[data-sheet]', function(e) {
27390		if ( $(this).data("set") === undefined && $(this).data("send") === undefined  ) {
27391			e.stopImmediatePropagation();
27392		}
27393		openSheet($(this).data("sheet"), $(this));
27394		$('#meta-cart').removeClass("open");
27395		// Geodata Handling kommt aus Include 
27396	});
27397	
27398	$('body').on('click', '#sheet .sheet-close', function() {
27399		closeSheet();
27400	});
27401
27402	$('body').on('keydown', function(e) {
27403
27404		if ( ! $("#sheet").hasClass('open') ) {
27405			return;
27406		}
27407		if (e.key == "Escape") {
27408			closeSheet();
27409		};
27410	});
27411
27412
27413	
27414
27415});
27416
27417</script>
27417
27418
27419
27420<style>
27421
27422	:root { --nav-height: 4rem; }
27423	#subpage,#subpage2 { --nav-height: 4rem; --head-height: 2.5rem; --header-height-with-offset: calc( var(--head-height) + 0.5rem ) }
27424	
27425	:root { --nav-height: 0rem; }
27426	
27427	.T5634 { --nav-height: 0em; }
27428	
27429
27430	#sheet {
27431		display: block;
27432		position: fixed;
27433		z-index: 2000;
27434		left: 0;
27435		right: 0;
27436		top: 100vh;
27437		height: 98vh;
27438		height: calc( 100vh - var(--nav-height) - max(env(safe-area-inset-bottom, 0px), var(--android-safe-bottom, 0px)) * 0.5 );
27439		background-image: -webkit-gradient( linear, left top, left bottom, from(#0000), to(#000), color-stop(0,#0000), color-stop(.4,#0003) );
27440		overflow: hidden;
27441		overflow-y: scroll;
27442		overscroll-behavior: contain !important;
27443		padding-top: 25vh;
27444		transition: top 250ms ease-in-out;
27445		/*	pointer-events: none;*/
27446
27447		--content-padding: 1rem;
27448	}
27449
27450	#sheet.no_close_button {
27451		height: calc( 100vh );
27452		z-index: 1000000;
27453	}
27454
27455	@media screen and (max-width: 800px) {
27456
27457		#sheet.full_height { padding-top: 0vh; }
27458		#sheet.full_height .sheet-outer { border-radius: 0; }
27459	}
27460
27461	@media screen and (min-width: 800px) {
27462
27463		#sheet.full_height { padding-top: 13vh; height: 100%; }
27464	}
27465
27466
27467	body.C350 #sheet.full_height > .sheet-outer > .sheet-close { right: auto; left: 0rem; }
27468	body.C600 #sheet.full_height > .sheet-outer > .sheet-close { right: auto; left: 0rem; }
27469
27470
27471
27472	body.C420:not(.narrow) #sheet {
27473		z-index: 1000000;
27474		height: calc( 100vh );
27475	}
27476
27477	body.C250:not(.narrow) #sheet {
27478		z-index: 1000000;
27479		height: calc( 100vh );
27480	}
27481
27482	body.C350:not(.narrow) #sheet {
27483		z-index: 1000000;
27484		height: calc( 100vh );
27485	}
27486
27487	body.C600:not(.narrow) #sheet {
27488		z-index: 1000000;
27489		height: calc( 100vh );
27490	}
27491
27492
27493
27494
27495
27496
27497	
27498	.T5634 #sheet {
27499		z-index: 99999999;
27500	}
27501
27502	#quickpreview_background {
27503		display: none;
27504		position: fixed;
27505		z-index: 100000000;
27506		width: 100vw;
27507		left: 0;
27508		right: 0;
27509		top: 0;
27510		/*	height: calc( 100vh - var(--nav-height) - max(env(safe-area-inset-bottom, 0px), var(--android-safe-bottom, 0px)) * 0.5 );*/
27511		height: 100vh;
27512		background-color: rgba(0,0,0,0.8);
27513		/*	pointer-events: none;*/
27514	}
27515
27516	#quickpreview {
27517		display: none;
27518		position: fixed;
27519		z-index: 100000001;
27520		width: calc(100% - 2rem);
27521		left: 1rem;
27522		top: calc( 1rem  + env(safe-area-inset-top) );
27523		height: calc(90% - max(env(safe-area-inset-bottom, 0px), var(--android-safe-bottom, 0px)) - env(safe-area-inset-top));
27524		background-color: #FFF;
27525		border-radius: 1rem;
27526		overflow: hidden;
27527		overflow-y: scroll;
27528		overscroll-behavior: contain !important;
27529		/*	pointer-events: none;*/
27530	}
27531
27532	body.wide #quickpreview {
27533		left: 50%;
27534    	transform: translateX(-50%);
27535	}
27536	body.extrawide #quickpreview {
27537		left: 50%;
27538    	transform: translateX(-50%);
27539	}
27540
27541	#quickpreview .quickpreview_head {
27542		display: flex;
27543		padding: 0.4rem 1.2rem;
27544	}
27545
27546	#quickpreview .quickpreview_head .nav-button {
27547		border: 1px solid #333;
27548		color: #333;
27549		padding: 0.1rem 0.7rem;
27550		cursor: pointer;
27551		border-radius: 0.3rem;
27552		width: 1.8rem;
27553		margin-right: 0.3rem;
27554		display: flex;
27555		justify-content: center;
27556		align-items: center;
27557	}
27558
27559	#quickpreview .quickpreview_head .nav-button:hover {
27560		border: 1px solid #000;
27561		color: #000;
27562	}
27563
27564	#quickpreview .quickpreview_head .nav-button.disabled {
27565		border: 1px solid #DDD;
27566		color: #DDD;
27567		cursor: not-allowed;
27568	}
27569
27570	#quickpreview .quickpreview_head .nav-button.disabled:hover {
27571		border: 1px solid #DDD;
27572		color: #DDD;
27573	}
27574
27575	#quickpreview .quickpreview_head .nav-button.next { margin-right: 0; }
27576
27577	#quickpreview .quickpreview_head .nav-item.name {
27578		width: calc( 100% - ( 1.8rem * 3 ) - ( 0.3rem * 3 ) );
27579		margin-right: 0.3rem;
27580		display: flex;
27581		align-items: center;
27582	}
27583
27584
27585
27586
27587	#quickpreview_background.show, #quickpreview.show {
27588		display: block;
27589	}
27590
27591	#quickpreview .quickpreview-item { display: none; }
27592	#quickpreview .quickpreview-item.active { display: block; }
27593
27594	#quickpreview .quickpreview-item img { width: 100%; height: auto; }
27595	#quickpreview .quickpreview-item iframe { width: 100%; height: auto; aspect-ratio: 16/9; }
27596	#quickpreview .quickpreview-item video { width: 100%; height: auto; }
27597	#quickpreview .quickpreview-item audio { width: 100%; height: auto; }
27598
27599	#quickpreview .quickpreview-item .media { margin-bottom: 1rem; }
27600	#quickpreview .quickpreview-item .media .default_image { display: flex; justify-content: center; align-items: center; aspect-ratio: 16/9;background-color: #333; }
27601
27602	#quickpreview .quickpreview-item .indented { margin-left: 1rem; margin-right: 1rem; }
27603
27604	#quickpreview .quickpreview-item .quickpreview_content_name {
27605		font-weight: bold;
27606	}
27607	#quickpreview .quickpreview-item .quickpreview_content_info {
27608		font-weight: 0.9rem;
27609	}
27610
27611
27612	body.map-opened #sheet { padding-top: 0; margin-top: 40vh; }
27613	body.map-opened #sheet.scroll { margin-top: 0; padding-top: 40vh; }
27614
27615
27616	#sheet.progress .sheet-inner {
27617		filter: blur(10px);
27618		pointer-events: none; 
27619	}
27620
27621	#sheet.open { top: 0vh; }
27622
27623	#sheet .sheet-outer {
27624		position: relative;
27625		min-height: 101%; 
27626		box-shadow: 0px 0px 60px 20px #0009;
27627		overflow: hidden;
27628		border-radius: 2rem 2rem 0 0;
27629		background-color: #fff;	
27630		margin: 0;
27631		/*	pointer-events: auto; */
27632	}
27633
27634	#sheet .qrcode canvas {
27635		aspect-ratio: 1 / 1;
27636		width: 100%;
27637		height: auto;
27638	}
27639
27640	@media screen and (min-width: 1000px) {
27641			
27642		#sheet  {
27643			background-image: none;
27644			padding-top: 10vh;
27645		}
27646
27647		body.map-opened #sheet { padding-top: 25vh; margin-top: 0; }
27648
27649		#sheet .sheet-outer {
27650			margin: 0 auto;
27651			width: 100%;
27652			max-width: 850px;
27653			box-shadow: 0px 100px 250px 80px rgba(0,0,0,0.7);
27654		}
27655		
27656
27657		#sheet .button_wrapper  {
27658			display: none !important; /* reorder */
27659		}
27660
27661		#quickpreview_background {
27662			width: 30rem;
27663			height: calc( 100vh - var(--nav-height) - max(env(safe-area-inset-bottom, 0px), var(--android-safe-bottom, 0px)) * 0.5 );
27664		}
27665
27666		body.wide #quickpreview_background { width: 100%; }
27667		body.extrawide #quickpreview_background { width: 100%; }
27668
27669		#quickpreview {
27670			top: 1rem;
27671			width: 60vw;
27672		}
27673	}
27674
27675
27676	#sheet .sheet-handle {
27677		width: 4rem;
27678		position: absolute;
27679		top: 1rem;
27680		left: calc( 50% - 2rem );
27681		background-color: #3337;
27682		border-radius: 0.4rem;
27683		height: 0.4rem;
27684		margin: -0.3rem auto 0.5rem auto;
27685		display: none;
27686		z-index: 200;
27687	}
27688
27689	#sheet .sheet-handle.show { display: block; }
27690
27691	#sheet.no_close_button > .sheet-outer > .sheet-close { display: none; }
27692	#sheet > .sheet-outer > .sheet-close {
27693		border-width: 0;
27694		cursor: pointer;
27695		z-index: 1000;
27696		width: 4rem;
27697		height: 4rem;
27698		position: absolute;
27699		top: 0rem;
27700		right: 0rem;
27701		background-color: rgba(0,0,0,0.001);
27702	}
27703
27704	#sheet > .sheet-outer > .sheet-close > div {
27705		background: rgba(0,0,0,1);
27706		border-radius: 50%;
27707		width: 60%;
27708		aspect-ratio: 1/1;
27709		text-align: center;
27710		line-height: 1.3;
27711		font-weight: bold;
27712		color: #fff;
27713		font-size: 1.4rem;
27714		margin: 20%;
27715		display: flex;
27716		align-items: center;
27717		justify-content: center;
27718	}
27719
27720
27721
27722
27723	#sheet .sheet-bilder {
27724		/* background-color: #ddd; */
27725		aspect-ratio: 5/3;
27726		position: relative;
27727	}
27728
27729
27730
27731	.sheet-bild {
27732		position: relative;
27733	}
27734
27735	.sheet-bild figure { margin: 0px; }
27736	.sheet-bild figure footer { margin: 0 1em 0 1.5em; padding:.3em .5em; font-size: 0.7em; color: #666; background:#fff; opacity:.75; position:absolute; bottom:20px; }
27737
27738
27739	.sheet-bild .counter {
27740		position:  absolute;
27741		right: 1.5rem;
27742		bottom: 1rem;
27743		font-size: 0.9rem;
27744		color:  #FFF;
27745		background-color: rgba(0,0,0,0.75);
27746		padding:  0.3rem 0.5rem;
27747	}
27748
27749	#sheet .sheet-bild img {
27750		width: 100%; 
27751		height: auto;
27752		aspect-ratio: 5/3;
27753		object-fit:cover;
27754		-webkit-user-drag: none;
27755		user-drag: none;  
27756		-webkit-user-select: none;
27757		user-select: none;
27758	}
27759
27760	#sheet .content {
27761		padding: 1.2rem var(--content-padding) 5rem var(--content-padding);
27762	}
27763
27764	#sheet .button_wrapper  {
27765		display: flex;
27766		justify-content: flex-end;
27767		margin:  0 1rem 2rem 0;
27768	}
27769
27770	#sheet .overlay-button {
27771		border-radius: 5rem;
27772		padding: 0.6rem 2rem;
27773		text-decoration: none;
27774		background-color: #666;
27775		color: #fff;
27776	}
27777
27778</style>
27779<div id="meta-cart" data-client="61367">
27780		
27781	<div class="meta-cart-inner">
27782
27783	</div>
27784
27785</div>
27786
27787<style>
27788
27789#meta-cart {
27790	position: fixed;
27791	z-index: 999999;
27792}
27793
27794#meta-cart .meta-cart-icon {
27795	display: none;
27796	cursor: pointer;
27797	position: fixed;
27798	width: 3em;
27799	right: calc( env(safe-area-inset-left) + 2em );
27800	transition: left 150ms ease-in-out;	
27801	bottom: calc( max(env(safe-area-inset-bottom, 0px), var(--android-safe-bottom, 0px)) + 3.5em );
27802	border-radius: 4em;
27803	aspect-ratio: 1;
27804	background: #fff;
27805	color: #000;
27806	box-shadow: 0.1em 0.1em 1.0em #0006;
27807	align-items: center;
27808	justify-content: center;
27809	z-index: 3000;
27810	transition: transform .1s ease-in-out;
27811}
27812
27813.meta-app #meta-cart .meta-cart-icon {
27814	bottom: calc( max(env(safe-area-inset-bottom, 0px), var(--android-safe-bottom, 0px)) + 6.5em );
27815}
27816
27817@media all and ( min-width: 1000px ) {
27818	#meta-cart .meta-cart-icon {
27819		font-size: 1.4em;
27820		right: calc( env(safe-area-inset-left) + 2em );
27821		bottom: calc( max( env(safe-area-inset-bottom, 0px), var(--android-safe-bottom, 0px)) + 2em );
27822	}
27823}
27824
27825.Mandant_62122 #meta-cart .meta-cart-icon {  
27826	right: auto;
27827	left: calc( env(safe-area-inset-left) + 2.7em );  
27828	bottom: calc( max(env(safe-area-inset-bottom, 0px), var(--android-safe-bottom, 0px)) + 3em );
27829}
27830.Mandant_62122 #meta-cart.open .meta-cart-icon { left: -4em; }
27831
27832.Mandant_420 #meta-cart.open .meta-cart-icon { left: -4em; }
27833
27834
27835#meta-cart .meta-cart-icon:hover {
27836	transform: scale(1.1);
27837}
27838
27839#meta-cart .meta-cart-icon.error {
27840	border: 2px solid #f33;
27841}
27842
27843#meta-cart .meta-cart-icon.filled {
27844	display:flex;
27845}	
27846
27847#meta-cart.open .meta-cart-icon { right: -4em; }
27848
27849
27850#meta-cart .meta-cart-icon .icon-shoppingbag {
27851	font-size: 1.6em;
27852}
27853
27854#meta-cart .meta-cart-digit {
27855	font-family: Arial, sans-serif !important;
27856	position: absolute;
27857	right: -0.2em;
27858	top: -0.2em;
27859	width: 1.5em;
27860	height: 1.5em;
27861	font-size: 0.8em;
27862	line-height: 1.5em;
27863	text-align: center;
27864	border-radius: 1em;
27865	color: #fff;
27866	background: #f33;
27867}
27868
27869
27870#meta-cart .meta-cart-content {
27871	max-height: 90vh;
27872	overflow: hidden;
27873	overflow-y: scroll;
27874	position: fixed;
27875	bottom: -100%; left: 0em; right: 0em;
27876	transition: bottom 150ms ease-in-out, height 150ms ease-in-out; 
27877	background: #fff;
27878	box-shadow: 0.1em -1.9em 12em #000c;
27879	border-radius: 2em 2em 0 0 ;
27880	padding: 1em 1em calc( max(env(safe-area-inset-bottom, 0px), var(--android-safe-bottom, 0px)) + 5em ) 1em;
27881}
27882
27883#meta-cart.open .meta-cart-content { bottom: 0%; }
27884#meta-cart.progress .meta-cart-content { filter: blur(4px); pointer-events: none; }
27885
27886@media all and ( min-width: 1000px ) {
27887	#meta-cart .meta-cart-content {
27888		width: 35em;
27889		left: auto;
27890		right: -100%;
27891		max-height: 100vh;
27892		bottom: 0%;
27893		height: 100vh;
27894		border-radius: 0;
27895		transition: right 150ms ease-in-out, height 150ms ease-in-out; 
27896	}
27897
27898	.C420 #meta-cart { z-index: 1000001;  }
27899	#meta-cart.open .meta-cart-content { right: 0%; }
27900}
27901
27902
27903
27904#meta-cart.open .meta-cart-close {
27905	cursor: pointer;
27906	position: absolute; right: 1em; top: 1em; width: 2em; height: 2em;
27907	display:flex; align-items: center; justify-content: center;
27908	line-height: 1; background: #666; color: #fff; 
27909	border-radius: 1.5em;
27910	transition: transform .1s ease-in-out;
27911}
27912
27913#meta-cart.open .meta-cart-close:hover {
27914	transform: scale(1.1);
27915}
27916
27917
27918
27919#meta-cart .meta-cart-headline {
27920	font-size: 1.5em;
27921	font-weight: bold;
27922	margin: 0 0 0.8em 0;
27923	text-align: center;
27924}
27925
27926#meta-cart .meta-cart-subheadline {
27927	font-size: 1.2em;
27928	font-weight: bold;
27929	margin: 1em 0 0.3em 0;
27930}
27931
27932#meta-cart .meta-cart-empty {
27933	margin: 1em 0;
27934	border: 1px dashed #ccc;
27935	padding: 4em; text-align: center;
27936}
27937
27938#meta-cart .meta-cart-info {
27939	margin: 1.5em 0;
27940	font-size: 0.85em;
27941	color: #777;
27942	text-align: center;
27943}
27944
27945#meta-cart .meta-cart-info-content a {
27946	color: #777;
27947	white-space: nowrap;
27948}
27949
27950#meta-cart .meta-cart-info-content p {
27951	margin: 0 0 0.3em 0;
27952}
27953
27954#meta-cart .meta-cart-info-label {
27955	font-weight: bold;
27956	color: #333;
27957	font-size: 0.9em;
27958	margin: 0.3em 0;
27959}
27960
27961#meta-cart .meta-cart-info-items {
27962	display: flex;
27963	justify-content: center;
27964	align-content: center;
27965	gap: 1em;
27966	margin: 1em 0 0 0;
27967}
27968
27969#meta-cart .meta-cart-info-item {
27970	display: flex;
27971	flex: 1;
27972	max-width: 6em;
27973	border-radius: 0.5em;
27974	text-align: center;
27975	font-size: 0.8em;
27976	border: 1px solid #e4e4e4;
27977	overflow: hidden;
27978	aspect-ratio: 1.6;
27979}
27980
27981#meta-cart .meta-cart-info-item img {
27982	filter: grayscale(1);
27983	display: block;
27984	width: 100%;
27985	height: auto;
27986}
27987
27988
27989
27990
27991
27992
27993
27994
27995
27996
27997
27998
27999#meta-cart .meta-cart-items { margin-bottom: 1em; border-bottom: 1px solid #ddd; }
28000
28001
28002#meta-cart .meta-cart-part { display: flex; justify-content: space-between; padding: 0.5em 0 0.2em 0; align-items: self-end; }
28003#meta-cart .meta-cart-part-headline { font-size: 0.8em; font-weight: bold; }
28004#meta-cart .meta-cart-part-partner { font-size: 0.7em; color: #777;}
28005
28006
28007#meta-cart .meta-cart-item { display: flex; justify-content: space-between; border-top: 1px solid #ddd; padding: 0.5em 0; }
28008
28009#meta-cart .meta-cart-item-image { flex: 2; margin-right: 0.7em; }
28010#meta-cart .meta-cart-item-image img { display: block; width: 100% !important; height: auto !important; border-radius: 50%; overflow: hidden;}
28011
28012#meta-cart .meta-cart-item-text { flex: 9;  margin-right: 0.5em; margin-top: 0.2em;   }
28013#meta-cart .meta-cart-item-name { font-size: 1em; line-height: 1.2; color: #000; margin-bottom: 0.1em;  }
28014
28015#meta-cart .meta-cart-item-line {
28016	text-overflow: clip;
28017	hyphenate-character: "";
28018	word-break: break-all;
28019	word-wrap: break-word;
28020	overflow-wrap: break-word;
28021	-webkit-hyphens: auto;
28022	-moz-hyphens: auto;
28023	hyphens: auto;
28024	display: -webkit-box;
28025	line-clamp: 1;
28026	-webkit-line-clamp: 1;
28027	-webkit-box-orient: vertical;
28028	overflow: hidden;
28029}
28030
28031#meta-cart .meta-cart-item-line tt { font-size: 1.4em; font-family: monospace !important; letter-spacing: 0.02em; }
28032
28033#meta-cart .meta-cart-item-info { font-size: 0.85em; line-height: 1.15; color: #666;  }
28034
28035#meta-cart .meta-cart-item-price { flex: 3; line-height: 1.15;  margin-top: 0.2em;  text-align: right; }
28036#meta-cart .meta-cart-item-price del { color: #F33; }
28037#meta-cart .meta-cart-item-zzgl { font-size: 0.8em; color: #777; line-height: 1.15; margin-top: 0.2em;  text-align: right; }
28038
28039#meta-cart .meta-cart-item-delete { flex: 1; cursor: pointer; background: #aaa; color: #fff; margin-left: 0.5em;  
28040	display:flex; align-items: center; justify-content: center; border-radius: 0.5em; }
28041#meta-cart .meta-cart-item-delete:hover { background: #999;  }
28042
28043#meta-cart .meta-cart-item-sum { text-align: right; border-top: 1px solid #ddd; padding-top: 0.2em; margin-bottom: 1em; }
28044#meta-cart .meta-cart-item-sum span { padding-left: 1em; border-top: 2px solid #333; font-weight: bold; }
28045
28046
28047
28048
28049.meta-cart-errors { margin: 1em 0; }
28050.meta-cart-error {
28051	margin-bottom: 0.1em;
28052	font-size: 0.85em;
28053	line-height: 1.2;
28054	color: #933;
28055	display: flex;
28056	align-items: flex-start;
28057	gap: 1.1em;
28058	margin-bottom: 1em;
28059}
28060.meta-cart-error:before {
28061	flex: 1;
28062	content: "\26A0";
28063	color: #A33;
28064	font-size: 1.1em;
28065	line-height: 1;
28066	max-width: 1em;
28067}
28068
28069
28070
28071
28072
28073
28074
28075#meta-cart .meta-cart-terms {
28076	border-radius: 0.5em;
28077	padding: 0.3em 1em 1em 1em;
28078	border: 1px solid #ddd;
28079	margin: 0.5em 0 1.5em 0;
28080	font-size: 0.85em;
28081	line-height: 1.2;
28082	color: #777;
28083}
28084
28085#meta-cart .meta-cart-terms h4  { margin: 0.5em 0 0.5em 0; }
28086
28087
28088
28089#meta-cart .meta-cart-paymodes {
28090	display: flex;
28091	justify-content: center;
28092	align-content: center;
28093	gap: 0.5em;
28094	flex-wrap: wrap;
28095	margin: 2em 0;
28096}
28097
28098#meta-cart .meta-cart-paymode {
28099	display: flex;
28100	min-width: 5em;
28101	max-width: 8em;
28102	border: 1px solid #ccc;
28103	border-radius: 0.5em;
28104	overflow: hidden;
28105	text-align: center;
28106	font-size: 0.8em;
28107	cursor: pointer;
28108	transition: transform .1s ease-in-out;
28109	flex: 1;
28110}
28111
28112#meta-cart .meta-cart-paymode.disabled {
28113	opacity: 0.35;
28114	filter: grayscale(1);
28115	cursor: auto;
28116}
28117
28118#meta-cart .meta-cart-paymode:not(.disabled):hover {
28119	border: 1px solid #666;
28120	transform: scale(1.03);
28121}
28122
28123#meta-cart .meta-cart-paymode img {
28124	display: block;
28125	width: 100%;
28126	height: auto;
28127}
28128
28129
28130
28131</style>
28132
28133
28134
28135<script>
28136
28137TraminoReady(function() {
28138
28139	loadCart();
28140
28141	$('#meta-cart').on('click', '.meta-cart-icon', function() { $('#meta-cart').addClass("open"); loadCart("","0"); } );
28142	$('#meta-cart').on('click', '.meta-cart-close', function(e) {
28143		e.stopImmediatePropagation();
28144		$('#meta-cart').removeClass("open");
28145	});
28146
28147	$('#meta-cart').on('click', '.meta-cart-button-close', function(e) {
28148		e.stopImmediatePropagation();
28149		e.preventDefault(); $('#meta-cart').removeClass("open");  
28150	});
28151
28152	$('#meta-cart').on( "click", "div.meta-cart-paymode[data-value]", function(e) {
28153		e.preventDefault();
28154		$("#meta-cart input[name=paymode]").val( $(this).data('value') );
28155		loadCart( "", "2" );
28156	});
28157
28158	$('#meta-cart').on( "click", "a.meta-cart-paymode", function(e) {
28159		console.log("a.meta-cart-paymode");
28160		
28161		if ( ! window.navigator.userAgent.match(/(android:application|ios:application)/) && $(this).hasClass("js_openframe") ) {
28162			e.preventDefault();
28163			console.log("openpaymentwindow");
28164			let url = $(this).attr("href");
28165			url += `&origin=${window.location}`;
28166			const paymentWindow = window.open(url, "_blank");
28167		}
28168
28169		loadCart( "", "3" );
28170	});
28171
28172	window.addEventListener("message", (event) => {
28173
28174		if ( event.origin !== "https://www.wurzelrudi.de" ) return;
28175
28176		if (event.data?.type === "SWITCH_PAYMENT_PROVIDER") {
28177			loadCart( "", "2" );
28178		}
28179
28180	});
28181
28182	$('#meta-cart').on( "click", ".meta-cart-submit", function(e) {
28183		e.preventDefault( "", "" );
28184		let do_jump = false;
28185		if ( $('#meta-cart').data("client") == 105 || $('#meta-cart').data("client") == 106 ) {
28186			do_jump = true;
28187		}
28188
28189		if ( $(this).hasClass("meta-cart-item-delete") ) {
28190			do_jump = false;
28191		}
28192
28193		if ( do_jump ) {
28194			window.location.href = window.location.origin + '/booking/?step=3';
28195		} else {
28196			loadCart( $(this).val() || $(this).data('value') || "", $(this).data('step') || "" );
28197		}
28198	});
28199
28200
28201});
28202
28203function isLocalStorageAvailable(){
28204	var test = 'test';
28205	try {
28206		localStorage.setItem(test, test);
28207		localStorage.removeItem(test);
28208		return true;
28209	} catch(e) {
28210		return false;
28211	}
28212}
28213
28214
28215async function loadCart( action, step ) {
28216
28217	console.log("--- loadCart", step)
28218
28219	let $cart = $('#meta-cart');
28220	$cart.addClass('progress');
28221
28222	if ( step != "" ) {
28223		$(".meta-cart-content input[name=step]").val( step );
28224	}
28225
28226	let session = $("body").data("session");
28227	if ( session == "" && isLocalStorageAvailable() ) {
28228		if ( localStorage.getItem("app_session") ) {
28229			session = localStorage.getItem("app_session");
28230		}
28231	}
28232
28233	let data = $(".meta-cart-form").serialize() + "&target=cart";
28234	if ( action ) data = data + "&action=" + action;
28235	if ( step && ! $(".meta-cart-form").length ) data = data + "&step=" + step;
28236	if ( session ) data = data + "&appsession=" + session;
28237	if ( localStorage.getItem("app_session") != null ) data = data + "&session=" + localStorage.getItem("app_session");
28238
28239	try {
28240		const response = await fetch( "https://wurzelrudi.tramino.de/api/dashboard/save/", {
28241			method: "POST",
28242			cache: "force-cache",
28243			headers: {
28244				"Content-Type": "application/javascript"
28245			},
28246			body: data
28247		});
28248
28249		if ( !response.ok ) {
28250			throw new Error( response.statusText || "Cart konnte nicht geladen werden" );
28251		}
28252
28253		const result = await response.json();
28254
28255		$cart.find(".meta-cart-inner").replaceWith( result.content );
28256		$cart.removeClass('progress');
28257
28258		return result;
28259
28260	} catch ( error ) {
28261		$cart.removeClass('progress');
28262		$cart.addClass('error');
28263		throw error;
28264	}
28265}
28266
28267</script>
28267
28268
28269
28270
28271
28272
28273
28274
28275	<div id="chat" data-lang="de" >
28276	
28277	<div class="chat-button">
28278		<div class="chat-icon">
28279			
28280			
28281
28282			
28283			
28284				<img src="https://storage.tramino.net/wurzelrudi/1546009/favicon-wurzelrudi.png" alt="Favicon-wurzelrudi"  title="Favicon-wurzelrudi"    loading="lazy"  />
28285			
28286		</div>
28287		
28288		<div class="chat-cta">Chat</div>
28289	</div>
28290	
28291	<div class="chat-popup">
28292		<div class="chat-close" aria-label="Chat schließen">&times;</div>
28293		<div class="chat-messages-outer">
28294			<div class="chat-messages">
28295			</div>
28296			
28297		</div>
28298		<div class="chat-input">
28299			<textarea aria-label="Eingabefeld Chat" placeholder="Stelle irgendeine Frage"></textarea>
28300			<div class="send_button" aria-label="Nachricht senden"><svg height="30" viewBox="0 0 30 30" width="30" xmlns="http://www.w3.org/2000/svg"><path d="m5 3a1 1 0 0 0 -1 1 1 1 0 0 0 .0371094.2675781 1 1 0 0 0 .0019531.0058594l.9609375 6.7265625-3 2 21 2-21 2 3 2-.9609375 6.728516a1 1 0 0 0 -.0390625.271484 1 1 0 0 0 1 1 1 1 0 0 0 .3867188-.080078l.0019531.001953.0429687-.021484.0214844-.009766a1 1 0 0 0 .0175781-.009766l21.9199219-10.958984.001953-.003906a1 1 0 0 0 .607422-.917969 1 1 0 0 0 -.609375-.919922 1 1 0 0 0 0-.001953h-.001953l-21.9101564-10.9550781a1 1 0 0 0 -.0898437-.0449219 1 1 0 0 0 -.3886719-.078125z"/></svg></div>
28301		</div>
28302	</div>
28303
28304</div>
28305
28306
28307<link rel="stylesheet" href="https://use.typekit.net/nuj1xhg.css">
28308
28309<style>
28310
28311	html {
28312		font-family: "acumin-pro", sans-serif !important;
28313		font-weight: 400;
28314		font-style: normal;
28315	}
28316
28317	html body .specialfont {
28318		font-size: 2.3em !important;
28319		font-family: "marvin", sans-serif !important;
28320		font-weight: 700;
28321		font-style: normal;
28322	}
28323
28324	html .T4120 .headline.specialfont {
28325		font-size: 5em !important;
28326		font-family: "marvin", sans-serif !important;
28327		font-weight: 400;
28328		font-style: normal;
28329	}
28330	
28331	
28332	@media (max-width: 768px) {
28333	
28334		html body .specialfont {
28335			font-size: 1.5em !important;
28336		}
28337	
28338		html .T4120 .headline.specialfont {
28339			font-size: 3em !important;
28340		}
28341	}
28342	
28343</style><div class="TraminoConsent overlay" data-page="151596" data-checksum="9789a1193c164c21b4b0dadc12b07d5a_v1" data-domain="wurzelrudi.de">
28344
28345
28346	
28347	<div class="background"></div>
28348	
28349	<div class="inner">
28350		<form action="#" class="">
28351
28352			<div class="screen first show">
28353				<div class="top">
28354					<div class="headline specialfont">Wir verwenden Cookies und andere Technologien.</div>
28355					<div class="info">
28356						Wir und unsere Partner verwenden Cookies und vergleichbare Technologien, um unsere Webseite optimal zu gestalten und fortlaufend zu verbessern. Dabei können personenbezogene Daten wie Browserinformationen erfasst und analysiert werden. Durch Klicken auf &#8222;Alle akzeptieren&#8220; stimmen Sie der Verwendung zu. Durch Klicken auf &#8222;Einstellungen&#8220; können Sie eine individuelle Auswahl treffen und erteilte Einwilligungen für die Zukunft widerrufen. Weitere Informationen erhalten Sie in unserer Datenschutzerklärung.
28357					</div>
28358				</div>
28359				<div class="bottom">
28360					<button type="submit" name="action" class="bgcolor" value="acceptConsentAll">Alle akzeptieren</button>
28361					<button type="submit" name="action" class="bgcolor" value="acceptConsent">Nur notwendige akzeptieren</button>
28362				</div>
28363				<div class="foot">
28364
28365					<span class="settings">Einstellungen</span>&nbsp;&nbsp;&middot;&nbsp;&nbsp;<a href="/datenschutz/">Datenschutzerklärung</a>&nbsp;&nbsp;&middot;&nbsp;&nbsp;<a href="/impressum/">Impressum</a>
28366					
28367				</div>
28368			</div>
28369			<div class="screen settings ">
28370				
28371				<span class="back"><i class="icon-arrow-left"></i>zurück</span>
28372				
28373				
28374					<div class="headline specialfont fontsize_large">Cookie- und Datenschutzeinstellungen</div>
28375				
28376				<div class="checkboxen">
28377					<div class="item">
28378						<label class="container">
28379							<span>Notwendig</span>
28380							<input type="checkbox" name="consent" value="essenziell" checked disabled>
28381							<span class="checkmark"></span>
28382						</label>
28383						<div class="info">
28384							Cookies die für den Betrieb der Webseite unbedingt notwendig sind. <a href="#" class="more color">weitere Details</a>
28385						</div>
28386						<div class="moreinfos">
28387							
28388							
28389							<div class="item">
28390
28391		
28392		<div class="head">Google Analytics</div>
28393		
28394
28395		<div class="table">
28396			
28397			<div class="row">
28398				<b>Verwendungszweck:</b> Cookies von Google für die Generierung statischer Daten zur Analyse des Website-Verhaltens. Dieser Anbieter kann Ihre personenbezogenen Daten außerhalb des EWR/der EU übertragen, speichern oder verarbeiten. Diese Länder haben möglicherweise nicht das gleiche Datenschutz
28398niveau und die Durchsetzung Ihrer Rechte kann eingeschränkt oder nicht möglich sein.<br/><br />
28399		<b>Anbieter:</b> Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland<br /><br />
28400		<b>Verwendete Technologien:</b> Cookies.<br/><br />
28401		<b>verwendete Cookies:</b>, <em>gat</em><strong>, <em>gid, _ga, _gat</em></strong>, _gid<br /><br />
28402		<b>verwendete Cookies:</b><br />
28403		<ul class="cookies">
28404			<li><b>_ga</b>: Speicherung der Sitzung eines Nutzers.</li>
28405			<li><b>_gid</b>: Speicherung der Sitzung eines Nutzers innerhalb eines Tages.</li>
28406			<li><b>_gat</b>: Speicherung der Performance-Daten der Sitzung eines Nutzers.</li>
28407		</ul>
28408		<b>Speicherdauer:</b> Die Cookies werden bis zu 730 Tage gespeichert.<br /><br />
28409		<b>Rechtsgrundlage:</b> Einwilligung (DSGVO 6.1.a)<br/><br />
28410		<b>Datenschutzhinweise:</b> <a href="https://policies.google.com/privacy?fg=1" target="_blank" title="Externer Link auf policies.google.com/privacy?fg=1, Sie verlassen diesen Internetauftritt" class="externlink"><span>https://policies.google.com/privacy?fg=1</span></a>
28411			</div>
28412			
28413			
28414		</div>
28415	</div>
28416	
28417	
28418	
28419	<div class="item">
28420
28421		
28422		<div class="head">Website</div>
28423		
28424
28425		<div class="table">
28426			
28427			<div class="row">
28428				<b>Verwendungszweck:</b> Unbedingt erforderliche Cookies gewährleisten Funktionen, ohne die Sie unsere Webseite nicht wie vorgesehen nutzen können.<br/><br />
28429	<b>Anbieter:</b> Diese Cookies werden von Wurzelrudi auf Basis des eingestezten Redaktionssystems Tramino angeboten.<br/><br />
28430	<b>verwendete Cookies:</b><br />
28431	<ul class="cookies">
28432		<li><b>TraminoCartSession</b>:Speicherung des Warenkorbs und der Gefällt-mir Angaben auf dieser Website.</li>
28433		<li><b>TraminoSession</b>: Speicherung der Sitzung eines Besuchers.</li>
28434		<li><b>Consent</b>: Speicherung Ihrer Entscheidung hinsichtlich der Verwendung der Cookies.</li>
28435	</ul>
28436	<b>Speicherdauer:</b> Die Cookies werden bis zu 1 Jahr gespeichert.<br/><br />
28437	<b>Rechtsgrundlage:</b> Berechtigtes Interesse (kein Opt-Out möglich) (DSGVO 6.1.f)<br/>
28438			</div>
28439			
28440			
28441		</div>
28442	</div>
28443						</div>
28444					</div>
28445					
28446					
28447					
28448
28449					
28450					
28451
28452					
28453
28454					
28455					
28456
28457
28458
28459					
28460					<div class="item">
28461						<label class="container">
28462							<span>Marketing/Statistik</span>
28463							<input type="checkbox" name="consent" value="marketing">
28464							<span class="checkmark"></span>
28465						</label>
28466						<div class="info">
28467							Cookies die wir benötigen um den Aufenthalt auf unserer Seite noch besser zugestalten. <a href="#" class="more color">weitere Details</a>
28468						</div>
28469						<div class="moreinfos">
28470							<div class="item">
28471
28472		
28473		<div class="head">Externer Videodienst YouTube</div>
28474		
28475
28476		<div class="table">
28477			
28478			<div class="row">
28479				<b>Verwendungszweck:</b> Cookies die benötigt werden um YouTube Videos auf der Webseite zu integrieren und vom Benutzer abgespielt werden können. Dieser Anbieter kann Ihre personenbezogenen Daten außerhalb des EWR/der EU übertragen, speichern oder verarbeiten. Diese Länder haben möglicherweise nicht das gleiche Datenschutzniveau und die Durchsetzung Ihrer Rechte kann eingeschränkt oder nicht möglich sein.<br /><br />
28480		<b>Anbieter:</b> Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland<br /><br />
28481		<b>verwendete Cookies:</b><br />
28482		<ul class="cookies">
28483			<li><b>VISITOR_INFO1_LIVE</b>: Speicherung der Performance-Parameter eines Nutzers.</li>
28484			<li><b>YSC</b>: Speicherung der Sitzung eines Nutzers für die Videointeraktion.</li>
28485			<li><b>PREF</b>: Speicherung der Nutzereinstellungen.</li>
28486			<li><b>IDE</b>: Speicherung für Werbung und Messung von Anzeigen.</li>
28487			<li><b>CONSENT</b>: Speicherung der Cookie-Einwilligung.</li>
28488		</ul>
28489		<b>Speicherdauer:</b> Die Cookies werden bis zu 179 Tage gespeichert.<br /><br />
28490		<b>Rechtsgrundlage:</b> Einwilligung (DSGVO 6.1.a)<br/><br />
28491		<b>Datenschutzerklärung:</b> <a href="https://policies.google.com/privacy?hl=de&amp;gl=de" target="_blank" title="Externer Link auf policies.google.com/privacy?hl=de&amp;gl=de, Sie verlassen diesen Internetauftritt" class="externlink"><span>https://policies.google.com/privacy?hl=de&amp;gl=de</span></a>
28492			</div>
28493			
28494			
28495		</div>
28496	</div>
28497	
28498	
28499	
28500	<div class="item">
28501
28502		
28503		<div class="head">Externer Videodienst Vimeo</div>
28504		
28505
28506		<div class="table">
28507			
28508			<div class="row">
28509				<b>Verwendungszweck:</b> Cookies die benötigt werden um Vimeo Videos auf der Webseite zu integrieren und vom Benutzer abgespielt werden können. Dieser Anbieter kann Ihre personenbezogenen Daten außerhalb des EWR/der EU übertragen, speichern oder verarbeiten. Diese Länder haben möglicherweise nicht das gleiche Datenschutz
28509niveau und die Durchsetzung Ihrer Rechte kann eingeschränkt oder nicht möglich sein.<br /><br />
28510		<b>Anbieter:</b> Vimeo.com, Inc., 330 West 34th Street, 5th Floor, New York 10001, USA<br /><br />
28511		<b>verwendete Cookies:</b><br />
28512		<ul class="cookies">
28513			<li><b>vuid</b>: Speicherung der Sitzung eines Nutzers.</li>
28514			<li><b>player</b>: Speicherung der Nutzereinstellungen am Player.</li>
28515			<li><b>_abexps</b>: Speicherung von Informatioenbei A/B-Tests zur Optimierung des Players.</li>
28516			<li><b>continous_play_v3</b>: Speicherung von Player-Einstellungen.</li>
28517		</ul>
28518		<b>Speicherdauer:</b> Die Cookies werden bis zu 1 Jahr gespeichert.<br /><br />
28519		<b>Rechtsgrundlage:</b> Einwilligung (DSGVO 6.1.a)<br/><br />
28520		<b>Datenschutzerklärung:</b> <a href="https://vimeo.com/privacy" target="_blank" title="Externer Link auf vimeo.com/privacy, Sie verlassen diesen Internetauftritt" class="externlink"><span>https://vimeo.com/privacy</span></a>
28521			</div>
28522			
28523			
28524		</div>
28525	</div>
28526						</div>
28527					</div>
28528				</div>
28529				
28530				<div class="bottom">
28531					<button type="submit" name="action" class="bgcolor" value="acceptConsentAll">Alle akzeptieren</button>
28532					<button type="submit" name="action" class="bgcolor" value="acceptConsent">Einstellungen speichern</button>
28533				</div>
28534				<div class="foot">
28535					<a href="/datenschutz/">Datenschutzerklärung</a>&nbsp;&nbsp;&middot;&nbsp;&nbsp;<a href="/impressum/">Impressum</a>
28536				</div>
28537			</div>
28538		</form>
28539	</div>
28540</div>
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550<style>
28551.disable-scroll { overflow: hidden !important; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; position: fixed !important; left: 0; right: 0; }
28552
28553
28554.TraminoConsent {
28555	font-size: 14px;
28556}
28557
28558.TraminoConsent.overlay { display: none; }
28559
28560.TraminoConsent.show {
28561	display: flex;
28562	justify-content: center;
28563	align-items: center;
28564	opacity: 1;
28565    z-index: 1000;
28566}
28567
28568.TraminoConsent.hide { display: none; !important; }
28569
28570.TraminoConsent.overlay .background {
28571	position: fixed;
28572	top: 0;
28573	left: 0;
28574	right: 0;
28575	bottom: 0;
28576	z-index: 10002;
28577	background-color: rgba(0,0,0,0.3);
28578	
28579}
28580
28581.TraminoConsent.overlay .inner {
28582	width: auto;
28583	max-height: 90%;
28584	overflow-y: scroll;
28585	position: fixed;
28586	bottom: 2em;
28587	left: 1em;
28588	right: 1em;
28589
28590	z-index: 10003;
28591	background-color: #FFF;
28592	padding: 1.2em 1em;
28593	box-shadow: 0 0 10px rgba(0,0,0,.4);
28594	border-radius: 5px;
28595}
28596
28597.Mandant_800 .TraminoConsent.overlay .inner { z-index: 10000003; }
28598.Mandant_800 .TraminoConsent.overlay .background { z-index: 10000002; }
28599
28600
28601.TraminoConsent.include .inner { width: 100%; }
28602
28603.TraminoConsent .screen { display: none; }
28604.TraminoConsent .screen.show { display: block; }
28605
28606/* Einstellung wenn auf der Seite die Einstellungen geöffnet werden */
28607.TraminoConsent.settingonly .back { display: none; }
28608.TraminoConsent.settingonly .inner .bottom button { background-color: #257832; color: #FFF !important; }
28609.TraminoConsent.settingonly .inner .bottom button:hover { background-color: #35a847; }
28610.TraminoConsent.settingonly .inner .bottom button[value=acceptConsentAll] { display: none; }
28611
28612.TraminoConsent .headline { font-size: 1.65em; color: #333 !important; margin-bottom: 0.3em; }
28613
28614.TraminoConsent .info { color: #333 !important; line-height: 1.4; }
28615body .TraminoConsent .info * { color: #333; }
28616body .TraminoConsent .info a { color: #333 !important; }
28617
28618.TraminoConsent .inner .checkboxen .item {
28619	margin: 20px 0 20px 0;
28620}
28621
28622.TraminoConsent .inner .checkboxen .moreinfos {
28623	margin: 10px 0;
28624	display: none;
28625}
28626.TraminoConsent .inner .checkboxen .moreinfos.show {
28627	display: block;
28628}
28629
28630.TraminoConsent .inner .checkboxen .moreinfos .head { font-size: 1.3em; margin-bottom: 5px; }
28631
28632.TraminoConsent .inner .checkboxen .moreinfos .table { width: 100%; }
28633.TraminoConsent .inner .checkboxen .moreinfos .table .row p { margin: 0 0 1em 0; }
28634
28635.TraminoConsent .table  { color: #333; line-height: 1.4; }
28636.TraminoConsent .table  a { color: #333; }
28637
28638.TraminoConsent .row ul.cookies { margin: 0; padding:10px 0; font-size: 0.85em; }
28639.TraminoConsent .row ul.cookies li { margin: 0 0 2px; list-style: none; background:#fff; color:#333;padding:5px 10px; }
28640
28641
28642/* Buttons */
28643
28644.TraminoConsent .inner .bottom {
28645	margin: 1.5em 0 0 0;
28646	display: flex;
28647	justify-content: flex-end;
28648	flex-direction: column;
28649}
28650
28651.TraminoConsent .inner .bottom button {
28652	display: flex;
28653	align-items: center;
28654	justify-content: center;
28655	border-width: 0;
28656	font-size: 1em;
28657	width: 100%;
28658	padding: 1rem 0;
28659	border-radius: 3px;
28660	margin-bottom: 10px;
28661	cursor: pointer;
28662	order: 2;
28663}
28664
28665.TraminoConsent .inner .bottom button i {
28666	font-size: 1.5em;
28667	margin-right: 10px;
28668}
28669
28670.TraminoConsent .inner .bottom button:last-child { margin-bottom: 0; }
28671
28672/* Hover Buttons */
28673.TraminoConsent .inner .bottom button:hover { 
28674		filter: brightness(1.4);
28675}
28676
28677
28678
28679.TraminoConsent .inner .foot {  margin-top: 1em; padding-top: 0.6em; border-top: 1px solid #DDD; text-align: right; font-size: 0.85em; cursor: pointer; }
28680.TraminoConsent .inner .foot a, .TraminoConsent .inner .foot span { color: #000; text-decoration: none; }
28681.TraminoConsent .inner .foot a:hover, .TraminoConsent .inner .foot span:hover { text-decoration: underline; }
28682
28683.TraminoConsent .inner .foot .debug {
28684	font-size: 1.1rem;
28685	color: #333;
28686	margin-top: 0.2rem;
28687}
28688
28689/* Checkbox */
28690.container {
28691  display: block;
28692  position: relative;
28693  padding-left: 35px;
28694  margin-bottom: 12px;
28695  cursor: pointer;
28696  font-size: 22px;
28697  -webkit-user-select: none;
28698  -moz-user-select: none;
28699  -ms-user-select: none;
28700  user-select: none;
28701}
28702
28703.container span { color: #333 !important; }
28704
28705/* Hide the browser's default checkbox */
28706.container input {
28707  position: absolute;
28708  opacity: 0;
28709  cursor: pointer;
28710  height: 0;
28711  width: 0;
28712}
28713
28714/* Create a custom checkbox */
28715.TraminoConsent .checkmark {
28716  position: absolute;
28717  top: 0;
28718  left: 0;
28719  height: 25px;
28720  width: 25px;
28721  background-color: #FFF;
28722  border: 2px solid  #b52121;
28723  border-radius: 2px
28724}
28725
28726/* On mouse-over, add a grey background color */
28727.TraminoConsent .container:hover input ~ .checkmark {
28728  background-color: #fff;
28729  border-color: #257832;
28730}
28731
28732/* When the checkbox is checked, add a blue background */
28733.TraminoConsent .container input:checked ~ .checkmark {
28734  background-color: #257832;
28735  border-color: #257832;
28736}
28737
28738
28739.TraminoConsent .container input:disabled ~ .checkmark {
28740  background-color: #ddd;
28741  border-color: #ddd;
28742}
28743
28744/* Create the checkmark/indicator (hidden when not checked) */
28745.TraminoConsent .checkmark:after {
28746  content: "";
28747  position: absolute;
28748  display: none;
28749}
28750
28751/* Show the checkmark when checked */
28752.TraminoConsent .container input:checked ~ .checkmark:after {
28753  display: block;
28754}
28755
28756/* Style the checkmark/indicator */
28757.TraminoConsent .container .checkmark:after {
28758  left: 8px;
28759  top: 4px;
28760  width: 4px;
28761  height: 8px;
28762  border: solid white;
28763  border-width: 0 3px 3px 0;
28764  -webkit-transform: rotate(45deg);
28765  -ms-transform: rotate(45deg);
28766  transform: rotate(45deg);
28767} 
28768
28769@media (min-width: 567px) {
28770	.TraminoConsent { font-size: 16px; }
28771	.TraminoConsent.overlay .inner {
28772		width: 80%;
28773		max-width: none;
28774		top: 50%;
28775		bottom: auto;
28776		left: 50%;
28777		right: auto;
28778		transform: translate(-50%, -50%);
28779		padding: 1.2em 1.5em;
28780	}
28781	.TraminoConsent .headline { font-size: 1.9em; margin-bottom: 0.5em; }
28782
28783	.TraminoConsent .inner .checkboxen > .item { margin-right: 0.8em; }
28784	.TraminoConsent .inner .checkboxen > .item:last-child { margin-right: 0; }
28785
28786	.TraminoConsent .inner .moreinfos .item {
28787		border-top: 2px solid #ddd;
28788		padding: 10px;
28789		background: #eee;
28790	}
28791	
28792	.TraminoConsent .inner .bottom {
28793		flex-direction: row;
28794	}
28795
28796	.TraminoConsent .inner .bottom button{ width: auto !important; margin-bottom: 0; padding-left: 3rem; padding-right: 3rem;}
28797	.TraminoConsent .inner .bottom button[value=acceptConsent] { order: 1;}
28798	.TraminoConsent .inner .bottom button[value=acceptConsentAll] { order: 2; margin-left: 0.8em;  }
28799}
28800
28801@media (min-width: 768px) {
28802
28803	.TraminoConsent.overlay .inner {
28804		width: 70%;
28805		padding: 1.2em 2em;
28806	}
28807
28808
28809
28810}
28811
28812@media (min-width: 1024px) {
28813	.TraminoConsent.overlay .inner {
28814		width: 60%;
28815		max-width: 800px;
28816	}
28817}
28818
28819@media (min-width: 1280px) {
28820
28821}
28822
28823
28824</style>
28825
28826<script>
28827"use strict";
28828	
28829
28830	var last_scroll_pos = null;
28831
28832	function inIframe () {
28833		try {
28834			return window.self !== window.top;
28835		} catch (e) {
28836			return true;
28837		}
28838	}
28839
28840	let sendConsent = false;
28841	let sendConsentLock = false;
28842	let stop_flag = false;
28843
28844
28845
28846	let consentHide = function( consent ) {
28847		consent.classList.remove(".show");
28848		consent.classList.add(".hide");
28849
28850	}
28851
28852	let consent = document.querySelector('.TraminoConsent');
28853	let body = document.querySelector('body');
28854
28855
28856	if ( ! navigator.cookieEnabled ) {
28857		consentHide( consent );
28858		stop_flag = true; 
28859	}
28860
28861	// Hide Consent in iframe &amp; safari
28862	if ( inIframe() && navigator.userAgent.match("Safari") ) {
28863		consentHide( consent );
28864		stop_flag = true;
28865	}
28866
28867	// Hide Consent in iframe & App Webview
28868	if ( inIframe() && navigator.userAgent.match("iPhone") && navigator.userAgent.match("AppleWebKit") && navigator.userAgent.match("Mobile/") ) {
28869		consentHide( consent );
28870		stop_flag = true;
28871	}
28872
28873	// Hide Consent in Lighthousetest
28874	if ( navigator.userAgent.match("Chrome-Lighthouse") ) {
28875		consentHide( consent );
28876		stop_flag = true;
28877	}
28878
28879	// Hide Consent in Sitesucker
28880	if ( navigator.userAgent.match("SiteSucker") ) {
28881		consentHide( consent );
28882		stop_flag = true;
28883	}
28884
28885
28886	if ( consent.querySelector('.debug') !== null ) {
28887		consent.querySelector('.debug').innerHTML = navigator.userAgent;
28888
28889	}
28890
28891
28892	var cookies_temp = document.cookie.split(";")
28893	var cookies = {};
28894	for (var i = 0; i < cookies_temp.length; i++) {
28895		var temp = cookies_temp[i].split("=");
28896		if ( temp[0] !== undefined && temp[1] !== undefined ) 
28897		cookies[temp[0].trim()] = temp[1].trim();
28898
28899	}
28900
28901	
28902  function setGoogleConsent(consent) {
28903    const consentMode = {
28904      'functionality_storage': consent.necessary ? 'granted' : 'denied',
28905      'security_storage': consent.necessary ? 'granted' : 'denied',
28906      'ad_storage': consent.marketing ? 'granted' : 'denied',
28907      'ad_user_data': consent.marketing ? 'granted' : 'denied',
28908      'ad_personalization': consent.marketing ? 'granted' : 'denied',
28909      'analytics_storage': consent.analytics ? 'granted' : 'denied',
28910      'personalization_storage': consent.preferences ? 'granted' : 'denied',
28911    };
28912    gtag('consent', 'update', consentMode);  
28913    // localStorage.setItem('consentMode', JSON.stringify(consentMode));
28914  }
28915  
28916
28917
28918	let consentPing = function(s) {
28919
28920		var xhttp = new XMLHttpRequest();
28921		xhttp.onreadystatechange = function() {
28922			if (this.readyState == 4 && this.status == 200) {
28923				console.log("success: consent ping");
28924			} else if ( this.readyState == 4 && this.status == 500 ) {
28925				console.log("error: consent ping");
28926			}
28927		};
28928
28929		let url = "/api/consent/ping/";
28930		url += "?p=" + consent.dataset.page;
28931		url += "&s=" + s;
28932
28933		xhttp.open("GET", url, true);
28934		xhttp.send();
28935
28936	}
28937
28938	let sendPing = function() {
28939		if ( sendConsent === true ) {
28940			return;
28941		}
28942
28943		if ( sendConsentLock === true ) {
28944			return;
28945		}
28946
28947		sendConsentLock = true;
28948
28949
28950		consentPing("1");
28951
28952	}
28953
28954
28955
28956	var showConsentBanner = function() {
28957		last_scroll_pos = window.scrollY;
28958		body.classList.add('disable-scroll');
28959		consent.classList.add('show');
28960
28961		// Tracking Initalisieren
28962		addEventListener("mousemove", (event) => { sendPing() });
28963		addEventListener("touchstart", (event) => { sendPing() });
28964
28965	}
28966
28967	var closeConsentBanner = function() {
28968		
28969		body.classList.remove('disable-scroll');
28970		consent.classList.remove('show');
28971
28972		if ( last_scroll_pos !== null ) {
28973			
28974			window.scroll({
28975				top: last_scroll_pos,
28976				left: 0,
28977				behavior: 'smooth'
28978			});
28979
28980			last_scroll_pos = null;
28981			
28982		}
28983
28984	}
28985
28986	var checkCheckbox = function() {
28987
28988		if ( document.cookie.match("Consent="+ consent.dataset.checksum)  ) {
28989			consent.querySelector('.checkboxen input[value=marketing]').checked = true;
28990		}
28991
28992	}
28993
28994	// window.tcookies = cookies;
28995
28996	//  Consent banner anzeigen
28997	if ( consent.classList.contains('overlay') ) {
28998
28999		var needaction = true;
29000		
29001		if ( cookies.Consent == 0 ) {
29002			needaction = false;
29003		}
29004
29005		if ( cookies.Consent == consent.dataset.checksum && consent.dataset.checksum !== undefined ) {
29006			needaction = false;
29007		}
29008
29009		if ( cookies.Consent != undefined && cookies.Consent != 0 && cookies.Consent == consent.dataset.checksum  ) {
29010			needaction = false;
29011		}
29012
29013
29014		if ( needaction && stop_flag === false ) {
29015			
29016			window.addEventListener("load", function(){
29017				setTimeout(showConsentBanner,750);
29018			});
29019		}
29020
29021	}
29022
29023	if ( consent.classList.contains('include') ) {
29024		checkCheckbox();
29025	}
29026
29027	var showScreen = function(type) {
29028		
29029		if ( type === undefined )
29030			return;
29031
29032		let allScreens = consent.querySelectorAll('.screen');
29033		for (var i = 0; i < allScreens.length; i++) {
29034			allScreens[i].classList.remove('show');
29035		}
29036		
29037		consent.querySelector('.screen.' + type).classList.add('show');
29038
29039	}
29040
29041
29042	consent.querySelector('.screen.first .settings').addEventListener('click', function(event) {
29043		event.preventDefault();
29044		showScreen("settings");
29045	});
29046
29047	if ( consent.querySelector('.screen.settings .back') != null ){
29048		consent.querySelector('.screen.settings .back').addEventListener('click',function(event) {
29049			event.preventDefault();
29050			showScreen("first");
29051		});
29052	}
29053
29054	let allmorebuttons = consent.querySelectorAll('.screen.settings .more');
29055	for (var i = 0; i < allmorebuttons.length; i++) {
29056		
29057		allmorebuttons[i].addEventListener('click', function(event) {
29058			event.preventDefault();
29059			let item = this.closest('.item');
29060			item.querySelector('.moreinfos').classList.toggle('show');
29061		});
29062
29063	}
29064
29065
29066
29067	let allSetting1Buttons = document.querySelectorAll('[data-openConsentSetttings="1"]');
29068	for (var i = 0; i < allSetting1Buttons.length; i++) {
29069		allSetting1Buttons[i].addEventListener('click', function(event) {
29070			event.preventDefault();
29071
29072			showConsentBanner();
29073
29074		});
29075	}
29076	let allSetting2Buttons = document.querySelectorAll('[data-openConsentSetttings="2"]');
29077	for (var i = 0; i < allSetting2Buttons.length; i++) {
29078		allSetting2Buttons[i].addEventListener('click', function(event) {
29079			event.preventDefault();
29080
29081			showConsentBanner();
29082
29083			showScreen("settings");
29084			checkCheckbox();
29085			consent.classList.add('settingonly');
29086		
29087		});
29088	}
29089
29090	let allacceptButtons = consent.querySelectorAll('button[value="acceptConsent"]');
29091	for (var i = 0; i < allacceptButtons.length; i++) {
29092
29093		allacceptButtons[i].addEventListener('click', function(event) {
29094			event.preventDefault();
29095
29096			if ( consent.querySelector('.checkboxen input[value=marketing]').checked ) {
29097				
29098				consentPing("3");
29099				window.dataLayer = window.dataLayer || []
29100				
29101				setGoogleConsent({
29102					necessary: true,
29103					analytics: true,
29104					preferences: true,
29105					marketing: true
29106				});
29107				
29108				dataLayer.push({
29109					'event': 'TraminoConsentUpdate',
29110					'value': '3'
29111				});
29112				window.releaseConsentBuffer();
29113				window.releaseInlineBlocks();
29114				localStorage.setItem("consentPermission","true");
29115				window.setConsentCookie( consent.dataset.checksum )
29116			} else {
29117				consentPing("2");
29118				localStorage.setItem("consentPermission","false");
29119				
29120				setGoogleConsent({
29121					necessary: false,
29122					analytics: false,
29123					preferences: false,
29124					marketing: false
29125				});
29126				
29127				window.setConsentCookie( 0 )		
29128			}
29129
29130			closeConsentBanner();
29131
29132			console.log("TraminoConsent",localStorage.getItem("consentPermission"));
29133			
29134		});
29135	}
29136
29137	let allacceptAllButtons = consent.querySelectorAll('button[value="acceptConsentAll"]');
29138	for (var i = 0; i < allacceptAllButtons.length; i++) {
29139		allacceptAllButtons[i].addEventListener('click', function(event) {
29140			event.preventDefault();
29141
29142			consentPing("3");
29143			
29144			setGoogleConsent({
29145				necessary: true,
29146				analytics: true,
29147				preferences: true,
29148				marketing: true
29149			});
29150			
29151			
29152			window.dataLayer = window.dataLayer || []
29153			dataLayer.push({
29154				 'event': 'TraminoConsentUpdate',
29155				 'value': '3'
29156			});
29157			window.releaseConsentBuffer();
29158			window.releaseInlineBlocks();
29159
29160			localStorage.setItem("consentPermission","true");
29161			window.setConsentCookie( consent.dataset.checksum )
29162			closeConsentBanner();
29163			
29164		});
29165	}
29166
29167
29168
29169</script>
29169
29170
29171</div>
29172
29173
29174		
29174<script>if ( typeof window.checkReleaseConsent == "function" ) { window.checkReleaseConsent(); }</script>
29174
29175	
29176
29177<script type="application/ld+json">{"@graph":[{"name":"Wurzelrudi","url":"https://www.wurzelrudi.de","@type":"WebSite","description":"","inLanguage":"de-DE"},{"about":{"name":"Wurzelrudi","@type":"Organization","url":"https://www.wurzelrudi.de"},"description":"Sommerabenteuer f\u00fcr Familien in Eibenstock: Bobbahn, Reifenrutsche, Freche Flitzer, Seedorf, Tiere, Spielpl\u00e4tze und Natur entdecken.","@type":"WebPage","url":"https://www.wurzelrudi.de/sommer/","name":"Sommer bei Wurzelrudis Erlebniswelt in Eibenstock"},{"url":"https://www.wurzelrudi.de","email":"[email protected]","name":"Wurzelrudi","telephone":"+49 37752 694 92","geo":{"latitude":50.490119934082,"longitude":12.5970544815063,"@type":"GeoCoordinates"},"sameAs":["https://www.facebook.com/Wurzelrudis.Erlebniswelt","https://x.com/Wurzelrudis","https://www.instagram.com/wurzelrudis_erlebniswelt/"],"@type":"LocalBusiness","address":{"postalCode":"08309","@type":"PostalAddress","addressLocality":"Eibenstock","streetAddress":"Bergstra\u00dfe 7","addressCountry":"DE"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"image":"https://storage.tramino.net/wurzelrudi/1545865/ausblick.jpg","name":"Wurzelrudis Erlebniswelt","@id":"https://www.wurzelrudi.de/"}},{"position":2,"@type":"ListItem","item":{"image":"https://storage.tramino.net/wurzelrudi/1605601/freude-beim-rodeln-mit-mutter-kind-sommer-1200.jpg?r=1","name":"Wurzelrudis Erlebniswelt","@id":"https://www.wurzelrudi.de/sommer/"}}]}],"@context":"https://schema.org"}</script>
29177
29178</body>
29179</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.