1<!DOCTYPE html><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><link rel="pingback" href="https://barbaralicious.com/xmlrpc.php" /> <!--[if lt IE 9]>
1<script src="https://barbaralicious.com/wp-content/themes/Divi/js/html5.js" type="text/javascript"></script>
1 <![endif]-->
1<script type="text/javascript">document.documentElement.className = 'js';</script>
1 <link media="all" href="https://barbaralicious.com/wp-content/cache/autoptimize/css/autoptimize_88aa23a452da5dcaf701423623ed8e7d.css" rel="stylesheet"><title>Barbaralicious Blog | Barbaralicious</title><meta name="description" content="Hier findest du alle Blogbeiträge, die ich je geschrieben habe. In der Kategorie Blog sind die Posts chronologisch und nicht thematisch geordnet."/><meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/><link rel="canonical" href="https://barbaralicious.com/blog/" /><meta property="og:locale" content="de_DE" /><meta property="og:type" content="article" /><meta property="og:title" content="Barbaralicious Blog | Barbaralicious" /><meta property="og:description" content="Hier findest du alle Blogbeiträge, die ich je geschrieben habe. In der Kategorie Blog sind die Posts chronologisch und nicht thematisch geordnet." /><meta property="og:url" content="https://barbaralicious.com/blog/" /><meta property="og:site_name" content="Barbaralicious" /><meta property="article:publisher" content="https://www.facebook.com/BarbaraliciousBlog" /><meta property="og:updated_time" content="2024-09-10T11:26:34+02:00" /><meta property="og:image" content="https://barbaralicious.com/wp-content/uploads/2021/05/Barbara-Steg-Bulgarien-840x560.jpg" /><meta property="og:image:secure_url" content="https://barbaralicious.com/wp-content/uploads/2021/05/Barbara-Steg-Bulgarien-840x560.jpg" /><meta property="og:image:width" content="840" /><meta property="og:image:height" content="560" /><meta property="og:image:alt" content="Barbara Steg Bulgarienurlaub" /><meta property="og:image:type" content="image/jpeg" /><meta property="article:published_time" content="2016-08-24T11:21:56+02:00" /><meta property="article:modified_time" content="2024-09-10T11:26:34+02:00" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="Barbaralicious Blog | Barbaralicious" /><meta name="twitter:description" content="Hier findest du alle Blogbeiträge, die ich je geschrieben habe. In der Kategorie Blog sind die Posts chronologisch und nicht thematisch geordnet." /><meta name="twitter:site" content="@BBarbaralicious" /><meta name="twitter:creator" content="@BBarbaralicious" /><meta name="twitter:image" content="https://barbaralicious.com/wp-content/uploads/2021/05/Barbara-Steg-Bulgarien-840x560.jpg" /><meta name="twitter:label1" content="Lesedauer" /><meta name="twitter:data1" content="3 Minuten" />
1<script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://barbaralicious.com/#organization","name":"Barbaralicious","sameAs":["https://www.facebook.com/BarbaraliciousBlog","https://twitter.com/BBarbaralicious"],"logo":{"@type":"ImageObject","@id":"https://barbaralicious.com/#logo","url":"https://barbaralicious.com/wp-content/uploads/2020/06/Favicon-Hummingbird.jpg","contentUrl":"https://barbaralicious.com/wp-content/uploads/2020/06/Favicon-Hummingbird.jpg","caption":"Barbaralicious","inLanguage":"de","width":"500","height":"500"}},{"@type":"WebSite","@id":"https://barbaralicious.com/#website","url":"https://barbaralicious.com","name":"Barbaralicious","publisher":{"@id":"https://barbaralicious.com/#organization"},"inLanguage":"de"},{"@type":"ImageObject","@id":"https://barbaralicious.com/wp-content/uploads/2021/05/Barbara-Steg-Bulgarien.jpg","url":"https://barbaralicious.com/wp-content/uploads/2021/05/Barbara-Steg-Bulgarien.jpg","width":"2048","height":"1365","caption":"Barbara Steg Bulgarienurlaub","inLanguage":"de"},{"@type":"BreadcrumbList","@id":"https://barbaralicious.com/blog/#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://barbaralicious.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@id":"https://barbaralicious.com/blog/","name":"Barbaralicious Blog"}}]},{"@type":"WebPage","@id":"https://barbaralicious.com/blog/#webpage","url":"https://barbaralicious.com/blog/","name":"Barbaralicious Blog | Barbaralicious","datePublished":"2016-08-24T11:21:56+02:00","dateModified":"2024-09-10T11:26:34+02:00","isPartOf":{"@id":"https://barbaralicious.com/#website"},"primaryImageOfPage":{"@id":"https://barbaralicious.com/wp-content/uploads/2021/05/Barbara-Steg-Bulgarien.jpg"},"inLanguage":"de","breadcrumb":{"@id":"https://barbaralicious.com/blog/#breadcrumb"}},{"@type":"Person","@id":"https://barbaralicious.com/author/barbara/","name":"Barbara","url":"https://barbaralicious.com/author/barbara/","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/6f40e88e1bcca3b20a3c3bfaee6d7348e33cfab81d13a4204176a076b0e7ccb1?s=96&d=mm&r=g","url":"https://secure.gravatar.com/avatar/6f40e88e1bcca3b20a3c3bfaee6d7348e33cfab81d13a4204176a076b0e7ccb1?s=96&d=mm&r=g","caption":"Barbara","inLanguage":"de"},"worksFor":{"@id":"https://barbaralicious.com/#organization"}},{"@type":"Article","headline":"Barbaralicious Blog | Barbaralicious","keywords":"blog","datePublished":"2016-08-24T11:21:56+02:00","dateModified":"2024-09-10T11:26:34+02:00","author":{"@id":"https://barbaralicious.com/author/barbara/","name":"Barbara"},"publisher":{"@id":"https://barbaralicious.com/#organization"},"description":"Hier findest du alle Blogbeitr\u00e4ge, die ich je geschrieben habe. In der Kategorie Blog sind die Posts chronologisch und nicht thematisch geordnet.","name":"Barbaralicious Blog | Barbaralicious","@id":"https://barbaralicious.com/blog/#richSnippet","isPartOf":{"@id":"https://barbaralicious.com/blog/#webpage"},"image":{"@id":"https://barbaralicious.com/wp-content/uploads/2021/05/Barbara-Steg-Bulgarien.jpg"},"inLanguage":"de","mainEntityOfPage":{"@id":"https://barbaralicious.com/blog/#webpage"}}]}</script>
1 <link rel="alternate" type="application/rss+xml" title="Barbaralicious » Feed" href="https://barbaralicious.com/feed/" /><link rel="alternate" type="application/rss+xml" title="Barbaralicious » Kommentar-Feed" href="https://barbaralicious.com/comments/feed/" /><link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://barbaralicious.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fbarbaralicious.com%2Fblog%2F" /><link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://barbaralicious.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fbarbaralicious.com%2Fblog%2F&format=xml" /><meta content="Divi Child v.0.1.1" name="generator"/><link rel='stylesheet' id='wtfdivi-user-css-css' href='https://barbaralicious.com/wp-content/cache/autoptimize/css/autoptimize_single_2f6ed980e2591215683b9661a133a2df.css?ver=1741110949' media='all' />
1<script id="divibooster_number_counter_initial_value-js-after">(function(){ 2 function parseNumber(str){ 3 if (typeof str !== 'string') str = String(str || ''); 4 str = str.replace(/[^0-9+\-\.]/g, ''); 5 var n = parseFloat(str); 6 return isNaN(n) ? 0 : n; 7 } 8 function decimalsOf(n){ 9 n = (typeof n === 'number') ? n : parseNumber(n); 10 var s = String(n); 11 var p = s.split('.'); 12 return p.length > 1 ? p[1].length : 0; 13 } 14 function formatNumber(n, dec){ 15 if (typeof dec !== 'number') dec = 0; 16 var s = n.toFixed(dec); 17 if (parseFloat(s) === 0) return (dec>0? '0.'+Array(dec+1).join('0') : '0'); 18 return s; 19 } 20 function withThousands(s, sep){ 21 if (!sep) return s; 22 var parts = s.split('.'); 23 parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, sep); 24 return parts.join('.'); 25 } 26 27 function primeChart(wrapper, start){ 28 var attempts = 0; 29 var maxAttempts = 160; // ~8s for Divi 5 (increased for late chart init) 30 var sep = wrapper.getAttribute('data-number-separator') || ''; 31 var valueEl = wrapper.querySelector('.percent .percent-value'); 32 // Read the target value from the data attribute if present 33 var targetAttr = valueEl ? valueEl.getAttribute('data-divibooster-target-value') : null; 34 var targetValue = targetAttr !== null ? parseNumber(targetAttr) : parseNumber(valueEl ? valueEl.textContent : '0'); 35 var dec = Math.max(decimalsOf(start), decimalsOf(targetValue)); 36 function tryPrime(){ 37 attempts++; 38 var $ = window.jQuery; 39 if ($){ 40 var $w = $(wrapper); 41 var chart = $w.data('easyPieChart'); 42 if (chart && typeof chart.update === 'function'){ 43 // Prime the chart to the initial value WITHOUT animation. 44 var prevAnimate = (chart.options && typeof chart.options === 'object') ? chart.options.animate : undefined; 45 try { if (chart.options) chart.options.animate = false; } catch(e) {} 46 try { chart.update(start); } catch(e) {} 47 try { if (chart.options) chart.options.animate = prevAnimate; } catch(e) {} 48 49 // Reveal the text once primed and mark as primed 50 wrapper.classList.add('dbiv-nciv-ready'); 51 if (valueEl) valueEl.style.opacity = '1'; 52 try { wrapper.setAttribute('data-dbiv-primed', '1'); } catch(e) {} 53 try { wrapper.__dbiv_canvasPrimed = wrapper.querySelector('canvas'); } catch(e) {} 54 55 // If we have a valid target and it's different to the start, animate to target immediately after a frame. 56 if (!isNaN(targetValue) && targetValue !== start) { 57 var animateToTarget = function(){ 58 try { chart.update(targetValue); } catch(e) {} 59 }; 60 if (window.requestAnimationFrame) { 61 requestAnimationFrame(function(){ setTimeout(animateToTarget, 0); }); 62 } else { 63 setTimeout(animateToTarget, 0); 64 } 65 } 66 return true; 67 } 68 } 69 if (attempts < maxAttempts){ 70 setTimeout(tryPrime, 50); 71 } else { 72 // Give up priming; reveal to avoid leaving content hidden. Divi may still handle animation. 73 wrapper.classList.add('dbiv-nciv-ready'); 74 if (valueEl) valueEl.style.opacity = '1'; 75 } 76 return false; 77 } 78 // set displayed start immediately 79 if (valueEl){ 80 var s = formatNumber(start, dec); 81 valueEl.textContent = withThousands(s, sep); 82 } 83 tryPrime(); 84 } 85 86 function initInstance(wrapper){ 87 if (!wrapper) return; 88 var valueEl = wrapper.querySelector('.percent .percent-value'); 89 if (!valueEl) return; 90 var canvasEl = wrapper.querySelector('canvas'); 91 if (wrapper.__dbiv_canvasPrimed && wrapper.__dbiv_canvasPrimed === canvasEl) return; 92 var start = parseNumber(valueEl.getAttribute('data-divibooster-initial-value')); 93 if (isNaN(start)) start = 0; 94 // If the element is already showing the target value (e.g., JS ran late or Divi already animated), don't re-prime to avoid flicker. 95 var targetAttr = valueEl.getAttribute('data-divibooster-target-value'); 96 var currentVal = parseNumber(valueEl.textContent); 97 if (targetAttr !== null) { 98 var targetVal = parseNumber(targetAttr); 99 if (!isNaN(targetVal) && currentVal === targetVal && wrapper.getAttribute('data-dbiv-primed') === '1') { 100 wrapper.classList.add('dbiv-nciv-ready'); 101 valueEl.style.opacity = '1'; 102 return; 103 } 104 } 105 // Hide during init only when feature is active for this instance. 106 valueEl.style.opacity = '0'; 107 primeChart(wrapper, start); 108 wrapper.__dbiv_init = true; 109 } 110 111 function initAll(root){ 112 root = root || document; 113 var nodes = root.querySelectorAll('.dbiv-nciv');
114 nodes.forEach(function(n){ initInstance(n); }); 115 } 116 117 if (document.readyState === 'loading'){ 118 document.addEventListener('DOMContentLoaded', function(){ initAll(document); }); 119 } else { 120 initAll(document); 121 } 122 123 if (window.MutationObserver){ 124 var mo = new MutationObserver(function(muts){ 125 muts.forEach(function(m){ 126 if (m.type === 'childList'){ 127 m.addedNodes && m.addedNodes.forEach(function(node){ 128 if (node.nodeType === 1){ 129 if (node.classList && node.classList.contains('dbiv-nciv')){ 130 initInstance(node); 131 } 132 var inner = node.querySelectorAll ? node.querySelectorAll('.dbiv-nciv') : []; 133 inner.forEach(function(n){ initInstance(n); }); 134 } 135 }); 136 } 137 }); 138 }); 139 mo.observe(document.documentElement, {childList: true, subtree: true}); 140 } 141})(); 142//# sourceURL=divibooster_number_counter_initial_value-js-after</script>
142
142<script id="jquery-core-js" src="https://barbaralicious.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
142
142<script id="jquery-js-after">jQuery(document).ready(function($) { 143 $("#accept-terms").on("change", function() { 144 if ($(this).is(":checked")) { 145 $("#payment-link").addClass("enabled"); 146 $("#payment-link button").css({ 147 "background": "transparent", 148 "color": "#2551ff", 149 "border-color": "#2551ff", 150 "cursor": "pointer" 151 }); 152 $("#payment-link").css("pointer-events", "auto"); 153 } else { 154 $("#payment-link").removeClass("enabled"); 155 $("#payment-link button").css({ 156 "background": "#d3d3d3", 157 "color": "white", 158 "border-color": "#d3d3d3", 159 "cursor": "not-allowed" 160 }); 161 $("#payment-link").css("pointer-events", "none"); 162 } 163 }); 164 }); 165 166//# sourceURL=jquery-js-after</script>
166
166<script id="facebook-signal-js-extra">var facebookSignalConfig = {"cookieName":"wc_facebook_signals_state","ajaxUrl":"https://barbaralicious.com/wp-admin/admin-ajax.php","signalsAction":"fbpix_set_pixel_signals","signalsNonce":"3ed3efe4f8"}; 167//# sourceURL=facebook-signal-js-extra</script>
167 <link rel="https://api.w.org/" href="https://barbaralicious.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://barbaralicious.com/wp-json/wp/v2/pages/3158" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://barbaralicious.com/xmlrpc.php?rsd" /><meta name="generator" content="WordPress 7.1.2" /><link rel='shortlink' href='https://barbaralicious.com/?p=3158' />
167<script data-name="dbdb-head-js"></script>
167
167<script>window.applySliderCounterSeparator = window.applySliderCounterSeparator || function(){ /* stub until plugin JS loads */ };</script>
167
167<script>jQuery(function($) { 168 if ($('#top-header .socicon-tiktok').length === 0) { 169 $('#top-header .et-social-icons').append("<li class=\"et-social-icon\"><a href=\"https:\/\/www.tiktok.com\/@barbaralicious\" class=\"icon socicon socicon-tiktok\" alt=\"TikTok\" aria-label=\"TikTok\"><span>TikTok<\/span><\/a><\/li>"); 170 $('#top-header .et-extra-social-icons').append("<li class=\"et-extra-social-icon\"><a href=\"https:\/\/www.tiktok.com\/@barbaralicious\" class=\"et-extra-icon et-extra-icon-background-hover socicon socicon-tiktok\"><\/a><\/li>"); 171 } 172 if ($('#footer-bottom .socicon-tiktok').length === 0) { 173 $('#footer-bottom .et-social-icons').append("<li class=\"et-social-icon\"><a href=\"https:\/\/www.tiktok.com\/@barbaralicious\" class=\"icon socicon socicon-tiktok\" alt=\"TikTok\" aria-label=\"TikTok\"><span>TikTok<\/span><\/a><\/li>"); 174 $('#footer-bottom .et-extra-social-icons').append("<li class=\"et-extra-social-icon\"><a href=\"https:\/\/www.tiktok.com\/@barbaralicious\" class=\"et-extra-icon et-extra-icon-background-hover socicon socicon-tiktok\"><\/a><\/li>"); 175 } 176 if ($('.et_slide_in_menu_container .socicon-tiktok').length === 0) { 177 $('.et_slide_in_menu_container .et-social-icons').append("<li class=\"et-social-icon\"><a href=\"https:\/\/www.tiktok.com\/@barbaralicious\" class=\"icon socicon socicon-tiktok\" alt=\"TikTok\" aria-label=\"TikTok\"><span>TikTok<\/span><\/a><\/li>"); 178 $('.et_slide_in_menu_container .et-extra-social-icons').append("<li class=\"et-extra-social-icon\"><a href=\"https:\/\/www.tiktok.com\/@barbaralicious\" class=\"et-extra-icon et-extra-icon-background-hover socicon socicon-tiktok\"><\/a><\/li>"); 179 } 180 });</script>
180 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
180<script type='text/javascript'>!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 181n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 182n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 183t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 184document,'script','https://connect.facebook.net/en_US/fbevents.js');</script>
184
184<script type='text/javascript'>FacebookSignal.init({"held":false,"ajaxUrl":"https:\/\/barbaralicious.com\/wp-admin\/admin-ajax.php","releaseAction":"fbpix_release_signals","pixelId":"306205891835858","attribution":{},"capig":"1"});FacebookSignal.initPixel("306205891835858",{},{"agent":"wordpress_0-7.1.2-5.2.2","includeCapiIntegration":true});</script>
184<script type='text/javascript'>fbq('track', 'PageView', []);</script>
184<link rel="icon" href="https://barbaralicious.com/wp-content/uploads/2015/12/cropped-Favicon-Barbaralicious-neu-32x32.png" sizes="32x32" /><link rel="icon" href="https://barbaralicious.com/wp-content/uploads/2015/12/cropped-Favicon-Barbaralicious-neu-192x192.png" sizes="192x192" /><link rel="apple-touch-icon" href="https://barbaralicious.com/wp-content/uploads/2015/12/cropped-Favicon-Barbaralicious-neu-180x180.png" /><meta name="msapplication-TileImage" content="https://barbaralicious.com/wp-content/uploads/2015/12/cropped-Favicon-Barbaralicious-neu-270x270.png" /></head><body class="wp-singular page-template-default page page-id-3158 wp-theme-Divi wp-child-theme-Divi-Child dbdb_divi_2_4_up desktop et_bloom et_pb_button_helper_class et_fullwidth_nav et_fullwidth_secondary_nav et_fixed_nav et_show_nav et_hide_fixed_logo et_hide_mobile_logo et_secondary_nav_enabled et_primary_nav_dropdown_animation_fade et_secondary_nav_dropdown_animation_fade et_header_style_centered et_pb_footer_columns3 et_cover_background et_pb_gutter et_pb_gutters3 et_pb_pagebuilder_layout et_no_sidebar et_divi_theme et-db"><div id="page-container"><div id="top-header" data-height="100" data-height-loaded="true"><div class="container clearfix"><div id="et-info"> <span id="current-location">Aktueller Aufenthaltsort: <strong>Thailand</strong></span></div><div id="et-secondary-menu"><ul class="et-social-icons"><li class="et-social-icon et-social-facebook"> <a href="https://www.facebook.com/BarbaraliciousBlog" class="icon"> <span>Facebook</span> </a></li><li class="et-social-icon et-social-twitter"> <a href="https://www.twitter.com/bbarbaralicious" class="icon"> <span>Twitter</span> </a></li><li class="et-social-icon et-social-instagram"> <a href="https://www.instagram.com/barbaralicious/" class="icon"> <span>Instagram</span> </a></li><li class="et-social-icon et-social-youtube"> <a href="https://www.youtube.com/channel/UCp9tvbdfHrpiRIlwSV4BIwQ" class="icon"> <span>YouTube</span> </a></li><li class="et-social-icon et-social-pinterest"> <a href="https://de.pinterest.com/bbarbaralicious/" class="icon"> <span>Pinterest</span> </a></li><li class="et-social-icon et-social-rss"> <a href="https://barbaralicious.com/feed/" class="icon"> <span>RSS</span> </a></li></ul></div></div></div><header id="main-header" data-height-onload="112"><div class="container clearfix et_menu_container"><div class="logo_container"> <span class="logo_helper"></span> <a href="https://barbaralicious.com/"> <img src="https://barbaralicious.com/wp-content/uploads/2024/11/Barbaralicious-Logo-Neu-klein-1.png" alt="Barbaralicious" id="logo" data-height-percentage="42" /> </a></div><div id="et-top-navigation" data-height="112" data-fixed-height="112"><nav id="top-menu-nav"><ul id="top-menu" class="nav"><li id="menu-item-37459" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-37459"><a href="https://barbaralicious.com/">Home</a></li><li id="menu-item-37458" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-37458"><a href="https://barbaralicious.com/kostenlos/">Kostenlos</a><ul class="sub-menu"><li id="menu-item-37457" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37457"><a href="https://barbaralicious.com/lp-starterkit/">StarterKit</a></li><li id="menu-item-37456" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37456"><a href="https://barbaralicious.com/lp-tschuess-9-to-5-hallo-freelancing/">Tschüss 9-to-5</a></li></ul></li><li id="menu-item-389" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-389"><a href="https://barbaralicious.com/uber-mich/" title="Ãber mich und Barbaralicious">Ãber</a><ul class="sub-menu"><li id="menu-item-10182" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10182"><a href="https://barbaralicious.com/uber-mich/">Ãber mich</a></li><li id="menu-item-38846" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-38846"><a href="https://barbaralicious.com/meine-4-before-40-liste/">4 before 40</a></li><li id="menu-item-589" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-589"><a href="https://barbaralicious.com/meine-weltreise/" title="Barbaralicious Weltreise">Weltreise</a></li><li id="menu-item-304" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-304"><a href="https://barbaralicious.com/meine-bucket-list/" title="Barbaralicious Bucket List">Bucket List</a></li><li id="menu-item-10176" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10176"><a href="https://barbaralicious.com/newsletter/" title="Anmeldung zm Newsletter von Barbaralicious">Newsletter</a></li></ul></li><li id="menu-item-3386" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-3158 current_page_item menu-item-has-children menu-item-3386"><a href="https://barbaralicious.com/blog/" aria-current="page" title="Reiseblog für digitale Nomaden">Blog</a><ul class="sub-menu"><li id="menu-item-3319" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3319"><a href="https://barbaralicious.com/reisen/" title="Reise um die Welt">Reisen</a><ul class="sub-menu"><li id="menu-item-3343" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3343"><a href="https://barbaralicious.com/reisen/europa/" title="Reisen als digitaler Nomade in Europa">Europa</a><ul class="sub-menu">
184<li id="menu-item-28649" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-28649"><a href="https://barbaralicious.com/deutschland/">Deutschland</a><ul class="sub-menu"><li id="menu-item-28645" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28645"><a href="https://barbaralicious.com/der-taunus/">Taunus</a></li><li id="menu-item-28646" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28646"><a href="https://barbaralicious.com/der-spessart/">Spessart</a></li><li id="menu-item-28647" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28647"><a href="https://barbaralicious.com/der-odenwald/">Odenwald</a></li><li id="menu-item-29198" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29198"><a href="https://barbaralicious.com/die-pfalz/">Pfalz</a></li><li id="menu-item-31956" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31956"><a href="https://barbaralicious.com/franken/">Franken</a></li><li id="menu-item-34950" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34950"><a href="https://barbaralicious.com/die-eifel/">Eifel</a></li></ul></li><li id="menu-item-32200" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32200"><a href="https://barbaralicious.com/oesterreich/">Ãsterreich</a></li><li id="menu-item-28658" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28658"><a href="https://barbaralicious.com/italien/">Italien</a></li><li id="menu-item-28685" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28685"><a href="https://barbaralicious.com/malta/">Malta</a></li><li id="menu-item-28667" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28667"><a href="https://barbaralicious.com/spanien/">Spanien</a></li><li id="menu-item-29192" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29192"><a href="https://barbaralicious.com/balkan/">Balkan</a></li></ul></li><li id="menu-item-3337" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3337"><a href="https://barbaralicious.com/reisen/asien/" title="Reisen als digitaler Nomade in Asien">Asien</a><ul class="sub-menu"><li id="menu-item-28648" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28648"><a href="https://barbaralicious.com/thailand/">Thailand</a></li><li id="menu-item-28696" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28696"><a href="https://barbaralicious.com/singapur/">Singapur</a></li><li id="menu-item-39381" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-39381"><a href="https://barbaralicious.com/malaysia/">Malaysia</a></li><li id="menu-item-31082" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31082"><a href="https://barbaralicious.com/vietnam/">Vietnam</a></li></ul></li><li id="menu-item-30797" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-30797"><a href="https://barbaralicious.com/orient/">Orient</a></li><li id="menu-item-3341" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3341"><a href="https://barbaralicious.com/reisen/suedamerika/" title="Reisen als digitaler Nomade in Südamerika">Südamerika</a></li><li id="menu-item-3340" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3340"><a href="https://barbaralicious.com/reisen/mittelamerika/" title="Reisen als digitaler Nomade in Mittelamerika">Mittelamerika</a></li><li id="menu-item-3339" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3339"><a href="https://barbaralicious.com/reisen/nordamerika/" title="Reisen als digitaler Nomade in Nordamerika">Nordamerika</a></li></ul></li><li id="menu-item-10268" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10268"><a href="https://barbaralicious.com/travel-hacks/" title="Tipps fürs Reisen">Travel Hacks</a></li><li id="menu-item-25256" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25256"><a href="https://barbaralicious.com/digitales-nomadentum/" title="Lebe und arbeite ortsunabhängig">Digitales Nomadentum</a></li><li id="menu-item-24119" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24119"><a href="https://barbaralicious.com/rezepte/" title="Mit Barbaralicious kulinarisch um die Welt">Rezepte</a></li><li id="menu-item-3362" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3362"><a href="https://barbaralicious.com/buchtipps/" title="Lese- und Buchtipps">Bücher</a></li><li id="menu-item-10189" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10189"><a href="https://barbaralicious.com/anderes/" title="Spiele, Persönlichkeitsentwicklung & mehr">Anderes</a></li></ul></li><li id="menu-item-32902" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-32902"><a href="https://barbaralicious.com/tipps/">Tipps</a><ul class="sub-menu"><li id="menu-item-32903" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-32903"><a href="https://barbaralicious.com/kreditkarten-fuer-reisende/">Kreditkarten</a></li><li id="menu-item-37973" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-37973"><a href="https://barbaralicious.com/meilen-sammeln/">Meilen sammeln</a></li><li id="menu-item-37972" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-37972"><a href="https://barbaralicious.com/mobiles-internet-fuer-unterwegs/">Mobiles Internet</a></li><li id="menu-item-6692" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6692"><a href="https://barbaralicious.com/reise-ressourcen/" title="Reise-Ressourcen für digitale Nomaden und Traveler â Alles, was du zum Reisen brauchst">Ressourcen</a></li><li id="menu-item-5722" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5722"><a href="https://barbaralicious.com/travel-gear/" title="Barbaralicious Travel Gear â Was kommt in den Rucksack digitaler Nomaden und Langzeitreisender?">Packliste</a></li><li id="menu-item-32904" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-32904"><a href="https://barbaralicious.com/geschenke-fuer-reisende/">Geschenkideen</a></li><li id="menu-item-32905" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-32905"><a href="https://barbaralicious.com/apps-zum-reisen-und-arbeiten/">Reise-Apps</a></li><li id="menu-item-32906" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-32906"><a href="https://barbaralicious.com/alleine-reisen-solo-reise/" title="Alleine reisen: Wie plane ich meine erste Solo-Reise?">Solo reisen</a></li><li id="menu-item-32907" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-32907"><a href="https://barbaralicious.com/home-office-tipps/">Home Office</a></li><li id="menu-item-32908" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-32908"><a href="https://barbaralicious.com/fitnesstipps-fuer-die-quarantaene/">Fitnesstipps</a></li><li id="menu-item-32909" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-32909"><a href="https://barbaralicious.com/gesundheit-und-psychohygiene-in-quarantaene/">Gesundheit</a></li><li id="menu-item-32910" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-32910"><a href="https://barbaralicious.com/morgenroutine/">Morgenroutine</a></li></ul></li><li id="menu-item-4317" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4317"><a href="https://barbaralicious.com/buecher/" title="Von mir veröffentlichte Bücher">Meine Bücher</a><ul class="sub-menu"><li id="menu-item-4617" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4617"><a href="https://barbaralicious.com/buecher/meine-weltreise/" title="Me
184ine Weltreise â Ein Traum wird wahr">Meine Weltreise</a></li><li id="menu-item-34217" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-34217"><a href="https://barbaralicious.com/meine-ratgeber/">Ratgeber</a><ul class="sub-menu"><li id="menu-item-35326" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-35326"><a href="https://barbaralicious.com/von-null-auf-selbststaendig/">Von null auf selbstständig</a></li><li id="menu-item-35302" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-35302"><a href="https://barbaralicious.com/dein-ortsunabhaengiger-arbeitsplatz/">Dein orts- unabhängiger Arbeitsplatz</a></li><li id="menu-item-34231" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34231"><a href="https://barbaralicious.com/instagram-fuer-selbststaendige/">Instagram für Selbstständige</a></li><li id="menu-item-36382" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36382"><a href="https://barbaralicious.com/selfpublishing-fuer-einsteiger/">Selfpublishing für Einsteiger</a></li><li id="menu-item-5362" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5362"><a href="https://barbaralicious.com/buecher/alleine-unterwegs/" title="Alleine unterwegs â Guide für Solo-Reisende & alle, die es werden wollen">Alleine unterwegs</a></li><li id="menu-item-4616" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4616"><a href="https://barbaralicious.com/buecher/reisen-fuers-schmale-portemonnaie/">Reisen fürs schmale Portemonnaie</a></li></ul></li><li id="menu-item-36112" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-36112"><a href="https://barbaralicious.com/bundles/">Bundles</a><ul class="sub-menu"><li id="menu-item-35259" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-35259"><a href="https://barbaralicious.com/instagram-bundle/">Instagram-Bundle</a></li></ul></li><li id="menu-item-34224" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-34224"><a href="https://barbaralicious.com/outdoor-guides/">Outdoor-Guides</a><ul class="sub-menu"><li id="menu-item-36133" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36133"><a href="https://barbaralicious.com/gluecksorte-auf-sizilien/">Glücksorte auf Sizilien</a></li><li id="menu-item-37838" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37838"><a href="https://barbaralicious.com/hessen-fuer-verliebte/">Hessen für Verliebte</a></li><li id="menu-item-29464" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29464"><a href="https://barbaralicious.com/buecher/eskapaden-spessart-odenwald/">Eskapaden Spessart & Odenwald</a></li><li id="menu-item-33405" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33405"><a href="https://barbaralicious.com/eskapaden-in-oberfranken/">Eskapaden in Oberfranken</a></li><li id="menu-item-33647" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33647"><a href="https://barbaralicious.com/herzstuecke-im-rhein-main-gebiet/">Herzstücke im Rhein-Main-Gebiet</a></li><li id="menu-item-36602" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36602"><a href="https://barbaralicious.com/wanderzeit-in-der-eifel/">Wanderzeit in der Eifel</a></li><li id="menu-item-36601" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36601"><a href="https://barbaralicious.com/48-stunden-in-deutschland/">48 Stunden in Deutschland</a></li><li id="menu-item-30992" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-30992"><a href="https://barbaralicious.com/der-fraenkische-rotwein-wanderweg-wanderfuehrer/">Der Fränkische Rotwein Wanderweg</a></li></ul></li><li id="menu-item-25879" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25879"><a href="https://barbaralicious.com/buecher/city-guides/">City Guides</a></li><li id="menu-item-36098" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36098"><a href="https://barbaralicious.com/malbuecher/">Malbücher</a></li><li id="menu-item-16280" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16280"><a href="https://barbaralicious.com/buecher/reiseblogger-schreiben-ein-buch/">Reiseblogger schreiben ein Buch</a></li></ul></li><li id="menu-item-33125" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-33125"><a href="https://barbaralicious.com/onlinekurse/" title="Onlinekurse â Orts- und Zeitunabhängige Kurse">Kurse & Challenges</a><ul class="sub-menu"><li id="menu-item-36881" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36881"><a href="https://barbaralicious.com/sp-b-translator/" title="Onlinekurs B Translator â Ãbersetzen in die Selbstständigkeit">B Translator</a></li><li id="menu-item-36688" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36688"><a href="https://barbaralicious.com/escape-the-office/">Escape the Office</a></li><li id="menu-item-36464" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36464"><a href="https://barbaralicious.com/die-7-tage-insta-challenge/" title="Die 7-Tage-Insta-Ch
184allenge">Insta-Challenge</a></li><li id="menu-item-36383" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36383"><a href="https://barbaralicious.com/die-14-tage-selfpublishing-challenge/" title="Die 14-Tage-Selfpublishing-Challenge">Selfpublishing-Challenge</a></li></ul></li><li id="menu-item-10181" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-10181"><a href="https://barbaralicious.com/services/">Services</a><ul class="sub-menu"><li id="menu-item-10178" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10178"><a href="https://barbaralicious.com/mentoring/" title="Mentoring Digitales Nomadentum Reisen Professionell Bloggen Selfpublishing">Mentoring</a></li><li id="menu-item-30639" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-30639"><a href="https://barbaralicious.com/website-erstellung-co/">Webdesign</a></li><li id="menu-item-34769" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34769"><a href="https://barbaralicious.com/social-media/">Social Media</a></li><li id="menu-item-34775" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34775"><a href="https://barbaralicious.com/suchmaschinenoptimierung/">SEO</a></li><li id="menu-item-14906" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14906"><a href="https://barbaralicious.com/sprachservices/">Sprachen</a></li><li id="menu-item-10175" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10175"><a href="https://barbaralicious.com/dsgvo-beratung/" title="DSGVO-Beratung â Sicher beraten durch Datenschutzbeauftragte">Datenschutz</a></li></ul></li><li id="menu-item-25248" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25248"><a href="https://barbaralicious.com/shop/">Shop</a></li><li id="menu-item-38386" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-38386"><a href="https://barbaralicious.com/proud-nomad-vibes-video-podcast/">Podcast</a></li></ul></nav><div id="et_top_search"> <span id="et_search_icon"></span></div><div id="et_mobile_nav_menu"><div class="mobile_nav closed"> <span class="select_page">Seite auswählen</span> <span class="mobile_menu_bar mobile_menu_bar_toggle"></span></div></div></div></div><div class="et_search_outer"><div class="container et_search_form_container"><form role="search" method="get" class="et-search-form" action="https://barbaralicious.com/"> <input type="search" class="et-search-field" placeholder="Suchen …" value="" name="s" title="Suchen nach:" /></form> <span class="et_close_search_field"></span></div></div></header><div id="et-main-area">
184<script type="text/javascript">var _paq = window._paq || []; 185 /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ 186_paq.push(['disableCookies']); 187_paq.push(['trackPageView']); 188 _paq.push(['enableLinkTracking']); 189 (function() { 190 var u="//pmatomo.barbaralicious.com/"; 191 _paq.push(['setTrackerUrl', u+'matomo.php']); 192 _paq.push(['setSiteId', '1']); 193 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 194 g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); 195 })(); 196 // accurately measure the time spent on the last pageview of a visit 197_paq.push(['enableHeartBeatTimer']);</script>
197 198
198<script async defer src="https://widget.getyourguide.com/dist/pa.umd.production.min.js" data-gyg-partner-id="LFWZC3R"></script>
198
198<script>(function (s, t, a, y, twenty, two) { 199 s.Stay22 = s.Stay22 || {}; 200 s.Stay22.params = { lmaID: '699084f277a110e401fc88d6' }; 201 twenty = t.createElement(a); 202 two = t.getElementsByTagName(a)[0]; 203 twenty.async = 1; 204 twenty.src = y; 205 two.parentNode.insertBefore(twenty, two); 206 })(window, document, 'script', 'https://scripts.stay22.com/letmeallez.js');</script>
206 <div id="main-content"><article id="post-3158" class="post-3158 page type-page status-publish hentry"><div class="entry-content"><div class="et-l et-l--post"><div class="et_builder_inner_content"><div class="et_d4_element et_pb_section et_pb_section_0 et_section_regular section_has_divider et_pb_bottom_divider et_block_section" ><div class="et_d4_element et_pb_row et_pb_row_0 et_block_row"><div class="et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_0 et_pb_css_mix_blend_mode_passthrough et-last-child et_block_column"><div class="et_pb_module et_d4_element et_pb_text et_pb_text_0 et_pb_text_align_center et_pb_bg_layout_light"><div class="et_pb_text_inner"><h1>Blog</h1><p>In dieser Kategorie findest du alle Beiträge, die ich geschrieben habe. Von Wanderungen über einzelne coole Locations oder Fotospots, an denen ich war, bis hin zu Städtetrips. Aber auch die Rezepte und Blogposts über mein Leben als digitale Nomadin. Die Posts sind thematisch ungeordnet, aber chronologisch angezeigt. Hier findest du alles, was ich in in den letzten Jahren so fabriziert habe, was ich gemacht und erlebt habe.</p><p>Viel Spaà beim Stöbern in all meinen Blogposts!</p></div></div></div></div><div class="et_pb_bottom_inside_divider et-no-transition"></div></div><div class="et_d4_element et_pb_section et_pb_section_1 et_pb_with_background et_section_regular et_block_section" ><div class="et_d4_element et_pb_row et_pb_row_1 et_block_row"><div class="et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_1 et_pb_css_mix_blend_mode_passthrough et-last-child et_block_column"><div class="et_pb_module et_d4_element et_pb_blog_0 et_pb_blog_grid_wrapper et_pb_bg_layout_light"><div class="et_pb_blog_grid clearfix "><div class="et_pb_ajax_pagination_container"><div class="et_pb_salvattore_content" data-columns><article id="post-39602" class="et_pb_post clearfix et_pb_blog_item_0_0 post-39602 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-reisen-um-die-welt category-singapur"><div class="et_pb_image_container"><a href="https://barbaralicious.com/gardens-by-the-bay-sehenswuerdigkeiten-tipps-preise/" class="entry-featured-image-url"><img fetchpriority="high" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/07/Gardens-by-the-Bay-400x250.jpg" alt="Gardens by the Bay: Sehenswürdigkeiten, Tipps & Preise" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/07/Gardens-by-the-Bay.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/07/Gardens-by-the-Bay-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 1"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/gardens-by-the-bay-sehenswuerdigkeiten-tipps-preise/">Gardens by the Bay: Sehenswürdigkeiten, Tipps & Preise</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Juli 31, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a>, <a href="https://barbaralicious.com/category/asien/singapur/" rel="tag">Singapur</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Singapur zieht mich jedes Mal erneut in seinen Bann. Und die Gardens by the Bay sind vielleicht das beste Beispiel dafür: Eine riesige Gartenanlage, die sich anfühlt wie aus einem Science-Fiction-Film, die aber gleichzeitig einer der schönsten und entspanntesten Orte...</p></div><a href="https://barbaralicious.com/gardens-by-the-bay-sehenswuerdigkeiten-tipps-preise/" class="more-link">mehr lesen</a></div></article><article id="post-39534" class="et_pb_post clearfix et_pb_blog_item_0_1 post-39534 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-philippinen-asien category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/bohol-chocolate-hills-tarsiere-manmade-forest/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/07/Die-Chocolate-Hills-400x250.jpg" alt="Bohol: Chocolate Hills, Tarsiere, der Man-Made Forest & Loboc River" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/07/Die-Chocolate-Hills.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/07/Die-Chocolate-Hills-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 2"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/bohol-chocolate-hills-tarsiere-manmade-forest/">Bohol: Chocolate Hills, Tarsiere, der Man-Made Forest & Loboc River</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Juli 11, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/asien/philippinen-asien/" rel="tag">Philippinen</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Ich habe einen Monat in Cebu City gelebt â in einem gemieteten Condo, wie ein Local, viel gearbeitet und an meinem Buch Workation Travel Guide* geschrieben. Aber Cebu ist nicht nur ein toller Ort zum Leben für digitale Nomaden, sondern auch ein perfekter Ausgangspunkt...</p></div><a href="https://barbaralicious.com/bohol-chocolate-hills-tarsiere-manmade-forest/" class="more-link">mehr lesen</a></div></article><article id="post-39509" class="et_pb_post clearfix et_pb_blog_item_0_2 post-39509 post type-post status-publish format-standard has-post-thumbnail hentry category-digitales-nomadentum category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/flexibel-arbeiten-und-geld-verdienen-mit-sinn-bei-talk2move/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/07/Proud-Nomad-Vibes-Talk2Move-Youtube-Cover-2-400x250.jpg" alt="Flexibel arbeiten und Geld verdienen mit Sinn bei Talk2Move" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/07/Proud-Nomad-Vibes-Talk2Move-Youtube-Cover-2.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/07/Proud-Nomad-Vibes-Talk2Move-Youtube-Cover-2-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 3"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/flexibel-arbeiten-und-geld-verdienen-mit-sinn-bei-talk2move/">Flexibel arbeiten und Geld verdienen mit Sinn bei Talk2Move</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Juli 4, 2026</span> | <a href="https://barbaralicious.com/category/digitales-nomadentum/" rel="tag">Digitales Nomadentum</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Letzte Woche hatte ich Nadine im Podcast zu Gast. Sie ist Prokuristin bei Talk2Move* und Co-Gründerin der NGO Project Wings. Ehrlich gesagt, war das ein Gespräch, das mir nicht nur neue Perspektiven eröffnet hat, sondern mich auch zum Nachdenken angeregt hat. Nicht...</p></div><a href="https://barbaralicious.com/flexibel-arbeiten-und-geld-verdienen-mit-sinn-bei-talk2move/" class="more-link">mehr lesen</a></div></article><article id="post-39487" class="et_pb_post clearfix et_pb_blog_item_0_3 post-39487 post type-post status-publish format-standard has-post-thumbnail hentry category-digitales-nomadentum"><div class="et_pb_image_container"><a href="https://barbaralicious.com/naysayer-gegenwind-und-warum-andere-leute-dein-traumleben-nicht-gutheissen/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/05/Barbara-in-Kuala-Lumpur-400x250.jpg" alt="Naysayer, Gegenwind und warum andere Leute dein Traumleben nicht gutheiÃen" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/05/Barbara-in-Kuala-Lumpur.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/05/Barbara-in-Kuala-Lumpur-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 4"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/naysayer-gegenwind-und-warum-andere-leute-dein-traumleben-nicht-gutheissen/">Naysayer, Gegenwind und warum andere Leute dein Traumleben nicht gutheiÃen</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Juni 20, 2026</span> | <a href="https://barbaralicious.com/category/digitales-nomadentum/" rel="tag">Digitales Nomadentum</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Gegenwind aushalten und mit den Naysayern, also den Schwarzmalern und Pessimisten, umgehen zu müssen, ist eines der Probleme, durch die am Anfang wahrscheinlich alle durchmüssen, die ihr Leben radikal verändern möchten. Darüber musste ich kürlich mal wieder...</p></div><a href="https://barbaralicious.com/naysayer-gegenwind-und-warum-andere-leute-dein-traumleben-nicht-gutheissen/" class="more-link">mehr lesen</a></div></article><article id="post-230" class="et_pb_post clearfix et_pb_blog_item_0_4 post-230 post type-post status-publish format-standard has-post-thumbnail hentry category-digitales-nomadentum category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/was-ist-ein-digitaler-nomade/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2016/02/Barbara-mit-ihrem-MacBook.jpg" alt="Was ist eigentlich ein digitaler Nomade?" class="" srcset="https://barbaralicious.com/wp-content/uploads/2016/02/Barbara-mit-ihrem-MacBook.jpg 479w, https://barbaralicious.com/wp-content/uploads/2016/02/Barbara-mit-ihrem-MacBook.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 5"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/was-ist-ein-digitaler-nomade/">Was ist eigentlich ein digitaler Nomade?</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Juni 13, 2026</span> | <a href="https://barbaralicious.com/category/digitales-nomadentum/" rel="tag">Digitales Nomadentum</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 7 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Der Traum vom ortsunabhängigen Arbeiten ist überall zu sehen: digitale Nomaden mit Laptop am Strand, arbeiten aus exotischen Cafés, absolute Freiheit. Aber wie sieht die Realität wirklich aus? Ich verrate dir, was digitales Nomadentum ist, was nicht, und warum es...</p></div><a href="https://barbaralicious.com/was-ist-ein-digitaler-nomade/" class="more-link">mehr lesen</a></div></article><article id="post-39438" class="et_pb_post clearfix et_pb_blog_item_0_5 post-39438 post type-post status-publish format-standard has-post-thumbnail hentry category-orient category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/al-ula-drei-highlights/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/05/Barbara-in-der-Oase-in-Al-Ula-400x250.jpg" alt="Al-Ula: 3 Highlights in Saudi-Arabiens erstem UNESCO-Welterbe" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/05/Barbara-in-der-Oase-in-Al-Ula.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/05/Barbara-in-der-Oase-in-Al-Ula-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 6"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/al-ula-drei-highlights/">Al-Ula: 3 Highlights in Saudi-Arabiens erstem UNESCO-Welterbe</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Juni 6, 2026</span> | <a href="https://barbaralicious.com/category/reisen-um-die-welt/orient/" rel="tag">Orient</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Es gibt Reiseziele, die einen sprachlos machen. Al-Ula war für mich eines davon. Ich war im November 2025 auf einer 2,5-wöchigen Rundreise durch Saudi-Arabien unterwegs â einem Land, das noch vor wenigen Jahren für Touristen praktisch verschlossen war und das mich auf...</p></div><a href="https://barbaralicious.com/al-ula-drei-highlights/" class="more-link">mehr lesen</a></div></article><article id="post-39392" class="et_pb_post clearfix et_pb_blog_item_0_6 post-39392 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-philippinen-asien category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/puerto-princesa-underground-river/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/05/Der-Eingang-zum-Puerto-Princesa-Underground-River-400x250.jpg" alt="Puerto Princesa Underground River: Eines der 7 Weltwunder der Natur" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/05/Der-Eingang-zum-Puerto-Princesa-Underground-River.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/05/Der-Eingang-zum-Puerto-Princesa-Underground-River-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 7"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/puerto-princesa-underground-river/">Puerto Princesa Underground River: Eines der 7 Weltwunder der Natur</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Mai 30, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/asien/philippinen-asien/" rel="tag">Philippinen</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Ich habe im November und Dezember 2025 einen Monat in Cebu City gewohnt â in einem Condo, von dem aus ich viel gearbeitet und ein wenig die Stadt erkundet habe. Aber Cebu ist auch ein perfekter Ausgangspunkt für digitale Nomaden. Die Insel ist toll, in der Stadt gibt...</p></div><a href="https://barbaralicious.com/puerto-princesa-underground-river/" class="more-link">mehr lesen</a></div></article><article id="post-39306" class="et_pb_post clearfix et_pb_blog_item_0_7 post-39306 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-malaysia category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/kuala-lumpur-sehenswuerdigkeiten/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/05/Ausblick-von-meinem-Condo-in-Kuala-Lumpur-400x250.jpg" alt="Kuala Lumpur Sehenswürdigkeiten: 9 Highlights & Tipps" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/05/Ausblick-von-meinem-Condo-in-Kuala-Lumpur.j
206pg 479w, https://barbaralicious.com/wp-content/uploads/2026/05/Ausblick-von-meinem-Condo-in-Kuala-Lumpur-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 8"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/kuala-lumpur-sehenswuerdigkeiten/">Kuala Lumpur Sehenswürdigkeiten: 9 Highlights & Tipps</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Mai 23, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/asien/malaysia/" rel="tag">Malaysia</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Kuala Lumpur ist eine Stadt, die einen durchaus überwältigen kann. AuÃerdem geht sie manchmal zwischen den "Nachbar-Metropolen" Singapur und Bangkok gerne mal unter. Aber wenn man einmal eingetaucht ist, versteht man schnell, warum es doch einige Reisende gibt, die...</p></div><a href="https://barbaralicious.com/kuala-lumpur-sehenswuerdigkeiten/" class="more-link">mehr lesen</a></div></article><article id="post-39277" class="et_pb_post clearfix et_pb_blog_item_0_8 post-39277 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-reisen-um-die-welt category-thailand"><div class="et_pb_image_container"><a href="https://barbaralicious.com/auto-mieten-in-thailand/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/05/Auto-mieten-in-Thailand-Pickup-400x250.jpg" alt="Auto mieten in Thailand: Führerschein, Versicherung & alle Tipps" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/05/Auto-mieten-in-Thailand-Pickup.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/05/Auto-mieten-in-Thailand-Pickup-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 9"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/auto-mieten-in-thailand/">Auto mieten in Thailand: Führerschein, Versicherung & alle Tipps</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Mai 16, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a>, <a href="https://barbaralicious.com/category/asien/thailand/" rel="tag">Thailand</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Diesen Monat habe ich zum ersten Mal in Thailand ein Auto gemietet und konnte Orte erkunden, die sonst eher nicht auf den Touristenpfaden liegen. Ich stand zum Beispiel an einem Wasserfall in Surat Thani, einem Teil Thailands, den kaum ein ausländischer Tourist...</p></div><a href="https://barbaralicious.com/auto-mieten-in-thailand/" class="more-link">mehr lesen</a></div></article><article id="post-39222" class="et_pb_post clearfix et_pb_blog_item_0_9 post-39222 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-reisen-um-die-welt category-thailand"><div class="et_pb_image_container"><a href="https://barbaralicious.com/mit-dem-nachtzug-durch-thailand/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/05/Im-Nachtzug-in-Thailand2-400x250.jpg" alt="Nachtzug durch Thailand â Zugfahrten, Strecken & 5 Tipps" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/05/Im-Nachtzug-in-Thailand2.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/05/Im-Nachtzug-in-Thailand2-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 10"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/mit-dem-nachtzug-durch-thailand/">Nachtzug durch Thailand â Zugfahrten, Strecken & 5 Tipps</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Mai 9, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a>, <a href="https://barbaralicious.com/category/asien/thailand/" rel="tag">Thailand</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Es gibt Momente auf Reisen, die brennen sich wegen ihrer stillen Schönheit ins Gedächtnis. Für mich gehört der Moment dazu, wenn ich morgens im Nachtzug aufwache, den Vorhang zur Seite schiebe und drauÃen die Landschaft Thailands im ersten Licht des Tages vorbeizieht....</p></div><a href="https://barbaralicious.com/mit-dem-nachtzug-durch-thailand/" class="more-link">mehr lesen</a></div></article><article id="post-39198" class="et_pb_post clearfix et_pb_blog_item_0_10 post-39198 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-reisen-um-die-welt category-thailand"><div class="et_pb_image_container"><a href="https://barbaralicious.com/roller-fahren-in-thailand/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/05/Barbara-auf-einem-R
206oller-400x250.jpg" alt="Roller fahren in Thailand: Alles was du wissen musst" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/05/Barbara-auf-einem-Roller.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/05/Barbara-auf-einem-Roller-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 11"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/roller-fahren-in-thailand/">Roller fahren in Thailand: Alles was du wissen musst</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Mai 2, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a>, <a href="https://barbaralicious.com/category/asien/thailand/" rel="tag">Thailand</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Als ich 2015 auf meiner Weltreise war, hat es mich unter anderem auf die kleine Insel Koh Lanta verschlagen. Etwa sechs Wochen vorher hatte ich mir den Fuà verstaucht und war auf die Insel gekommen, um zur Ruhe zu kommen und zu warten, bis ich wieder richtig laufen...</p></div><a href="https://barbaralicious.com/roller-fahren-in-thailand/" class="more-link">mehr lesen</a></div></article><article id="post-39102" class="et_pb_post clearfix et_pb_blog_item_0_11 post-39102 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-malaysia category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/penang-sehenswuerdigkeiten-tipps-und-infos/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/04/Street-Art-in-der-Altstadt-von-Penang-1-400x250.jpg" alt="Penang Sehenswürdigkeiten, Tipps & praktische Infos für deinen Besuch" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/04/Street-Art-in-der-Altstadt-von-Penang-1.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/04/Street-Art-in-der-Altstadt-von-Penang-1-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 12"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/penang-sehenswuerdigkeiten-tipps-und-infos/">Penang Sehenswürdigkeiten, Tipps & praktische Infos für deinen Besuch</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Apr. 25, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/asien/malaysia/" rel="tag">Malaysia</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Im Januar und Februar hatte ich insgesamt einen Monat auf Lombok verbracht und ehrlich gesagt bin ich da nie so richtig angekommen. Ich kann gar nicht sagen, was das genau Problem war, aber irgendwie war Lombok einfach nicht wirklich meins. Als ich dann aber in Penang...</p></div><a href="https://barbaralicious.com/penang-sehenswuerdigkeiten-tipps-und-infos/" class="more-link">mehr lesen</a></div></article><article id="post-39057" class="et_pb_post clearfix et_pb_blog_item_0_12 post-39057 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-malaysia category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/langkawi-sehenswuerdigkeiten-tipps-praktische-infos/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/04/Blick-von-der-Mittelstation-zum-Meer-400x250.jpg" alt="Langkawi: Sehenswürdigkeiten, Tipps & praktische Infos für deinen Besuch" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/04/Blick-von-der-Mittelstation-zum-Meer.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/04/Blick-von-der-Mittelstation-zum-Meer-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 13"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/langkawi-sehenswuerdigkeiten-tipps-praktische
206-infos/">Langkawi: Sehenswürdigkeiten, Tipps & praktische Infos für deinen Besuch</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Apr. 18, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/asien/malaysia/" rel="tag">Malaysia</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Langkawi war für mich eigentlich nur ein Durchgangsstopp auf dem Weg nach Thailand. Ich war davor in Singapur für einen House Sit und wollte weiter zum Insel-Hopping in der Andamanensee â und Langkawi lag quasi auf dem Weg. Da ich noch nie dort gewesen war und wusste,...</p></div><a href="https://barbaralicious.com/langkawi-sehenswuerdigkeiten-tipps-praktische-infos/" class="more-link">mehr lesen</a></div></article><article id="post-38978" class="et_pb_post clearfix et_pb_blog_item_0_13 post-38978 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-reisen-um-die-welt category-thailand"><div class="et_pb_image_container"><a href="https://barbaralicious.com/insel-hopping-in-thailand/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/04/Maya-Bay-400x250.jpg" alt="Insel-Hopping in Thailand: Auf 6 Inseln von Koh Lipe bis Phuket" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/04/Maya-Bay.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/04/Maya-Bay-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 14"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/insel-hopping-in-thailand/">Insel-Hopping in Thailand: Auf 6 Inseln von Koh Lipe bis Phuket</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Apr. 11, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a>, <a href="https://barbaralicious.com/category/asien/thailand/" rel="tag">Thailand</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Mittlerweile kann ich gar nicht mehr zählen, wie oft ich schon in Thailand war. Aber so richtig Insel-Hopping in Thailand habe ich nie gemacht. Klar, ich war mal hier auf einer Insel, mal da auf einer anderen Insel. Aber so richtig von einer Insel zur nächsten bin ich...</p></div><a href="https://barbaralicious.com/insel-hopping-in-thailand/" class="more-link">mehr lesen</a></div></article><article id="post-38875" class="et_pb_post clearfix et_pb_blog_item_0_14 post-38875 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/jeju-erleben/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/04/I-love-Jeju-Schild-400x250.jpg" alt="Jeju Island: 7 Highlights zwischen Vulkaninsel & Kirschblüte" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/04/I-love-Jeju-Schild.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/04/I-love-Jeju-Schild-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 15"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/jeju-erleben/">Jeju Island: 7 Highlights zwischen Vulkaninsel & Kirschblüte</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">Apr. 4, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Jeju stand schon seit einiger Zeit auf meiner Liste â nicht nur, weil mich Südkorea als Land faszinierte, sondern auch, weil die Insel als eines der sieben Weltwunder der Natur gilt. Alle Weltwunder der Natur zu sehen, ist eines meiner 4-before-40-Ziele, also eines...</p></div><a href="https://barbaralicious.com/jeju-erleben/" class="more-link">mehr lesen</a></div></article><article id="post-38688" class="et_pb_post clearfix et_pb_blog_item_0_15 post-38688 post type-post status-publish format-standard has-post-thumbnail hentry category-orient category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/saudi-arabien-rundreise/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/03/Barbara-am-Edge-of-the-World-400x250.jpg" alt="Saudi-Arabien Rundreise: Zwischen Wüste, Geschichte und moderner Vision" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/03/Barbara-am-Edge-of-the-World.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/03/Barbara-am-Edge-of-the-World-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 16"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/saudi-arabien-rundreise/">Saudi-Arabien Rundreise: Zwischen Wüste, Geschichte und moderner Vision</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">März 28, 2026</span> | <a href="https://barbaralicious.com/category/reisen-um-die-welt/orient/" rel="tag">Orient</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Saudi-Arabien war für mich lange ein Land, das sich weit weg angefühlt hat. Und zwar nicht nur geografisch, sondern auch gedanklich. Und genau deshalb war diese Reise so spannend. Denn was ich vor Ort erlebt habe, war ein Mix aus Tradition, Aufbruch und Orten, die ich...</p></div><a href="https://barbaralicious.com/saudi-arabien-rundreise/" class="more-link">mehr lesen</a></div></article><article id="post-38763" class="et_pb_post clearfix et_pb_blog_item_0_16 post-38763 post type-post status-publish format-standard has-post-thumbnail hentry category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/meine-4-before-40-liste/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2020/08/Barbara-mit-Johnny-Urban-Rucksack-400x250.jpg" alt="Meine 4 before 40-Liste: Ziele, die ich vor meinem 40. Geburtstag erreichen möchte" class="" srcset="https://barbaralicious.com/wp-content/uploads/2020/08/Barbara-mit-Johnny-Urban-Rucksack.jpg 479w, https://barbaralicious.com/wp-content/uploads/2020/08/Barbara-mit-Johnny-Urban-Rucksack-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 17"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/meine-4-before-40-liste/">Meine 4 before 40-Liste: Ziele, die ich vor meinem 40. Geburtstag erreichen möchte</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">März 21, 2026</span> | <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Ich habe lange darüber nachgedacht, was meine ganz persönlichen â4 before 40â sein könnten. Also die vier Dinge, die ich unbedingt noch erreichen möchte, bevor ich am 1. Januar 2027 40 Jahre alt werde. Ich habe mir diese Ziele nicht gesetzt, weil ich irgendjemandem...</p></div><a href="https://barbaralicious.com/meine-4-before-40-liste/" class="more-link">mehr lesen</a></div></article><article id="post-38708" class="et_pb_post clearfix et_pb_blog_item_0_17 post-38708 post type-post status-publish format-standard has-post-thumbnail hentry category-asien category-indonesien category-reisen-um-die-welt"><div class="et_pb_image_container"><a href="https://barbaralicious.com/umwelt-und-tierschutz-in-sumatra-project-wings/" class="entry-featured-image-url"><img loading="lazy" decoding="async" src="https://barbaralicious.com/wp-content/uploads/2026/03/Im-Recycling-Village-von-Project-Wings-400x250.jpg" alt="Umwelt- und Tierschutz in Sumatra mit Project Wings" class="" srcset="https://barbaralicious.com/wp-content/uploads/2026/03/Im-Recycling-Village-von-Project-Wings.jpg 479w, https://barbaralicious.com/wp-content/uploads/2026/03/Im-Recycling-Village-von-Project-Wings-400x250.jpg 480w " sizes="(max-width:479px) 479px, 100vw " width="400" height="250" title="Barbaralicious Blog 18"></a></div><h2 class="entry-title"> <a href="https://barbaralicious.com/umwelt-und-tierschutz-in-sumatra-project-wings/">Umwelt- und Tierschutz in Sumatra mit Project Wings</a></h2><p class="post-meta">von <span class="author vcard"><a href="https://barbaralicious.com/author/barbara/" title="Beiträge von Barbara" rel="author">Barbara</a></span> | <span class="published">März 14, 2026</span> | <a href="https://barbaralicious.com/category/asien/" rel="tag">Asien</a>, <a href="https://barbaralicious.com/category/asien/indonesien/" rel="tag">Indonesien</a>, <a href="https://barbaralicious.com/category/reisen-um-die-welt/" rel="tag">Reisen</a> | 0 Kommentare</p><div class="post-content"><div class="post-content-inner"><p>Du willst gerne auf deinen Reisen etwas bewirken, in ein nachhaltiges Projekt reinschnuppern und als Freiwilliger zu Umwelt- und Naturschutz beitragen, aber irgendwie scheint alles entweder Symbolpolitik oder ein Vollzeitjob zu sein? Klar, Müll sammeln am Strand ist...</p></div><a href="https://barbaralicious.com/umwelt-und-tierschutz-in-sumatra-project-wings/" class="more-link">mehr lesen</a></div></article></div><div><div class="pagination clearfix"><div class="alignleft"><a href="https://barbaralicious.com/blog/page/2/?et_blog" >« Ãltere Einträge</a></div><div class="alignright"></div></div></div></div></div></div></div></div></div><div class="et_d4_element et_pb_section et_pb_section_3 et_pb_with_background et_section_regular et_block_section" ><div class="et_d4_element et_pb_row et_pb_row_2 et_block_row"><div class="et_d4_element et_pb_column_1_5 et_pb_column et_pb_column_2 et_pb_css_mix_blend_mode_passthrough et_block_column et_pb_column_empty"></div><div class="et_d4_element et_pb_column_3_5 et_pb_column et_pb_column_3 et_pb_css_mix_blend_mode_passthrough et_block_column"><div class="et_pb_module et_d4_element et_pb_text et_pb_text_1 et_pb_text_align_center et_pb_bg_layout_light"><div class="et_pb_text_inner"><p class="p1"><span class="s1">Hat dir dieser Blogpost gefallen?</span></p></div></div><div class="et_pb_module et_d4_element et_pb_text et_pb_text_2 et_pb_text_align_center et_pb_bg_layout_light"><div class="et_pb_text_inner"><p class="p1"><span class="s1">Dann teile ihn in deinen sozialen Netzwerken!</span></p></div></div><div class="et_pb_module et_d4_element et_pb_code et_pb_code_0"><div class="et_pb_code_inner">
206<div class="shariff shariff-align-center shariff-widget-align-center"><ul class="shariff-buttons theme-round orientation-horizontal buttonsize-large"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fbarbaralicious.com%2Fblog%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button flipboard shariff-nocustomcolor" style="background-color:#373737"><a href="https://share.flipboard.com/bookmarklet/popout?v=2&title=Barbaralicious%20Blog&url=https%3A%2F%2Fbarbaralicious.com%2Fblog%2F" title="Bei Flipboard teilen" aria-label="Bei Flipboard teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#f52828; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#f52828" d="M0 0h8v24H0V0zm9 9h7v7H9V9zm0-9h15v8H9V0z"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fbarbaralicious.com%2Fblog%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fbarbaralicious.com%2Fblog%2F&subject=Barbaralicious%20Blog" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li><li class="shariff-button pinterest shariff-nocustomcolor" style="background-color:#e70f18"><a href="https://www.pinterest.com/pin/create/link/?url=https%3A%2F%2Fbarbaralicious.com%2Fblog%2F&media=https%3A%2F%2Fbarbaralicious.com%2Fwp-content%2Fplugins%2Fshariff%2Fimages%2FdefaultHint.png&description=Barbaralicious%20Blog" title="Bei Pinterest pinnen" aria-label="Bei Pinterest pinnen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#cb2027; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#cb2027" d="M27.4 16q0 3.7-1.8 6.9t-5 5-6.9 1.9q-2 0-3.9-0.6 1.1-1.7 1.4-2.9 0.2-0.6 1-3.8 0.4 0.7 1.3 1.2t2 0.5q2.1 0 3.8-1.2t2.7-3.4 0.9-4.8q0-2-1.1-3.8t-3.1-2.9-4.5-1.2q-1.9 0-3.5 0.5t-2.8 1.4-2 2-1.2 2.3-0.4 2.4q0 1.9 0.7 3.3t2.1 2q0.5 0.2 0.7-0.4 0-0.1 0.1-0.5t0.2-0.5q0.1-0.4-0.2-0.8-0.9-1.1-0.9-2.7 0-2.7 1.9-4.6t4.9-2q2.7 0 4.2 1.5t1.5 3.8q0 3-1.2 5.2t-3.1 2.1q-1.1 0-1.7-0.8t-0.4-1.9q0.1-0.6 0.5-1.7t0.5-1.8 0.2-1.4q0-0.9-0.5-1.5t-1.4-0.6q-1.1 0-1.9 1t-0.8 2.6q0 1.3 0.4 2.2l-1.8 7.5q-0.3 1.2-0.2 3.2-3.7-1.6-6-5t-2.3-7.6q0-3.7 1.9-6.9t5-5 6.9-1.9 6.9 1.9 5 5 1.8 6.9z"/></svg></span></a></li>
206<li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fbarbaralicious.com%2Fblog%2F&text=Barbaralicious%20Blog" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li></ul></div></div></div></div><div class="et_d4_element et_pb_column_1_5 et_pb_column et_pb_column_4 et_pb_css_mix_blend_mode_passthrough et-last-child et_block_column et_pb_column_empty"></div></div></div><div class="et_d4_element et_pb_section et_pb_section_5 et_section_regular et_block_section" ><div class="et_d4_element et_pb_row et_pb_row_3 et_block_row"><div class="et_d4_element et_pb_column_1_2 et_pb_column et_pb_column_5 et_pb_css_mix_blend_mode_passthrough et_block_column"><div class="et_pb_module et_d4_element et_pb_cta_0 et_pb_promo et_pb_text_align_center et_pb_bg_layout_dark dbdb-icon-on-right dbdb-icon-on-hover"><div class="et_pb_promo_description"><div><h2>Newsletter</h2><p>Melde dich zu meinem Newsletter an, um über mein Leben auf Reisen und als digitale Nomadin auf dem Laufenden zu bleiben! So verpasst du nie einen neuen Blog-Eintrag, ein neues Buch, einen neuen Onlinekurs oder wo mein nächstes Abenteuer uns hinführen wird. Denn es wird nie langweilig werden! AuÃerdem bekommst du dann das StarterKit, um ortsunabhängig zu arbeiten! Cool oder cool?</p></div></div><div class="et_pb_button_wrapper"><a class="et_pb_button et_pb_promo_button" href="/newsletter">Anmelden</a></div></div></div><div class="et_d4_element et_pb_column_1_2 et_pb_column et_pb_column_6 et_pb_css_mix_blend_mode_passthrough et-last-child et_block_column"><div class="et_pb_module et_d4_element et_pb_image et_pb_image_0"> <span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="1200" height="1080" src="https://barbaralicious.com/wp-content/uploads/2023/08/Starter-Kit-Smart-MockUp.png" alt="Starter Kit Smart MockUp" title="Starter Kit Smart MockUp" srcset="https://barbaralicious.com/wp-content/uploads/2023/08/Starter-Kit-Smart-MockUp-1280x1152.png 1200w, https://barbaralicious.com/wp-content/uploads/2023/08/Starter-Kit-Smart-MockUp-980x882.png 980w, https://barbaralicious.com/wp-content/uploads/2023/08/Starter-Kit-Smart-MockUp-480x432.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1200px) 1200px, 100vw" class="wp-image-34815"></span></div></div></div></div></div></div> <span class="et_bloom_bottom_trigger"></span></div></article></div><footer id="main-footer" class="clearfix"><div class="clearfix"></div><div id="et-footer-nav"><div class="container"><ul id="menu-footer-menu-de" class="bottom-nav"><li id="menu-item-2387" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2387"><a href="https://barbaralicious.com/pr-medien/" title="Barbaralicious PR & Medien">PR & Medien</a></li><li id="menu-item-280" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-280"><a href="https://barbaralicious.com/kontakt/" title="Kontaktiere Barbaralicious">Kontakt</a></li><li id="menu-item-36664" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36664"><a href="https://barbaralicious.com/agb/">AGB</a></li><li id="menu-item-36663" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36663"><a href="https://barbaralicious.com/widerrufsbelehrung/">Widerrufsbelehrung</a></li><li id="menu-item-331" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-331"><a href="https://barbaralicious.com/datenschutzerklaerung/" title="Datenschutz auf Barbaralicious">Datenschutzerklärung</a></li><li id="menu-item-279" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-279"><a href="https://barbaralicious.com/impressum/" title="Impressum Barbaralicious">Impressum</a></li></ul></div></div><div id="footer-bottom"><div class="container clearfix"><ul class="et-social-icons"><li class="et-social-icon et-social-facebook"> <a href="https://www.facebook.com/BarbaraliciousBlog" class="icon"> <span>Facebook</span> </a></li><li class="et-social-icon et-social-twitter"> <a href="https://www.twitter.com/bbarbaralicious" class="icon"> <span>Twitter</span> </a></li><li class="et-social-icon et-social-instagram"> <a href="https://www.instagram.com/barbaralicious/" class="icon"> <span>Instagram</span> </a></li><li class="et-social-icon et-social-youtube"> <a href="https://www.youtube.com/channel/UCp9tvbdfHrpiRIlwSV4BIwQ" class="icon"> <span>YouTube</span> </a></li><li class="et-social-icon et-social-pinterest"> <a href="https://de.pinterest.com/bbarbaralicious/" class="icon"> <span>Pinterest</span> </a></li><li class="et-social-icon et-social-rss"> <a href="https://barbaralicious.com/feed/" class="icon"> <span>RSS</span> </a></li></ul><p id="footer-info">© <a href="https://Barbaralicious.com">Barbaralicious (Barbara Riedel) 2014-2026</a> <span class="footer-info-vertical-line">|</span> <span class="footer-info-made-with">Made with nomad â¡ by</span> <span class="footer-info-second-line"><a href="https://barbaralicious.com/uber-mich/">Barbara Riedel</a></span></p></div></div></footer></div></div>
206<script type='text/javascript'>(function () { 207 function runPixelCode( response ) { 208 if ( ! response || ! response.data || ! response.data.fb_pxl_code ) { 209 return; 210 } 211 212 try { 213 new Function( response.data.fb_pxl_code )(); 214 } catch ( e ) { 215 console && console.warn 216 && console.warn( 'Meta Pixel response parsing failed. Please check if your pixel is connected.', e ); 217 } 218 } 219 220 var radio = window.nfRadio 221 || ( window.Backbone && window.Backbone.Radio ); 222 if ( radio && radio.channel ) { 223 radio.channel( 'forms' ).on( 'submit:response', runPixelCode ); 224 } 225 226 if ( window.jQuery ) { 227 window.jQuery( document ).on( 228 'nfFormSubmitResponse', 229 function ( event, data ) { 230 if ( data && data.response ) { 231 runPixelCode( data.response ); 232 } 233 } 234 ); 235 } 236 })();</script>
236 237
237<script type='text/javascript'>(function ( $ ) { 238 if ( ! $ || typeof document === 'undefined' ) { 239 return; 240 } 241 // WPForms triggers this jQuery event and passes the AJAX response object. 242 $( document ).on( 'wpformsAjaxSubmitSuccess', function ( event, data ) { 243 if ( data && data.data && data.data.fb_pxl_code ) { 244 try { 245 new Function( data.data.fb_pxl_code )(); 246 } catch ( e ) { 247 console && console.warn && console.warn( 'Meta Pixel eval failed', e ); 248 } 249 } 250 } ); 251 })( window.jQuery );</script>
251
251<script type="speculationrules">{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/Divi-Child/*","/wp-content/themes/Divi/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}</script>
251
251<script>jQuery(document).ready(function($) { 252 function clearDbdbLightboxOpen() { 253 $('body').removeClass(function(index, className) { 254 return (className.match(/(^|\s)et_pb_gallery_\d+(?:_[^\s]+)?_dbdb_lightbox_open/g) || []).join(' '); 255 }); 256 } 257 258 // Add per-instance body class when a gallery image is clicked 259 $(document).on('click', '.et_pb_gallery .et_pb_gallery_image a', function() { 260 clearDbdbLightboxOpen(); 261 var $gallery = $(this).closest('.et_pb_gallery'); 262 if (!$gallery.length) return; 263 var classes = ($gallery.attr('class') || '').match(/et_pb_gallery_\d+(?:_[^\s]+)?/); 264 if (!classes || !classes[0]) return; 265 var orderClass = classes[0]; 266 $('body').addClass(orderClass + '_dbdb_lightbox_open'); 267 }); 268 269 // Remove class when popup closes 270 $(document).on('click', '.mfp-close, .mfp-bg', function() { clearDbdbLightboxOpen(); }); 271 $(document).on('keyup', function(e) { if (e.key === 'Escape') { clearDbdbLightboxOpen(); } }); 272});</script>
272
272<script>(function(){ 273 document.querySelectorAll('.et_pb_gallery.et_pb_gallery_grid').forEach(function(gallery){ 274 var pagination = gallery.querySelector('.et_pb_gallery_pagination'); 275 if (!pagination) return; 276 var displayMode = gallery.getAttribute('data-display-mode') || 'default'; 277 var updateLinks = function(){ 278 setTimeout(function() { 279 var prev = pagination.querySelector('a.page-prev'); 280 var next = pagination.querySelector('a.page-next'); 281 if (displayMode === 'icon') { 282 if (prev) prev.textContent = ''; 283 if (next) next.textContent = ''; 284 } else { 285 if (prev) prev.textContent = gallery.getAttribute('data-prev-text') || 'Prev'; 286 if (next) next.textContent = gallery.getAttribute('data-next-text') || 'Next'; 287 } 288 // Show links after update 289 pagination.style.visibility = 'visible'; 290 }, 1000); 291 }; 292 updateLinks(); 293 var observer = new MutationObserver(function(mutations){ 294 updateLinks(); 295 observer.disconnect(); 296 }); 297 observer.observe(pagination, { childList: true }); 298 }); 299 })();</script>
299
299<script>jQuery(document).ready(function($) { 300 $(document).on('click', '.et_pb_gallery .et_pb_gallery_image a', function() { 301 302 // Remove the old class 303 $('body').removeClass(function(index, className) { 304 return (className.match(/(^|\s)et_pb_gallery_\d+_dbdb_lightbox_open/g) || []).join(' '); 305 }); 306 307 // Add the new class 308 var gallery_module_order = $(this).closest('.et_pb_gallery').attr('class').match(/et_pb_gallery_\d+/)[0]; 309 $('body').addClass(gallery_module_order + '_dbdb_lightbox_open'); 310 }); 311 });</script>
311
311<script>jQuery(function($) { 312 313 var $links = $('.entry-content a, .et_pb_post_content a').filter(db_is_image_link).not(db_is_gallery_image_link); 314 $links.filter(db_has_child_img).addClass('et_pb_lightbox_image'); 315 $links.not(db_has_child_img).magnificPopup({type:'image'}); 316 317 dbdb_enableLightboxOnMapModuleImages(); 318 319 function dbdb_enableLightboxOnMapModuleImages() { 320 var attempts = 0; 321 var maxAttempts = 10; 322 var interval = setInterval(function() { 323 $('.et_pb_map a') 324 .filter(db_is_image_link) 325 .filter(db_has_child_img) 326 .magnificPopup({type:'image'}); 327 attempts++; 328 if (attempts >= maxAttempts) { 329 clearInterval(interval); 330 } 331 }, 1000); 332 } 333 334 function db_has_child_img() { 335 return ($(this).children('img').length); 336 } 337 338 function db_is_image_link() { 339 return (/\.(?:jpg|jpeg|gif|png|bmp)$/i.test($(this).attr('href'))); 340 } 341 342 function db_is_gallery_image_link() { 343 return ($(this).parent().hasClass("et_pb_gallery_image")); 344 } 345 } 346 );</script>
346 <div class="et_bloom_popup et_bloom_optin et_bloom_resize et_bloom_optin_1 et_bloom_trigger_click" data-trigger_click=".instapro-klick-trigger" data-success_action_details="redirect_url|https://barbaralicious.com/wip-fast-geschafft//"><div class="et_bloom_form_container et_bloom_popup_container et_bloom_form_bottom with_edge wedge_edge et_bloom_rounded et_bloom_form_text_dark et_bloom_animation_zoomin et_bloom_success_action"><div class="et_bloom_form_container_wrapper clearfix"><div class="et_bloom_header_outer"><div class="et_bloom_form_header split image_right et_bloom_header_text_dark"> <img width="610" height="367" src="https://barbaralicious.com/wp-content/uploads/2023/06/Werde-InstaPro-Mockup-610x367.png" class=" et_bloom_image_zoomin et_bloom_image" alt="" decoding="async" loading="lazy" /><div class="et_bloom_form_text"><h2 style="text-align: center;"><span style="color: #2551ff;">UNVERBINDLICHE WARTELISTE</span></h2><p style="text-align: center;">Melde Dich <strong>100 % unverbindlich</strong> zur Warteliste von Werde InstaPro! an. </p><p style="text-align: center;">Vergiss nicht, deine E-Mail-Adresse im nächsten Schritt zu bestätigen.</p></div></div></div><div class="et_bloom_form_content et_bloom_2_fields et_bloom_bottom_stacked"> <svg class="triangle et_bloom_default_edge" xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="20" viewBox="0 0 100 100" preserveAspectRatio="none"> <path d="M0 0 L50 100 L100 0 Z" fill=""></path> </svg><form method="post" class="clearfix"><div class="et_bloom_fields"><p class="et_bloom_popup_input et_bloom_subscribe_name"> <input placeholder="Dein Name" maxlength="50"></p><p class="et_bloom_popup_input et_bloom_subscribe_email"> <input placeholder="Deine E-Mail-Adresse"></p> <button data-optin_id="optin_1" data-service="sendinblue" data-list_id="6" data-page_id="3158" data-account="Warteliste Werde InstaPro" data-ip_address="false" class="et_bloom_submit_subscription"> <span class="et_bloom_subscribe_loader"></span> <span class="et_bloom_button_text et_bloom_button_text_color_light">ABSENDEN >></span> </button></div></form><div class="et_bloom_success_container"> <span class="et_bloom_success_checkmark"></span></div><h2 class="et_bloom_success_message">Noch ein Schritt... Ãffne JETZT Dein E-Mail-Postfach und bestätige Deine Anmeldung!</h2><div class="et_bloom_form_footer"><p style="text-align: center;">Die Eintragung auf die Warteliste für den Onlinekurs Werde InstaPro! ist dein erster Step in Richtung Erfolg. Neben allen Infos zum Kursstart erhältst du von mir regelmäÃig (maximal 4x pro Monat) nützliche Tipps & Angebote rund um die Themen Social-Media, Instagram & Marketing.</p><p style="text-align: center;">Meine E-Mails versende ich mit Brevo. Hier kommst du zur <a href="../datenschutzerklaerung/" target="_blank">Datenschutzerklärung</a> und hier kannst du alles rund um meinen <a href="../werde-instapro-newsletter/" target="_blank">Newsletter</a> nachlesen.</p></div></div></div> <span class="et_bloom_close_button"></span></div></div><div class="et_bloom_popup et_bloom_optin et_bloom_resize et_bloom_optin_3 et_bloom_trigger_click" data-trigger_click=".click-bt-newsletter" data-success_action_details="redirect_url|https://barbaralicious.com/bt-nl-danke/"><div class="et_bloom_form_container et_bloom_popup_container et_bloom_form_bottom with_edge wedge_edge et_bloom_rounded et_bloom_form_text_dark et_bloom_animation_fadein et_bloom_success_action"><div class="et_bloom_form_container_wrapper clearfix"><div class="et_bloom_header_outer"><div class="et_bloom_form_header split et_bloom_header_text_dark"> <img width="610" height="367" src="https://barbaralicious.com/wp-content/uploads/2023/06/B-Translator-Mockup-610x367.png" class=" et_bloom_image_slideup et_bloom_image" alt="" decoding="async" loading="lazy" /><div class="et_bloom_form_text"><h2 class="p1" style="box-sizing: border-box; margin: 0px; padding: 0px 0px 10px; border: 0px; outline: 0px; font-size: 44px; text-size-adjust: 100%; vertical-align: baseline; background-image: initial; background-position: 0px 0px; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; color: #2551ff; line-height: 1.6em; font-weight: 500; letter-spacing: 1px; font-family: 'Open Sans', Helvetica, Arial, Lucida, sans-serif; text-align: center;">Anmeldung zum Newsletter!</h2><div class="et_pb_module et_pb_text et_pb_text_7 et_pb_text_align_center et_pb_bg_layout_light" style="box-sizing: border-box; margin: 0px 0px 29.6953px; padding: 0px; border: 0px; outline: 0px; font-size: 18px; text-size-adjust: 100%; vertical-align: baseline; background-image: initial; background-position: 50% center; background-size: cover; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; position: relative; animation-timing-function: linear; animation-duration: 0.2s; overflow-wrap: break-word; text-align: center; color: #666666; font-family: 'Open Sans', Arial, sans-serif;"><div class="et_pb_text_inner" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; text-size-adjust: 100%; vertical-align: baseline; background: 0px 0px; position: relative;"><p style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; text-size-adjust: 100%; vertical-align: baseline; background: 0px 0px;"><span style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; text-size-adjust: 100%; vertical-align: baseline; background: 0px 0px;">Du zweifelst noch, ob B Translator das Richtige für dich ist? Dann melde dich doch erstmal zum Newsletter an und hol dir meine Tipps und Tricks für den Start als freiberuflicher Ãbersetzer!</span></p><p><span style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; text-size-adjust: 100%; vertical-align: baseline; background: 0px 0px;"> </span></p></div></div></div></div></div><div class="et_bloom_form_content et_bloom_1_field et_bloom_bottom_inline"> <svg class="triangle et_bloom_default_edge" xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="20" viewBox="0 0 100 100" preserveAspectRatio="none"> <path d="M0 0 L50 100 L100 0 Z" fill=""></path> </svg><form method="post" class="clearfix"><div class="et_bloom_fields"><p class="et_bloom_popup_input et_bloom_subscribe_email"> <input placeholder="Email"></p> <button data-optin_id="optin_3" data-service="sendinblue" data-list_id="12" data-page_id="3158" data-account="Barbara Riedel" data-ip_address="false" class="et_bloom_submit_subscription"> <span class="et_bloom_subscribe_loader"></span> <span class="et_bloom_button_text et_bloom_button_text_color_light">ANMELDEN!</span> </button></div></form><div class="et_bloom_success_container"> <span class="et_bloom_success_checkmark"></span></div><h2 class="et_bloom_success_message">You have Successfully Subscribed!</h2><div class="et_bloom_form_footer"><p style="box-sizing: content-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 12px; text-size-adjust: 100%; vertical-align: baseline; background: none 0px 0px #ededed; -webkit-font-smoothing: antialiased; font-family: Arial, Helvetica, Arial, Lucida, sans-serif; line-height: 1em; color: rgba(0, 0, 0, 0.7); text-align: center;">Die Anmeldung zum B Translator Newsletter ist dein erster Step in Richtung Erfolg als selbstständiger Ãbersetzer. Neben allen Infos zum Kurs erhältst du von mir regelmäÃig (maximal 4x pro Monat) nützliche Tipps & Angebote rund um die Themen Selbstständigkeit & Marketing. AuÃerdem kann es sein, dass ich dich darin über neue Produkte informiere, die dich interessieren könnten.</p><p style="box-sizing: content-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 12px; text-size-adjust: 100%; vertical-align: baseline; background: none 0px 0px #ededed; -webkit-font-smoothing: antialiased; font-family: Arial, Helvetica, Arial, Lucida, sans-serif; line-height: 1em; color: rgba(0, 0, 0, 0.7); text-align: center;">Meine E-Mails versende ich mit Brevo. Hier kommst du zur <a style="box-sizing: content-box; text-decoration-line: none; margin: 0px; padding: 0px; border: 0px; outline: 0px; text-size-adjust: 100%; vertical-align: baseline; background: none 0px 0px; color: #2551ff; -webkit-font-smoothing: antialiased; font-family: 'Open Sans', helvetica, arial, sans-serif; line-height: 1em;" href="../datenschutzerklaerung/" target="_blank">Datenschutzerklärung</a> und hier kannst du alles rund um meinen <a style="box-sizing: content-box; text-decoration-line: none; margin: 0px; padding: 0px; border: 0px; outline: 0px; text-size-adjust: 100%; vertical-align: baseline; background: none 0px 0px; color: #2551ff; -webkit-font-smoothing: antialiased; font-family: 'Open Sans', helvetica, arial, sans-serif; line-height: 1em;" href="../newsletter/" target="_blank">Newsletter</a> nachlesen.</p></div></div></div> <span class="et_bloom_close_button"></span></div></div><div class="et_bloom_popup et_bloom_optin et_bloom_resize et_bloom_optin_5 et_bloom_trigger_click" data-trigger_click=".wegindiefreiheit-klick-trigger" data-success_action_details="redirect_url|https://barbaralicious.com/dwidf-fast-geschafft/"><div class="et_bloom_form_container et_bloom_popup_container et_bloom_form_bottom with_edge wedge_edge et_bloom_rounded et_bloom_form_text_dark et_bloom_animation_zoomin et_bloom_success_action"><div class="et_bloom_form_container_wrapper clearfix"><div class="et_bloom_header_outer"><div class="et_bloom_form_header split image_right et_bloom_header_text_dark"> <img width="610" height="343" src="https://barbaralicious.com/wp-content/uploads/2023/08/Online-Course-Cover-Dein-Weg-in-die-Freiheit-610x343.png" class=" et_bloom_image_zoomin et_bloom_image" alt="Online Course Cover Dein Weg in die Freiheit" decoding="async" loading="lazy" /><div class="et_bloom_form_text"><h2 style="text-align: center;"><span style="color: #2551ff;">
346UNVERBINDLICHE WARTELISTE</span></h2><p style="text-align: center;">Melde Dich <strong>100 % unverbindlich</strong> zur Warteliste von Dein Weg in die Freiheit an. </p><p style="text-align: center;">Vergiss nicht, deine E-Mail-Adresse im nächsten Schritt zu bestätigen.</p></div></div></div><div class="et_bloom_form_content et_bloom_2_fields et_bloom_bottom_stacked"> <svg class="triangle et_bloom_default_edge" xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="20" viewBox="0 0 100 100" preserveAspectRatio="none"> <path d="M0 0 L50 100 L100 0 Z" fill=""></path> </svg><form method="post" class="clearfix"><div class="et_bloom_fields"><p class="et_bloom_popup_input et_bloom_subscribe_name"> <input placeholder="Dein Name" maxlength="50"></p><p class="et_bloom_popup_input et_bloom_subscribe_email"> <input placeholder="Deine E-Mail-Adresse"></p> <button data-optin_id="optin_5" data-service="sendinblue" data-list_id="17" data-page_id="3158" data-account="Dein Weg in die Freiheit" data-ip_address="false" class="et_bloom_submit_subscription"> <span class="et_bloom_subscribe_loader"></span> <span class="et_bloom_button_text et_bloom_button_text_color_light">ABSENDEN >></span> </button></div></form><div class="et_bloom_success_container"> <span class="et_bloom_success_checkmark"></span></div><h2 class="et_bloom_success_message">Noch ein Schritt... Ãffne JETZT Dein E-Mail-Postfach und bestätige Deine Anmeldung!</h2><div class="et_bloom_form_footer"><p style="text-align: center;">Die Eintragung auf die Warteliste für den Onlinekurs Dein Weg in die Freiheit ist dein erster Step in Richtung Erfolg. Neben allen Infos zum Kursstart erhältst du von mir regelmäÃig (maximal 4x pro Monat) nützliche Tipps & Angebote rund um das digitale Nomadentum.</p><p style="text-align: center;">Meine E-Mails versende ich mit Brevo. Hier kommst du zur <a href="../datenschutzerklaerung/" target="_blank">Datenschutzerklärung</a> und hier kannst du alles rund um meinen <a href="../werde-instapro-newsletter/" target="_blank">Newsletter</a> nachlesen.</p></div></div></div> <span class="et_bloom_close_button"></span></div></div><div class="et_bloom_popup et_bloom_optin et_bloom_resize et_bloom_optin_6 et_bloom_trigger_click" data-trigger_click=".starterkit-klick-trigger" data-success_action_details="redirect_url|https://barbaralicious.com/fast-geschafft/"><div class="et_bloom_form_container et_bloom_popup_container et_bloom_form_bottom with_edge wedge_edge et_bloom_rounded et_bloom_form_text_dark et_bloom_animation_fadein et_bloom_success_action"><div class="et_bloom_form_container_wrapper clearfix"><div class="et_bloom_header_outer"><div class="et_bloom_form_header split et_bloom_header_text_dark"> <img width="610" height="549" src="https://barbaralicious.com/wp-content/uploads/2023/08/Starter-Kit-Smart-MockUp-610x549.png" class=" et_bloom_image_slideup et_bloom_image" alt="Starter Kit Smart MockUp" decoding="async" loading="lazy" /><div class="et_bloom_form_text"><h2>Melde dich zum Newsletter von Barbaralicious an!</h2><p>Melde dich zu meinem Newsletter an, in dem ich dich über mein Leben auf Reisen und als digitale Nomadin informiere! Für dich gibt es dafür das StarterKit, um ortsunabhängig zu arbeiten und ein paar weitere Geschenke obendrauf. AuÃerdem verpasst du so keinen neuen Blogpost, kein neues E-Book oder wohin mich meine Reisen bringen. Langweilig wird es sicher nicht!</p></div></div></div><div class="et_bloom_form_content et_bloom_2_fields et_bloom_bottom_inline"> <svg class="triangle et_bloom_default_edge" xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="20" viewBox="0 0 100 100" preserveAspectRatio="none"> <path d="M0 0 L50 100 L100 0 Z" fill=""></path> </svg><form method="post" class="clearfix"><div class="et_bloom_fields"><p class="et_bloom_popup_input et_bloom_subscribe_name"> <input placeholder="Dein Name" maxlength="50"></p><p class="et_bloom_popup_input et_bloom_subscribe_email"> <input placeholder="Deine E-Mail-Adresse"></p> <button data-optin_id="optin_6" data-service="sendinblue" data-list_id="16" data-page_id="3158" data-account="Barbaralicious DE NL" data-ip_address="false" class="et_bloom_submit_subscription"> <span class="et_bloom_subscribe_loader"></span> <span class="et_bloom_button_text et_bloom_button_text_color_light">Jetzt anmelden!</span> </button></div></form><div class="et_bloom_success_container"> <span class="et_bloom_success_checkmark"></span></div><h2 class="et_bloom_success_message">Du hast dich erfolgreich zum Newsletter angemeldet</h2><div class="et_bloom_form_footer"><p>Die Eintragung in den Newsletter von Barbaralicious ist dein erster Step in Richtung Ortsunabhängigkeit. Neben allen Infos zu meinen Reisen erhältst du von mir regelmäÃig (maximal 4x pro Monat) nützliche Tipps & Angebote rund um das digitale Nomadentum sowie allgemein neue Produkte von Barbaralicious.</p></div></div></div> <span class="et_bloom_close_button"></span></div></div><div class="et_bloom_popup et_bloom_optin et_bloom_resize et_bloom_optin_7 et_bloom_trigger_click" data-trigger_click=".lp-tschuess-9-to-5" data-success_action_details="redirect_url|https://barbaralicious.com/tschuess-9-to-5-nur-noch-ein-schritt/"><div class="et_bloom_form_container et_bloom_popup_container et_bloom_form_bottom with_edge wedge_edge et_bloom_rounded et_bloom_form_text_dark et_bloom_animation_fadein et_bloom_success_action"><div class="et_bloom_form_container_wrapper clearfix"><div class="et_bloom_header_outer"><div class="et_bloom_form_header split et_bloom_header_text_dark"> <img src="https://barbaralicious.com/wp-content/uploads/2025/02/Buchcover-MockU
346p.png" alt="Melde dich zum Newsletter an" class=" et_bloom_image_fadein et_bloom_image"><div class="et_bloom_form_text"><h2>Melde dich zum Newsletter an</h2><p>Melde dich zum Newsletter an und erhalte "Tschüss 9-to-5, hallo Freelancing", dein erster Schritt für ein ortsunabhängiges Online-Business. Befreie dich aus dem Hamsterrad und gestalte dein Leben nach deinen eigenen Vorstellungen!</p></div></div></div><div class="et_bloom_form_content et_bloom_2_fields et_bloom_bottom_inline"> <svg class="triangle et_bloom_default_edge" xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="20" viewBox="0 0 100 100" preserveAspectRatio="none"> <path d="M0 0 L50 100 L100 0 Z" fill=""></path> </svg><form method="post" class="clearfix"><div class="et_bloom_fields"><p class="et_bloom_popup_input et_bloom_subscribe_name"> <input placeholder="Name" maxlength="50"></p><p class="et_bloom_popup_input et_bloom_subscribe_email"> <input placeholder="E-Mail"></p> <button data-optin_id="optin_7" data-service="sendinblue" data-list_id="20" data-page_id="3158" data-account="Tschüss 9-to-5" data-ip_address="false" class="et_bloom_submit_subscription"> <span class="et_bloom_subscribe_loader"></span> <span class="et_bloom_button_text et_bloom_button_text_color_light">ANMELDEN!</span> </button></div></form><div class="et_bloom_success_container"> <span class="et_bloom_success_checkmark"></span></div><h2 class="et_bloom_success_message">Du hast dich erfolgreich angemeldet!</h2><div class="et_bloom_form_footer"><p>Die Eintragung in den Newsletter von Barbaralicious ist dein erster Step in Richtung Ortsunabhängigkeit. Neben allen Infos zu meinen Reisen erhältst du von mir regelmäÃig (maximal 4x pro Monat) nützliche Tipps & Angebote rund um das digitale Nomadentum sowie allgemein neue Produkte von Barbaralicious.</p></div></div></div> <span class="et_bloom_close_button"></span></div></div>
346<script type='text/javascript'>document.addEventListener( 'wpcf7mailsent', function( event ) { 347 if( "fb_pxl_code" in event.detail.apiResponse){ 348 eval(event.detail.apiResponse.fb_pxl_code); 349 } 350 }, false );</script>
350 <div id="fb-pxl-ajax-code"></div><link rel="preload" href="https://barbaralicious.com/wp-content/plugins/divi-booster/core/icons/socicon/fonts/Socicon.woff2?87visu" as="font" crossorigin>
350<script id="divibooster-d5-sfnetworks-divi-icons-js-after">(function($){ 351 $(function(){ 352 var customNetworks = {"dbdb-phone":{"label":"Phone","background":"#58a9de"},"dbdb-podcast":{"label":"Podcast","background":"#58a9de"},"dbdb-website":{"label":"Website","background":"#58a9de"}}; 353 354 var attempts = 0; 355 var maxAttempts = 100; // 10 seconds 356 357 var interval = setInterval(function() { 358 attempts++; 359 360 // Check for Divi 5 global 361 if (window.divi && window.divi.moduleLibrary) { 362 clearInterval(interval); 363 initDiviBoosterIcons(); 364 } else if (attempts >= maxAttempts) { 365 clearInterval(interval); 366 } 367 }, 100); 368 369 function initDiviBoosterIcons() { 370 // Locate wp.hooks 371 var hooks = window.wp && window.wp.hooks; 372 if (!hooks && window.vendor && window.vendor.wp) { 373 hooks = window.vendor.wp.hooks; 374 } 375 376 if (!hooks) { 377 return; 378 } 379 380 var moduleName = "divi/social-media-follow-network"; 381 382 // 1. Attempt to patch via filter (Early binding) 383 hooks.addFilter('divi.moduleLibrary.moduleSettings.groups', 'divibooster', function(groups, metadata){ 384 if(metadata && metadata.name === moduleName){ 385 injectOptionsIntoGroups(groups); 386 } 387 return groups; 388 }); 389 390 // 2. Attempt to patch existing module (Late binding) 391 var patchAttempts = 0; 392 var patchInterval = setInterval(function() { 393 patchAttempts++; 394 if (patchAttempts > 40) { // Stop after 20 seconds 395 clearInterval(patchInterval); 396 return; 397 } 398 399 // Strategy A: Check moduleMapping directly (since getModule didn't exist on the library object) 400 if (window.divi && window.divi.moduleLibrary && window.divi.moduleLibrary.moduleMapping) { 401 var module = window.divi.moduleLibrary.moduleMapping[moduleName]; 402 if (module) { 403 clearInterval(patchInterval); 404 patchModule(module); 405 return; 406 } 407 } 408 409 // Strategy B: Check wp.data store 410 if (window.wp && window.wp.data) { 411 var libStore = window.wp.data.select('divi/module-library'); 412 if (libStore && typeof libStore.getModule === 'function') { 413 var module = libStore.getModule(moduleName); 414 if (module) { 415 clearInterval(patchInterval); 416 patchModule(module); 417 return; 418 } 419 } 420 } 421 422 }, 500); 423 424 function injectOptionsIntoGroups(groups) { 425 try { 426 // Path: contentNetwork.component.props.fields.socialNetworkTitle.component.props.options 427 var path = ["contentNetwork", "component", "props", "fields", "socialNetworkTitle", "component", "props", "options"]; 428 var current = groups; 429 for (var i = 0; i < path.length; i++) { 430 if (current && current[path[i]]) { 431 current = current[path[i]]; 432 } else { 433 return; // Path not found 434 } 435 } 436 437 // Merge options 438 Object.assign(current, customNetworks); 439 440 // Sort options alphabetically, keeping 'Select a Network' (empty key) at the top 441 var sorted = {}; 442 var keys = Object.keys(current).sort(function(a, b) { 443 // Keep empty key (placeholder) at the top 444 if (a === '') return -1; 445 if (b === '') return 1; 446 447 // Get labels for comparison 448 var labelA = current[a].label || a; 449 var labelB = current[b].label || b; 450 451 return labelA.localeCompare(labelB); 452 }); 453 454 keys.forEach(function(key) {
455 sorted[key] = current[key]; 456 }); 457 458 // Replace the options object content with sorted content 459 // We can't replace the object reference itself, so we clear and refill it 460 for (var key in current) { 461 if (current.hasOwnProperty(key)) { 462 delete current[key]; 463 } 464 } 465 Object.assign(current, sorted); 466 467 } catch (e) { 468 // Silent fail 469 } 470 } 471 472 function patchModule(module) { 473 // Prevent double-patching 474 if (module._diviBoosterPatched) { 475 return; 476 } 477 module._diviBoosterPatched = true; 478 479 // 1. Patch settings.content 480 // The module uses a function for settings.content which resets the options every time. 481 // We wrap it to re-inject our options after it runs. 482 if (module.settings && typeof module.settings.content === 'function') { 483 var originalContent = module.settings.content; 484 module.settings.content = function(args) { 485 // Run original function (which might reset options) 486 var result = originalContent(args); 487 488 // Re-inject our options into the configuration 489 if (args && args.groupConfiguration) { 490 injectOptionsIntoGroups(args.groupConfiguration); 491 } 492 493 return result; 494 }; 495 } 496 497 // 2. Patch callbacks.content...onChange 498 // The default onChange handler uses a hardcoded list. We replace it. 499 try { 500 var callbacks = module.callbacks; 501 if (callbacks && callbacks.content && callbacks.content.contentNetwork && 502 callbacks.content.contentNetwork.fields && 503 callbacks.content.contentNetwork.fields.socialNetworkTitle) { 504 505 var field = callbacks.content.contentNetwork.fields.socialNetworkTitle; 506 507 // Save original handler 508 var originalOnChange = callbacks.content.contentNetwork.fields.socialNetworkTitle.onChange; 509 510 // Replace the onChange handler 511 // We use a closure variable to track execution state to prevent recursion 512 var isExecuting = false; 513 514 field.onChange = function(e) { 515 // Prevent infinite recursion 516 if (isExecuting) { 517 return; 518 } 519 isExecuting = true; 520 521 var inputValue = (e && e.inputValue) ? e.inputValue : null; 522 var network = inputValue ? customNetworks[inputValue] : null; 523 524 if (network) { 525 Object.prototype[inputValue] = network; 526 } 527 528 var result; 529 try { 530 if (typeof originalOnChange === 'function') { 531 // Call original handler 532 // We use .call(this, e) to pass the context and the event object 533 result = originalOnChange.call(this, e); 534 } 535 } catch (err) { 536 // Silent fail 537 } finally { 538 // Cleanup 539 if (network) { 540 delete Object.prototype[inputValue]; 541 } 542 isExecuting = false;
543 } 544 return result; 545 }; 546 } 547 } catch (err) { 548 // Silent fail 549 } 550 } 551 } 552 }); 553})(jQuery); 554//# sourceURL=divibooster-d5-sfnetworks-divi-icons-js-after</script>
554
554<script id="divi-custom-script-js-extra">var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; 555//# sourceURL=divi-custom-script-js-extra</script>
555
555<script id="mediaelement-core-js-before">var mejsL10n = {"language":"de","strings":{"mejs.download-file":"Datei herunterladen","mejs.install-flash":"Du verwendest einen Browser, der nicht den Flash-Player aktiviert oder installiert hat. Bitte aktiviere dein Flash-Player-Plugin oder lade die neueste Version von https://get.adobe.com/flashplayer/ herunter","mejs.fullscreen":"Vollbild","mejs.play":"Wiedergeben","mejs.pause":"Pausieren","mejs.time-slider":"Zeit-Schieberegler","mejs.time-help-text":"Benutze die Pfeiltasten Links/Rechts, um 1\u00a0Sekunde vor- oder zur\u00fcckzuspringen. Mit den Pfeiltasten Hoch/Runter kannst du um 10\u00a0Sekunden vor- oder zur\u00fcckspringen.","mejs.live-broadcast":"Live-\u00dcbertragung","mejs.volume-help-text":"Pfeiltasten Hoch/Runter benutzen, um die Lautst\u00e4rke zu regeln.","mejs.unmute":"Lautschalten","mejs.mute":"Stummschalten","mejs.volume-slider":"Lautst\u00e4rkeregler","mejs.video-player":"Video-Player","mejs.audio-player":"Audio-Player","mejs.captions-subtitles":"Untertitel","mejs.captions-chapters":"Kapitel","mejs.none":"Keine","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanisch","mejs.arabic":"Arabisch","mejs.belarusian":"Wei\u00dfrussisch","mejs.bulgarian":"Bulgarisch","mejs.catalan":"Katalanisch","mejs.chinese":"Chinesisch","mejs.chinese-simplified":"Chinesisch (vereinfacht)","mejs.chinese-traditional":"Chinesisch (traditionell)","mejs.croatian":"Kroatisch","mejs.czech":"Tschechisch","mejs.danish":"D\u00e4nisch","mejs.dutch":"Niederl\u00e4ndisch","mejs.english":"Englisch","mejs.estonian":"Estnisch","mejs.filipino":"Filipino","mejs.finnish":"Finnisch","mejs.french":"Franz\u00f6sisch","mejs.galician":"Galicisch","mejs.german":"Deutsch","mejs.greek":"Griechisch","mejs.haitian-creole":"Haitianisch-Kreolisch","mejs.hebrew":"Hebr\u00e4isch","mejs.hindi":"Hindi","mejs.hungarian":"Ungarisch","mejs.icelandic":"Isl\u00e4ndisch","mejs.indonesian":"Indonesisch","mejs.irish":"Irisch","mejs.italian":"Italienisch","mejs.japanese":"Japanisch","mejs.korean":"Koreanisch","mejs.latvian":"Lettisch","mejs.lithuanian":"Litauisch","mejs.macedonian":"Mazedonisch","mejs.malay":"Malaiisch","mejs.maltese":"Maltesisch","mejs.norwegian":"Norwegisch","mejs.persian":"Persisch","mejs.polish":"Polnisch","mejs.portuguese":"Portugiesisch","mejs.romanian":"Rum\u00e4nisch","mejs.russian":"Russisch","mejs.serbian":"Serbisch","mejs.slovak":"Slowakisch","mejs.slovenian":"Slowenisch","mejs.spanish":"Spanisch","mejs.swahili":"Suaheli","mejs.swedish":"Schwedisch","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"T\u00fcrkisch","mejs.ukrainian":"Ukrainisch","mejs.vietnamese":"Vietnamesisch","mejs.welsh":"Walisisch","mejs.yiddish":"Jiddisch"}}; 556//# sourceURL=mediaelement-core-js-before</script>
556
556<script id="mediaelement-js-extra">var _wpmejsSettings = {"pluginPath":"/wp-includes/js/mediaelement/","classPrefix":"mejs-","stretching":"responsive","audioShortcodeLibrary":"mediaelement","videoShortcodeLibrary":"mediaelement"}; 557//# sourceURL=mediaelement-js-extra</script>
557
557<script id="divi-script-library-frontend-scripts-js-extra">var et_pb_custom = {"ajaxurl":"https://barbaralicious.com/wp-admin/admin-ajax.php","images_uri":"https://barbaralicious.com/wp-content/themes/Divi/images","builder_images_uri":"https://barbaralicious.com/wp-content/themes/Divi/includes/builder-5/images","et_frontend_nonce":"7ce734d809","subscription_failed":"Bitte pr\u00fcfen Sie die folgenden Felder, um sicherzustellen, dass Sie die richtigen Informationen eingegeben haben.","et_ab_log_nonce":"526c3b156c","fill_message":"Bitte f\u00fcllen Sie die folgenden Felder aus:","contact_error_message":"Bitte beheben Sie die folgenden Fehler:","invalid":"Ung\u00fcltige E-Mail-Adresse","captcha":"Captcha","prev":"Zur\u00fcck","previous":"Zur\u00fcck","next":"Weiter","slider_swipe":"WISCHEN \u2192","wrong_captcha":"Sie haben im Captcha die falsche Zahl eingegeben.","wrong_checkbox":"Kontrollk\u00e4stchen","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"3158","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"yes","is_shortcode_tracking":"","tinymce_uri":"https://barbaralicious.com/wp-content/themes/Divi/includes/builder/frontend-builder/assets/vendors","accent_color":"#2551ff","waypoints_options":[]}; 558var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; 559var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; 560var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; 561var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; 562var et_pb_custom = {"ajaxurl":"https://barbaralicious.com/wp-admin/admin-ajax.php","images_uri":"https://barbaralicious.com/wp-content/themes/Divi/images","builder_images_uri":"https://barbaralicious.com/wp-content/themes/Divi/includes/builder/images","et_frontend_nonce":"7ce734d809","subscription_failed":"Bitte pr\u00fcfen Sie die folgenden Felder, um sicherzustellen, dass Sie die richtigen Informationen eingegeben haben.","et_ab_log_nonce":"526c3b156c","fill_message":"Bitte f\u00fcllen Sie die folgenden Felder aus:","contact_error_message":"Bitte beheben Sie die folgenden Fehler:","invalid":"Ung\u00fcltige E-Mail-Adresse","captcha":"Captcha","prev":"Zur\u00fcck","previous":"Zur\u00fcck","next":"Weiter","wrong_captcha":"Sie haben im Captcha die falsche Zahl eingegeben.","wrong_checkbox":"Kontrollk\u00e4stchen","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"3158","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"yes","is_shortcode_tracking":"","tinymce_uri":"https://barbaralicious.com/wp-content/themes/Divi/includes/builder/frontend-builder/assets/vendors","accent_color":"#2551ff","waypoints_options":[]}; 563var et_pb_box_shadow_elements = []; 564//# sourceURL=divi-script-library-frontend-scripts-js-extra</script>
564
564<script id="et_bloom-custom-js-js-extra">var bloomSettings = {"ajaxurl":"https://barbaralicious.com/wp-admin/admin-ajax.php","pageurl":"https://barbaralicious.com/blog/","stats_nonce":"9785518741","subscribe_nonce":"401c74db3f","is_user_logged_in":"not_logged"}; 565//# sourceURL=et_bloom-custom-js-js-extra</script>
565
565<script id="divi-script-library-multi-view-js-extra">var diviBreakpointData = {"enabledBreakpoints":[{"order":50,"baseDevice":true,"enable":true,"name":"desktop"},{"order":30,"enable":true,"maxWidth":{"value":"980px","default":980},"name":"tablet"},{"order":10,"enable":true,"maxWidth":{"value":"767px","default":767},"name":"phone"}],"enabledBreakpointNames":["desktop","tablet","phone"],"baseBreakpointName":"desktop"}; 566//# sourceURL=divi-script-library-multi-view-js-extra</script>
566 <style id="et-builder-module-design-3158-cached-inline-styles">@font-face{font-family:"Open Sans";font-display:swap;src:url("https://barbaralicious.com/wp-content/uploads/et-fonts/open-sans-v15-latin-ext_latin-300.woff2") format("woff2")}</style><style id="et-builder-module-design-deferred-3158-cached-inline-styles">@font-face{font-family:"Open Sans";font-display:swap;src:url("https://barbaralicious.com/wp-content/uploads/et-fonts/open-sans-v15-latin-ext_latin-300.woff2") format("woff2")}div.et_pb_section.et_pb_section_0{background-image:radial-gradient(circle at center,#eee 0%,#eee 100%)!important}.et_pb_section_0.et_pb_section{padding-bottom:50px}.et_pb_section_0.section_has_divider.et_pb_bottom_divider .et_pb_bottom_inside_divider{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDBweCIgdmlld0JveD0iMCAwIDEyODAgMTQwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiNmN2Y3ZjciPjxwYXRoIGQ9Ik02NDAgMTM5TDAgMHYxNDBoMTI4MFYwTDY0MCAxMzl6IiBmaWxsLW9wYWNpdHk9Ii41Ii8+PHBhdGggZD0iTTY0MCAxMzlMMCA0MnY5OGgxMjgwVjQybC02NDAgOTd6Ii8+PC9nPjwvc3ZnPg==);background-size:100% 100px;bottom:0;height:100px;z-index:1;transform:scale(1,1)}.et_pb_row_0.et_pb_row{padding-top:60px!important;padding-bottom:60px!important;padding-top:60px;padding-bottom:60px}.et_pb_text_0{line-height:1.8em;font-family:'Lato',sans-serif;font-weight:300;line-height:1.8em}.et_pb_text_0 h1{font-family:'Open Sans',Helvetica,Arial,Lucida,sans-serif;font-size:56px;color:#2551ff!important}.et_pb_section_1.et_pb_section{background-color:#f7f7f7!important}.et_pb_section_3.et_pb_section{background-color:#efefef!important}.et_pb_text_1.et_pb_text{color:#2551ff!important}.et_pb_text_1,.et_pb_text_2{font-family:'Open Sans',Helvetica,Arial,Lucida,sans-serif;font-size:30px}.et_pb_cta_0.et_pb_promo h2,.et_pb_cta_0.et_pb_promo h1.et_pb_module_header,.et_pb_cta_0.et_pb_promo h3.et_pb_module_header,.et_pb_cta_0.et_pb_promo h4.et_pb_module_header,.et_pb_cta_0.et_pb_promo h5.et_pb_module_header,.et_pb_cta_0.et_pb_promo h6.et_pb_module_header{font-family:'Open Sans',Helvetica,Arial,Lucida,sans-serif!important;font-size:40px!important;color:#2551ff!important}.et_pb_cta_0.et_pb_promo .et_pb_promo_description div{font-family:'Open Sans',Helvetica,Arial,Lucida,sans-serif;color:#7c7c7c!important;text-align:center}.et_pb_cta_0.et_pb_promo .et_pb_button_wrapper{text-align:center}body #page-container .et_pb_section .et_pb_cta_0.et_pb_promo .et_pb_promo_button.et_pb_button{color:#2551ff!important;border-width:1px!important;border-color:#2551ff;border-radius:1px;background-color:#ffffff}body #page-container .et_pb_section .et_pb_cta_0.et_pb_promo .et_pb_promo_button.et_pb_button,body #page-container .et_pb_section .et_pb_cta_0.et_pb_promo .et_pb_promo_button.et_pb_button:hover{padding:0.3em 1em!important}body #page-container .et_pb_section .et_pb_cta_0.et_pb_promo .et_pb_promo_button.et_pb_button:before,body #page-container .et_pb_section .et_pb_cta_0.et_pb_promo .et_pb_promo_button.et_pb_button:after{display:none!important}.et_pb_image_0{text-align:left;margin-left:0}.et_pb_text_0.et_pb_module{margin-left:auto!important;margin-right:auto!important}@media only screen and (min-width:981px){.et_pb_text_0{width:70%}}@media only screen and (max-width:980px){.et_pb_text_0{font-size:16px;line-height:1.5em}.et_pb_text_0 h1{font-size:46px}.et_pb_section_4.et_pb_section,.et_pb_section_5.et_pb_section{padding-top:0px}.et_pb_image_0 .et_pb_image_wrap img{width:auto}}@media only screen and (max-width:767px){.et_pb_text_0{font-size:14px;width:100%}.et_pb_text_0 h1{font-family:'Raleway',sans-serif;font-weight:700;font-size:36px}.et_pb_image_0 .et_pb_image_wrap img{width:auto}}</style>
566<script data-name="db014-divi5-icon-module-img-class">(function() { 567 function apply() { 568 var imgs = document.querySelectorAll('.et_pb_icon .et_pb_icon_wrap img.dbdb-custom-icon-img'); 569 for (var i = 0; i < imgs.length; i++) { 570 imgs[i].classList.add('et-pb-icon'); 571 } 572 } 573 574 // Run initially and whenever DB014 triggers its internal refresh event. 575 if (document.readyState === 'loading') { 576 document.addEventListener('DOMContentLoaded', apply, { once: true }); 577 } else { 578 apply(); 579 } 580 581 if (window.jQuery) { 582 window.jQuery(document).on('db_vb_custom_icons_updated', function() { 583 apply(); 584 }); 585 } 586 587 // Divi / DB014 can inject the <img> after initial DOMContentLoaded. 588 // For front-end use, a short delayed retry is usually enough and avoids 589 // needing a MutationObserver. 590 window.setTimeout(apply, 200); 591 592 })();</script>
592
592<script id="dbtl-scroll-state-colors-script">(function() { 593 if (window.__dbtlScrollStateColorsInstalled) { 594 return; 595 } 596 window.__dbtlScrollStateColorsInstalled = true; 597 598 var scheduled = false; 599 var observed = false; 600 var states = ['dbtl-state-previous', 'dbtl-state-current', 'dbtl-state-upcoming']; 601 var scrollStates = ['previous', 'current', 'upcoming']; 602 var backgroundElements = ['marker', 'card', 'connector']; 603 var styleTargets = [ 604 { element: 'marker', suffix: 'bg' }, 605 { element: 'card', suffix: 'bg' }, 606 { element: 'connector', suffix: 'bg' }, 607 { element: 'date', suffix: 'color' }, 608 { element: 'title', suffix: 'color' }, 609 { element: 'body', suffix: 'color' } 610 ]; 611 var timelineSlug = "divi\/timeline"; 612 var timelineItemSlug = "divi\/timeline-item"; 613 var moduleAttr = "dbTimelineScrollStateColors"; 614 var itemAttr = "dbTimelineItemScrollStateColors"; 615 var baseClasses = ['dbtl-scroll-state-colors', 'dbtl-scroll-state-colors-item']; 616 var variableNames = []; 617 var variableClasses = []; 618 619 for (var variableStateIndex = 0; variableStateIndex < scrollStates.length; variableStateIndex++) { 620 for (var variableElementIndex = 0; variableElementIndex < styleTargets.length; variableElementIndex++) { 621 variableNames.push('--dbtl-' + scrollStates[variableStateIndex] + '-' + styleTargets[variableElementIndex].element + '-' + styleTargets[variableElementIndex].suffix); 622 variableClasses.push('dbtl-has-' + scrollStates[variableStateIndex] + '-' + styleTargets[variableElementIndex].element + '-' + styleTargets[variableElementIndex].suffix); 623 } 624 } 625 626 function getStoreWindow() { 627 var candidates = [window]; 628 try { 629 if (window.parent && window.parent !== window) { 630 candidates.push(window.parent); 631 } 632 if (window.top && window.top !== window && candidates.indexOf(window.top) === -1) { 633 candidates.push(window.top); 634 } 635 } catch (e) {} 636 637 for (var i = 0; i < candidates.length; i++) { 638 var candidate = candidates[i]; 639 if (candidate && candidate.divi && candidate.divi.data && typeof candidate.divi.data.select === 'function') { 640 return candidate; 641 } 642 if (candidate && candidate.wp && candidate.wp.data && typeof candidate.wp.data.select === 'function') { 643 return candidate; 644 } 645 } 646 647 return null; 648 } 649 650 function selectStore(storeName) { 651 var storeWindow = getStoreWindow(); 652 var data = storeWindow && storeWindow.divi && storeWindow.divi.data ? storeWindow.divi.data : (storeWindow && storeWindow.wp ? storeWindow.wp.data : null); 653 if (!data || typeof data.select !== 'function') { 654 return null; 655 } 656 657 try { 658 return data.select(storeName); 659 } catch (e) { 660 return null; 661 } 662 } 663 664 function hasBuilderStore() { 665 return !!selectStore('divi/edit-post'); 666 } 667 668 function toPlainObject(value) { 669 if (!value) { 670 return value; 671 } 672 if (typeof value.asMutable === 'function') { 673 try { 674 return value.asMutable({ deep: true }); 675 } catch (e) {} 676 } 677 if (typeof value.toJS === 'function') { 678 try { 679 return value.toJS(); 680 } catch (e) {} 681 } 682 return value; 683 } 684 685 function getModule(moduleId) { 686 var editPost = selectStore('divi/edit-post'); 687 if (!editPost || typeof editPost.getModule !== 'function') { 688 return null; 689 } 690 691 try { 692 return toPlainObject(editPost.getModule(moduleId)); 693 } catch (e) { 694 return null; 695 } 696 } 697 698 function getModuleName(moduleId) { 699 var editPost = selectStore('divi/edit-post'); 700 if (!editPost) { 701 return ''; 702 } 703 704 if (typeof editPost.getModuleName === 'function') { 705 try { 706 return editPost.getModuleName(moduleId) || ''; 707 } catch (e) {} 708 } 709 710 var module = getModule(moduleId); 711 return module && module.name ? module.name : ''; 712 } 713 714 function getModuleAttrs(moduleId) { 715 var editPost = selectStore('divi/edit-post'); 716 717 if (editPost && typeof editPost.getModuleAttrs === 'function') { 718 try { 719 return toPlainObject(editPost.getModuleAttrs(moduleId)) || {}; 720 } catch (e) {} 721 } 722 723 var module = getModule(moduleId); 724 return toPlainObject(module && module.props ? module.props.attrs : null) || {}; 725 } 726 727 function closestModuleIdByName(element, moduleName, stopAt) { 728 var current = element; 729 while (current && current.nodeType === 1 && current !== stopAt) { 730 if (current.hasAttribute && current.hasAttribute('data-id')) { 731 var moduleId = current.getAttribute('data-id'); 732 if (moduleId && getModuleName(moduleId) === moduleName) { 733 return moduleId; 734 } 735 } 736 current = current.parentElement; 737 } 738 return ''; 739 } 740 741 function getTimelineItemId(item, timeline, timelineId, index) { 742 var itemId = closestModuleIdByName(item, timelineItemSlug, timeline); 743 if (itemId) { 744 return itemId; 745 } 746 747 var timelineModule = getModule(timelineId); 748 var children = timelineModule && timelineModule.children; 749 if (Array.isArray(children) && children[index]) { 750 return children[index]; 751 } 752 753 return ''; 754 } 755 756 function getNestedValue(object, path) { 757 var value = object; 758 for (var i = 0; i < path.length; i++) { 759 if (!value || typeof value !== 'object' || !Object.prototype.hasOwnProperty.call(value, path[i])) { 760 return null; 761 } 762 value = value[path[i]]; 763 } 764 return value; 765 } 766 767 function getAttrSubValue(attrs, attrName, subName) { 768 var attr = attrs && attrs[attrName]; 769 if (!attr || typeof attr !== 'object') { 770 return ''; 771 } 772 773 var paths = [ 774 ['desktop', 'value', subName], 775 ['value', subName], 776 [subName, 'desktop', 'value'], 777 [subName, 'value'], 778 [subName] 779 ]; 780 781 for (var i = 0; i < paths.length; i++) { 782 var value = getNestedValue(attr, paths[i]); 783 if (typeof value === 'string' && value.trim() !== '') { 784 return value; 785 } 786 } 787 788 return ''; 789 } 790
791 function getBackgroundStateColor(backgroundAttr, state) { 792 var paths = [ 793 ['desktop', state, 'color'], 794 ['desktop', state, 'value', 'color'], 795 ['desktop', 'value', state, 'color'], 796 ['value', state, 'color'], 797 [state, 'color'], 798 [state, 'value', 'color'] 799 ]; 800 801 for (var i = 0; i < paths.length; i++) { 802 var value = getNestedValue(backgroundAttr, paths[i]); 803 if (typeof value === 'string' && value.trim() !== '') { 804 return value; 805 } 806 } 807 808 return ''; 809 } 810 811 function sanitizeColor(value) { 812 value = typeof value === 'string' ? value.trim() : ''; 813 if (!value || /^rgba\(\s*255\s*,\s*255\s*,\s*255\s*,\s*0(?:\.0+)?\s*\)$/i.test(value)) { 814 return ''; 815 } 816 return /^(#[0-9a-f]{3,8}|rgba?\([0-9.,%\s]+\)|hsla?\([0-9.,%\s]+\)|[a-z]+)$/i.test(value) ? value : ''; 817 } 818 819 function getCssVarsFromAttrs(attrs, attrName) { 820 var vars = {}; 821 822 for (var elementIndex = 0; elementIndex < backgroundElements.length; elementIndex++) { 823 var element = backgroundElements[elementIndex]; 824 var backgroundAttr = getNestedValue(attrs, [element, 'decoration', 'background']); 825 826 if (backgroundAttr && typeof backgroundAttr === 'object') { 827 for (var stateIndex = 0; stateIndex < scrollStates.length; stateIndex++) { 828 var state = scrollStates[stateIndex]; 829 var backgroundColor = sanitizeColor(getBackgroundStateColor(backgroundAttr, state)); 830 if (backgroundColor) { 831 vars['--dbtl-' + state + '-' + element + '-bg'] = backgroundColor; 832 } 833 } 834 } 835 } 836 837 for (var legacyStateIndex = 0; legacyStateIndex < scrollStates.length; legacyStateIndex++) { 838 for (var legacyElementIndex = 0; legacyElementIndex < styleTargets.length; legacyElementIndex++) { 839 var legacyState = scrollStates[legacyStateIndex]; 840 var legacyElement = styleTargets[legacyElementIndex].element; 841 var legacySuffix = styleTargets[legacyElementIndex].suffix; 842 var subName = legacyState + legacyElement.charAt(0).toUpperCase() + legacyElement.slice(1); 843 var legacyColor = sanitizeColor(getAttrSubValue(attrs, attrName, subName)); 844 if (legacyColor) { 845 vars['--dbtl-' + legacyState + '-' + legacyElement + '-' + legacySuffix] = legacyColor; 846 } 847 } 848 } 849 850 return vars; 851 } 852 853 function applyCssVars(element, baseClass, vars) { 854 var hasVars = false; 855 var desiredClasses = {}; 856 857 if (!element || !element.classList || !element.style) { 858 return false; 859 } 860 861 for (var baseIndex = 0; baseIndex < baseClasses.length; baseIndex++) { 862 if (baseClasses[baseIndex] !== baseClass && element.classList.contains(baseClasses[baseIndex])) { 863 element.classList.remove(baseClasses[baseIndex]); 864 } 865 } 866 867 Object.keys(vars).forEach(function(variableName) { 868 var className = 'dbtl-has-' + variableName.replace(/^--dbtl-/, ''); 869 hasVars = true; 870 desiredClasses[className] = true; 871 872 if (element.style.getPropertyValue(variableName) !== vars[variableName]) { 873 element.style.setProperty(variableName, vars[variableName]); 874 } 875 }); 876 877 for (var classIndex = 0; classIndex < variableClasses.length; classIndex++) { 878 var variableClass = variableClasses[classIndex]; 879 if (desiredClasses[variableClass]) { 880 if (!element.classList.contains(variableClass)) { 881 element.classList.add(variableClass); 882 } 883 } else if (element.classList.contains(variableClass)) { 884 element.classList.remove(variableClass); 885 } 886 } 887 888 for (var variableIndex = 0; variableIndex < variableNames.length; variableIndex++) { 889 var knownVariableName = variableNames[variableIndex]; 890 if (!Object.prototype.hasOwnProperty.call(vars, knownVariableName) && element.style.getPropertyValue(knownVariableName) !== '') { 891 element.style.removeProperty(knownVariableName); 892 } 893 } 894 895 if (hasVars && !element.classList.contains(baseClass)) { 896 element.classList.add(baseClass); 897 } else if (!hasVars && element.classList.contains(baseClass)) { 898 element.classList.remove(baseClass); 899 } 900 901 return hasVars; 902 } 903 904 function syncBuilderPreviewStyles() { 905 var editPost = selectStore('divi/edit-post'); 906 if (!editPost || !document.querySelector) { 907 return; 908 } 909 910 var timelines = document.querySelectorAll('.et_pb_timeline'); 911 for (var i = 0; i < timelines.length; i++) { 912 var timeline = timelines[i]; 913 var timelineId = closestModuleIdByName(timeline, timelineSlug, null); 914 915 if (!timelineId) { 916 continue; 917 } 918 919 applyCssVars(timeline, 'dbtl-scroll-state-colors', getCssVarsFromAttrs(getModuleAttrs(timelineId), moduleAttr)); 920 921 var items = timeline.querySelectorAll('.et_pb_timeline_item'); 922 for (var j = 0; j < items.length; j++) { 923 var item = items[j]; 924 var itemId = getTimelineItemId(item, timeline, timelineId, j); 925 if (!itemId || getModuleName(itemId) !== timelineItemSlug) { 926 applyCssVars(item, 'dbtl-scroll-state-colors-item', {}); 927 continue; 928 } 929 applyCssVars(item, 'dbtl-scroll-state-colors-item', getCssVarsFromAttrs(getModuleAttrs(itemId), itemAttr)); 930 } 931 } 932 } 933 934 function timelineHasColors(timeline) { 935 return timeline.classList.contains('dbtl-scroll-state-colors') || 936 !!timeline.querySelector('.dbtl-scroll-state-colors-item'); 937 } 938 939 function isVerticalTimeline(timeline) { 940 var track = timeline.querySelector('.et_pb_timeline_track'); 941 if (!track || !window.getComputedStyle) { 942 return true; 943 } 944 return window.getComputedStyle(track).getPropertyValue('flex-direction').indexOf('column') === 0; 945 } 946 947 function setItemState(item, stateClass) { 948 var currentState = item.classList.contains('dbtl-state-current') ? 'dbtl-state-current' : 949 (item.classList.contains('dbtl-state-previous') ? 'dbtl-state-previous' : 950 (item.classList.contains('dbtl-state-upcoming') ? 'dbtl-state-upcoming' : '')); 951 952 if (currentState === stateClass) { 953 return; 954 } 955 956 for (var i = 0; i < states.length; i++) { 957 if (states[i] !== stateClass && item.classList.contains(states[i])) { 958 item.classList.remove(states[i]); 959 } 960 } 961 if (stateClass && !item.classList.contains(stateClass)) { 962 item.classList.add(stateClass); 963 } 964 } 965 966 function isCarouselTimeline(timeline) { 967 return timeline && timeline.classList && timeline.classList.contains('dbtl-horizontal-carousel'); 968 } 969 970 function getCarouselCurrentIndex(timeline, items) { 971 var index = parseInt(timeline.getAttribute('data-dbtl-carou
971sel-current-index') || '0', 10); 972 if (!isFinite(index)) { 973 index = 0; 974 } 975 return Math.max(0, Math.min(Math.max(0, items.length - 1), index)); 976 } 977 978 function setCarouselItemStates(timeline, items) { 979 var currentIndex = getCarouselCurrentIndex(timeline, items); 980 for (var i = 0; i < items.length; i++) { 981 if (i < currentIndex) { 982 setItemState(items[i], 'dbtl-state-previous'); 983 } else if (i > currentIndex) { 984 setItemState(items[i], 'dbtl-state-upcoming'); 985 } else { 986 setItemState(items[i], 'dbtl-state-current'); 987 } 988 } 989 } 990 991 function update() { 992 scheduled = false; 993 if (hasBuilderStore()) { 994 syncBuilderPreviewStyles(); 995 } 996 var mid = window.innerHeight / 2; 997 var timelines = document.querySelectorAll('.et_pb_timeline'); 998 999 for (var i = 0; i < timelines.length; i++) { 1000 var timeline = timelines[i]; 1001 if (!timelineHasColors(timeline)) { 1002 continue; 1003 } 1004 1005 var items = timeline.querySelectorAll('.et_pb_timeline_item'); 1006 var isVertical = isVerticalTimeline(timeline); 1007 1008 if (!isVertical && isCarouselTimeline(timeline)) { 1009 setCarouselItemStates(timeline, items); 1010 continue; 1011 } 1012 1013 for (var j = 0; j < items.length; j++) { 1014 var item = items[j]; 1015 if (!isVertical) { 1016 setItemState(item, ''); 1017 continue; 1018 } 1019 1020 var rect = item.getBoundingClientRect(); 1021 if (rect.bottom < mid) { 1022 setItemState(item, 'dbtl-state-previous'); 1023 } else if (rect.top > mid) { 1024 setItemState(item, 'dbtl-state-upcoming'); 1025 } else { 1026 setItemState(item, 'dbtl-state-current'); 1027 } 1028 } 1029 } 1030 } 1031 1032 function schedule() { 1033 if (scheduled) { 1034 return; 1035 } 1036 scheduled = true; 1037 if (window.requestAnimationFrame) { 1038 window.requestAnimationFrame(update); 1039 } else { 1040 window.setTimeout(update, 16); 1041 } 1042 } 1043 1044 function observeBuilderRenders() { 1045 if (observed || !hasBuilderStore() || !window.MutationObserver || !document.body) { 1046 return; 1047 } 1048 observed = true; 1049 new MutationObserver(function(mutations) { 1050 for (var i = 0; i < mutations.length; i++) { 1051 if (mutations[i].type === 'childList') { 1052 schedule(); 1053 return; 1054 } 1055 } 1056 }).observe(document.body, { 1057 childList: true, 1058 subtree: true 1059 }); 1060 } 1061 1062 window.addEventListener('scroll', schedule, { passive: true }); 1063 window.addEventListener('resize', schedule); 1064 document.addEventListener('DOMContentLoaded', schedule); 1065 observeBuilderRenders(); 1066 schedule(); 1067 window.setTimeout(schedule, 250); 1068 })();</script>
1068
1068<script>(function($){ 1069 if(!$) return; 1070 function getSepFromGallery($gallery){ 1071 var sep = ($gallery.find('.et_pb_gallery_items').attr('data-dbdb-image-count-separator')); 1072 if (typeof sep === 'undefined' || sep === null) sep = ' of '; 1073 return sep; 1074 } 1075 function applySliderCounterSeparator($gallery){ 1076 var $counter = $gallery.find('.dbdb-slide-counter').first(); 1077 if (!$counter.length) return; 1078 var $active = $counter.find('.dbdb-slide-counter-active').first(); 1079 var $total = $counter.find('.dbdb-slide-counter-total').first(); 1080 if (!$active.length || !$total.length) return; 1081 var outer = function($el){ 1082 var node = ($el && $el[0]) ? $el[0] : null; 1083 if (node && typeof node.outerHTML === 'string') return node.outerHTML; 1084 return $el ? $el.text() : ''; 1085 }; 1086 var s = getSepFromGallery($gallery); 1087 $counter.html(outer($active) + s + outer($total)); 1088 $counter.addClass('dbdb-counter-ready'); 1089 } 1090 $(function(){ 1091 $('.et_pb_gallery').each(function(){ 1092 var $g = $(this); 1093 applySliderCounterSeparator($g); 1094 // One follow-up pass after dynamic slider activation / lazy content 1095 setTimeout(function(){ applySliderCounterSeparator($g); }, 80); 1096 // Ensure lightbox counter template is updated before first open 1097 ensureLightboxTemplate($g); 1098 }); 1099 1100 // Helper: set lightbox template if magnificPopup instance available 1101 function setLightboxTemplate($gallery){ 1102 var $items = $gallery.find('.et_pb_gallery_items'); 1103 if (!$items.length) return false; 1104 var mp = $items.data('magnificPopup'); 1105 if (mp && mp.gallery){ 1106 mp.gallery.tCounter = '%curr%' + getSepFromGallery($gallery) + '%total%'; 1107 return true; 1108 } 1109 return false; 1110 } 1111 // Ensure template applied with limited retries (covers delayed MP init) 1112 function ensureLightboxTemplate($gallery){ 1113 var attempts = 0, maxAttempts = 12; // ~ < 1s at 60ms 1114 (function trySet(){ 1115 if (setLightboxTemplate($gallery)) return; 1116 if (attempts++ < maxAttempts) setTimeout(trySet, 60); 1117 })(); 1118 } 1119 // On click attempt immediate + post-init pass (Divi may init on demand) 1120 $(document).on('click', '.et_pb_gallery .et_pb_gallery_image a', function(){ 1121 var $gallery = $(this).closest('.et_pb_gallery'); 1122 // Try now (in case already initialized) 1123 if (!setLightboxTemplate($gallery)) { 1124 // Fallback shortly after (after Divi's own handler runs) 1125 setTimeout(function(){ setLightboxTemplate($gallery) || ensureLightboxTemplate($gallery); }, 0); 1126 } 1127 }); 1128 1129 // Re-apply separator after custom slide change events (from related features) 1130 $(document).on('divi-booster:gallery-slide-changed', '.et_pb_gallery', function(){ applySliderCounterSeparator($(this)); }); 1131 }); 1132 window.applySliderCounterSeparator = applySliderCounterSeparator; 1133})(window.jQuery);</script>
1133
1133<script>(function($){ 1134 if(!$) return; 1135 function findFieldRow(){ 1136 // VB modal field 1137 var $inp = $('input[name="dbdb_image_count_separator"], textarea[name="dbdb_image_count_separator"]'); 1138 if (!$inp.length) return $(); 1139 var $row = $inp.closest('.et-fb-form__group'); 1140 if ($row.length) return $row; 1141 // Back-end settings 1142 return $inp.closest('.et_pb_option'); 1143 } 1144 function getVal(name){ var $f = $('[name="'+name+'"]').first(); return $f.length ? $f.val() : null; } 1145 function updateVisibility(){ 1146 var $row = findFieldRow(); if (!$row.length) return; 1147 var fullwidth = getVal('fullwidth') || 'off'; 1148 var lightbox = getVal('dbdb_show_in_lightbox'); 1149 if (lightbox === null || typeof lightbox === 'undefined') lightbox = 'on'; // assume enabled if control absent 1150 var show = (fullwidth === 'on') || (lightbox !== 'off'); 1151 $row.toggle(!!show); 1152 } 1153 var iv=null; $(document).on('et_fb_loaded et_fb_setting:change', function(){ updateVisibility(); }); 1154 $(function(){ updateVisibility(); if (!iv) { iv = setInterval(updateVisibility, 500); } }); 1155})(window.jQuery);</script>
1155
1155<script id="dbtl-horizontal-carousel-script">(function() { 1156 if (window.__dbtlHorizontalCarouselInstalled) { 1157 return; 1158 } 1159 window.__dbtlHorizontalCarouselInstalled = true; 1160 1161 var scheduled = false; 1162 var observed = false; 1163 var timelineSlug = "divi\/timeline"; 1164 var attrName = "dbTimelineHorizontalCarousel"; 1165 var scrollModeAttrName = "dbTimelineHorizontalCarouselScrollMode"; 1166 var arrowSizeAttrName = "dbTimelineHorizontalCarouselArrowSize"; 1167 var defaultArrowColor = "#2b2f36"; 1168 var defaultArrowBackgroundColor = "rgba(255,255,255,0.92)"; 1169 var defaultArrowSize = "22px"; 1170 var breakpointSettings = {"phone":{"order":10,"maxWidth":{"value":"767px"}},"tablet":{"order":30,"minWidth":{"value":"768px"},"maxWidth":{"value":"980px"}},"desktop":{"order":50,"baseDevice":true,"minWidth":{"value":"981px"}}}; 1171 1172 function getStoreWindow() { 1173 var candidates = [window]; 1174 try { 1175 if (window.parent && window.parent !== window) { 1176 candidates.push(window.parent); 1177 } 1178 if (window.top && window.top !== window && candidates.indexOf(window.top) === -1) { 1179 candidates.push(window.top); 1180 } 1181 } catch (e) {} 1182 1183 for (var i = 0; i < candidates.length; i++) { 1184 if (candidates[i] && candidates[i].divi && candidates[i].divi.data && typeof candidates[i].divi.data.select === 'function') { 1185 return candidates[i]; 1186 } 1187 if (candidates[i] && candidates[i].wp && candidates[i].wp.data && typeof candidates[i].wp.data.select === 'function') { 1188 return candidates[i]; 1189 } 1190 } 1191 return null; 1192 } 1193 1194 function selectStore(storeName) { 1195 var storeWindow = getStoreWindow(); 1196 var data = storeWindow && storeWindow.divi && storeWindow.divi.data ? storeWindow.divi.data : (storeWindow && storeWindow.wp ? storeWindow.wp.data : null); 1197 if (!data || typeof data.select !== 'function') { 1198 return null; 1199 } 1200 try { 1201 return data.select(storeName); 1202 } catch (e) { 1203 return null; 1204 } 1205 } 1206 1207 function hasBuilderStore() { 1208 return !!selectStore('divi/edit-post'); 1209 } 1210 1211 function toPlainObject(value) { 1212 if (!value) { 1213 return value; 1214 } 1215 if (typeof value.asMutable === 'function') { 1216 try { 1217 return value.asMutable({ deep: true }); 1218 } catch (e) {} 1219 } 1220 if (typeof value.toJS === 'function') { 1221 try { 1222 return value.toJS(); 1223 } catch (e) {} 1224 } 1225 return value; 1226 } 1227 1228 function nestedValue(object, path) { 1229 var value = object; 1230 for (var i = 0; i < path.length; i++) { 1231 if (!value || typeof value !== 'object' || !Object.prototype.hasOwnProperty.call(value, path[i])) { 1232 return null; 1233 } 1234 value = value[path[i]]; 1235 } 1236 return value; 1237 } 1238 1239 function getModuleName(moduleId) { 1240 var editPost = selectStore('divi/edit-post'); 1241 var module = null; 1242 if (!editPost) { 1243 return ''; 1244 } 1245 try { 1246 if (typeof editPost.getModuleName === 'function') { 1247 return editPost.getModuleName(moduleId) || ''; 1248 } 1249 } catch (e) {} 1250 try { 1251 module = typeof editPost.getModule === 'function' ? toPlainObject(editPost.getModule(moduleId)) : null; 1252 } catch (e) { 1253 module = null; 1254 } 1255 return module && module.name ? module.name : ''; 1256 } 1257 1258 function getModuleAttrs(moduleId) { 1259 var editPost = selectStore('divi/edit-post'); 1260 var module = null; 1261 if (!editPost) { 1262 return {}; 1263 } 1264 try { 1265 if (typeof editPost.getModuleAttrs === 'function') { 1266 return toPlainObject(editPost.getModuleAttrs(moduleId)) || {}; 1267 } 1268 } catch (e) {} 1269 try { 1270 module = typeof editPost.getModule === 'function' ? toPlainObject(editPost.getModule(moduleId)) : null; 1271 } catch (e) { 1272 module = null; 1273 } 1274 return toPlainObject(module && module.props ? module.props.attrs : null) || {}; 1275 } 1276 1277 function closestTimelineId(timeline) { 1278 var current = timeline; 1279 while (current && current.nodeType === 1) { 1280 if (current.hasAttribute && current.hasAttribute('data-id')) { 1281 var id = current.getAttribute('data-id'); 1282 if (id && getModuleName(id) === timelineSlug) { 1283 return id; 1284 } 1285 } 1286 current = current.parentElement; 1287 } 1288 return ''; 1289 } 1290 1291 function hasResponsiveValue(value) { 1292 if (value === null || value === undefined) { 1293 return false;
1294 } 1295 return !(typeof value === 'string' && value.trim() === ''); 1296 } 1297 1298 function responsiveAttrValue(attr, breakpoint, paths) { 1299 var orderedPaths = []; 1300 var i; 1301 1302 if (breakpoint && breakpoint !== 'desktop') { 1303 for (i = 0; i < paths.length; i++) { 1304 orderedPaths.push(paths[i](breakpoint)); 1305 } 1306 } 1307 for (i = 0; i < paths.length; i++) { 1308 orderedPaths.push(paths[i]('desktop')); 1309 } 1310 1311 for (i = 0; i < orderedPaths.length; i++) { 1312 var value = nestedValue(attr, orderedPaths[i]); 1313 if (hasResponsiveValue(value)) { 1314 return value; 1315 } 1316 } 1317 1318 return ''; 1319 } 1320 1321 function attrSubValue(attrs, subName, breakpoint) { 1322 var attr = attrs && attrs[attrName]; 1323 var value = responsiveAttrValue(attr, breakpoint || 'desktop', [ 1324 function(bp) { return [bp, 'value', subName]; }, 1325 function(bp) { return [subName, bp, 'value']; } 1326 ]); 1327 1328 if (hasResponsiveValue(value)) { 1329 return value; 1330 } 1331 1332 var legacyPaths = [ 1333 ['value', subName], 1334 [subName, 'value'], 1335 [subName] 1336 ]; 1337 1338 for (var i = 0; i < legacyPaths.length; i++) { 1339 value = nestedValue(attr, legacyPaths[i]); 1340 if (hasResponsiveValue(value)) { 1341 return value; 1342 } 1343 } 1344 return ''; 1345 } 1346 1347 function attrValue(attrs, name, fallback, breakpoint) { 1348 var attr = attrs && attrs[name]; 1349 var value = responsiveAttrValue(attr, breakpoint || 'desktop', [ 1350 function(bp) { return [bp, 'value']; } 1351 ]); 1352 1353 if (hasResponsiveValue(value)) { 1354 return value; 1355 } 1356 1357 var paths = [ 1358 ['value'] 1359 ]; 1360 for (var i = 0; i < paths.length; i++) { 1361 value = nestedValue(attr, paths[i]); 1362 if (hasResponsiveValue(value)) { 1363 return value; 1364 } 1365 } 1366 return fallback || ''; 1367 } 1368 1369 function parsePixelValue(value) { 1370 value = typeof value === 'number' ? String(value) : (typeof value === 'string' ? value.trim() : ''); 1371 if (!value) { 1372 return null; 1373 } 1374 var match = value.match(/^(-?\d+(?:\.\d+)?)px$/i) || value.match(/^(-?\d+(?:\.\d+)?)$/); 1375 return match ? parseFloat(match[1]) : null; 1376 } 1377 1378 function breakpointMatchesWidth(settings, width) { 1379 if (!settings) { 1380 return false; 1381 } 1382 1383 var min = parsePixelValue(settings.minWidth && settings.minWidth.value); 1384 var max = parsePixelValue(settings.maxWidth && settings.maxWidth.value); 1385 1386 if (min !== null && width < min) { 1387 return false; 1388 } 1389 if (max !== null && width > max) { 1390 return false; 1391 } 1392 1393 return true; 1394 } 1395 1396 function getCurrentBreakpointName() { 1397 var names = Object.keys(breakpointSettings || {}); 1398 var width = window.innerWidth || document.documentElement.clientWidth || 0; 1399 var fallback = breakpointSettings && breakpointSettings.desktop ? 'desktop' : (names[0] || 'desktop'); 1400 1401 names.sort(function(a, b) { 1402 return ((breakpointSettings[a] && breakpointSettings[a].order) || 0) - ((breakpointSettings[b] && breakpointSettings[b].order) || 0); 1403 }); 1404 1405 for (var i = 0; i < names.length; i++) { 1406 if (breakpointMatchesWidth(breakpointSettings[names[i]], width)) { 1407 return names[i]; 1408 } 1409 } 1410 1411 return fallback; 1412 } 1413 1414 function isEnabled(value) { 1415 return value === true || value === 1 || value === '1' || value === 'on' || value === 'yes' || value === 'true'; 1416 } 1417 1418 function sanitizeLength(value, fallback) { 1419 value = typeof value === 'number' ? value + 'px' : (typeof value === 'string' ? value.trim() : ''); 1420 if (!value) { 1421 return fallback; 1422 } 1423 return /^-?(?:\d+|\d*\.\d+)(?:px|em|rem|vw|vh|%)$/i.test(value) ? value : fallback; 1424 } 1425 1426 function sanitizeColor(value, fallback) { 1427 value = typeof value === 'string' ? value.trim() : ''; 1428 if (!value) { 1429 return fallback; 1430 } 1431 return /^(#[0-9a-f]{3,8}|rgba?\([0-9.,%\s]+\)|hsla?\([0-9.,%\s]+\)|[a-z]+)$/i.test(value) ? value : fallback; 1432 } 1433 1434 function sanitizeScrollMode(value) { 1435 value = typeof value === 'string' ? value.trim() : ''; 1436 return value === 'item' || value === 'view' ? value : 'view'; 1437 } 1438 1439 function normalizeIcon(value) { 1440 if (value === null || value === undefined) { 1441 return ''; 1442 } 1443 1444 if (typeof value === 'number' && isFinite(value)) { 1445 try { 1446 return String.fromCodePoint(value); 1447 } catch (e) { 1448 return ''; 1449 } 1450 } 1451 1452 if (value && typeof value === 'object') { 1453 var preferredKeys = ['unicode', 'icon', 'char', 'code', 'value', 'desktop', 'tablet', 'phone', 'innerContent', 'iconPicker']; 1454 var keys = []; 1455 var i; 1456 var key; 1457 var icon; 1458 1459 for (i = 0; i < preferredKeys.length; i++) { 1460 key = preferredKeys[i]; 1461 if (Object.prototype.hasOwnProperty.call(value, key)) { 1462 icon = normalizeIcon(value[key]); 1463 if (icon) { 1464 return icon; 1465 } 1466 } 1467 } 1468 1469 keys = Object.keys(value); 1470 for (i = 0; i < keys.length; i++) { 1471 icon = normalizeIcon(value[keys[i]]); 1472 if (icon) { 1473 return icon; 1474 } 1475 } 1476 1477 return ''; 1478 } 1479 1480 value = typeof value === 'string' ? value.trim() : ''; 1481 if (!value || value.indexOf('$' + 'variable(') === 0) { 1482 return ''; 1483 } 1484 value = value.split('||')[0].trim(); 1485 if (/^&#x[0-9a-f]+;?$/i.test(value) || /^&#[0-9]+;?$/.test(value)) { 1486 var el = document.createElement('textarea'); 1487 el.innerHTML = value; 1488 return el.value; 1489 } 1490 if (value.indexOf('&') !== -1) { 1491 var decoded = document.createElement('textarea'); 1492 decoded.innerHTML = value; 1493 value = (decoded.value || value).trim(); 1494 } 1495 var hexMatch = value.match(/^\\u([0-9a-f]{4,6})$/i) || 1496 value.match(/^U\+([0-9a-f]{4,6})$/i) || 1497 value.match(/^0x([0-9a-f]{4,6})$/i) || 1498 value.match(/^([0-9a-f]{4,6})$/i); 1499 if (hexMatch) { 1500 try { 1501 return String.fromCodePoint(parseInt(hexMatch[1], 16)); 1502 } catch (e) { 1503 return ''; 1504 } 1505 } 1506 return value.substring(0, 4); 1507 } 1508 1509 function extractIconMetaProp(value, propName) { 1510 if (!value || typeof value !== 'object') { 1511 return ''; 1512 } 1513 1514 if (Object.prototype.hasOwnProperty.call(value, propName) && value[propName] !== null && value[propName] !== undefined) { 1515 var direct = String(value[propName]).trim(); 1516 if (direct) { 1517 return direct; 1518 } 1519 } 1520 1521 var preferredKeys = ['value', 'desktop', 'tablet', 'phone', 'innerContent', 'iconPicker']; 1522 var keys; 1523 var i; 1524 var key; 1525 var prop; 1526 1527 for (i = 0; i < preferredKeys.length; i++) { 1528 key = preferredKeys[i]; 1529 if (Object.prototype.hasOwnProperty.call(value, key)) { 1530 prop = extractIconMetaProp(value[key], propName); 1531 if (prop) { 1532 return prop; 1533 } 1534 } 1535 } 1536 1537 keys = Object.keys(value); 1538 for (i = 0; i < keys.length; i++) { 1539 prop = extractIconMetaProp(value[keys[i]], propName); 1540 if (prop) { 1541 return prop; 1542 } 1543 } 1544 1545 return ''; 1546 } 1547 1548 function isLikelyFontAwesomeGlyph(iconChar) { 1549 if (typeof iconChar !== 'string' || !iconChar) { 1550 return false;
1551 } 1552 try { 1553 var codepoint = iconChar.codePointAt(0); 1554 return isFinite(codepoint) && codepoint >= 0xF000 && codepoint <= 0xF8FF; 1555 } catch (e) { 1556 return false; 1557 } 1558 } 1559 1560 function isLikelyFontAwesomeType(iconType) { 1561 iconType = typeof iconType === 'string' ? iconType.trim().toLowerCase() : ''; 1562 return iconType.indexOf('fa') === 0 || iconType === 'brands' || iconType === 'solid' || iconType === 'regular' || iconType === 'fontawesome'; 1563 } 1564 1565 function normalizeFontAwesomeWeight(weight, iconType) { 1566 weight = weight === null || weight === undefined ? '' : String(weight).trim().toLowerCase(); 1567 if (/^(100|200|300|400|500|600|700|800|900)$/.test(weight)) { 1568 return parseInt(weight, 10) >= 600 ? '900' : '400'; 1569 } 1570 if (weight === 'regular' || weight === 'normal' || weight === 'book' || weight === 'light' || weight === 'thin' || weight === 'hairline' || weight === 'medium') { 1571 return '400'; 1572 } 1573 if (weight === 'solid' || weight === 'bold' || weight === 'semibold' || weight === 'semi-bold' || weight === 'black' || weight === 'heavy') { 1574 return '900'; 1575 } 1576 1577 iconType = typeof iconType === 'string' ? iconType.trim().toLowerCase() : ''; 1578 if (iconType === 'fab' || iconType === 'fa-brands' || iconType === 'brands' || iconType === 'far' || iconType === 'fa-regular' || iconType === 'regular') { 1579 return '400'; 1580 } 1581 1582 return '900'; 1583 } 1584 1585 function getIconConfig(value) { 1586 var icon = normalizeIcon(value); 1587 var iconType = extractIconMetaProp(value, 'type'); 1588 var family = extractIconMetaProp(value, 'fontFamily'); 1589 var isFontAwesome = family === 'FontAwesome' || isLikelyFontAwesomeType(iconType) || isLikelyFontAwesomeGlyph(icon); 1590 1591 return { 1592 icon: icon, 1593 family: isFontAwesome ? 'FontAwesome' : '', 1594 weight: isFontAwesome ? normalizeFontAwesomeWeight(extractIconMetaProp(value, 'weight'), iconType) : '' 1595 }; 1596 } 1597 1598 function directionIsHorizontal(attrs, breakpoint) { 1599 var timelineAttr = nestedValue(attrs || {}, ['module', 'advanced', 'timeline']); 1600 var direction = responsiveAttrValue(timelineAttr, breakpoint || 'desktop', [ 1601 function(bp) { return [bp, 'value', 'direction']; } 1602 ]); 1603 1604 return (direction || 'vertical') === 'horizontal'; 1605 } 1606 1607 function getBuilderConfig(timeline) { 1608 var id = closestTimelineId(timeline); 1609 var attrs = id ? getModuleAttrs(id) : {}; 1610 var breakpoint = getCurrentBreakpointName(); 1611 if (!id || !directionIsHorizontal(attrs, breakpoint) || !isEnabled(attrSubValue(attrs, 'enabled', breakpoint))) { 1612 return null; 1613 } 1614 var legacyIcon = getIconConfig(attrSubValue(attrs, 'icon', breakpoint)); 1615 var prevIcon = getIconConfig(attrSubValue(attrs, 'prevIcon', breakpoint)); 1616 var nextIcon = getIconConfig(attrSubValue(attrs, 'nextIcon', breakpoint)); 1617 1618 if (!prevIcon.icon) { 1619 prevIcon = legacyIcon; 1620 } 1621 if (!nextIcon.icon) { 1622 nextIcon = legacyIcon; 1623 } 1624 1625 return { 1626 color: sanitizeColor(attrSubValue(attrs, 'arrowColor', breakpoint), defaultArrowColor), 1627 backgroundColor: sanitizeColor(attrSubValue(attrs, 'arrowBackgroundColor', breakpoint), defaultArrowBackgroundColor), 1628 size: sanitizeLength(attrValue(attrs, arrowSizeAttrName, attrSubValue(attrs, 'arrowSize', breakpoint), breakpoint), defaultArrowSize), 1629 scrollMode: sanitizeScrollMode(attrValue(attrs, scrollModeAttrName, attrSubValue(attrs, 'scrollMode', breakpoint), breakpoint)), 1630 prevIcon: prevIcon, 1631 nextIcon: nextIcon 1632 }; 1633 } 1634 1635 function applyTimelineConfig(timeline, config) { 1636 if (!config) { 1637 timeline.classList.remove('dbtl-horizontal-carousel'); 1638 timeline.classList.remove('dbtl-horizontal-carousel-has-custom-icon');
1639 timeline.style.removeProperty('--dbtl-carousel-arrow-color'); 1640 timeline.style.removeProperty('--dbtl-carousel-arrow-background-color'); 1641 timeline.style.removeProperty('--dbtl-carousel-arrow-size'); 1642 timeline.removeAttribute('data-dbtl-carousel-icon'); 1643 timeline.removeAttribute('data-dbtl-carousel-prev-icon'); 1644 timeline.removeAttribute('data-dbtl-carousel-prev-icon-family'); 1645 timeline.removeAttribute('data-dbtl-carousel-prev-icon-weight'); 1646 timeline.removeAttribute('data-dbtl-carousel-next-icon'); 1647 timeline.removeAttribute('data-dbtl-carousel-next-icon-family'); 1648 timeline.removeAttribute('data-dbtl-carousel-next-icon-weight'); 1649 timeline.removeAttribute('data-dbtl-carousel-scroll-mode'); 1650 return false; 1651 } 1652 1653 timeline.classList.add('dbtl-horizontal-carousel'); 1654 timeline.style.setProperty('--dbtl-carousel-arrow-color', config.color); 1655 timeline.style.setProperty('--dbtl-carousel-arrow-background-color', config.backgroundColor); 1656 timeline.style.setProperty('--dbtl-carousel-arrow-size', config.size); 1657 timeline.setAttribute('data-dbtl-carousel-scroll-mode', config.scrollMode); 1658 timeline.removeAttribute('data-dbtl-carousel-icon'); 1659 if (config.prevIcon.icon) { 1660 timeline.setAttribute('data-dbtl-carousel-prev-icon', config.prevIcon.icon); 1661 if (config.prevIcon.family) { 1662 timeline.setAttribute('data-dbtl-carousel-prev-icon-family', config.prevIcon.family); 1663 } else { 1664 timeline.removeAttribute('data-dbtl-carousel-prev-icon-family'); 1665 } 1666 if (config.prevIcon.weight) { 1667 timeline.setAttribute('data-dbtl-carousel-prev-icon-weight', config.prevIcon.weight); 1668 } else { 1669 timeline.removeAttribute('data-dbtl-carousel-prev-icon-weight'); 1670 } 1671 } else { 1672 timeline.removeAttribute('data-dbtl-carousel-prev-icon'); 1673 timeline.removeAttribute('data-dbtl-carousel-prev-icon-family'); 1674 timeline.removeAttribute('data-dbtl-carousel-prev-icon-weight'); 1675 } 1676 if (config.nextIcon.icon) { 1677 timeline.setAttribute('data-dbtl-carousel-next-icon', config.nextIcon.icon); 1678 if (config.nextIcon.family) { 1679 timeline.setAttribute('data-dbtl-carousel-next-icon-family', config.nextIcon.family); 1680 } else { 1681 timeline.removeAttribute('data-dbtl-carousel-next-icon-family'); 1682 } 1683 if (config.nextIcon.weight) { 1684 timeline.setAttribute('data-dbtl-carousel-next-icon-weight', config.nextIcon.weight); 1685 } else { 1686 timeline.removeAttribute('data-dbtl-carousel-next-icon-weight'); 1687 } 1688 } else { 1689 timeline.removeAttribute('data-dbtl-carousel-next-icon'); 1690 timeline.removeAttribute('data-dbtl-carousel-next-icon-family'); 1691 timeline.removeAttribute('data-dbtl-carousel-next-icon-weight'); 1692 } 1693 return true; 1694 } 1695 1696 function applyBuilderConfig(timeline) { 1697 return applyTimelineConfig(timeline, getBuilderConfig(timeline)); 1698 } 1699 1700 function parseConfigJson(value) { 1701 if (!value) { 1702 return {}; 1703 } 1704 try { 1705 return JSON.parse(value) || {}; 1706 } catch (e) { 1707 return {}; 1708 } 1709 } 1710 1711 function normalizeSavedIconConfig(config, direction) { 1712 return { 1713 icon: config && config[direction + '_icon'] ? config[direction + '_icon'] : '', 1714 family: config && config[direction + '_icon_family'] ? config[direction + '_icon_family'] : '', 1715 weight: config && config[direction + '_icon_weight'] ? config[direction + '_icon_weight'] : '' 1716 }; 1717 } 1718 1719 function getSavedConfig(timeline) { 1720 var configs = parseConfigJson(timeline.getAttribute('data-dbtl-carou
1720sel-configs')); 1721 var breakpoint = getCurrentBreakpointName(); 1722 var config = configs[breakpoint] || configs.desktop || null; 1723 1724 if (!config || !config.active) { 1725 return null; 1726 } 1727 1728 return { 1729 color: sanitizeColor(config.color, defaultArrowColor), 1730 backgroundColor: sanitizeColor(config.background_color, defaultArrowBackgroundColor), 1731 size: sanitizeLength(config.size, defaultArrowSize), 1732 scrollMode: sanitizeScrollMode(config.scroll_mode), 1733 prevIcon: normalizeSavedIconConfig(config, 'prev'), 1734 nextIcon: normalizeSavedIconConfig(config, 'next') 1735 }; 1736 } 1737 1738 function ensureButton(timeline, direction) { 1739 var className = direction === 'prev' ? 'dbtl-horizontal-carousel-arrow-prev' : 'dbtl-horizontal-carousel-arrow-next'; 1740 var button = timeline.querySelector(':scope > .' + className); 1741 var icon = null; 1742 1743 if (!button) { 1744 button = document.createElement('button'); 1745 button.type = 'button'; 1746 button.className = 'dbtl-horizontal-carousel-arrow ' + className; 1747 button.setAttribute('aria-label', direction === 'prev' ? 'Previous timeline item' : 'Next timeline item'); 1748 icon = document.createElement('span'); 1749 icon.className = 'dbtl-horizontal-carousel-arrow-icon'; 1750 button.appendChild(icon); 1751 ['pointerdown', 'mousedown', 'touchstart'].forEach(function(eventName) { 1752 button.addEventListener(eventName, function(event) { 1753 event.stopPropagation(); 1754 if (event.stopImmediatePropagation) { 1755 event.stopImmediatePropagation(); 1756 } 1757 }, true); 1758 }); 1759 button.addEventListener('click', function(event) { 1760 event.preventDefault(); 1761 event.stopPropagation(); 1762 if (event.stopImmediatePropagation) { 1763 event.stopImmediatePropagation(); 1764 } 1765 advanceCarousel(timeline, direction === 'prev' ? -1 : 1); 1766 }, true); 1767 timeline.appendChild(button); 1768 } 1769 1770 icon = button.querySelector('.dbtl-horizontal-carousel-arrow-icon'); 1771 return button; 1772 } 1773 1774 function setButtonIcon(icon, customIcon, defaultIcon, family, weight) { 1775 if (!icon) { 1776 return; 1777 } 1778 var iconText = customIcon || defaultIcon; 1779 if (icon.textContent !== iconText) { 1780 icon.textContent = iconText; 1781 } 1782 if (icon.classList.contains('dbtl-horizontal-carousel-arrow-icon-custom') !== !!customIcon) { 1783 icon.classList.toggle('dbtl-horizontal-carousel-arrow-icon-custom', !!customIcon); 1784 } 1785 if (family === 'FontAwesome') { 1786 if (icon.style.fontFamily !== 'FontAwesome') { 1787 icon.style.fontFamily = 'FontAwesome'; 1788 } 1789 if (icon.style.fontWeight !== (weight || '900')) { 1790 icon.style.fontWeight = weight || '900'; 1791 } 1792 } else { 1793 if (icon.style.fontFamily) { 1794 icon.style.removeProperty('font-family'); 1795 } 1796 if (icon.style.fontWeight) { 1797 icon.style.removeProperty('font-weight'); 1798 } 1799 } 1800 } 1801 1802 function setButtonDisabled(button, disabled) { 1803 disabled = !!disabled; 1804 if (button.disabled !== disabled) { 1805 button.disabled = disabled; 1806 } 1807 if (button.hidden !== disabled) { 1808 button.hidden = disabled; 1809 } 1810 if (button.getAttribute('aria-disabled') !== String(disabled)) { 1811 button.setAttribute('aria-disabled', String(disabled)); 1812 } 1813 button.classList.toggle('dbtl-horizontal-carousel-arrow-disabled', disabled); 1814 } 1815 1816 function getCarouselItems(timeline) { 1817 var track = timeline.querySelector('.et_pb_timeline_track'); 1818 return track ? Array.prototype.slice.call(track.querySelectorAll('.et_pb_timeline_item')) : []; 1819 } 1820 1821 function getScrollMode(timeline) {
1822 return timeline.getAttribute('data-dbtl-carousel-scroll-mode') === 'item' ? 'item' : 'view'; 1823 } 1824 1825 function clampIndex(index, items) { 1826 var max = Math.max(0, items.length - 1); 1827 index = parseInt(index, 10); 1828 if (!isFinite(index)) { 1829 index = 0; 1830 } 1831 return Math.max(0, Math.min(max, index)); 1832 } 1833 1834 function getCurrentIndex(timeline, items) { 1835 if (typeof timeline.__dbtlCarouselCurrentIndex !== 'number') { 1836 timeline.__dbtlCarouselCurrentIndex = clampIndex(timeline.getAttribute('data-dbtl-carousel-current-index') || 0, items); 1837 } 1838 return clampIndex(timeline.__dbtlCarouselCurrentIndex, items); 1839 } 1840 1841 function setItemState(item, stateClass) { 1842 var currentState = item.classList.contains('dbtl-state-current') ? 'dbtl-state-current' : 1843 (item.classList.contains('dbtl-state-previous') ? 'dbtl-state-previous' : 1844 (item.classList.contains('dbtl-state-upcoming') ? 'dbtl-state-upcoming' : '')); 1845 1846 if (currentState === stateClass) { 1847 return; 1848 } 1849 1850 if (item.classList.contains('dbtl-state-previous')) { 1851 item.classList.remove('dbtl-state-previous'); 1852 } 1853 if (item.classList.contains('dbtl-state-current')) { 1854 item.classList.remove('dbtl-state-current'); 1855 } 1856 if (item.classList.contains('dbtl-state-upcoming')) { 1857 item.classList.remove('dbtl-state-upcoming'); 1858 } 1859 if (stateClass && !item.classList.contains(stateClass)) { 1860 item.classList.add(stateClass); 1861 } 1862 } 1863 1864 function updateCarouselStates(timeline, items, currentIndex) { 1865 items = items || getCarouselItems(timeline); 1866 currentIndex = clampIndex(currentIndex, items); 1867 timeline.__dbtlCarouselCurrentIndex = currentIndex; 1868 if (timeline.getAttribute('data-dbtl-carousel-current-index') !== String(currentIndex)) { 1869 timeline.setAttribute('data-dbtl-carousel-current-index', String(currentIndex)); 1870 } 1871 1872 items.forEach(function(item, index) { 1873 if (index < currentIndex) { 1874 setItemState(item, 'dbtl-state-previous'); 1875 } else if (index > currentIndex) { 1876 setItemState(item, 'dbtl-state-upcoming'); 1877 } else { 1878 setItemState(item, 'dbtl-state-current'); 1879 } 1880 }); 1881 } 1882 1883 function getItemTargetScrollLeft(track, item) { 1884 var maxScroll = Math.max(0, track.scrollWidth - track.clientWidth); 1885 var itemCenter = item.offsetLeft + (item.offsetWidth / 2); 1886 var target = itemCenter - (track.clientWidth / 2); 1887 return Math.max(0, Math.min(maxScroll, target)); 1888 } 1889 1890 function getIndexForScrollLeft(track, items, scrollLeft) { 1891 var center = scrollLeft + (track.clientWidth / 2); 1892 var bestIndex = 0; 1893 var bestDistance = Infinity; 1894 1895 items.forEach(function(item, index) { 1896 var itemCenter = item.offsetLeft + (item.offsetWidth / 2); 1897 var distance = Math.abs(itemCenter - center); 1898 if (distance < bestDistance) { 1899 bestDistance = distance; 1900 bestIndex = index; 1901 } 1902 }); 1903 1904 return clampIndex(bestIndex, items); 1905 } 1906 1907 function getTrackMaxScroll(track) { 1908 return Math.max(0, track.scrollWidth - track.clientWidth); 1909 } 1910 1911 function clampScrollLeft(track, scrollLeft) { 1912 return Math.max(0, Math.min(getTrackMaxScroll(track), scrollLeft)); 1913 } 1914 1915 function animateTrackScroll(track, target) { 1916 var start = track.scrollLeft; 1917 var distance = target - start; 1918 var duration = Math.min(650, Math.max(260, Math.abs(distance) * 1.15)); 1919 var startTime = 0; 1920 1921 if (track.__dbtlCarouselScrollAnimation && window.cancelAnimationFrame) { 1922 window.cancelAnimationFrame(track.__dbtlCarouselScrollAnimation); 1923 } 1924 1925 if (Math.abs(distance) < 1 || !window.requestAnimationFrame) { 1926 track.scrollLeft = target; 1927 track.__dbtlCarouselAnimating = false;
1928 return; 1929 } 1930 1931 track.__dbtlCarouselAnimating = true; 1932 function step(timestamp) { 1933 if (!startTime) { 1934 startTime = timestamp; 1935 } 1936 var progress = Math.min(1, (timestamp - startTime) / duration); 1937 var eased = 1 - Math.pow(1 - progress, 3); 1938 track.scrollLeft = start + (distance * eased); 1939 1940 if (progress < 1) { 1941 track.__dbtlCarouselScrollAnimation = window.requestAnimationFrame(step); 1942 } else { 1943 track.scrollLeft = target; 1944 track.__dbtlCarouselAnimating = false; 1945 } 1946 } 1947 1948 track.__dbtlCarouselScrollAnimation = window.requestAnimationFrame(step); 1949 } 1950 1951 function scrollToCarouselItem(timeline, index) { 1952 var track = timeline.querySelector('.et_pb_timeline_track'); 1953 var items = getCarouselItems(timeline); 1954 index = clampIndex(index, items); 1955 1956 if (!track || !items[index]) { 1957 return; 1958 } 1959 1960 animateTrackScroll(track, getItemTargetScrollLeft(track, items[index])); 1961 } 1962 1963 function advanceCarouselByView(timeline, delta) { 1964 var track = timeline.querySelector('.et_pb_timeline_track'); 1965 var items = getCarouselItems(timeline); 1966 var target; 1967 var nextIndex; 1968 1969 if (!track || !items.length) { 1970 updateButtons(timeline); 1971 return; 1972 } 1973 1974 target = clampScrollLeft(track, track.scrollLeft + (delta * track.clientWidth * 0.7)); 1975 nextIndex = getIndexForScrollLeft(track, items, target); 1976 updateCarouselStates(timeline, items, nextIndex); 1977 animateTrackScroll(track, target); 1978 updateButtons(timeline, target); 1979 } 1980 1981 function advanceCarousel(timeline, delta) { 1982 var items = getCarouselItems(timeline); 1983 var currentIndex = getCurrentIndex(timeline, items); 1984 var nextIndex = clampIndex(currentIndex + delta, items); 1985 1986 if (getScrollMode(timeline) === 'view') { 1987 advanceCarouselByView(timeline, delta); 1988 return; 1989 } 1990 1991 if (!items.length || nextIndex === currentIndex) { 1992 updateButtons(timeline); 1993 return; 1994 } 1995 1996 updateCarouselStates(timeline, items, nextIndex); 1997 scrollToCarouselItem(timeline, nextIndex); 1998 updateButtons(timeline); 1999 } 2000 2001 function updateButtons(timeline, pendingScrollLeft) { 2002 var track = timeline.querySelector('.et_pb_timeline_track'); 2003 var items = getCarouselItems(timeline); 2004 var currentIndex = getCurrentIndex(timeline, items); 2005 var scrollMode = getScrollMode(timeline); 2006 var scrollLeft = typeof pendingScrollLeft === 'number' ? pendingScrollLeft : (track ? track.scrollLeft : 0); 2007 var legacyIcon = timeline.getAttribute('data-dbtl-carousel-icon') || ''; 2008 var prevCustomIcon = timeline.getAttribute('data-dbtl-carousel-prev-icon') || legacyIcon; 2009 var nextCustomIcon = timeline.getAttribute('data-dbtl-carousel-next-icon') || legacyIcon; 2010 var prevFamily = timeline.getAttribute('data-dbtl-carousel-prev-icon-family') || ''; 2011 var nextFamily = timeline.getAttribute('data-dbtl-carousel-next-icon-family') || ''; 2012 var prevWeight = timeline.getAttribute('data-dbtl-carousel-prev-icon-weight') || ''; 2013 var nextWeight = timeline.getAttribute('data-dbtl-carousel-next-icon-weight') || ''; 2014 var prev = ensureButton(timeline, 'prev'); 2015 var next = ensureButton(timeline, 'next'); 2016 var prevIcon = prev.querySelector('.dbtl-horizontal-carousel-arrow-icon'); 2017 var nextIcon = next.querySelector('.dbtl-horizontal-carousel-arrow-icon'); 2018 var canScroll = false;
2019 2020 timeline.classList.toggle('dbtl-horizontal-carousel-has-custom-icon', !!(prevCustomIcon || nextCustomIcon)); 2021 setButtonIcon(prevIcon, prevCustomIcon, '4', prevFamily, prevWeight); 2022 setButtonIcon(nextIcon, nextCustomIcon, '5', nextFamily, nextWeight); 2023 2024 if (track) { 2025 canScroll = track.scrollWidth > track.clientWidth + 2; 2026 var prevDisabled = scrollMode === 'view' ? (!canScroll || scrollLeft <= 1) : (!canScroll || currentIndex <= 0); 2027 var nextDisabled = scrollMode === 'view' ? (!canScroll || scrollLeft >= getTrackMaxScroll(track) - 1) : (!canScroll || currentIndex >= items.length - 1); 2028 setButtonDisabled(prev, prevDisabled); 2029 setButtonDisabled(next, nextDisabled); 2030 } 2031 } 2032 2033 function removeButtons(timeline) { 2034 timeline.querySelectorAll(':scope > .dbtl-horizontal-carousel-arrow').forEach(function(button) { 2035 button.remove(); 2036 }); 2037 } 2038 2039 function clearCarouselState(timeline) { 2040 timeline.__dbtlCarouselCurrentIndex = 0; 2041 timeline.removeAttribute('data-dbtl-carousel-current-index'); 2042 getCarouselItems(timeline).forEach(function(item) { 2043 setItemState(item, ''); 2044 }); 2045 } 2046 2047 function setupTimeline(timeline) { 2048 var track = timeline.querySelector('.et_pb_timeline_track'); 2049 var shouldEnable = hasBuilderStore() ? applyBuilderConfig(timeline) : applyTimelineConfig(timeline, getSavedConfig(timeline)); 2050 2051 if (!shouldEnable || !track) { 2052 removeButtons(timeline); 2053 clearCarouselState(timeline); 2054 return; 2055 } 2056 2057 updateButtons(timeline); 2058 var items = getCarouselItems(timeline); 2059 updateCarouselStates(timeline, items, getCurrentIndex(timeline, items)); 2060 } 2061 2062 function update() { 2063 scheduled = false; 2064 document.querySelectorAll('.et_pb_timeline').forEach(setupTimeline); 2065 } 2066 2067 function schedule() { 2068 if (scheduled) { 2069 return; 2070 } 2071 scheduled = true; 2072 if (window.requestAnimationFrame) { 2073 window.requestAnimationFrame(update); 2074 } else { 2075 window.setTimeout(update, 16); 2076 } 2077 } 2078 2079 function observe() { 2080 if (observed || !hasBuilderStore() || !window.MutationObserver || !document.body) { 2081 return; 2082 } 2083 observed = true; 2084 new MutationObserver(function(mutations) { 2085 for (var i = 0; i < mutations.length; i++) { 2086 if (mutations[i].type === 'childList') { 2087 schedule(); 2088 return; 2089 } 2090 } 2091 }).observe(document.body, { 2092 childList: true, 2093 subtree: true 2094 }); 2095 } 2096 2097 window.addEventListener('resize', schedule); 2098 document.addEventListener('DOMContentLoaded', schedule); 2099 observe(); 2100 schedule(); 2101 window.setTimeout(schedule, 250); 2102 })();</script>
2102
2102<script defer src="https://barbaralicious.com/wp-content/cache/autoptimize/js/autoptimize_4a5ad9dc1fcce52a29799a021f9edb3e.js"></script>
2102</body></html> 2103<!-- 2104Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin 2105 2106Page Caching using Disk: Enhanced 2107Database Caching using Disk 2108 2109Served from: barbaralicious.com @ 2026-10-02 07:45:22 by W3 Total Cache 2110-->
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.