1<!doctype html> 2<html lang="de"> 3<head> 4<link rel="canonical" href="https://www.etl-unternehmensberatung.de/standorte/"> 5<meta charset="UTF-8"> 6<meta name="viewport" content="width=device-width, initial-scale=1" /> 7<link rel="preconnect" href="https://services.etl-web.de" crossorigin>
8<script> 9function getConsent(cname) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); for(let i = 0; i <ca.length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return "";} 10</script>
10 11<title>Standorte, Ansprechpartnersuche - ETL Unternehmensberatung</title> 12<link data-rocket-prefetch href="https://services.etl-web.de" rel="dns-prefetch"><link rel="preload" data-rocket-preload as="image" href="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/12/t13_iStock-490426774.jpg" fetchpriority="high"> 13<meta name="twitter:title" content="Standorte, Ansprechpartnersuche - ETL Unternehmensberatung" /> 14<meta property="og:title" content="Standorte, Ansprechpartnersuche - ETL Unternehmensberatung" /> 15<meta name="description" content="" /> 16<meta property="og:description" content="" /> 17<meta name="twitter:description" content="" /> 18<meta name="twitter:card" content="summary_large_image" /> 19<meta property="og:locale" content="de_DE" /> 20<meta name="twitter:image" content="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/12/t13_iStock-490426774.jpg" /> 21<meta property="og:image" content="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/12/t13_iStock-490426774.jpg" /> 22<meta property="og:image:secure_url" content="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/12/t13_iStock-490426774.jpg" /> 23<meta property="og:image:alt" content="Standorte, Ansprechpartnersuche - ETL Unternehmensberatung" /> 24<meta property="og:image:width" content="2048" /> 25<meta property="og:image:height" content="1024" /> 26<meta property="twitter:domain" content="www.etl-unternehmensberatung.de" /> 27<meta property="og:type" content="article" /> 28<meta property="article:section" content="Ãber uns" /> 29<meta property="og:url" content="https://www.etl-unternehmensberatung.de/standorte/" /> 30<meta name="twitter:url" content="https://www.etl-unternehmensberatung.de/standorte/" /> 31<meta property="og:updated_time" content="2025-07-29T11:54:25+00:00" /> 32<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large" /> 33<meta property="og:site_name" content="ETL Unternehmensberatung - Unternehmensberatung kleiner und mittelständischer Unternehmen" /> 34<meta name="geo.placename" content="Berlin, Berlin, Deutschland" /> 35<meta name="geo.position" content="52.5085569;13.3890862" /> 36<meta name="geo.region" content="de_DE" /> 37<meta name="ICBM" content="52.5085569,13.3890862" />
38<script type="application/ld+json">{ 39 "@context": "https://schema.org", 40 "@graph": [ 41 { 42 "@type": "Article", 43 "@id": "https://www.etl-unternehmensberatung.de/#schema-347", 44 "description": "", 45 "headline": "Standorte, Ansprechpartnersuche - ETL Unternehmensberatung", 46 "name": "Standorte, Ansprechpartnersuche - ETL Unternehmensberatung", 47 "image": "https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/12/t13_iStock-490426774.jpg", 48 "datePublished": "2020-12-03T09:56:09+00:00", 49 "dateModified": "2025-07-29T11:54:25+00:00", 50 "author": { 51 "@type": "Organization", 52 "@id": "https://www.etl-unternehmensberatung.de/#organization", 53 "name": "ETL Unternehmensberatung" 54 }, 55 "publisher": { 56 "@id": "https://www.etl-unternehmensberatung.de/#organization" 57 }, 58 "inLanguage": "de_DE", 59 "mainEntityOfPage": { 60 "@id": "https://www.etl-unternehmensberatung.de/#webpage" 61 }, 62 "isPartOf": { 63 "@id": "https://www.etl-unternehmensberatung.de/#website" 64 } 65 }, 66 { 67 "@type": "Place", 68 "@id": "https://www.etl-unternehmensberatung.de/#place", 69 "geo": { 70 "@type": "GeoCoordinates", 71 "latitude": "52.5085569", 72 "longitude": "13.3890862" 73 }, 74 "hasMap": "https://www.google.com/maps/search/?api=1&query=52.5085569%2C13.3890862", 75 "address": { 76 "@type": "PostalAddress", 77 "streetAddress": "MauerstraÃe 86-88", 78 "addressLocality": "Berlin", 79 "addressRegion": "Berlin", 80 "postalCode": "10117", 81 "addressCountry": "Deutschland" 82 } 83 }, 84 { 85 "@type": "Organization", 86 "@id": "https://www.etl-unternehmensberatung.de/#organization", 87 "name": "ETL Unternehmensberatung", 88 "url": "https://www.etl-unternehmensberatung.de", 89 "logo": { 90 "@type": "ImageObject", 91 "@id": "https://www.etl-unternehmensberatung.de/#logo", 92 "url": "https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2022/06/ETL_Unternehmensberatung.svg", 93 "contentUrl": "https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2022/06/ETL_Unternehmensberatung.svg", 94 "caption": "ETL Unternehmensberatung", 95 "inLanguage": "de_DE" 96 }, 97 "address": { 98 "@type": "PostalAddress", 99 "streetAddress": "MauerstraÃe 86-88", 100 "addressLocality": "Berlin", 101 "addressRegion": "Berlin", 102 "postalCode": "10117", 103 "addressCountry": "Deutschland" 104 }, 105 "contactPoint": [ 106 { 107 "@type": "ContactPoint", 108 "telephone": "+493022643400", 109 "contactType": "customer support" 110 } 111 ], 112 "location": { 113 "@id": "https://www.etl-unternehmensberatung.de/#place" 114 } 115 }, 116 { 117 "@type": "WebSite", 118 "@id": "https://www.etl-unternehmensberatung.de/#website", 119 "name": "ETL Unternehmensberatung - Unternehmensberatung kleiner und mittelständischer Unternehmen", 120 "publisher": { 121 "@id": "https://www.etl-unternehmensberatung.de/#organization" 122 }, 123 "inLanguage": "de_DE", 124 "url": "https://www.etl-unternehmensberatung.de" 125 }, 126 { 127 "@type": "WebPage", 128 "@id": "https://www.etl-unternehmensberatung.de/#webpage", 129 "url": "https://www.etl-unternehmensberatung.de/standorte/", 130 "name": "Standorte, Ansprechpartnersuche - ETL Unternehmensberatung", 131 "about": { 132 "@id": "https://www.etl-unternehmensberatung.de/#organization" 133 }, 134 "isPartOf": { 135 "@id": "https://www.etl-unternehmensberatung.de/#website" 136 }, 137 "primaryImageOfPage": { 138 "@id": "https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/12/t13_iStock-490426774.jpg" 139 }, 140 "inLanguage": "de_DE" 141 }, 142 { 143 "@type": "ImageObject", 144 "@id": "https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/12/t13_iStock-490426774.jpg", 145 "url": "https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/12/t13_iStock-490426774.jpg", 146 "width": "2048", 147 "height": "1024", 148 "inLanguage": "de_DE" 149 } 150 ] 151}</script>
151<meta name="generator" content="ETL Service GmbH" /> 152<meta name="DC.Creator" content="ETL Service GmbH" /> 153<meta name="author" content="ETL Service GmbH" /> 154<meta name="publisher" content="ETL Service GmbH" /> 155<meta name="copyright" content="ETL Service GmbH" /> 156<meta name="DC.Rights" content="ETL Service GmbH" /> 157<meta name="page-type" content="Dienstleistung, Beratung" /> 158<meta name="DC.Type" content="Dienstleistung, Beratung" /> 159<meta name="page-topic" content="Service, Beratung, Dienstleistung, Steuerberatung, Rechtsberatung, Wirtschaftsprüfung, Unternehmensberatung" /> 160<meta name="DC.Subject" content="Service, Beratung, Dienstleistung, Steuerberatung, Rechtsberatung, Wirtschaftsprüfung, Unternehmensberatung" /> 161<meta name="DC.Format" content="text/html" /> 162<meta name="date" content="2026-10-08" /> 163<meta name="audience" content="alle" /> 164<meta name="msnbot" content="noodp" /> 165<meta name="MSSmartTagsPreventParsing" content="true" /> 166<meta name="language" content="de" /> 167<meta name="content-language" content="de" /> 168 169<style id="etl-theme-variables-css"> 170:root { 171 --primary_color: #00857D; 172 --primary_light_color: #B5E3D8; 173 --secondary_color: #FFCD02; 174 --third_color: #F0823C; 175 --text_color: #58585A; 176} 177</style>
178<script id="etl-theme-variables-js"> 179var primary_color="#00857D"; 180var primary_light_color="#B5E3D8"; 181var secondary_color="#FFCD02"; 182var third_color="#F0823C"; 183var text_color="#58585A"; 184</script>
184 185<meta name='robots' content='max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 186 187<link rel="preload" href="https://www.etl-unternehmensberatung.de/wp-content/cache/borlabs-cookie/9/borlabs-cookie-config-de.json.js" as="script"> 188<link rel="preload" href="https://www.etl-unternehmensberatung.de/wp-content/cache/borlabs-cookie/9/borlabs-cookie-9-de.css" as="style"> 189<link rel="preload" href="https://www.etl-unternehmensberatung.de/wp-content/plugins/borlabs-cookie/assets/javascript/borlabs-cookie-prioritize.min.js" as="script"> 190<style id="wp-img-auto-sizes-contain-inline-css"> 191img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 192/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 193</style> 194<link rel='stylesheet' id='etl-mega-menu-admin-css' href='https://www.etl-unternehmensberatung.de/wp-content/mu-plugins/etl-mega-menu/assets/admin.css' media='all' /> 195<style id="wp-block-library-inline-css"> 196:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
196--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 197 198/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 199</style> 200<style id="wp-block-group-inline-css"> 201.wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} 202/*# sourceURL=https://www.etl-unternehmensberatung.de/wp-includes/blocks/group/style.min.css */ 203</style> 204<style id="wp-block-separator-inline-css"> 205@charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important} 206/*# sourceURL=https://www.etl-unternehmensberatung.de/wp-includes/blocks/separator/style.min.css */ 207</style> 208 209<style id="classic-theme-styles-inline-css"> 210/*! This file is auto-generated */ 211.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 212/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 213</style> 214 215<link rel='stylesheet' id='wp-bootstrap-blocks-styles-css' href='https://www.etl-unternehmensberatung.de/wp-content/plugins/wp-bootstrap-blocks/build/style-index.css' media='all' /> 216<style id="global-styles-inline-css"> 217:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
2170) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
217.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 218/*# sourceURL=global-styles-inline-css */ 219</style> 220 221<link rel='stylesheet' id='bootstrap-css' href='https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/bootstrap/css/bootstrap.min.css' media='all' /> 222<link rel='stylesheet' id='bootstrapv4-css' href='https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/bootstrap/bootstrap-4-legacy-for-5.css' media='all' /> 223<link rel='stylesheet' id='fontawesome-css' href='https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/fontawesome/css/all.min.css' media='all' /> 224<link rel='stylesheet' id='swiper-css-css' href='https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/swiperJSnew/swiper-bundle.min.css' media='all' /> 225<link rel='stylesheet' id='aos-css-css' href='https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/aos/aos.css' media='all' /> 226<link rel='stylesheet' id='animatecss-css' href='https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/animateCSS/animate.min.css' media='all' /> 227<link rel='stylesheet' id='etl-theme-style-css' href='https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/style.css?v=1788157948' media='all' /> 228<style id="borlabs-cookie-critical-inline-css"> 229body div.brlbs-cmpnt-container a,body div.brlbs-cmpnt-container abbr,body div.brlbs-cmpnt-container acronym,body div.brlbs-cmpnt-container address,body div.brlbs-cmpnt-container applet,body div.brlbs-cmpnt-container article,body div.brlbs-cmpnt-container aside,body div.brlbs-cmpnt-container audio,body div.brlbs-cmpnt-container b,body div.brlbs-cmpnt-container big,body div.brlbs-cmpnt-container blockquote,body div.brlbs-cmpnt-container canvas,body div.brlbs-cmpnt-container caption,body div.brlbs-cmpnt-container center,body div.brlbs-cmpnt-container cite,body div.brlbs-cmpnt-container code,body div.brlbs-cmpnt-container dd,body div.brlbs-cmpnt-container del,body div.brlbs-cmpnt-container details,body div.brlbs-cmpnt-container dfn,body div.brlbs-cmpnt-container div,body div.brlbs-cmpnt-container dl,body div.brlbs-cmpnt-container dt,body div.brlbs-cmpnt-container em,body div.brlbs-cmpnt-container embed,body div.brlbs-cmpnt-container fieldset,body div.brlbs-cmpnt-container figcaption,body div.brlbs-cmpnt-container figure,body div.brlbs-cmpnt-container footer,body div.brlbs-cmpnt-container form,body div.brlbs-cmpnt-container h1,body div.brlbs-cmpnt-container h2,body div.brlbs-cmpnt-container h3,body div.brlbs-cmpnt-container h4,body div.brlbs-cmpnt-container h5,body div.brlbs-cmpnt-container h6,body div.brlbs-cmpnt-container header,body div.brlbs-cmpnt-container hgroup,body div.brlbs-cmpnt-container i,body div.brlbs-cmpnt-container iframe,body div.brlbs-cmpnt-container img,body div.brlbs-cmpnt-container ins,body div.brlbs-cmpnt-container kbd,body div.brlbs-cmpnt-container label,body div.brlbs-cmpnt-container legend,body div.brlbs-cmpnt-container li,body div.brlbs-cmpnt-container mark,body div.brlbs-cmpnt-container menu,body div.brlbs-cmpnt-container nav,body div.brlbs-cmpnt-container object,body div.brlbs-cmpnt-container ol,body div.brlbs-cmpnt-container output,body div.brlbs-cmpnt-container p,body div.brlbs-cmpnt-container pre,body div.brlbs-cmpnt-container q,body div.brlbs-cmpnt-container ruby,body div.brlbs-cmpnt-container s,body div.brlbs-cmpnt-container samp,body div.brlbs-cmpnt-container section,body div.brlbs-cmpnt-container small,body div.brlbs-cmpnt-container span,body div.brlbs-cmpnt-container strike,body div.brlbs-cmpnt-container strong,body div.brlbs-cmpnt-container sub,body div.brlbs-cmpnt-container summary,body div.brlbs-cmpnt-container sup,body div.brlbs-cmpnt-container table,body div.brlbs-cmpnt-container tbody,body div.brlbs-cmpnt-container td,body div.brlbs-cmpnt-container tfoot,body div.brlbs-cmpnt-container th,body div.brlbs-cmpnt-container thead,body div.brlbs-cmpnt-container time,body div.brlbs-cmpnt-container tr,body div.brlbs-cmpnt-container tt,body div.brlbs-cmpnt-container u,body div.brlbs-cmpnt-container ul,body div.brlbs-cmpnt-container var,body div.brlbs-cmpnt-container video{margin:0;padding:0;border:0;font-size:100%;font-family:inherit;vertical-align:baseline}body div.brlbs-cmpnt-container article,body div.brlbs-cmpnt-container aside,body div.brlbs-cmpnt-container details,body div.brlbs-cmpnt-container figcaption,body div.brlbs-cmpnt-container figure,body div.brlbs-cmpnt-container footer,body div.brlbs-cmpnt-container header,body div.brlbs-cmpnt-container hgroup,body div.brlbs-cmpnt-container menu,body div.brlbs-cmpnt-container nav,body div.brlbs-cmpnt-container section{dis
229play:block}body div.brlbs-cmpnt-container blockquote,body div.brlbs-cmpnt-container q{quotes:none}body div.brlbs-cmpnt-container blockquote:after,body div.brlbs-cmpnt-container blockquote:before,body div.brlbs-cmpnt-container q:after,body div.brlbs-cmpnt-container q:before{content:none}body div.brlbs-cmpnt-container table{border-spacing:0}body div.brlbs-cmpnt-container,body div.brlbs-cmpnt-container *{box-sizing:border-box;color:inherit;font-family:inherit;line-height:inherit;position:static;inset:auto;width:auto;height:auto}body div.brlbs-cmpnt-container button,body div.brlbs-cmpnt-container input,body div.brlbs-cmpnt-container optgroup,body div.brlbs-cmpnt-container select,body div.brlbs-cmpnt-container textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}body div.brlbs-cmpnt-container button:after,body div.brlbs-cmpnt-container button:before{content:none}body div.brlbs-cmpnt-container button,body div.brlbs-cmpnt-container select{text-transform:none}body div.brlbs-cmpnt-container [type=button],body div.brlbs-cmpnt-container [type=reset],body div.brlbs-cmpnt-container [type=submit],body div.brlbs-cmpnt-container button{-webkit-appearance:button}body div.brlbs-cmpnt-container ::-moz-focus-inner{border-style:none;padding:0}body div.brlbs-cmpnt-container :-moz-focusring{outline:1px dotted ButtonText}body div.brlbs-cmpnt-container :-moz-ui-invalid{box-shadow:none}body div.brlbs-cmpnt-container legend{padding:0}body div.brlbs-cmpnt-container progress{vertical-align:baseline}body div.brlbs-cmpnt-container ::-webkit-inner-spin-button,body div.brlbs-cmpnt-container ::-webkit-outer-spin-button{height:auto}body div.brlbs-cmpnt-container [type=search]{-webkit-appearance:textfield;outline-offset:-2px}body div.brlbs-cmpnt-container ::-webkit-search-decoration{-webkit-appearance:none}body div.brlbs-cmpnt-container ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}body div.brlbs-cmpnt-container summary{display:list-item}body div.brlbs-cmpnt-container blockquote,body div.brlbs-cmpnt-container dd,body div.brlbs-cmpnt-container dl,body div.brlbs-cmpnt-container figure,body div.brlbs-cmpnt-container h1,body div.brlbs-cmpnt-container h2,body div.brlbs-cmpnt-container h3,body div.brlbs-cmpnt-container h4,body div.brlbs-cmpnt-container h5,body div.brlbs-cmpnt-container h6,body div.brlbs-cmpnt-container hr,body div.brlbs-cmpnt-container p,body div.brlbs-cmpnt-container pre{margin:0}body div.brlbs-cmpnt-container button{background-color:transparent;background-image:none}body div.brlbs-cmpnt-container button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}body div.brlbs-cmpnt-container fieldset{margin:0;padding:0}body div.brlbs-cmpnt-container ol,body div.brlbs-cmpnt-container ul{list-style:none;margin:0;padding:0}body div.brlbs-cmpnt-container *,body div.brlbs-cmpnt-container :after,body div.brlbs-cmpnt-container :before{box-sizing:border-box;border-color:#e5e7eb;border-style:solid;border-width:0}body div.brlbs-cmpnt-container hr{border-top-width:1px}body div.brlbs-cmpnt-container img{border-style:solid}body div.brlbs-cmpnt-container textarea{resize:vertical}body div.brlbs-cmpnt-container input::-moz-placeholder,body div.brlbs-cmpnt-container textarea::-moz-placeholder{color:#9ca3af}body div.brlbs-cmpnt-container input::placeholder,body div.brlbs-cmpnt-container textarea::placeholder{color:#9ca3af}body div.brlbs-cmpnt-container [role=button],body div.brlbs-cmpnt-container button{curs
229or:pointer}body div.brlbs-cmpnt-container table{border-collapse:collapse}body div.brlbs-cmpnt-container h1,body div.brlbs-cmpnt-container h2,body div.brlbs-cmpnt-container h3,body div.brlbs-cmpnt-container h4,body div.brlbs-cmpnt-container h5,body div.brlbs-cmpnt-container h6{font-size:inherit;font-weight:inherit}body div.brlbs-cmpnt-container a{color:inherit;text-decoration:inherit}body div.brlbs-cmpnt-container button,body div.brlbs-cmpnt-container input,body div.brlbs-cmpnt-container optgroup,body div.brlbs-cmpnt-container select,body div.brlbs-cmpnt-container textarea{padding:0;line-height:inherit;color:inherit}body div.brlbs-cmpnt-container code,body div.brlbs-cmpnt-container kbd,body div.brlbs-cmpnt-container pre,body div.brlbs-cmpnt-container samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}body div.brlbs-cmpnt-container audio,body div.brlbs-cmpnt-container canvas,body div.brlbs-cmpnt-container embed,body div.brlbs-cmpnt-container iframe,body div.brlbs-cmpnt-container img,body div.brlbs-cmpnt-container object,body div.brlbs-cmpnt-container svg,body div.brlbs-cmpnt-container video{display:block;vertical-align:middle}body div.brlbs-cmpnt-container img,body div.brlbs-cmpnt-container video{max-width:100%;height:auto}body div.brlbs-cmpnt-container [multiple],body div.brlbs-cmpnt-container [type=date],body div.brlbs-cmpnt-container [type=datetime-local],body div.brlbs-cmpnt-container [type=email],body div.brlbs-cmpnt-container [type=month],body div.brlbs-cmpnt-container [type=number],body div.brlbs-cmpnt-container [type=password],body div.brlbs-cmpnt-container [type=search],body div.brlbs-cmpnt-container [type=tel],body div.brlbs-cmpnt-container [type=text],body div.brlbs-cmpnt-container [type=time],body div.brlbs-cmpnt-container [type=url],body div.brlbs-cmpnt-container [type=week],body div.brlbs-cmpnt-container select,body div.brlbs-cmpnt-container textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}body div.brlbs-cmpnt-container [multiple]:focus,body div.brlbs-cmpnt-container [type=date]:focus,body div.brlbs-cmpnt-container [type=datetime-local]:focus,body div.brlbs-cmpnt-container [type=email]:focus,body div.brlbs-cmpnt-container [type=month]:focus,body div.brlbs-cmpnt-container [type=number]:focus,body div.brlbs-cmpnt-container [type=password]:focus,body div.brlbs-cmpnt-container [type=search]:focus,body div.brlbs-cmpnt-container [type=tel]:focus,body div.brlbs-cmpnt-container [type=text]:focus,body div.brlbs-cmpnt-container [type=time]:focus,body div.brlbs-cmpnt-container [type=url]:focus,body div.brlbs-cmpnt-container [type=week]:focus,body div.brlbs-cmpnt-container select:focus,body div.brlbs-cmpnt-container textarea:focus{outline:2px solid transparent;outline-offset:2px;--brlbs-tw-ring-inset:var(--brlbs-tw-empty, );--brlbs-tw-ring-offset-width:0px;--brlbs-tw-ring-offset-color:#fff;--brlbs-tw-ring-color:#2563eb;--brlbs-tw-ring-offset-shadow:var(--brlbs-tw-ring-inset) 0 0 0 var(--brlbs-tw-ring-offset-width) var(--brlbs-tw-ring-offset-color);--brlbs-tw-ring-shadow:var(--brlbs-tw-ring-inset) 0 0 0 calc(1px + var(--brlbs-tw-ring-offset-width)) var(--brlbs-tw-ring-color);box-shadow:var(--brlbs-tw-ring-offset-shadow),var(--brlbs-tw-ring-shadow),var(--brlbs-tw-shadow,0 0 transparent);border-color:#2563eb}body div.brlbs-cmpnt-container input::-moz-placeholder,body div.brlbs-cmpnt-container textarea::-moz-placeholder{color:#6b7280;opacity:1}body div.brlbs-cmpnt-container input::placeholder,body div.brlbs-cmpnt-container textarea::placeholder{color:#6b7280;opacity:1}body div.brlbs-cmpnt-container ::-webkit-datetime-edit-fields-wrapper{padding:0}body div.brlbs-cmpnt-container ::-webkit-date-and-time-value{min-height:1.5em}body div.brlbs-cmpnt-container select{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2020%2020%22%3E%3Cpath%20stroke%3D%22%236b7280%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%20d%3D%22m6%208%204%204%204-4%22%2F%3
229E%3C%2Fsvg%3E);background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}body div.brlbs-cmpnt-container [multiple]{background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}body div.brlbs-cmpnt-container [type=checkbox],body div.brlbs-cmpnt-container [type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px}body div.brlbs-cmpnt-container [type=checkbox]{border-radius:0}body div.brlbs-cmpnt-container [type=radio]{border-radius:100%}body div.brlbs-cmpnt-container [type=checkbox]:focus,body div.brlbs-cmpnt-container [type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--brlbs-tw-ring-inset:var(--brlbs-tw-empty, );--brlbs-tw-ring-offset-width:2px;--brlbs-tw-ring-offset-color:#fff;--brlbs-tw-ring-color:#2563eb;--brlbs-tw-ring-offset-shadow:var(--brlbs-tw-ring-inset) 0 0 0 var(--brlbs-tw-ring-offset-width) var(--brlbs-tw-ring-offset-color);--brlbs-tw-ring-shadow:var(--brlbs-tw-ring-inset) 0 0 0 calc(2px + var(--brlbs-tw-ring-offset-width)) var(--brlbs-tw-ring-color);box-shadow:var(--brlbs-tw-ring-offset-shadow),var(--brlbs-tw-ring-shadow),var(--brlbs-tw-shadow,0 0 transparent)}body div.brlbs-cmpnt-container [type=checkbox]:checked,body div.brlbs-cmpnt-container [type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}body div.brlbs-cmpnt-container [type=checkbox]:checked{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M12.207%204.793a1%201%200%200%201%200%201.414l-5%205a1%201%200%200%201-1.414%200l-2-2a1%201%200%200%201%201.414-1.414L6.5%209.086l4.293-4.293a1%201%200%200%201%201.414%200%22%2F%3E%3C%2Fsvg%3E)}body div.brlbs-cmpnt-container [type=radio]:checked{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2016%2016%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E)}body div.brlbs-cmpnt-container [type=checkbox]:checked:focus,body div.brlbs-cmpnt-container [type=checkbox]:checked:hover,body div.brlbs-cmpnt-container [type=radio]:checked:focus,body div.brlbs-cmpnt-container [type=radio]:checked:hover{border-color:transparent;background-color:currentColor}body div.brlbs-cmpnt-container [type=checkbox]:indeterminate{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20stroke%3D%22%23fff%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M4%208h8%22%2F%3E%3C%2Fsvg%3E);border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}body div.brlbs-cmpnt-container [type=checkbox]:indeterminate:focus,body div.brlbs-cmpnt-container [type=checkbox]:indeterminate:hover{border-color:transparent;background-color:currentColor}body div.brlbs-cmpnt-container [type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}:root{--brlbs-tw-border-spacing-x:0;--brlbs-tw-border-spacing-y:0;--brlbs-tw-translate-x:0;--brlbs-tw-translate-y:0;--brlbs-tw-rotate:0;--brlbs-tw-skew-x:0;--brlbs-tw-skew-y:0;--brlbs-tw-scale-x:1;--brlbs-tw-scale-y:1;--brlbs-tw-pan-x:;--brlbs-tw-pan-y:;--brlbs-tw-pinch-zoom:;--brlbs-tw-scroll-snap-strictness:proximity;--brlbs-tw-gradient-from-position:;
229--brlbs-tw-gradient-via-position:;--brlbs-tw-gradient-to-position:;--brlbs-tw-ordinal:;--brlbs-tw-slashed-zero:;--brlbs-tw-numeric-figure:;--brlbs-tw-numeric-spacing:;--brlbs-tw-numeric-fraction:;--brlbs-tw-ring-inset:;--brlbs-tw-ring-offset-width:0px;--brlbs-tw-ring-offset-color:#fff;--brlbs-tw-ring-color:rgba(59,130,246,.5);--brlbs-tw-ring-offset-shadow:0 0 #0000;--brlbs-tw-ring-shadow:0 0 #0000;--brlbs-tw-shadow:0 0 #0000;--brlbs-tw-shadow-colored:0 0 #0000;--brlbs-tw-blur:;--brlbs-tw-brightness:;--brlbs-tw-contrast:;--brlbs-tw-grayscale:;--brlbs-tw-hue-rotate:;--brlbs-tw-invert:;--brlbs-tw-saturate:;--brlbs-tw-sepia:;--brlbs-tw-drop-shadow:;--brlbs-tw-backdrop-blur:;--brlbs-tw-backdrop-brightness:;--brlbs-tw-backdrop-contrast:;--brlbs-tw-backdrop-grayscale:;--brlbs-tw-backdrop-hue-rotate:;--brlbs-tw-backdrop-invert:;--brlbs-tw-backdrop-opacity:;--brlbs-tw-backdrop-saturate:;--brlbs-tw-backdrop-sepia:;--brlbs-tw-contain-size:;--brlbs-tw-contain-layout:;--brlbs-tw-contain-paint:;--brlbs-tw-contain-style:}::backdrop{--brlbs-tw-border-spacing-x:0;--brlbs-tw-border-spacing-y:0;--brlbs-tw-translate-x:0;--brlbs-tw-translate-y:0;--brlbs-tw-rotate:0;--brlbs-tw-skew-x:0;--brlbs-tw-skew-y:0;--brlbs-tw-scale-x:1;--brlbs-tw-scale-y:1;--brlbs-tw-pan-x:;--brlbs-tw-pan-y:;--brlbs-tw-pinch-zoom:;--brlbs-tw-scroll-snap-strictness:proximity;--brlbs-tw-gradient-from-position:;--brlbs-tw-gradient-via-position:;--brlbs-tw-gradient-to-position:;--brlbs-tw-ordinal:;--brlbs-tw-slashed-zero:;--brlbs-tw-numeric-figure:;--brlbs-tw-numeric-spacing:;--brlbs-tw-numeric-fraction:;--brlbs-tw-ring-inset:;--brlbs-tw-ring-offset-width:0px;--brlbs-tw-ring-offset-color:#fff;--brlbs-tw-ring-color:rgba(59,130,246,.5);--brlbs-tw-ring-offset-shadow:0 0 #0000;--brlbs-tw-ring-shadow:0 0 #0000;--brlbs-tw-shadow:0 0 #0000;--brlbs-tw-shadow-colored:0 0 #0000;--brlbs-tw-blur:;--brlbs-tw-brightness:;--brlbs-tw-contrast:;--brlbs-tw-grayscale:;--brlbs-tw-hue-rotate:;--brlbs-tw-invert:;--brlbs-tw-saturate:;--brlbs-tw-sepia:;--brlbs-tw-drop-shadow:;--brlbs-tw-backdrop-blur:;--brlbs-tw-backdrop-brightness:;--brlbs-tw-backdrop-contrast:;--brlbs-tw-backdrop-grayscale:;--brlbs-tw-backdrop-hue-rotate:;--brlbs-tw-backdrop-invert:;--brlbs-tw-backdrop-opacity:;--brlbs-tw-backdrop-saturate:;--brlbs-tw-backdrop-sepia:;--brlbs-tw-contain-size:;--brlbs-tw-contain-layout:;--brlbs-tw-contain-paint:;--brlbs-tw-contain-style:}.brlbs-cmpnt-container .brlbs-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.brlbs-cmpnt-container .\!brlbs-hidden{display:none!important}.brlbs-cmpnt-container .brlbs-overflow-auto{overflow:auto}.brlbs-cmpnt-container .brlbs-overflow-hidden{overflow:hidden}.brlbs-cmpnt-container .brlbs-pt-4{padding-top:16px}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker{container-name:brlbsCmpntContentBlocker;container-type:inline-size;line-height:1.25em;height:100%;font-size:var(--content-blocker-font-size);font-family:var(--content-blocker-font-family)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a{color:var(--content-blocker-link-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a:hover{color:var(--content-blocker-link-color-hover)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker.brlbs-cmpnt-cb-card,body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker.brlbs-cmpnt-cb-provider-card{container-type:normal}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-details{position:relative;padding:16px;text-align:left}@media(min-width:768px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-details{padding:24px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-header{display:flex;align-items:center}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-header.brlbs-cmpnt-with-separator{margin-bottom:16px;border-bottom-width:1px;border-style:solid;padding-bottom:16px}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-button{display:flex;padding-bottom:16px}@media(min-width:768px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-dialog-cb-button{padding-bottom:24px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a{align-items:center;justify-content:center;padding:16px;text-align:center;background:var(--content-blocker-background-color);border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right);color:var(--content-blocker-text-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a .brlbs-cmpnt-cb-description{padding-bottom:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a .brlbs-cmpnt-cb-description{padding-bottom:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a .brlbs-cmpnt-cb-description{border-color:var(--content-blocker-separator-color);border-style:solid;border-bottom-width:var(--content-blocker-separator-width)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-a .brlbs-cmpnt-cb-description strong{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b{position:relative;display:flex;height:100%;padding-top:96px;padding-bottom:96px;text-align:center;background:var(--content-blocker-background-color);border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right);color:var(--content-blocker-text-color);width:100%}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main{position:relative;display:flex;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main{flex-direction:row;gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main{background:var(--content-blocker-background);color:var(--content-blocker-text-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-content{flex-basis:66.666667%}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-description{padding-bottom:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-description{padding-bottom:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-description strong{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-buttons{margin:0;display:flex;flex-basis:33.333333%;flex-direction:column;align-items:stretch;justify-content:center;gap:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-buttons{gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c{position:relative;display:flex;height:100%;text-align:center;background:var(--content-blocker-background-color);border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right);color:var(--content-blocker-text-color);width:100%}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{position:relative;margin:48px;display:flex;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{margin:96px;
229gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{background:var(--content-blocker-background);border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right);color:var(--content-blocker-text-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-description{padding-bottom:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-description{padding-bottom:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-description strong{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-buttons{margin:0;display:flex;width:100%;flex-direction:column;align-items:stretch;justify-content:center;gap:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-buttons{gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-play-button{border-radius:50%;background:#fff;box-shadow:0 1px 5px #00000026;width:34px;height:34px;margin:0 auto;display:flex;align-items:center;justify-content:center;position:absolute;top:-17px;left:calc(50% - 17px)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-play-button:before{background:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2278%22%20height%3D%2278%22%20viewBox%3D%220%200%2078%2078%22%3E%3Cpath%20d%3D%22M7.5%2071.5v-64l48%2030.328z%22%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2212%22%20d%3D%22M7.5%2071.5v-64l48%2030.328z%22%2F%3E%3C%2Fsvg%3E) no-repeat 50%;background-size:contain;content:" ";margin-left:4px;display:inline-block;height:1.142857143em;width:.857142857em}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-thumbnail{position:absolute;top:0;left:0;height:100%;width:100%;background-size:cover;background-position:50%;border-top-left-radius:var(--content-blocker-border-radius-top-left);border-top-right-radius:var(--content-blocker-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-border-radius-bottom-right)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-buttons{margin-top:8px;margin-bottom:8px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px}@media(min-width:640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-buttons{margin-top:16px;margin-bottom:16px;flex-direction:row;gap:16px}}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-buttons .brlbs-cmpnt-cb-btn{display:flex;width:100%;align-items:center;justify-content:center;text-decoration-line:none}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d){position:fixed;height:auto}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[top-left\]),body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[top-right\]){top:var(--content-blocker-icon-margin)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[bottom-left\]),body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[bottom-right\]){bottom:var(--content-blocker-icon-margin)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[bottom-right\]),body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[top-right\]){right:calc(var(--content-blocker-icon-width) + var(--content-blocker-icon-margin))}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[bottom-left\]),body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[top-left\]){left:var(--content-blocker-icon-margin)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-display\[flex\]){position:relative;display:inline-block;display:flex}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[float-left\]){float:left}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker:has(.brlbs-cmpnt-cb-preset-d):has(.brlbs-cmpnt-cb-icon-position\[float-right\]){float:right}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-d .brlbs-cmpnt-cb-icon{display:inline-block;height:var(--content-blocker-icon-height);width:var(--content-blocker-icon-width)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list{display:table}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list>div{display:table-row}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list dt{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list dd,body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-description-list dt{display:table-cell;padding:2px 4px}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn{all:unset;box-sizing:border-box;
229cursor:pointer;align-items:center;justify-content:center;padding:12px 20px;text-align:center;font-size:var(--dialog-font-size);line-height:calc(1.5 * var(--dialog-font-size));font-weight:600;text-decoration-line:none;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.4s;border-top-left-radius:var(--content-blocker-button-border-radius-top-left);border-top-right-radius:var(--content-blocker-button-border-radius-top-right);border-bottom-left-radius:var(--content-blocker-button-border-radius-bottom-left);border-bottom-right-radius:var(--content-blocker-button-border-radius-bottom-right);background-color:var(--content-blocker-button-color);color:var(--content-blocker-button-text-color)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn:hover{background-color:var(--content-blocker-button-color-hover);color:var(--content-blocker-button-text-color-hover)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn:active,body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn:focus{outline:2px solid transparent;outline-offset:2px;--brlbs-tw-ring-offset-shadow:var(--brlbs-tw-ring-inset) 0 0 0 var(--brlbs-tw-ring-offset-width) var(--brlbs-tw-ring-offset-color);--brlbs-tw-ring-shadow:var(--brlbs-tw-ring-inset) 0 0 0 calc(2px + var(--brlbs-tw-ring-offset-width)) var(--brlbs-tw-ring-color);box-shadow:var(--brlbs-tw-ring-offset-shadow),var(--brlbs-tw-ring-shadow),var(--brlbs-tw-shadow,0 0 #0000)}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-provider-toggle{all:unset;box-sizing:border-box;color:var(--content-blocker-link-color);cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration-line:none}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-provider-toggle:hover{all:unset;box-sizing:border-box;color:var(--content-blocker-link-color-hover);cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration-line:none}@container brlbsCmpntContentBlocker (480px <= width < 620px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b{padding-top:12%;padding-bottom:12%}}@container brlbsCmpntContentBlocker (width < 480px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b{padding:0}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main{margin:6%;flex-direction:column;gap:8px;justify-content:normal;overflow:auto}}@container brlbsCmpntContentBlocker (640px <= width < 750px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{margin:10%!important}}@container brlbsCmpntContentBlocker (540px <= width < 640px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{margin:6%!important}}@container brlbsCmpntContentBlocker (width < 540px){body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker{position:static}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{gap:8px;margin:6%!important;justify-content:normal;overflow:auto}body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main .brlbs-cmpnt-cb-play-button{display:none}}@container brlbsCmpntContentBlocker (width < 375px){.wp-embed-aspect-16-9 .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main,.wp-embed-aspect-16-9 .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main{height:100%;justify-content:normal;overflow:auto}.wp-embed-aspect-16-9 .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-b .brlbs-cmpnt-cb-main .brlbs-cmpnt-cb-play-button,.wp-embed-aspect-16-9 .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-preset-c .brlbs-cmpnt-cb-main .brlbs-cmpnt-cb-play-button{display:none}}.wp-embed-aspect-16-9:has(.brlbs-cmpnt-container.brlbs-cmpnt-content-blocker) div.wp-block-embed__wrapper{padding:0}.wp-embed-aspect-16-9:has(.brlbs-cmpnt-container.brlbs-cmpnt-content-blocker) div.wp-block-embed__wrapper:before{padding:0}#BorlabsCookieBox,.brlbs-cmpnt-container{font-family:var(--dialog-font-family);font-weight:400;line-height:calc(1.2 * var(--dialog-font-size))}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element{container-name:brlbsCmpntShortcodeElement;container-type:inline-size;line-height:1.25em;height:100%}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list{display:table}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list>div{display:table-row}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list dt{font-weight:700}body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list dd,body .brlbs-cmpnt-container.brlbs-cmpnt-shortcode-element .brlbs-cmpnt-description-list dt{display:table-cell;padding:2px 4px} 230.brlbs-cmpnt-cb-fluid-width-video-wrapper-youtube{aspect-ratio: 16/9;position:relative;width:100%}.brlbs-cmpnt-cb-fluid-width-video-wrapper-youtube iframe{position:absolute;top:0;left:0;width:100%;height:100%} 231 232body .brlbs-cmpnt-cb-youtube .brlbs-cmpnt-cb-btn { 233 background: #ff0000; 234 border-radius: 20px; 235} 236 237body .brlbs-cmpnt-cb-youtube .brlbs-cmpnt-cb-btn:hover { 238 background: #fff; 239 color: red; 240}.brlbs-cmpnt-cb-fluid-width-video-wrapper-vimeo{aspect-ratio: 16/9;position:relative;width:100%}.brlbs-cmpnt-cb-fluid-width-video-wrapper-vimeo iframe{position:absolute;top:0;left:0;width:100%;height:100%} 241 242body .brlbs-cmpnt-cb-vimeo .brlbs-cmpnt-cb-btn { 243 background: #00adef; 244 border-radius: 9999px; 245} 246 247body .brlbs-cmpnt-cb-vimeo .brlbs-cmpnt-cb-btn:hover { 248 background: #fff; 249 color: #00adef; 250}body .brlbs-cmpnt-cb-soundcloud .brlbs-cmpnt-cb-thumbnail { 251 background-size: contain; 252 background-repeat: no-repeat; 253 background-position: 50% 10%; 254}body .brlbs-cmpnt-cb-preset-b.brlbs-cmpnt-cb-spotify { 255 padding-top: 180px; 256 padding-bottom: 12px; 257} 258 259body .brlbs-cmpnt-cb-spotify .brlbs-cmpnt-cb-thumbnail { 260 background-size: contain; 261 background-repeat: no-repeat; 262 background-position: 50% 0; 263 background-color: #171717; 264}body .brlbs-cmpnt-cb-facebook .brlbs-cmpnt-cb-btn { 265 background: #4267b2; /* new color: #1b74e4;*/ 266 border-radius: 6px; 267} 268 269body .brlbs-cmpnt-cb-facebook .brlbs-cmpnt-cb-btn:hover { 270 background: #3b5998; /* new color: #356cd1;*/ 271} 272 273body .brlbs-cmpnt-cb-facebook .brlbs-cmpnt-cb-thumbnail { 274 background-position: center 0; 275}body .brlbs-cmpnt-cb-google-maps .brlbs-cmpnt-cb-btn { 276 background: #4285f4; 277 border-radius: 3px; 278} 279 280body .brlbs-cmpnt-cb-google-maps .brlbs-cmpnt-cb-btn:hover { 281 background: #fff; 282 color: #4285f4; 283}body .brlbs-cmpnt-cb-instagram .brlbs-cmpnt-cb-btn { 284 background: #0094f6; 285} 286 287body .brlbs-cmpnt-cb-instagram .brlbs-cmpnt-cb-btn:hover { 288 background: #1876f2; 289} 290 291body .brlbs-cmpnt-cb-instagram .brlbs-cmpnt-cb-thumbnail { 292 background-position: center 0; 293}body .brlbs-cmpnt-cb-x .brlbs-cmpnt-cb-btn { 294 background: #1d9bf0; 295 border-radius: 9999px; 296} 297 298body .brlbs-cmpnt-cb-x .brlbs-cmpnt-cb-btn:hover { 299 background: #1a8cd8; 300}:root{--content-blocker-background-color: #fafafa; 301--content-blocker-button-color: #00857d; 302--content-blocker-button-color-hover: #269790; 303--content-blocker-button-text-color: #fff; 304--content-blocker-button-text-color-hover: #fff; 305--content-blocker-font-family: inherit; 306--content-blocker-link-color: #00857d; 307--content-blocker-link-color-hover: #269790; 308--content-blocker-separator-color: #e5e5e5; 309--content-blocker-text-color: #555; 310--content-blocker-border-radius-top-left: 4px; 311--content-blocker-border-radius-top-right: 4px; 312--content-blocker-border-radius-bottom-left: 4px; 313--content-blocker-border-radius-bottom-right: 4px; 314--content-blocker-button-border-radius-top-left: 4px; 315--content-blocker-button-border-radius-top-right: 4px; 316--content-blocker-button-border-radius-bottom-left: 4px; 317--content-blocker-button-border-radius-bottom-right: 4px; 318--content-blocker-font-size: 14px; 319--content-blocker-separator-width: 1px; 320--content-blocker-background-opacity: 0.85; 321--content-blocker-background: rgba(250, 250, 250 ,0.85); 322} 323 324/*# sourceURL=borlabs-cookie-critical-inline-css */ 325</style> 326<link onload="this.media='all';this.onload=null" data-borlabs-cookie-deferred-style="1" rel='stylesheet' id='borlabs-cookie-custom-css' href='https://www.etl-unternehmensberatung.de/wp-content/cache/borlabs-cookie/9/borlabs-cookie-9-de.css' media="print" /> 327<noscript><link rel='stylesheet' id='borlabs-cookie-custom-css' href='https://www.etl-unternehmensberatung.de/wp-content/cache/borlabs-cookie/9/borlabs-cookie-9-de.css' media='all' /> 328</noscript>
329<script id="jquery-core-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/jQuery/jquery.min.js"></script>
vendor: 1 bytes, line 329
329
330<script data-no-optimize="1" data-no-minify="1" data-cfasync="false" nowprocket id="borlabs-cookie-config-js" src="https://www.etl-unternehmensberatung.de/wp-content/cache/borlabs-cookie/9/borlabs-cookie-config-de.json.js"></script>
vendor: 1 bytes, line 330
330
331<script data-no-optimize="1" data-no-minify="1" data-cfasync="false" nowprocket id="borlabs-cookie-prioritize-js" src="https://www.etl-unternehmensberatung.de/wp-content/plugins/borlabs-cookie/assets/javascript/borlabs-cookie-prioritize.min.js"></script>
331 332<link rel="canonical" href="https://www.etl-unternehmensberatung.de/standorte/" /> 333<style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
333<script nowprocket data-borlabs-cookie-script-blocker-ignore> 334if ('0' === '1' && ('0' === '1' || '1' === '1')) { 335 window['gtag_enable_tcf_support'] = true; 336} 337window.dataLayer = window.dataLayer || []; 338if (typeof gtag !== 'function') { function gtag(){dataLayer.push(arguments);} } 339gtag('set', 'developer_id.dYjRjMm', true); 340if('0' === '1' || '1' === '1') { 341 gtag('consent', 'default', { 342 'ad_storage': 'denied', 343 'ad_user_data': 'denied', 344 'ad_personalization': 'denied', 345 'analytics_storage': 'denied', 346 'functionality_storage': 'denied', 347 'personalization_storage': 'denied', 348 'security_storage': 'denied', 349 'wait_for_update': 500, 350 }); 351} 352if('0' === '1') { 353 gtag("js", new Date()); 354 gtag("config", "G-CB2ZRLL78K", { "anonymize_ip": true }); 355 356 (function (w, d, s, i) { 357 var f = d.getElementsByTagName(s)[0], 358 j = d.createElement(s); 359 j.async = true; 360 j.src = 361 "https://www.googletagmanager.com/gtag/js?id=" + i; 362 f.parentNode.insertBefore(j, f); 363 })(window, document, "script", "G-CB2ZRLL78K"); 364} 365</script>
365<link rel="icon" href="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/11/etl_logo.svg" sizes="32x32" /> 366<link rel="icon" href="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/11/etl_logo.svg" sizes="192x192" /> 367<link rel="apple-touch-icon" href="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/11/etl_logo.svg" /> 368<meta name="msapplication-TileImage" content="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/11/etl_logo.svg" /> 369<noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript><style id="rocket-lazyrender-inline-css">[data-wpr-lazyrender] {content-visibility: auto;}</style><meta name="generator" content="WP Rocket 3.23.5.1" data-wpr-features="wpr_lazyload_images wpr_lazyload_iframes wpr_preconnect_external_domains wpr_automatic_lazy_rendering wpr_oci wpr_image_dimensions wpr_cdn wpr_desktop" /></head> 370<body class="wp-singular page-template-default page page-id-347 wp-custom-logo wp-theme-etl-theme newHeadlinesOrder etlnr-9 ueber-uns-cat"> 371<div id="page" class="site"> 372 <div class="screen-reader-text"><a class="skip-link" href="#primary">Skip to content</a></div> 373 <header id="masthead" class="site-header no-lazy" style="content-visibility: visible !important;"> 374 <div class="container-fluid bg-lightgrey nav-container"> 375 <div class="container position-relative pb-md-3"> 376 <div class="top-teal-bar noPrint"></div> 377 378 379 380 <div class="row justify-content-between etl-header-row etl-header-row--legacy"> 381 382 <div class="col-lg-10 col-3 d-flex align-items-center etl-header-nav-col"> 383 <nav id="site-navigation" class="main-navigation desktop-nav noPrint"><div class="etl-toggle-container"> 384 <div id="menuToggle" class="etl-toggle"> 385 <div class="etl-toggle--top"></div> 386 <div class="etl-toggle--mid"></div> 387 <div class="etl-toggle--bottom"></div> 388 </div> 389<ul class="main-nav noPrint"> 390 <li class="item mainnavitem md-parent"> 391 <a href="#" class="title">ÃBER UNS</a> 392 <div class="sub-menu-link" data-navmodal-id="md-ueber-uns"></div></li> 393 <li class="item mainnavitem md-parent"> 394 <a href="#" class="title">LEISTUNGEN</a> 395 <div class="sub-menu-link" data-navmodal-id="md-leistungen"></div></li> 396 <li class="item mainnavitem md-parent"> 397 <a href="#" class="title">KARRIERE</a> 398 <div class="sub-menu-link" data-navmodal-id="md-karriere"></div></li></ul></div></nav><div class="md-sub-menu" id="md-ueber-uns"><div class="wp-bootstrap-blocks-container container mb-2"> 399 400<div class="wp-bootstrap-blocks-row row"> 401 402 403<div class="col-12"> 404 405<div class="editor-wrapper editor"> 406 407 <p><strong>Ãber uns</strong></p> 408<p><a href="https://www.etl-unternehmensberatung.de/ueber-uns">Ãber uns</a><br> 409<a href="https://www.etl-unternehmensberatung.de/standorte">Standortübersicht und -suche</a><br> 410<a href="https://www.etl-unternehmensberatung.de/etl-gruppe">ETL-Gruppe</a><br> 411<a href="https://www.etl-unternehmensberatung.de/soziales-engagement">Soziales Engagement</a><br> 412<a href="https://www.etl-unternehmensberatung.de/zeigepdf/pdf/broschuere-unternehmensberatung" target="_blank" rel="noopener">Unsere Broschüre</a></p> 413 414</div> 415 416 </div> 417 418</div> 419 420</div> 421</div><div class="md-sub-menu" id="md-leistungen"><div class="wp-bootstrap-blocks-container container mb-2"> 422 423<div class="wp-bootstrap-blocks-row row"> 424 425 426<div class="col-12 mb-0 sub-md-0"> 427 428<div class="editor-wrapper editor"> 429 430 <p><strong>Leistungen</strong></p> 431 432</div> 433 434 </div> 435 436 437 438<div class="col-12 col-md-3"> 439 440<div class="editor-wrapper editor m-0 p-0"> 441 442 <p><a href="https://www.etl-unternehmensberatung.de/leistungen/">Leistungsübersicht</a><br> 443<a href="https://www.etl-unternehmensberatung.de/strategieberatung">Strategieberatung</a><br> 444<a href="https://www.etl-unternehmensberatung.de/foerdermittelberatung/">Fördermittelberatung</a><br> 445<a href="https://www.etl-unternehmensberatung.de/unternehmensbewertung/">Unternehmensbewertung</a><br> 446<a href="https://www.etl-unternehmensberatung.de/unternehmensnachfolge/">Unternehmensnachfolge</a><br> 447<a href="https://www.etl-unternehmensberatung.de/finanzierungsberatung">Finanzierungsberatung</a><br> 448<a href="https://www.etl-unternehmensberatung.de/sanierungsberatung">Sanierungsberatung</a></p> 449 450</div> 451 452 </div> 453 454 455 456<div class="col-12 col-md-3"> 457 458<div class="editor-wrapper editor mt-md-0"> 459 460 <p><a href="https://www.etl-unternehmensberatung.de/organisationsberatung/">Organisationsberatung & Verfahrensdokumentation</a><br> 461<a href="https://www.etl-unternehmensberatung.de/existenzgruendung/">Existenzgründungsberatung</a><br> 462<a href="https://www.etl-unternehmensberatung.de/datenschutzberatung/">Datenschutzberatung</a></p> 463 464</div> 465 466 </div> 467 468</div> 469 470</div> 471</div><div class="md-sub-menu" id="md-karriere"><div class="wp-bootstrap-blocks-container container mb-2"> 472 473<div class="wp-bootstrap-blocks-row row"> 474 475 476<div class="col-12"> 477 478<div class="editor-wrapper editor"> 479 480 <p><strong>Karriere</strong></p> 481<p><a href="https://www.etl-unternehmensberatung.de/stellenangebote/">Stellenangebote & Initiativbewerbungen</a><br> 482<a href="https://www.etl-unternehmensberatung.de/ausbildung-praktikum/">Ausbildung & Praktikum</a><br> 483<a href="https://www.etl-unternehmensberatung.de/?page_id=1605">Werkstudenten & Duales Studium</a></p> 484 485</div> 486 487 </div> 488 489</div> 490 491</div> 492</div> 493<div class="mobile-md-container noPrint" aria-hidden="false"> 494 <div class="mobile-nav-cont container"><div class="row"><div class="col-12"> 495 <div class="m-item m-md-parent" 496 data-toggle="collapse" 497 data-target="#ueber-uns" 498 data-bs-toggle="collapse" 499 data-bs-target="#ueber-uns">ÃBER UNS <i class="fas fa-chevron-down"></i> 500 </div> 501 <div id="ueber-uns" class="collapse"> 502 <div class="m-md-sub-menu" id="mobile-md-ueber-uns"><div class="wp-bootstrap-blocks-container container mb-2"> 503 504<div class="wp-bootstrap-blocks-row row"> 505 506 507<div class="col-12"> 508 509<div class="editor-wrapper editor"> 510 511 <p><strong>Ãber uns</strong></p> 512<p><a href="https://www.etl-unternehmensberatung.de/ueber-uns">Ãber uns</a><br> 513<a href="https://www.etl-unternehmensberatung.de/standorte">Standortübersicht und -suche</a><br> 514<a href="https://www.etl-unternehmensberatung.de/etl-gruppe">ETL-Gruppe</a><br> 515<a href="https://www.etl-unternehmensberatung.de/soziales-engagement">Soziales Engagement</a><br> 516<a href="https://www.etl-unternehmensberatung.de/zeigepdf/pdf/broschuere-unternehmensberatung" target="_blank" rel="noopener">Unsere Broschüre</a></p> 517 518</div> 519 520 </div> 521 522</div> 523 524</div> 525</div></div> 526 <div class="m-item m-md-parent" 527 data-toggle="collapse" 528 data-target="#leistungen" 529 data-bs-toggle="collapse" 530 data-bs-target="#leistungen">LEISTUNGEN <i class="fas fa-chevron-down"></i> 531 </div> 532 <div id="leistungen" class="collapse"> 533 <div class="m-md-sub-menu" id="mobile-md-leistungen"><div class="wp-bootstrap-blocks-container container mb-2"> 534 535<div class="wp-bootstrap-blocks-row row"> 536 537 538<div class="col-12 mb-0 sub-md-0"> 539 540<div class="editor-wrapper editor"> 541 542 <p><strong>Leistungen</strong></p> 543 544</div> 545 546 </div> 547 548 549 550<div class="col-12 col-md-3"> 551 552<div class="editor-wrapper editor m-0 p-0"> 553 554 <p><a href="https://www.etl-unternehmensberatung.de/leistungen/">Leistungsübersicht</a><br> 555<a href="https://www.etl-unternehmensberatung.de/strategieberatung">Strategieberatung</a><br> 556<a href="https://www.etl-unternehmensberatung.de/foerdermittelberatung/">Fördermittelberatung</a><br> 557<a href="https://www.etl-unternehmensberatung.de/unternehmensbewertung/">Unternehmensbewertung</a><br> 558<a href="https://www.etl-unternehmensberatung.de/unternehmensnachfolge/">Unternehmensnachfolge</a><br> 559<a href="https://www.etl-unternehmensberatung.de/finanzierungsberatung">Finanzierungsberatung</a><br> 560<a href="https://www.etl-unternehmensberatung.de/sanierungsberatung">Sanierungsberatung</a></p> 561 562</div> 563 564 </div> 565 566 567 568<div class="col-12 col-md-3"> 569 570<div class="editor-wrapper editor mt-md-0"> 571 572 <p><a href="https://www.etl-unternehmensberatung.de/organisationsberatung/">Organisationsberatung & Verfahrensdokumentation</a><br> 573<a href="https://www.etl-unternehmensberatung.de/existenzgruendung/">Existenzgründungsberatung</a><br> 574<a href="https://www.etl-unternehmensberatung.de/datenschutzberatung/">Datenschutzberatung</a></p> 575 576</div> 577 578 </div> 579 580</div> 581 582</div> 583</div></div> 584 <div class="m-item m-md-parent" 585 data-toggle="collapse" 586 data-target="#karriere" 587 data-bs-toggle="collapse" 588 data-bs-target="#karriere">KARRIERE <i class="fas fa-chevron-down"></i> 589 </div> 590 <div id="karriere" class="collapse"> 591 <div class="m-md-sub-menu" id="mobile-md-karriere"><div class="wp-bootstrap-blocks-container container mb-2"> 592 593<div class="wp-bootstrap-blocks-row row"> 594 595 596<div class="col-12"> 597 598<div class="editor-wrapper editor"> 599 600 <p><strong>Karriere</strong></p> 601<p><a href="https://www.etl-unternehmensberatung.de/stellenangebote/">Stellenangebote & Initiativbewerbungen</a><br> 602<a href="https://www.etl-unternehmensberatung.de/ausbildung-praktikum/">Ausbildung & Praktikum</a><br> 603<a href="https://www.etl-unternehmensberatung.de/?page_id=1605">Werkstudenten & Duales Studium</a></p> 604 605</div> 606 607 </div> 608 609</div> 610 611</div> 612</div></div></div></div></div></div> 613 614
615<script> 616jQuery(function ($) { 617 $('.isSub').hide(); 618 619 var subLevel1 = "standorte"; 620 var subLevel2 = false; 621 622 $('.isSub.sub00').show(); 623 624 $('.hasSub [data-sub]').each(function () { 625 var $trigger = $(this); 626 var sub = $trigger.data('sub'); 627 628 if (!sub) { 629 return; 630 } 631 632 $trigger.on({ 633 mouseenter: function () { 634 $('.isSub').hide(); 635 $('.isSub.' + sub).show(); 636 637 $('.hasSub [data-sub]').removeClass('active'); 638 $trigger.addClass('active'); 639 }, 640 click: function (e) { 641 e.preventDefault(); 642 $('.isSub').hide(); 643 $('.isSub.' + sub).show(); 644 }, 645 dblclick: function (e) { 646 e.preventDefault(); 647 window.location.href = $trigger.attr('href'); 648 }, 649 tap: function (e) { 650 e.preventDefault(); 651 $('.isSub').hide(); 652 $('.isSub.' + sub).show(); 653 }, 654 taphold: function (e) { 655 e.preventDefault(); 656 window.location.href = $trigger.attr('href'); 657 } 658 }); 659 660 if (subLevel1 && $trigger.attr('href') && $trigger.attr('href').indexOf(subLevel1) >= 0) { 661 $trigger.addClass('active'); 662 $trigger.trigger('click'); 663 664 if (subLevel2) { 665 $('.isSub.' + sub + ' a').each(function () { 666 var $link = $(this); 667 668 if ($link.attr('href') && $link.attr('href').indexOf(subLevel2) >= 0) { 669 $link.addClass('active'); 670 } 671 }); 672 } 673 } 674 }); 675}); 676</script>
676 677 678<style> 679[data-sub]::after { 680 content: "\f105"; 681 font-family: "Font Awesome 5 Free"; 682 font-weight: 900; 683 padding-left: 10px; 684} 685</style> </div> 686 687 688 <div class="col-lg-2 col-5 d-flex justify-content-end etl-header-logo-col"> 689 <div class="site-branding bg-white"> 690 <a href="/" 691 class="custom-logo-link" 692 rel="home" 693 aria-current="page" 694 title="zur Startseite von ETL Unternehmensberatung"> 695 <img width="268" height="22" src="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2022/06/ETL_Unternehmensberatung.svg" 696 class="custom-logo" 697 alt="Logo ETL Unternehmensberatung"> 698 </a> 699 </div> 700 </div> 701 702 </div> 703 704 705 <div class="bottom-yellow-bar noPrint"></div> 706 </div> 707 </div> 708 </header><!-- #masthead --> 709<style> 710/* Header layout fix: Desktop bleibt wie früher, Mobile Logo links / Toggle rechts */ 711.etl-header-row { 712 display: flex; 713 flex-wrap: wrap; 714 align-items: center; 715} 716 717/* Desktop: ab 1160px */ 718@media (min-width: 1160px) { 719 .etl-header-row--mega .etl-header-nav-col { 720 order: 1; 721 flex: 0 0 auto; 722 width: auto; 723 max-width: none; 724 } 725 726 .etl-header-row--mega .etl-header-lang-col { 727 order: 2; 728 flex: 0 0 auto; 729 width: auto; 730 max-width: none; 731 } 732 733 .etl-header-row--mega .etl-header-logo-col { 734 order: 3; 735 flex: 0 0 auto; 736 width: auto; 737 max-width: none; 738 margin-left: auto; 739 justify-content: flex-end !important; 740 } 741 742 .etl-header-row--mega .etl-header-toggle-col { 743 display: none !important; 744 } 745} 746 747/* Mobile / Tablet: bis 1159px */ 748@media (max-width: 1159px) { 749 .etl-header-row--mega .etl-header-logo-col { 750 order: 1; 751 flex: 0 0 50%; 752 max-width: 50%; 753 justify-content: flex-start !important; 754 } 755 756 .etl-header-row--mega .etl-header-toggle-col { 757 order: 2; 758 display: flex !important; 759 flex: 0 0 50%; 760 max-width: 50%; 761 justify-content: flex-end !important; 762 } 763 764 .etl-header-row--mega .etl-header-nav-col { 765 order: 3; 766 flex: 0 0 100%; 767 max-width: 100%; 768 width: 100%; 769 } 770 771 .etl-header-row--mega .etl-header-lang-col { 772 display: none !important; 773 } 774} 775</style> 776<div class="pt-3 etlBCWrapper container text-right noPrint"><span class="etlBC"><a href="/">Startseite</a></span> | <span class="etlBC">Standorte, Ansprechpartnersuche</span></div> 777 <main id="primary" class="site-main"> 778 779<article id="post-347" class="post-347 page type-page status-publish hentry category-ueber-uns"> 780 <div class="entry-content"> 781 782<div class="wp-block-group subPageNormalWrapper subPageWrapperEditor"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"><style> 783/* Hero ETL Instanz: heroetl-block_202f209be38308981d818477ad2b63b3 */ 784#heroetl-block_202f209be38308981d818477ad2b63b3{ 785 position: relative; 786 787 background: 788 linear-gradient( 789 rgba(88, 88, 90, 0.6), 790 rgba(88, 88, 90, 0.6) 791 ), 792 url('https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/12/t13_iStock-490426774.jpg') no-repeat center center; 793 background-size: cover; 794} 795 796#heroetl-block_202f209be38308981d818477ad2b63b3 > .etl-ai-image-label { 797 position: absolute; 798 z-index: 5; 799 top: 1rem; 800 right: 1rem; 801 802 display: inline-block; 803 padding: 0.4rem 0.65rem; 804 805 color: #fff; 806 background: rgba(0, 0, 0, 0.78); 807 border-radius: 0.25rem; 808 809 font-size: 0.8125rem; 810 font-weight: 600; 811 line-height: 1.3; 812} 813</style> 814 815<div id="heroetl-block_202f209be38308981d818477ad2b63b3" class="hero-etl hero-etl-auto container-fluid hero-etl-header"> 816 817 818 <div class="container"> 819 <div class="row"> 820 <div class="col-lg-8 col-md-12 animate__animated animate__fadeInUp"> 821 <h2><span style="color: #ffffff">Standortübersicht und -suche</span></h2> 822 </div> 823 <div class="col-lg-4 col-md-12"> 824 </div> 825 </div> 826 827 <div class="bottom-yellow-bar" aria-hidden="true"></div> 828 </div> 829</div> 830 831 <div class="container-fluid bcNP bcApplic"></div> 832 833 834<div class="wp-bootstrap-blocks-container container-fluid mb-2 subpage-bl-template-content py-5"> 835 836<div class="wp-bootstrap-blocks-container container mb-2"> 837 838<div class="wp-bootstrap-blocks-row row my-5"> 839 840 841<div class="col-12"> 842 843 844<div class="sec-head-wrapper secID sec-header-etl" id=""> 845<div class="sec-head-bar"><div class="sec-head-cross"></div></div> 846<div class="sec-head-title"> 847Ãber uns</div> 848</div> 849 850 </div> 851 852 853 854<div class="col-12 col-sm-12 col-md-12 col-lg-12 pt-5"> 855 856<div class="editor-wrapper editor"> 857 858 <h2>Standorte in Ihrer Region</h2> 859<p><span class="subheader">Ansprechpartner finden und Termin vereinbaren</span></p> 860<p>ETL Unternehmensberatung ist bundesweit aufgestellt und inzwischen an mehr als 65 Standorten in Deutschland vertreten. Ãber die Suchfunktion finden Sie den ETL Unternehmensberatung-Ansprechpartner in Ihrer Nähe.</p> 861 862</div> 863 864 865<span class="subheader">Wählen Sie Ihren Ort oder Ihre PLZ aus:<br><br></span> 866<div class="stsWrapper"> 867<div class="stsQueryWrapper"> 868 <div class="stsQueryHeader"> 869 <label for="stsDL" class="sr-only">Beratungsangebot auswählen:</label> 870 <select name="stsDL" class="d-none" id="stsDL"> 871 <option value="ub">Unternehmensberatung</option> </select> 872 <label for="stsSp" class="sr-only">Spezialisierung auswählen:</label> 873 <select class="stsSpS d-none" name="stsSP" id="stsSp"> 874 <option class="spStb spWp spRa spUb spFdl" id="stsSPAll" value="all">Alle Spezialisierungen</option> 875 <!-- Stb --> 876 </select> 877 <div class="stsLocWrapper" style="position:relative; display:inline-block;"> 878 <label for="stsLoc" class="sr-only">Ort oder Postleitzahl eingeben:</label> 879 <input type="text" id="stsLoc" placeholder="Ort oder PLZ eingeben" autocomplete="address-level2"> 880 <small id="stsLocHint">(Standort automatisch ermittelt, änderbar)</small> 881 </div> 882 <div class="d-sm-none d-xs-block w-100"> </div> 883 <input id="stsSubmit" type="submit" value="Standorte finden"> 884 </div> 885 886 <div class="stsResultwrapper row"> 887 <div class="col-12 col-lg-7 mt-5 stsResultContWrapper empty"> 888 <div class="stsResultCont m-0"> 889 <div id="stsErgebnisEmpty" class="alert alert-secondary text-center pt-4 d-flex flex-column justify-content-center align-items-center"> 890 <i class="fas fa-search-location fa-2x mb-3"></i> 891 <p class="mb-2 font-weight-bold">Noch keine Suche durchgeführt</p> 892 <small>Die Ergebnisse erscheinen hier nach Ihrer Suche.</small> 893 </div> 894 <style> 895 .stsResultwrapper { 896 display: flex; 897 flex-wrap: wrap; 898 gap: 0; /* optional: enger zusammen */ 899 } 900 .stsResultContWrapper,
901 .stsMapWrapper { 902 display: flex; 903 flex-direction: column; 904 height: 100%; 905 } 906 .stsResultCont, #stsMapsEmpty { 907 flex: 1 1 auto; 908 display: flex; 909 flex-direction: column; 910 justify-content: top; 911 /* min-height falls mobile, für sicheres Aussehen */ 912 min-height: 160px; 913 } 914 @media (max-width: 991px) { 915 .stsResultwrapper { flex-direction: column; } 916 .stsResultContWrapper, .stsMapWrapper { min-height: unset; } 917 } 918 #stsErgebnisEmpty { 919 border: 2px dashed #d9d9d9; 920 border-radius: 5px; 921 background-color: #f7f7f7; 922 min-height: 160px; 923 box-shadow: 0 1px 6px #0001; 924 color: #bbb; 925 } 926 #stsMapsEmpty { 927 color: #bbb; 928 position: relative; 929 height: 160px; 930 min-height: 160px; 931 } 932 </style> 933 </div> 934 </div> 935 <div class="col-12 col-lg-5 my-5 p-0 d-block empty sticky-top stsResultMapWrapper"> 936 <div id="map" class="empty"> 937 <div id="stsMapsEmpty" class="mx-3 alert alert-secondary text-center pt-4 d-flex flex-column justify-content-center align-items-center"> 938 <i class="fas fa-map-marked-alt fa-2x mb-3"></i> 939 <p class="mb-2 font-weight-bold">Karte wird hier angezeigt</p> 940 <small>Nach einer Suche werden die Standorte auf der Karte eingeblendet.</small> 941 </div> 942 </div> 943 </div> 944 <div id="map-side-bar"></div> 945 </div> 946 947</div> 948</div> 949 950<style> 951 :root { 952 --height_map: 650px; 953 --height_map_wrapper: inherit; 954 --height_list: var(--height_map); 955 } 956 @media (max-width: 767px) { 957 :root { 958 --height_map: 70vh; 959 --height_map_wrapper: inherit; 960 --height_list: var(--height_map); 961 } 962 } 963 .sr-only { 964 position: absolute; 965 width: 1px; height: 1px; 966 margin: -1px; padding: 0; 967 overflow: hidden; clip: rect(0,0,0,0); 968 border: 0; 969 } 970 #map:not(.empty) { 971 min-height: var(--height_map); 972 max-height: var(--height_map); 973 height: var(--height_map); 974 overflow: hidden; 975 } 976 .stsResultMapWrapper { 977 min-height: var(--height_map_wrapper); 978 max-height: var(--height_map_wrapper); 979 height: var(--height_map_wrapper); 980 overflow: hidden; 981 } 982 .stsResultMapWrapper:not(.empty) { 983 min-height: var(--height_map); 984 max-height: var(--height_map); 985 height: var(--height_map); 986 overflow: hidden; 987 } 988 #map.empty, .stsResultMapWrapper.empty { 989 display: inherit; 990 min-height: inherit; 991 max-height: inherit; 992 height: 166px; 993 } 994 .stsResultContWrapper:not(.empty) { 995 min-height: var(--height_list); 996 max-height: var(--height_list); 997 height: var(--height_list); 998 overflow-x: hidden; 999 overflow-y: auto; 1000 } 1001 .stsResultContWrapper.empty { 1002 height: 160px; 1003 } 1004 #stsErgebnisListe { 1005 padding-left: 0; 1006 text-indent: 0; 1007 width: 100%; 1008 } 1009 #stsErgebnisListe li:before { 1010 content: none; 1011 } 1012 #stsErgebnisListe .list-group-item { 1013 background: #fff; 1014 border: none; 1015 border-radius: 0; 1016 padding: 0; 1017 margin-bottom: 1rem; 1018 } 1019 li.ergebnis-item { 1020 transition: opacity 0.5s; 1021 } 1022 .stsResultAccordion .card { 1023 border: 1px solid #ccc; 1024 border-radius: 5px; 1025 margin-bottom: 1rem; 1026 } 1027 .stsResultAccordion .card-header { 1028 background: #f9f9f9; 1029 border-bottom: none; 1030 cursor: pointer; 1031 } 1032 .stsResultAccordion .accordion-toggle { 1033 border-radius: 5px; 1034 border: none; 1035 color: #58585A; 1036 font-weight: 600; 1037 outline: none; 1038 display: flex; 1039 width: 100%; 1040 justify-content: space-between; 1041 align-items: left; 1042 cursor: pointer; 1043 background: none; 1044 transition: background 0.2s; 1045 } 1046 .stsResultAccordion .accordion-toggle:is(:focus, :hover, :active, :focus-within, [aria-expanded="true"]) { 1047 text-decoration: none; 1048 background: #fff; 1049 background: linear-gradient(0deg,var(--primary_color) 3px, rgba(255, 255, 255, 1) 3px); 1050 * { 1051 text-decoration: none; 1052 } 1053 } 1054 .stsResultAccordion .accordion-toggle:is([aria-expanded="true"]) { 1055 border-bottom-left-radius: 0; 1056 border-bottom-right-radius: 0; 1057 border: none; 1058 } 1059 .stsResultAccordion .accordion-panel { 1060 overflow: hidden; 1061 } 1062 .stsResultAccordion .card-footer { 1063 background: #fff; 1064 background: linear-gradient(180deg,var(--primary_color) 3px, rgba(255, 255, 255, 1) 3px); 1065 border-top: none; 1066 } 1067 .stsResultAccordion .card-footer .btn-sm { 1068 padding: .25rem .5rem !important; 1069 border-width: 1px; 1070 margin-top: 3px; 1071 } 1072 img.polaroid { 1073 border: 10px solid #fff; 1074 border-radius: 3px; 1075 outline: 1px solid #eee; 1076 } 1077 .stsResultAccordion .accordion-toggle .stsCloseBtn { 1078 transition: transform 0.2s; 1079 transform-origin: center; 1080 color: var(--primary_color); 1081 } 1082 .stsResultAccordion .accordion-toggle[aria-expanded="true"] .stsCloseBtn { 1083 transform: rotate(180deg); 1084 } 1085 .stsResultAccordion .btn-link { 1086 text-decoration: none; 1087 } 1088 #stsCountInfo #sortResults { 1089 color: #6c757d; 1090 border: 1px solid #6c757d; 1091 background-color: transparent; 1092 max-width: 170px; 1093 } 1094 #stsCountInfo #sortResults:focus-within { 1095 color: #000; 1096 } 1097 #stsCountInfo #sortResults:is(:hover, :active :focus) { 1098 background-color: #6c757d; 1099 color: #fff; 1100 } 1101 #stsMapsEmpty { 1102 background-image: 1103 linear-gradient(135deg, #fefefe 25%, transparent 25%), 1104 linear-gradient(225deg, #fefefe 25%, transparent 25%), 1105 linear-gradient(315deg, #fefefe 25%, transparent 25%), 1106 linear-gradient(45deg, #fefefe 25%, transparent 25%); 1107 background-size: 32px 32px; 1108 background-position: 0 0, 0 16px, 16px -16px, -16px 0px; 1109 border: 2px dashed #d9d9d9; 1110 border-radius: 5px; 1111 background-color: #f7f7f7; 1112 box-shadow: 0 1px 6px #0001; 1113 } 1114 .stsLocWrapper { 1115 position: relative; 1116 display: inline-block; 1117 } 1118 1119 #stsLocHint { 1120 position: absolute; 1121 margin-left: 0; 1122 margin-top: 4px; 1123 font-size: 0.8em; 1124 color: #666; 1125 white-space: nowrap; 1126 pointer-events: none; 1127 display: none; 1128 } 1129 /* 1130 .gmaps-marker-highlight .custom-marker-svg { 1131 filter: drop-shadow(0 0 5px var(--third_color)); 1132 stroke: var(--third_color); 1133 stroke-width: 4px; 1134 } 1135 */ 1136 .gmaps-cluster-highlight { 1137 box-shadow: 0 0 0 4px var(--third_color) !important; 1138 border-radius: 50% !important; 1139 border: 2px solid var(--third_color) !important; 1140 } 1141</style> 1142
1143<script> 1144// ==== KONFIG ==== 1145const GOOGLE_MAPS_API_KEY_MAPS = 'AIzaSyDxBecmA9FsXpxgpIVp-Is3ue1X8dVEh60'; 1146const GOOGLE_MAPS_API_KEY_AUTOCOMPLETE = 'AIzaSyC5b1vPzXIerxJ2RbXNZA90m0P5vqwS2tA'; 1147const MAP_ID = '752667aca799f642e1a4149f'; 1148const webservice = '/wp-json/etl/v1/standortsuche'; 1149const srcGeoCodeLocalizer = `/wp-json/etl/v1/geocoding`; 1150const srcGMap = `https://maps.googleapis.com/maps/api/js?key=${GOOGLE_MAPS_API_KEY_MAPS}&loading=async&libraries=marker&callback=initGoogleMap`; 1151const srcMarkerClusterer = "https://unpkg.com/@googlemaps/markerclusterer/dist/index.umd.js"; 1152const srcImgQualitaetskanzlei = 'data:image/webp;base64,UklGRtQIAABXRUJQVlA4WAoAAAAUAAAAqwAAEwAAQUxQSP8EAAABoIVt27GpusZGGGS7htlusm3btrGcbdu2bdvmOHdvfP/3//9qYTsiJoC/e+Iv/K91tOHi8f8tbpmr/XWuhsHRbMf6/xWzF83bvm3nYsqv2nzwrSRNY8mWJU52qb3q2rU1zRz+hqxTmkOjKSFmrgVzki/SLqMnuv0cIVMa2fDrX5I+S7EsljH+4rTiXtJr7JDpvCzeL2y/6joJt9Qd2s7PCWTUVyRD8/kFrZP8fo6W2m+DdFZ3AHfqrJjao1yptEDyeJ2yQ0C0NodAniVSDruV0Wqo83sIbFdRwP+3enQfbFilhta9kc/PUUuLbBg59pSuY+o9ck0lwDtGx+ywQ1uwOEd3wDOdH+CYOsjgWywqrxXGlOvVMNgRSBaVDHBOuUxdU7pDslJRuazJGAl4Fo2KNHilg4jyBQCHlGlSp06dKo2vFfmjirga4Kgum7WS2gM+sTpkW1p997NEgkrSUn8BPt/vAN0k6XywycJvWZHRjaL3JcVWILWMmekvSXt9DH5wRoOg7TdJZwOgjiavl3TEGw8Zv2uGScUXkhKbAG++7NbdrLnCQxyAmlJDS4dt66CTmK7QRNprNuCrN9BECc0rzdYhk3UqwtDLWtLXIb00IKqX5OM+9JzWD3cto5t1q27WI4MzGzQfakitKs3VPqgnRXdoF6PJOPcfNXJY52/qaSm/NKhaT6kESHtl0VBdamTpiG2TNMWsp1bRXJMAH92DLXEhwDUFW1qiCjBZGaCjBgCD1RDGqyisVWNg6K/w7ge9tRhYkFgWuK0AaumDKxRXtDPGelqPpadKDiTTQ4jWXr1o3rprK0egoRX7bZusP826W+FtcAffXGXPK8KsDCxRGfAEMpeYoj4wS42gleJHhGJ8+WGAFgM4g2eOMhcVRi3NA/is5IZauoWlbLqfsWChgpneKznR2q0LmLaVGlraY1svHTJbqBm01ETAQ/eBGqdlDLONkDUy9jZhhqTXo5zg9mcprYGoAzKGU0vTDO8VAGSXAkzqyjyMaB3TebNWUiO75dAXF6g4qjZ8UE3a6jcgWLdghfRns4i1CrGthbS6fdFu1pC+0w7pALx8P0H33IBp0rQWETsUSi3NNkQrObh8UHFMqulow9atW7coWsyfaJ3SJbOWUkPAO8YenNdCKCj17KX3jrTTAqCIzpFTbwEOKdyqFSqMwxflA9qoB8xVDaheHXB7qEDefWOqjkIWfXIETirEmiA4rKaYBeoWRqcgiNZ53XbyDMroBHSWmgL+8TqIW0BaB+uySZP84ZL0uiAUUUxGOKejhOg1UFbKZ9VaFcPxuyLBL17dYZkaw3GNBp7JmzeC21pAOiUAlaQwa/yYrrFYwTbNcoQeum4wdQSmS0OAtLIYZwMlXktX9ks6BHBWOvclQZ9hr75vPqYXqk01HYf9qgad9GUOnaVtO/Vey6GVtMYh7Tc9PS6NAykJqaQZrJQ2H9YLVae5thgk/KUnnyQtp4n2gO8t6cxLxWUGaeCgIb/9+tcIQ9TQoYWB5OOGDp8+ceoQbMCr9w3pQq+9Oh0IfnNea1PA3MXgMPSxHlfIuaccIbt6Q7fdIcDIZxeg8SnFDffdOgwYdPepI5nnxepKE2DBRg8osflkavo+0POyufeUpuDuDobFG/HbtOHE2dOnL44m3+6ugNuIJ/owMRmweB2WHbC3NebjNuXn39KZf9tTB2z7P7t07v8KAFZQOCCUAAAAkAUAnQEqrAAUAD6RRJ9LpaOioaR1WNiwEgljANOtgBrM3oAdKiALDe6Alod3jQr6OyDFCAAA/uw6oaeYvAH//GGG7mkMZ78jfu7XrxUbTCdc0pa3VJgmX+3h9wRkoTevXeEq/X+l7QtcibX6Z/gOq9Gc7kQqmmXFgKUGRoZ6WWoPpxd44hn6rHbkuH549uAAAAAAAFhNUCASAwAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDMgNzkuOTY5MGE4N2ZjLCAyMDI1LzAzLzA2LTIwOjUwOjE2ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjYuOCAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3MjJDNkE3OTYwQTExMUYwQkZFNkUxMUYzMTBDQkU0QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3MjJDNkE3QTYwQTExMUYwQkZFNkUxMUYzMTBDQkU0QyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjcyMkM2QTc3NjBBMTExRjBCRkU2RTExRjMxMENCRTRDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjcyMkM2QTc4NjBBMTExRjBCRkU2RTExRjMxMENCRTRDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+'; 1153 1154let comps = []; 1155let locs = []; 1156let tmp = {}; 1157let maxAnz = 6; 1158let showAll = ['stb_psport','sfs','fdl']; // "alle anzeigen"-Spezialfälle 1159let noFilter = false; 1160let maxtry=0; 1161let stsCountInfo=''; 1162let _originalFdata = []; // Unveränderte Daten (für Reset und Filter) 1163let _currentFdata = []; // Gerade angezeigte/gefilterte/sortierte Daten 1164let _filterActive = false; // Qualitätskanzlei-Filter aktiv? 1165let _sortOrder = "entfernung"; // aktuelle Sortierung 1166let alreadyScrolled = false; // scrollt zum Panel, wenn erstmalig geöffnet 1167 1168// ==== GOOGLE MAPS INITIALISIERUNG ==== 1169let map = null; 1170let markers = []; 1171let markerCluster = null; 1172let markerClusterScriptLoaded = false; 1173 1174// Google Maps laden (mit AdvancedMarker und optional mit MarkerClusterer) 1175function loadGoogleMapsScript(callback) { 1176 // Prüfe, ob Google Maps schon geladen ist 1177 if (window.google && window.google.maps && window.google.maps.marker) { 1178 // Prüfe zusätzlich, ob Clusterer geladen 1179 if ( 1180 (window.MarkerClusterer) || 1181 (window.markerClusterer && window.markerClusterer.MarkerClusterer) 1182 ) { 1183 callback(); 1184 return; 1185 } 1186 // Maps da, aber Clusterer nicht â nur Clusterer nachladen 1187 const clusterScript = document.createElement("script"); 1188 clusterScript.src = srcMarkerClusterer; 1189 clusterScript.async = true; 1190 clusterScript.onload = callback; 1191 document.head.appendChild(clusterScript); 1192 return; 1193 } 1194 1195 // Wenn noch gar nicht geladen, Maps UND Clusterer laden 1196 if (!window.__mapsLoading) { // Verhindert mehrfaches Laden! 1197 window.__mapsLoading = true; 1198 const script = document.createElement("script"); 1199 script.src = srcGMap; 1200 script.async = true; 1201 window.initGoogleMap = function() { 1202 // Maps geladen, jetzt Clusterer laden 1203 const clusterScript = document.createElement("script"); 1204 clusterScript.src = srcMarkerClusterer; 1205 clusterScript.async = true; 1206 clusterScript.onload = callback; 1207 document.head.appendChild(clusterScript); 1208 }; 1209 document.head.appendChild(script); 1210 } 1211} 1212// ==== MAP + MARKER + SIDEBAR KOPPLUNG ==== 1213function initOrUpdateMap(fdata) { 1214 if (!window.google || !window.google.maps || !window.google.maps.marker) return; 1215 const mapDiv = document.getElementById('map'); 1216 if (!mapDiv) return; 1217 1218 // Map initialisieren 1219 if (!map) { 1220 map = new google.maps.Map(mapDiv, { 1221 zoom: 6, 1222 center: { lat: 51.3, lng: 10.2 }, 1223 mapTypeControl: false, 1224 streetViewControl: false, 1225 fullscreenControl: false, 1226 mapId: MAP_ID, 1227 }); 1228 } 1229 1230 // Vorherige Marker/Cluster entfernen 1231 if (Array.isArray(markers) && markers.length) {
1232 markers.forEach(m => m.marker.map = null); 1233 markers = []; 1234 } 1235 if (markerCluster && markerCluster.clearMarkers) { 1236 markerCluster.clearMarkers(); 1237 } 1238 1239 // Firmen nach Koordinate gruppieren 1240 const coordMap = {}; 1241 fdata.forEach((f, idx) => { 1242 if (!f.gps) return; 1243 let key = f.gps.trim(); 1244 if (!coordMap[key]) coordMap[key] = []; 1245 coordMap[key].push({f, idx}); 1246 }); 1247 1248 const bounds = new google.maps.LatLngBounds(); 1249 1250 // Jetzt: Pro Firma einen Marker, aber InfoWindow enthält ALLE Firmen an dieser Position! 1251 fdata.forEach((f, idx) => { 1252 if (!f.gps) return; 1253 let [lat, lng] = f.gps.split(',').map(Number); 1254 if (!lat || !lng) return; 1255 let key = f.gps.trim(); 1256 let alleFirmen = coordMap[key]; // Array mit allen Firmen an diesen Koordinaten 1257 1258 // InfoWindow-Inhalt für diesen Standort (alle Firmen stapeln) 1259 let infoTitle = `${(f.anschrift ? f.anschrift.join(', ') : '')}`; 1260 let infoContent = ` 1261 <style> 1262 .gm-style-iw-chr { 1263 color: var(--third_color); 1264 font-size: 1em; 1265 font-weight: 400; 1266 } 1267 </style> 1268 <div class="card" style="border-color:var(--primary_color);" style="min-width:220px"> 1269 <div class="card-body py-3 px-3"> 1270 ${alleFirmen.map(({f}) => ` 1271 <div> 1272 <div class="font-weight-bold mb-1"> 1273 ${(f.firmierung ? f.firmierung.join('<br>') : '')} 1274 </div> 1275 ${f.telefon ? `<div class="mb-1"><i class="fas fa-phone mr-1" style="color:var(--third_color);"></i> <a href="tel:${f.telefon.replace(/[^0-9+]/g,'')}">${f.telefon}</a></div>` : ''} 1276 ${f.email ? `<div class="mb-1"><i class="fas fa-envelope mr-1" style="color:var(--third_color);"></i> <a href="mailto:${f.email}">${f.email}</a></div>` : ''} 1277 ${f.homepage ? `<div class="mb-1"><i class="fas fa-globe mr-1" style="color:var(--third_color);"></i> <a href="https://${f.homepage.replace(/^https?:\/\//,'')}" target="_blank" rel="noopener">${f.homepage.replace(/^https?:\/\//,'')}</a></div>` : ''} 1278 <div class="mb-1"><i class="fas fa-map-marker-alt mr-1" style="color:var(--third_color);"></i> <a href="https://www.google.com/maps/search/?api=1&query=${(encodeURI(`${f.strasse} ${f.hausnr}, ${f.plz} ${f.ort}`))}${(f.googleplace_id ? `&query_place_id=${f.googleplace_id}`: '')}" target="_blank" rel="noopener">in Google Maps ansehen</a></div> 1279 </div> 1280 `).join('<hr class="my-3" style="background-color:var(--primary_color);">')} 1281 </div> 1282 </div> 1283 `; 1284 1285 const markerColor = primary_color; 1286 const marker = new google.maps.marker.AdvancedMarkerElement({ 1287 position: { lat, lng }, 1288 map: map, 1289 title: (alleFirmen.length === 1) 1290 ? (alleFirmen[0].f.firmierung ? alleFirmen[0].f.firmierung.join(' ') : '') 1291 : `${alleFirmen.length} Firmen an diesem Standort`, 1292 content: createSVGMarkerElement(markerColor) 1293 }); 1294 marker.__dataIdx = idx; 1295 marker.__originalColor = markerColor; 1296 marker.__isHighlighted = false; 1297 1298 const infoWindow = new google.maps.InfoWindow({ 1299 ariaLabel: infoTitle, 1300 content: infoContent, 1301 headerContent: `ð ${infoTitle}` 1302 }); 1303 1304 marker.addListener('click', () => { 1305 markers.forEach(m => m.infoWindow.close()); 1306 infoWindow.open({ anchor: marker, map }); 1307 }); 1308 1309 markers.push({ marker, infoWindow, idx }); 1310 bounds.extend({ lat, lng }); 1311 }); 1312 1313 if (markers.length) { 1314 map.fitBounds(bounds); 1315 } 1316 1317 // MarkerCluster 1318 let MarkerClustererClass = null; 1319 if (window.MarkerClusterer) { 1320 MarkerClustererClass = window.MarkerClusterer; 1321 } else if (window.markerClusterer && window.markerClusterer.MarkerClusterer) { 1322 MarkerClustererClass = window.markerClusterer.MarkerClusterer; 1323 } 1324 if (MarkerClustererClass) { 1325 markerCluster = new MarkerClustererClass({ 1326 map: map, 1327 markers: markers.map(m => m.marker), 1328 renderer: { 1329 render: ({ count, position, markers }) => { 1330 // Cluster-SVG erzeugen 1331 const svgUrl = getClusterSVG(count, primary_color); 1332 1333 // Ein div für das SVG und das Label als HTML-Content 1334 const clusterContent = document.createElement('div'); 1335 clusterContent.style.position = 'relative'; 1336 clusterContent.style.display = 'flex'; 1337 clusterContent.style.alignItems = 'center'; 1338 clusterContent.style.justifyContent = 'center'; 1339 clusterContent.style.width = '40px'; 1340 clusterContent.style.height = '40px'; 1341 const latStr = typeof position.lat === "function" ? position.lat() : position.lat; 1342 const lngStr = typeof position.lng === "function" ? position.lng() : position.lng; 1343 const coordString = `${Number(latStr).toFixed(6)},${Number(lngStr).toFixed(6)}`; 1344 clusterContent.setAttribute('data-coords', coordString); 1345 const markerIdxList = markers.map(m => { 1346 return m.__dataIdx; 1347 }); 1348 clusterContent.setAttribute('data-marker-idxs', markerIdxList.join(',')); 1349 1350 // SVG-Bild 1351 const img = document.createElement('img'); 1352 img.src = svgUrl; 1353 img.style.width = '40px'; 1354 img.style.height = '40px'; 1355 img.style.position = 'absolute'; 1356 img.style.top = '0'; 1357 img.style.left = '0'; 1358 1359 // Label als Overlay 1360 const label = document.createElement('span'); 1361 label.textContent = String(count); 1362 label.style.position = 'absolute'; 1363 label.style.color = 'white'; 1364 label.style.fontSize = '14px'; 1365 label.style.left = '50%'; 1366 label.style.top = '50%'; 1367 label.style.transform = 'translate(-50%, -50%)'; 1368 label.style.pointerEvents = 'none'; 1369 1370 clusterContent.appendChild(img); 1371 clusterContent.appendChild(label); 1372 1373 return new google.maps.marker.AdvancedMarkerElement({ 1374 position, 1375 content: clusterContent, 1376 title: `${count} Firmen an diesem Standort`, 1377 zIndex: 10000 + count, 1378 }); 1379 }, 1380 }, 1381 }); 1382 } else { 1383 if (maxtry < 10) { 1384 maxtry++; 1385 setTimeout(() => initOrUpdateMap(fdata), 100); 1386 } 1387 return; 1388 } 1389 1390 // Sidebar-Kopplung 1391 jQuery('.map-location').off('click.gmaps'); 1392 jQuery('.map-location').each(function () { 1393 const el = jQuery(this); 1394 const idx = parseInt(el.attr('data-idx'), 10); 1395 1396 el.on('click.gmaps', function (e) { 1397 e.preventDefault(); 1398 const found = markers.find(m => m.idx === idx); 1399 if (found) {
1400 markers.forEach(m => m.infoWindow.close()); 1401 map.panTo(found.marker.position); 1402 map.setZoom(14); 1403 found.infoWindow.open({ anchor: found.marker, map }); 1404 // Animation (Springen) 1405 if (found.marker.element) { 1406 found.marker.element.classList.add('gmaps-marker-animate'); 1407 setTimeout(() => { 1408 found.marker.element.classList.remove('gmaps-marker-animate'); 1409 }, 700); 1410 } 1411 } 1412 }); 1413 }); 1414} 1415 1416// === CLUSTER- UND MARKERGRAFIK-HELPER === 1417function adjustColorLightness(hex, percent) { 1418 // hex â HSL â adjust lightness â back to hex 1419 const rgb = hex.replace('#', '').match(/.{1,2}/g).map(x => parseInt(x, 16)); 1420 let [r, g, b] = rgb.map(v => v / 255); 1421 1422 const max = Math.max(r, g, b), min = Math.min(r, g, b); 1423 let h, s, l = (max + min) / 2; 1424 1425 if (max === min) { 1426 h = s = 0; // achromatic 1427 } else { 1428 const d = max - min; 1429 s = l > 0.5 ? d / (2 - max - min) : d / (max + min); 1430 switch (max) { 1431 case r: h = (g - b) / d + (g < b ? 6 : 0); break; 1432 case g: h = (b - r) / d + 2; break; 1433 case b: h = (r - g) / d + 4; break; 1434 } 1435 h /= 6; 1436 } 1437 1438 // Lightness adjustment 1439 l = Math.min(1, Math.max(0, l + percent / 100)); 1440 1441 // Convert back to RGB 1442 function hslToRgb(h, s, l) { 1443 let r, g, b; 1444 if (s === 0) { 1445 r = g = b = l; // grey 1446 } else { 1447 const hue2rgb = (p, q, t) => { 1448 if (t < 0) t += 1; 1449 if (t > 1) t -= 1; 1450 if (t < 1/6) return p + (q - p) * 6 * t; 1451 if (t < 1/2) return q; 1452 if (t < 2/3) return p + (q - p) * (2/3 - t) * 6; 1453 return p; 1454 }; 1455 const q = l < 0.5 ? l * (1 + s) : l + s - l * s; 1456 const p = 2 * l - q; 1457 r = hue2rgb(p, q, h + 1/3); 1458 g = hue2rgb(p, q, h); 1459 b = hue2rgb(p, q, h - 1/3); 1460 } 1461 return '#' + [r, g, b].map(v => Math.round(v * 255).toString(16).padStart(2, '0')).join(''); 1462 } 1463 1464 return hslToRgb(h, s, l); 1465} 1466 1467function getClusterSVG(count, color = '#00857d') { 1468 let lightnessAdjustment = 0; 1469 1470 if (count <= 5) lightnessAdjustment = 0; 1471 else if (count >= 6 && count <= 10) lightnessAdjustment = -5; 1472 else if (count >= 11 && count <= 20) lightnessAdjustment = -10; 1473 else if (count >= 21 && count <= 50) lightnessAdjustment = -15; 1474 else if (count > 50) lightnessAdjustment = -20; 1475 1476 const fillColor = adjustColorLightness(color, lightnessAdjustment); 1477 1478 const svg = ` 1479 <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40"> 1480 <defs> 1481 <filter id="shadow" x="-50%" y="-50%" width="200%" height="200%"> 1482 <feDropShadow dx="0" dy="2" stdDeviation="2" flood-color="rgba(0,0,0,0.3)" /> 1483 </filter> 1484 </defs> 1485 <circle cx="20" cy="20" r="18" fill="${fillColor}" stroke="white" stroke-width="2" filter="url(#shadow)" /> 1486 <text x="20" y="25" text-anchor="middle" font-size="14" font-family="Arial, sans-serif" fill="white" font-weight="bold">${count}</text> 1487 </svg> 1488 `; 1489 1490 return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg); 1491} 1492 1493function createSVGMarkerElement(color = '#00857d', highlight = false) { 1494 const highlightColor = highlight ? '#F0823C' : color; 1495 const filterId = highlight ? 'shadow-highlight' : 'shadow'; 1496 const div = document.createElement('div'); 1497 div.innerHTML = ` 1498 <svg class="custom-marker-svg" width="32" height="48" viewBox="0 0 32 48" xmlns="http://www.w3.org/2000/svg"> 1499 <defs> 1500 <mask id="hole-mask"> 1501 <rect width="100%" height="100%" fill="white" /> 1502 <circle cx="16" cy="16" r="6" fill="black" /> 1503 </mask> 1504 <filter id="${filterId}" x="-50%" y="-50%" width="200%" height="200%"> 1505 <feDropShadow dx="0" dy="2" stdDeviation="2" flood-color="${highlight ? 'rgba(255,193,7,0.7)' : 'rgba(0,0,0,0.3)'}" /> 1506 </filter> 1507 </defs> 1508 <path 1509 d="M16 0C7.16 0 0 7.16 0 16c0 11.6 16 32 16 32s16-20.4 16-32C32 7.16 24.84 0 16 0z" 1510 fill="${highlightColor}" 1511 stroke="white" 1512 stroke-width="2" 1513 mask="url(#hole-mask)"
1514 filter="url(#${filterId})" 1515 /> 1516 </svg> 1517 `; 1518 return div; 1519} 1520 1521 1522// Marker-Helper 1523jQuery(document).on('click', '.show-on-map', function(e){ 1524 e.preventDefault(); 1525 let idx = jQuery(this).data('idx'); 1526 // Passenden Marker finden (idx Zuordnung muss stimmen!) 1527 if (markers[idx]) { 1528 map.panTo(markers[idx].marker.position); 1529 markers.forEach(m => m.infoWindow.close()); 1530 markers[idx].infoWindow.open({ anchor: markers[idx].marker, map }); 1531 // Optional: Map-Fokus für Accessibility 1532 jQuery('#map').attr('tabindex', '-1').focus(); 1533 } 1534}); 1535 1536// Animation für Marker 1537const style = document.createElement('style'); 1538style.innerHTML = ` 1539.gmaps-marker-animate { 1540 animation: gmaps-bounce 0.7s; 1541} 1542@keyframes gmaps-bounce { 1543 0% { transform: translateY(0); } 1544 15% { transform: translateY(-16px);} 1545 30% { transform: translateY(0);} 1546 45% { transform: translateY(-8px);} 1547 60% { transform: translateY(0);} 1548 100% { transform: translateY(0);} 1549} 1550.custom-marker-svg { 1551 transition: transform 0.3s ease; 1552} 1553.gmaps-marker-animate .custom-marker-svg { 1554 transform: scale(1.3); 1555}`; 1556document.head.appendChild(style); 1557 1558// ==== MAP AKTUALISIERUNG ==== 1559function tryLoadMap(fdata) { 1560 if (getConsent('borlabs-cookie').indexOf('maps') >= 0) { 1561 loadGoogleMapsScript(() => initOrUpdateMap(fdata)); 1562 } else { 1563 // 1. Klonen mit Events (Klonen nicht möglich wegen spezieller Events vom Team Borlabs-Affen) 1564 //var $cookiebox = $('footer .site-info a.borlabs-cookie-open-dialog-preferences').clone(true); 1565 1566 // 2. Placeholder im HTML 1567 jQuery('#map').html(` 1568 <div id="stsMapsEmpty" class="mx-3 alert alert-secondary d-flex flex-column justify-content-center align-items-left text-muted"> 1569 <p class="mb-0"> 1570 <b><i class="fas fa-map-marked-alt fa-2x mb-3 mr-1"></i> Keine Kartenanzeige möglich</b><br /> 1571 Sie haben in den Datenschutzeinstellungen der Verwendung von Google Maps widersprochen. 1572 Die Karte kann deshalb hier nicht angezeigt werden.<br /><br /> 1573 Um die Karte anzuzeigen, bitte<br /> 1574 1. <span id="cookie-link-placeholder">Datenschutzeinstellungen prüfen (Link unten im Footer)</span><br /> 1575 2. <a href="javascript:void(0);" onclick="window.location.reload();">die Seite neuladen</a> 1576 </p> 1577 </div> 1578 `); 1579 1580 // 3. Placeholder ersetzen 1581 //$('#cookie-link-placeholder').replaceWith($cookiebox); 1582 1583 $('.stsResultMapWrapper').css({'height':'300px','max-height':'inherit','min-height':'inherit'}); 1584 } 1585} 1586function zeigeMap(fdata = []) { 1587 tryLoadMap(fdata); 1588} 1589 1590function _showGeo(fdata) { 1591 jQuery('.stsMapWrapper').show(); 1592 jQuery('#map-side-bar').html( 1593 fdata.map(f => ` 1594 <div class="sidebar-firma mb-3 p-2 border-bottom"> 1595 <strong>${(f.firmierung ? f.firmierung.join('<br>') : '')}</strong><br> 1596 ${(f.anschrift ? f.anschrift.join(', ') : '')} 1597 ${f.telefon ? `<br><i class="fas fa-phone mr-1"></i> <a href="tel:${f.telefon.replace(/[^0-9+]/g,'')}">${f.telefon}</a>` : ''} 1598 ${f.email ? `<br><i class="fas fa-envelope mr-1"></i> <a href="mailto:${f.email}">${f.email}</a>` : ''} 1599 </div> 1600 `).join('') 1601 ); 1602 zeigeMap(fdata); 1603} 1604 1605function getCookie(name) { 1606 return document.cookie 1607 .split('; ') 1608 .find(row => row.startsWith(name + '=')) 1609 ?.split('=')[1] || ''; 1610} 1611 1612 1613// ==== AJAX: Suchvorgang inkl. Loading, Ergebnisse in Liste + Map ==== 1614async function snd(params = {}) { 1615 var obj = check(); 1616 if (!obj) return false; 1617 1618 // Hide Map/alte Ergebnisse 1619 jQuery('.stsMapWrapper').hide(); 1620 jQuery('#stsMapsEmpty').remove(); 1621 jQuery('#stsSubmit').attr('disabled','disabled'); 1622 jQuery('.stsResultCont').html(` 1623 <div id="stsLoadingMsg" class="alert alert-secondary d-flex align-items-center mb-4" role="status" aria-l
1623ive="polite"> 1624 <i class="fas fa-spinner fa-spin mr-2"></i> Suche wird ausgeführt, bitte warten... 1625 </div> 1626 <ul class="list-group m-0" id="stsErgebnisListe" role="list" aria-live="polite"> 1627 <!-- Suchergebnisse per JS --> 1628 </ul> 1629 `); 1630 1631 let out = { 1632 dl: obj.dl, 1633 sp: obj.sp, 1634 loc: obj.loc, 1635 idLoc: params.loc || '', 1636 d: 0, 1637 cond: (obj.dl == 'ra') ? 'ra' : '', 1638 site: 'etl.de' 1639 }; 1640 1641 try { 1642 const resp = await fetch(webservice, { 1643 method: 'POST', 1644 headers: { 1645 'Content-Type': 'application/json', 1646 'X-Requested-With': 'fetch', 1647 'X-ETL-CSRF': getCookie('etl_csrf') 1648 }, 1649 credentials: 'include', 1650 body: JSON.stringify(out) 1651 }); 1652 const rsp = await resp.json(); 1653 1654 $('#stsLoadingMsg').remove(); // Loading Hinweis ausblenden 1655 jQuery('#stsSubmit').removeAttr('disabled'); 1656 jQuery('.stsResultContWrapper, #map, .stsResultMapWrapper').removeClass('empty'); 1657 1658 if (!rsp) return; 1659 if (rsp.status == 201) { // Ortsliste 1660 locs = rsp.fdata; 1661 showInfo('Mehrere Orte zu Ihrer Suche gefunden, bitte einen auswählen:', 1662 rsp.fdata); 1663 } else if (rsp.status == 211 || rsp.status == 221) { // Firmenliste 1664 comps = rsp.comps; 1665 if(obj.dl==='wp'||obj.dl==='ger'||obj.dl==='ra'||obj.dl==='ub'||obj.dl==='fdl'){ 1666 noFilter=true; 1667 }else{ 1668 noFilter=false; 1669 } 1670 // neue HTML-Ausgabe: 1671 renderErgebnisseBarrierefrei(rsp.fdata || [], true); 1672 // Map wie gehabt: 1673 _showGeo(rsp.fdata); 1674 } else if (rsp.status == 420) { 1675 // Keine Ortsangabe 1676 } else if (rsp.status == 401) { 1677 showInfo('Keinen Ort zu Ihrer Suche gefunden', 1678 'Bitte überprüfen Sie die Schreibweise oder geben Sie eine Postleitzahl an.'); 1679 } else if (rsp.status == 411) { 1680 showInfo('Leider keine Kanzlei gefunden!', 1681 'Bitte wählen Sie ein anderes Beratungsangebot oder ändern Sie den Suchort.'); 1682 } 1683 } catch (ex) { 1684 $('#stsLoadingMsg').addClass('d-none'); 1685 console.error('Fetch error', ex); 1686 } 1687} 1688 1689// ==== FORMULAR- & SUCH-LOGIK ==== 1690jQuery(function($) { 1691 $(document).ready(function () { 1692 //$('body').append('<div class="modal" id="stsMod" tabindex="-1" aria-labelledby="stsModLable" aria-hidden="true"></div>'); 1693 //$('body').append('<div class="modal" id="stsComp" tabindex="-1" data-backdrop="false" aria-labelledby="stsModLable" aria-hidden="true"></div>'); 1694 1695 chngeFct = function() { 1696 $('.stsSpS').css('opacity', '0.5'); 1697 $('#stsSp option').hide(); 1698 $('#stsSp').val('all'); 1699 if($('#stsDL').children(":selected").val() == "stb") { 1700 $('.stsSpS').css('opacity', '1'); 1701 $('.spStb').show(); 1702 } 1703 } 1704 1705 $('#stsDL').change(function() { 1706 if (showAll.includes($(this).val())) { 1707 snd(); 1708 } else { 1709 chngeFct(); 1710 } 1711 }); 1712 1713 $('#stsSp').change(function () { 1714 if (showAll.includes($(this).val())){snd();} 1715 }); 1716 1717 $('#stsSubmit').click(function( event ) { 1718 snd(); 1719 }); 1720 1721 $('#stsLoc').on('keypress',function(e) { 1722 if(e.which == 13) { 1723 snd(); 1724 } 1725 }); 1726 1727 function startUp(dl, br, loc) { 1728 $('#stsDL').val(dl); 1729 if (dl=='stb') { 1730 $('.stsSpS').css('opacity', '1'); 1731 $('.spStb').show(); 1732 } 1733 if (br) $('#stsSp').val(br); 1734 $('#stsLoc').val(loc); 1735 snd(); 1736 } 1737 1738 chngeFct(); // clean startup when cached 1739 });
1740}); 1741 1742// ==== ERGEBNISSE ALS BARRIEREFREIE LISTE MIT ACCORDION ==== 1743// Hilfsfunktion: Erzeugt Berater-HTML mit Bild 1744function renderBeraterList(beraterArray, hausbildVorhanden) { 1745 if (!Array.isArray(beraterArray) || beraterArray.length === 0) return ''; 1746 let html = ` 1747 <p class="mb-2"><small style="color:var(--third_color);"><i class="fas fa-user mr-1"></i> Ansprechpartner vor Ort</small></p> 1748 <div class="row justify-content-left"> 1749 `; 1750 let idxOffset = hausbildVorhanden ? 1 : 0; 1751 beraterArray.forEach((b, bidx) => { 1752 let imgSrc = b.bild 1753 ? `https://services.etl.de/bilder/person/${b.bild}` 1754 : `https://services.etl.de/bilder/person/vcard-dummy.jpg`; 1755 1756 let altText = 1757 (b.berufsstandlang ? b.berufsstandlang.replace(/,/g, ' und ') + ' ' : '') + 1758 (b.titelakad ? b.titelakad + ' ' : '') + 1759 (b.vorname ? b.vorname + ' ' : '') + 1760 (b.name || ''); 1761 1762 let beraterBild = ''; 1763 if (b.bild) { 1764 beraterBild = ` 1765 <button type="button" class="stsbild-zoom btn p-0 border-0 bg-transparent mb-2" 1766 data-imgidx="${bidx + idxOffset}" 1767 aria-label="GroÃansicht Beraterfoto"> 1768 <img decoding="async" src="${imgSrc}" class="img-fluid polaroid" 1769 alt="${altText}" 1770 style="max-width:100%; display:block;cursor: zoom-in;" /> 1771 </button> 1772 `; 1773 } else { 1774 beraterBild = ` 1775 <img decoding="async" src="${imgSrc}" class="img-fluid polaroid mb-2" 1776 alt="${altText}" 1777 style="max-width:100%; display:block;opacity:0.6;" /> 1778 `; 1779 } 1780 // --- LL.M.-Handling aus qualilang -> an Name hängen --- 1781 let llm = ''; 1782 let qualiClean = (b.qualilang || '').trim(); 1783 1784 if (qualiClean) { 1785 // LL.M. oder LL.M. (...) erkennen 1786 const llmRegex = /LL\.M\.(?:\s*\([^)]*\))?/iu; 1787 const match = qualiClean.match(llmRegex); 1788 1789 if (match) { 1790 llm = match[0].trim(); 1791 1792 // LL.M. bzw. LL.M. (...) aus qualilang entfernen 1793 qualiClean = qualiClean.replace( 1794 /\s*,?\s*LL\.M\.(?:\s*\([^)]*\))?\s*,?\s*/iu, 1795 ' ' 1796 ); 1797 1798 // Leerzeichen und überflüssige Kommas bereinigen 1799 qualiClean = qualiClean 1800 .replace(/\s+/g, ' ') 1801 .replace(/^\s*,\s*|\s*,\s*$/g, '') 1802 .trim(); 1803 } 1804 } 1805 1806 let nameZeile = (b.titelakad || b.dr || b.vorname || b.name) ? ` 1807 <div style="padding:0 10px;"> 1808 ${b.titelakad ? b.titelakad + ' ' : ''} 1809 ${b.vorname ? b.vorname + ' ' : ''} 1810 ${b.name ? b.name : ''}${llm ? ', ' + llm : ''} 1811 </div> 1812 ` : ''; 1813 let berufsstand = b.berufsstandlang ? `<div class="mb-2 text-muted" style="padding:0 10px;"><small>${b.berufsstandlang.replace(/,/g, ' und ')}</small></div>` : ''; 1814 //let fachqualifikation = b.fachqualifikation ? `<div class="mb-2 text-muted" style="padding:0 10px;"><small>${b.fachqualifikation}</small></div>` : ''; 1815 let fachqualifikation = qualiClean ? `<div class="mb-2 text-muted" style="padding:0 10px;"><small>${qualiClean}</small></div>` : ''; 1816 1817let debugB = ''; 1818/*const escapeHtml = (s) => String(s) 1819 .replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">") 1820 .replace(/"/g,""").replace(/'/g,"'"); 1821let debugB = `<!-- <pre>${escapeHtml(JSON.stringify(b, null, 2))}</pre> -->`;*/ 1822 1823 html += ` 1824 <div class="col-12 col-md-6 col-lg-4 mb-4 text-left" style="hyphens: auto; -webkit-hyphens: auto; word-break: break-word;"> 1825 ${beraterBild} 1826 ${nameZeile} 1827 ${berufsstand} 1828 ${fachqualifikation} 1829 ${debugB} 1830 </div> 1831 `; 1832 });
1833 html += `</div>`; 1834 return html; 1835} 1836 1837function renderErgebnisseBarrierefrei(fdata, isNeueSuche = false, options = {}) { 1838 /*const INITIAL_COUNT = 5; 1839 const STEP_COUNT = 10; 1840 const forceShowAll = options.forceShowAll || false;*/ 1841 const forceShowAll = true; 1842 1843 // Setup initial states 1844 /*if (isNeueSuche) { 1845 _originalFdata = fdata.slice(); 1846 _filterActive = false; 1847 _sortOrder = "entfernung"; 1848 _currentFdata = fdata.slice(0, INITIAL_COUNT); 1849 _allLoaded = false; 1850 } else if (_currentFdata && _currentFdata.length && fdata === _originalFdata) { 1851 // Bleibe auf dem aktuellen Stand, auÃer bei neuer Suche 1852 } else { 1853 _currentFdata = fdata.slice(); 1854 }*/ 1855 1856 // DOM-Nodes 1857 const $list = document.getElementById('stsErgebnisListe'); 1858 $list.setAttribute('role', 'list'); 1859 $list.innerHTML = ''; 1860 1861 // Live-Region für Screenreader bereitstellen (einmalig) 1862 if (!document.getElementById('listStatus')) { 1863 let liveDiv = document.createElement('div'); 1864 liveDiv.id = 'listStatus'; 1865 liveDiv.setAttribute('aria-live', 'polite'); 1866 liveDiv.className = 'sr-only'; 1867 liveDiv.style.position = 'absolute'; 1868 liveDiv.style.left = '-9999px'; 1869 document.body.appendChild(liveDiv); 1870 } 1871 1872 // Kein Ergebnis 1873 if (!fdata.length) { 1874 $list.innerHTML = '<li class="list-group-item text-muted" role="listitem">Keine Standorte gefunden.</li>'; 1875 let oldAlert = document.getElementById('stsCountInfo'); 1876 if (oldAlert) oldAlert.remove(); 1877 document.getElementById('listStatus').textContent = "Keine Standorte gefunden."; 1878 return; 1879 } 1880 1881 /* 1882 // Entferne evtl. vorhandenen "Mehr anzeigen"-Button (immer VOR rendering!) 1883 let showMoreBtn = document.getElementById('showMoreStandorteBtn'); 1884 if (showMoreBtn) showMoreBtn.remove(); 1885 1886 // --- Chunk-Modus/Alle-anzeigen-Bestimmung --- 1887 // Soll Chunk-Modus aktiv sein? 1888 let chunkMode = !forceShowAll && !_filterActive && _sortOrder === "entfernung" && fdata.length > INITIAL_COUNT; 1889 let showCount = chunkMode ? INITIAL_COUNT : fdata.length; 1890 if (!alreadyScrolled && forceShowAll) { 1891 // Alle .stsResultContWrapper auf inherit setzen 1892 $('.stsResultContWrapper').css({'height':'inherit','max-height':'inherit','min-height':'inherit'}); 1893 alreadyScrolled = true; 1894 } 1895 */ 1896 let showCount = fdata.length; 1897 let chunkMode = false; 1898 $('.stsResultContWrapper').css({'height':'inherit','max-height':'inherit','min-height':'inherit'}); 1899 alreadyScrolled = true; 1900 1901 // Ergebnisse erzeugen 1902 let listHtmlArr = []; 1903 fdata.forEach((f, idx) => { 1904 let bilderArr = []; 1905 let addedSet = new Set(); 1906 if (f.hausbild) { 1907 bilderArr.push({ 1908 src: f.hausbild, 1909 alt: `Kanzleigebäude ${f.firma_1} in ${f.ort}` 1910 }); 1911 addedSet.add(f.hausbild); 1912 } 1913 if (Array.isArray(f.berater)) { 1914 f.berater.forEach(b => { 1915 let psrc = b.bild ? `https://services.etl.de/bilder/person/${b.bild}` : null; 1916 if (psrc && !addedSet.has(psrc)) { 1917 bilderArr.push({ 1918 src: psrc, 1919 alt: `${b.berufsstandlang ? b.berufsstandlang.replace(/,/g, ' und ') + ' ' : ''}${b.titelakad ? b.titelakad + ' ' : ''}${b.vorname} ${b.name}` 1920 }); 1921 addedSet.add(psrc); 1922 } 1923 }); 1924 } 1925 let panelId = `ergebnis-details-${idx}`; 1926 let headerId = `ergebnis-header-${idx}`; 1927 let hausbildButton = ''; 1928 let imgSrc = f.hausbild 1929 ? f.hausbild 1930 : 'https://services.etl.de/bilder/inst/vcard-dummy.jpg'; 1931 if (f.hausbild) { 1932 hausbildButton = ` 1933 <button type="button" class="stsbild-zoom btn p-0 border-0 bg-transparent mb-2" 1934 data-imgidx="0" 1935 aria-label="GroÃansicht Kanzleigebäude"> 1936 <img decoding="async" src="${imgSrc}" class="img-fluid polaroid" 1937 alt="Kanzleigebäude ${f.firma_1} in ${f.ort}" 1938 style="max-width:100%; display:block;cursor: zoom-in;" /> 1939 </button> 1940 `; 1941 } else { 1942 hausbildButton = ` 1943 <img decoding="async" src="${imgSrc}" class="img-fluid polaroid mb-2" 1944 alt="Kein Kanzleibild verfügbar" 1945 style="max-width:100%; display:block;opacity:0.6;" /> 1946 `; 1947 } 1948 listHtmlArr.push(` 1949 <li class="ergebnis-item list-group-item p-0 border-0 stsResultAccordion mb-4" 1950 role="listitem" data-bilder='${JSON.stringify(bilderArr)}' 1951 style="${idx >= showCount ? 'display:none;opacity:0;transition:opacity 0.5s;' : ''}" 1952 data-idx="${idx}"> 1953 <div class="card mb-0"> 1954 <div class="card-header p-0" id="${headerId}"> 1955 <h2 class="m-0"> 1956 <button class="btn btn-link w-100 text-left d-flex justify-content-between align-items-center p-3 accordion-toggle" 1957 type="button" 1958 aria-expanded="false" 1959 aria-controls="${panelId}" 1960 aria-label="Details zu ${f.firma_1} in ${f.ort} anzeigen" 1961 id="btn-${panelId}">
1962 <span> 1963 <small class="text-muted">${(f.entfernung ? `Entfernung: ${f.entfernung} km · ` : '')}${f.plz} ${f.ort}</small><br /> 1964 <span style="color:var(--primary_color);">${f.firma_1}</span><br /> 1965 <span class="font-weight-normal"> 1966 ${(f.firma_2 ? f.firma_2 + '<br />': '')} 1967 ${(f.firma_3 ? f.firma_3 + '<br />': '')} 1968 </span> 1969 </span> 1970 <span class="stsCloseBtn">▾</span> 1971 </button> 1972 </h2> 1973 </div> 1974 <div id="${panelId}" class="accordion-panel" aria-labelledby="${headerId}" role="region" hidden> 1975 <div class="card-body"> 1976 <div class="row"> 1977 <div class="col-12 col-lg-8 col-md-9 mb-sm-3 mb-xs-3"> 1978 <p class="mb-2"><small style="color:var(--third_color);"><i class="fas fa-map-marker-alt mr-1"></i> Anschrift</small><br /> ${(f.anschrift ? f.anschrift.join(', ') : '')}</p> 1979 ${f.telefon ? `<p class="mb-2"><small style="color:var(--third_color);"><i class="fas fa-phone mr-1"></i> Telefon</small><br /><a href="tel:${f.telefon.replace(/[^0-9+]/g,'')}">${f.telefon}</a></p>` : ''} 1980 ${f.email ? `<p class="mb-2"><small style="color:var(--third_color);"><i class="fas fa-envelope mr-1"></i> E-Mail</small><br /><a href="mailto:${f.email}">${f.email}</a></p>` : ''} 1981 ${f.homepage ? `<p class="mb-2"><small style="color:var(--third_color);"><i class="fas fa-globe mr-1"></i> Web</small><br /><a href="https://${f.homepage.replace(/^https?:\/\//,'')}" target="_blank" rel="noopener">${f.homepage.replace(/^https?:\/\//,'')}</a></p>` : ''} 1982 ${f.qk==-1 ? `<p class="mb-2"><small style="color:var(--third_color);"><i class="fas fa-star mr-1"></i> Besonderheiten</small><br /><img decoding="async" src="${srcImgQualitaetskanzlei}" alt="ETL Qualitätskanzlei" height="20" /></p>` : ''} 1983 </div> 1984 <div class="col-12 col-lg-4 col-md-3 mb-sm-3"> 1985 ${hausbildButton} 1986 </div> 1987 </div> 1988 ${renderBeraterList(f.berater, !!f.hausbild)} 1989 </div> 1990 <div class="card-footer"> 1991 <button class="btn btn-teal-outline btn-sm show-on-map" data-idx="${idx}" aria-label="Auf Karte zeigen"> 1992 <i class="fas fa-map-marker-alt"></i> Auf Karte zeigen 1993 </button> 1994 <a class="ml-3 btn btn-teal-outline btn-sm" data-idx="${idx}" aria-label="Erweiterte Visitenkarte" href="${createVcfHtml(f.etlnr,2)}" target="_blank" rel="noopener"> 1995 <i class="fas fa-address-card"></i> Erweiterte Visitenkarte 1996 </a> 1997 </div> 1998 </div> 1999 </div> 2000 </li> 2001 `); 2002 }); 2003 $list.innerHTML = listHtmlArr.join(''); 2004 2005 // === "Mehr anzeigen"-Button dynamisch === 2006 if (chunkMode) { 2007 let showMoreBtn = document.createElement('button'); 2008 showMoreBtn.type = 'button'; 2009 showMoreBtn.className = 'btn btn-outline-secondary btn-block my-3'; 2010 showMoreBtn.id = 'showMoreStandorteBtn'; 2011 2012 function updateShowMoreText() { 2013 let hidden = $list.querySelectorAll('li.ergebnis-item[style*="display:none"]'); 2014 let toShow = Math.min(STEP_COUNT, hidden.length); 2015 showMoreBtn.textContent = toShow + ' weitere Standorte anzeigen'; 2016 } 2017 updateShowMoreText(); 2018 $list.parentNode.insertBefore(showMoreBtn, $list.nextSibling); 2019 2020 showMoreBtn.addEventListener('click', handleShowMoreBtn); 2021 showMoreBtn.addEventListener('keydown', function(e) { 2022 if (e.key === "Enter" || e.key === " ") { 2023 e.preventDefault(); 2024 handleShowMoreBtn(e); 2025 } 2026 }); 2027 2028 function handleShowMoreBtn(e) { 2029 if (!alreadyScrolled) { 2030 // Alle .stsResultContWrapper auf inherit setzen 2031 $('.stsResultContWrapper').css({'height':'inherit','max-height':'inherit','min-height':'inherit'}); 2032 alreadyScrolled = true; 2033 } 2034 2035 let hidden = Array.from($list.querySelectorAll('li.ergebnis-item[style*="display:none"]')); 2036 let toShow = Math.min(STEP_COUNT, hidden.length); 2037 2038 let firstNewIdx = null; 2039 for (let i = 0; i < toShow; i++) { 2040 let li = hidden[i];
2041 if (!li) continue; 2042 if (firstNewIdx === null) firstNewIdx = parseInt(li.getAttribute('data-idx')); 2043 li.style.display = ''; 2044 setTimeout(() => { li.style.opacity = '1'; }, 30); 2045 } 2046 let hiddenAfter = $list.querySelectorAll('li.ergebnis-item[style*="display:none"]'); 2047 if (hiddenAfter.length === 0) { 2048 showMoreBtn.remove(); 2049 } else { 2050 updateShowMoreText(); 2051 } 2052 if (typeof toShow !== 'undefined' && toShow > 0) { 2053 let listStatus = document.getElementById('listStatus'); 2054 if(listStatus) { 2055 listStatus.textContent = `${toShow} weitere Standorte angezeigt.`; 2056 } 2057 } 2058 if (firstNewIdx !== null) { 2059 let targetLi = $list.querySelector('li.ergebnis-item[data-idx="'+firstNewIdx+'"]'); 2060 if (targetLi) { 2061 if (typeof targetLi.scrollIntoView === "function") { 2062 targetLi.scrollIntoView({behavior: "smooth", block: "start"}); 2063 } else { 2064 $('html,body').animate({ 2065 scrollTop: $(targetLi).offset().top 2066 }, 1000); 2067 } 2068 setTimeout(() => { 2069 let panelToggleBtn = targetLi.querySelector('button.accordion-toggle'); 2070 if(panelToggleBtn && panelToggleBtn.offsetParent !== null) { 2071 panelToggleBtn.focus(); 2072 } 2073 }, 350); 2074 } 2075 } 2076 } 2077 } 2078 2079 // === Alert mit Controls === 2080 let filterControls = ''; 2081 if (fdata.length > 5) { 2082 // Sort dropdown 2083 filterControls += ` 2084 <select class="custom-select custom-select-sm mr-2 btn btn-sm btn-outline-secondary" id="sortResults" title="Ergebnisse sortieren"> 2085 <option value="entfernung" ${_sortOrder === "entfernung" ? "selected" : ""}>Sortieren: Entfernung</option> 2086 <option value="alphabetisch" ${_sortOrder === "alphabetisch" ? "selected" : ""}>Alphabetisch</option> 2087 </select> 2088 `; 2089 // Filter button 2090 const filterBtnHidden = noFilter === true ? ' style="display:none;"' : ''; 2091 filterControls += ` 2092 <button class="btn btn-sm mr-2${_filterActive ? " btn-warning active" : " btn-outline-secondary"}" 2093 id="filterQuali" 2094 type="button" 2095 aria-pressed="${_filterActive}" 2096 title="${_filterActive ? "Filter deaktivieren (alle Standorte anzeigen)" : "Nur ETL-Qualitätskanzleien anzeigen"}" 2097 ${filterBtnHidden}> 2098 <i class="${_filterActive ? "fas" : "far"} fa-star"></i> ${_filterActive ? "Nur Qualitätskanzleien" : "Qualitätskanzlei-Filter"} 2099 </button> 2100 `; 2101 filterControls += ` 2102 <button class="btn btn-outline-secondary btn-sm" id="refreshList" type="button" aria-label="Liste zurücksetzen" title="Liste zurücksetzen"> 2103 <i class="fas fa-sync-alt"></i> 2104 </button> 2105 `; 2106 } 2107 let stsCountInfo = ` 2108 <div id="stsCountInfo" 2109 class="alert alert-secondary d-flex flex-wrap align-items-center justify-content-between mb-4" 2110 role="status" aria-live="polite" style="position:sticky;top:0;z-index:10;"> 2111 <div class="d-flex align-items-center mb-2 mb-sm-0"> 2112 <i class="fas fa-search-location mr-2"></i> 2113 <strong>${fdata.length} Standorte gefunden</strong> 2114 </div> 2115 <div class="d-flex align-items-center"> 2116 ${filterControls} 2117 </div> 2118 </div> 2119 `; 2120 let oldAlert = document.getElementById('stsCountInfo'); 2121 if (oldAlert) oldAlert.remove(); 2122 $list.insertAdjacentHTML('beforebegin', stsCountInfo); 2123 2124 // Lightbox-HTML (nur einmal anhängen!) 2125 if (!document.getElementById('stsLightbox')) { 2126 document.body.insertAdjacentHTML('beforeend', ` 2127 <div id="stsLightbox" style="display:none; position:fixed; inset:0; background:rgba(0,0,0,0.38); z-index:20000; align-items:center; justify-content:center;"> 2128 <div id="stsLightboxInner" 2129 style="background:#fff; padding:0; border-radius:12px; position:relative; box-shadow:0 3px 18px #0007; max-width:94vw; width:auto; display:flex; flex-direction:column; align-items:center;"> 2130 <button type="button" id="stsLightboxPrev" aria-label="Vorheriges Bild" 2131 style="position:absolute; left:8px; top:50%; transform:translateY(-50%); font-size:2.1rem; color:#222; background:rgba(255,255,255,0.75); border:none; border-radius:50%; width:36px; height:36px; display:flex; align-items:center; justify-content:center; cursor:pointer;z-index:2;padding:0;">â¹</button> 2132 <button type="button" id="stsLightboxNext" aria-label="Nächstes Bild" 2133 style="position:absolute; right:8px; top:50%; transform:translateY(-50%); font-size:2.1rem; color:#222; background:rgba(255,255,255,0.75); border:none; border-radius:50%; width:36px; height:36px; display:flex; align-items:center; justify-content:center; cursor:pointer;z-index:2;padding:0;">âº</button> 2134 <button type="button" id="stsLightboxClose" aria-label="SchlieÃen" 2135 style="position:absolute; top:10px; right:10px; font-size:2rem; color:#222; background:rgba(255,255,255,0.8); border:none; border-radius:50%; width:38px; height:38px; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:2;padding:0;"> 2136 × 2137 </button> 2138 <img decoding="async" id="stsLightboxImg" src="" alt="" style="display:block; max-width:400px; max-height:75vh; width:100%; border-radius:12px 12px 0 0;"> 2139 <div id="stsLightboxDesc" 2140 style="color:#444; font-size:.98rem; margin:0; padding:10px 12px 12px; text-align:center; background:#f9f9f9; width:100%; max-width:400px; word-break:break-word; box-sizing:border-box;border-bottom-left-radius:12px;border-bottom-right-radius:12px; "> 2141 </div> 2142 </div> 2143 </div> 2144 `); 2145 } 2146 2147 setAccordion(); 2148 2149 // === Events für Sortieren, Filtern, Refresh === 2150 if (fdata.length > 5) { 2151 $('#sortResults').off('change').on('change', function(e) { 2152 _sortOrder = this.value; 2153 let sorted = fdata.slice(); 2154 if (_sortOrder === "entfernung") { 2155 sorted.sort((a, b) => (parseFloat(a.entfernung || 9999) - parseFloat(b.entfernung || 9999))); 2156 } else if (_sortOrder === "alphabetisch") { 2157 sorted.sort((a, b) => (a.firma_1||'').localeCompare(b.firma_1||'')); 2158 } 2159 // Immer ALLE anzeigen nach Sortierung! 2160 renderErgebnisseBarrierefrei(sorted, false, { forceShowAll: true });
2161 }); 2162 $('#filterQuali').off('click').on('click', function(e) { 2163 _filterActive = !(_filterActive); 2164 let filtered = fdata; 2165 if (_filterActive) { 2166 filtered = fdata.filter(f => f.qk == -1); 2167 } 2168 // Immer ALLE anzeigen nach Filterung! 2169 renderErgebnisseBarrierefrei(filtered, false, { forceShowAll: true }); 2170 }); 2171 $('#refreshList').off('click').on('click', function(e) { 2172 _filterActive = false; 2173 _sortOrder = "entfernung"; 2174 // === LOGIK: Soll Chunk-Modus zurückkommen? === 2175 // Prüfe: Wurden ALLE Standorte bereits gezeigt? (fdata == _originalFdata und alles sichtbar) 2176 const allesSchonDa = (fdata.length >= _originalFdata.length); 2177 if (allesSchonDa) { 2178 renderErgebnisseBarrierefrei(_originalFdata.slice(), false, { forceShowAll: true }); 2179 } else { 2180 renderErgebnisseBarrierefrei(_originalFdata.slice(), true); // Chunk-Modus aktiv 2181 } 2182 }); 2183 } 2184 2185 bindMapMarkerInteractions(); 2186} 2187 2188function setAccordion() { 2189 var $accList = $('#stsErgebnisListe'); 2190 2191 // Vor dem Binden: alle alten Handler entfernen! 2192 $accList.off('click', '.accordion-toggle'); 2193 $accList.off('keydown', '.accordion-toggle'); 2194 2195 $accList.find('.accordion-panel').each(function(){ 2196 $(this).hide().removeAttr('hidden'); 2197 }); 2198 2199 // Klick-Handler für Toggle-Button 2200 $accList.on('click', '.accordion-toggle', function(e) { 2201 var $btn = $(this); 2202 var panelId = $btn.attr('aria-controls'); 2203 var $panel = $('#' + panelId); 2204 var expanded = $btn.attr('aria-expanded') === 'true'; 2205 2206 // Nur ein Panel gleichzeitig offen: andere schlieÃen 2207 /*$accList.find('.accordion-toggle[aria-expanded="true"]').not($btn).each(function() { 2208 var $otherBtn = $(this); 2209 $otherBtn.attr('aria-expanded', 'false'); 2210 var otherPanelId = $otherBtn.attr('aria-controls'); 2211 $('#' + otherPanelId).slideUp(220).attr('aria-hidden', 'true'); 2212 });*/ 2213 /* stattdessen beim Ãffnen eines Panels die Höhe nach unten öffnen und Map sticky machen */ 2214 // Nur beim ersten Klick ausführen 2215 if (!alreadyScrolled) { 2216 // Alle .stsResultContWrapper auf inherit setzen 2217 $('.stsResultContWrapper').css({'height':'inherit','max-height':'inherit','min-height':'inherit'}); 2218 alreadyScrolled = true; 2219 } 2220 2221 // Eigenes Panel toggeln 2222 if (!expanded) { 2223 $btn.attr('aria-expanded', 'true'); 2224 $panel.slideDown(220, function() { 2225 $panel.trigger('shown.panelMap'); 2226 }).attr('aria-hidden', 'false'); 2227 $('html, body').animate({ 2228 scrollTop: $('#' + panelId.replace('details','header')).offset().top -100 2229 }, 600); 2230 } else { 2231 $btn.attr('aria-expanded', 'false'); 2232 $panel.slideUp(220).attr('aria-hidden', 'true'); 2233 } 2234 }); 2235 2236 // Keyboard Support (Enter/Space wie Klick) 2237 $accList.on('keydown', '.accordion-toggle', function(e) { 2238 if (e.key === "Enter" || e.key === " ") { 2239 e.preventDefault(); 2240 $(this).click(); 2241 } 2242 }); 2243} 2244 2245 2246// ==== LIGHTBOX LOGIK ==== 2247 2248// Globale Variablen für aktuelle Galerie 2249let currentBilderArr = []; 2250let currentImgIdx = 0; 2251 2252// Ãffnen 2253$(document).on('click', '.stsbild-zoom', function() { 2254 let $li = $(this).closest('li[data-bilder]'); 2255 currentBilderArr = JSON.parse($li.attr('data-bilder') || '[]'); 2256 currentImgIdx = Number($(this).data('imgidx')) || 0; 2257 2258 showStsLightboxImage(currentImgIdx); 2259 $('#stsLightbox').css('display', 'flex').hide().fadeIn(120); 2260 $('body').addClass('modal-open'); 2261}); 2262 2263// Bild anzeigen in Lightbox 2264function showStsLightboxImage(idx) { 2265 if (!currentBilderArr.length) return; 2266 // Loop (links/rechts) 2267 currentImgIdx = (idx + currentBilderArr.length) % currentBilderArr.length; 2268 let bild = currentBilderArr[currentImgIdx]; 2269 $('#stsLightboxImg').attr('src', bild.src).attr('alt', bild.alt); 2270 $('#stsLightboxDesc').text(bild.alt); 2271} 2272 2273// Blättern per Button 2274$(document).on('click', '#stsLightboxPrev', function(e) { 2275 e.stopPropagation(); 2276 showStsLightboxImage(currentImgIdx - 1); 2277}); 2278$(document).on('click', '#stsLightboxNext', function(e) { 2279 e.stopPropagation(); 2280 showStsLightboxImage(currentImgIdx + 1); 2281}); 2282 2283// Blättern mit Pfeiltasten und ESC 2284$(document).on('keydown', function(e) { 2285 if ($('#stsLightbox').is(':visible')) { 2286 if (e.key === "ArrowLeft") { 2287 showStsLightboxImage(currentImgIdx - 1); 2288 } 2289 if (e.key === "ArrowRight") { 2290 showStsLightboxImage(currentImgIdx + 1); 2291 } 2292 if (e.key === "Escape") { 2293 closeStsLightbox(); 2294 } 2295 } 2296}); 2297 2298// SchlieÃen: Button oder Klick auÃerhalb des weiÃen Containers 2299$(document).on('click', '#stsLightboxClose', closeStsLightbox); 2300$(document).on('click', '#stsLightbox', function(e) { 2301 if (e.target === this) { 2302 closeStsLightbox(); 2303 } 2304}); 2305 2306function closeStsLightbox() { 2307 $('#stsLightbox').fadeOut(120, function() { 2308 $('#stsLightboxImg').attr('src', '').attr('alt', ''); 2309 $('#stsLightboxDesc').text(''); 2310 });
2311 $('body').removeClass('modal-open'); 2312} 2313 2314// ==== TOUCH/SWIPE (Mobil) ==== 2315// Touch-Variablen 2316let touchStartX = null; 2317let touchStartY = null; 2318 2319$('#stsLightbox').on('touchstart', function(e) { 2320 const t = e.originalEvent.touches[0]; 2321 touchStartX = t.clientX; 2322 touchStartY = t.clientY; 2323}); 2324 2325$('#stsLightbox').on('touchmove', function(e) { 2326 // Default preventen, damit kein Scrollen/Zoomen auf Lightbox möglich 2327 if (touchStartX !== null) e.preventDefault(); 2328}); 2329 2330$('#stsLightbox').on('touchend', function(e) { 2331 if (touchStartX === null) return; 2332 const t = e.originalEvent.changedTouches[0]; 2333 let dx = t.clientX - touchStartX; 2334 let dy = t.clientY - touchStartY; 2335 // Nur horizontale Swipes erkennen 2336 if (Math.abs(dx) > 40 && Math.abs(dx) > Math.abs(dy)) { 2337 if (dx > 0) { 2338 showStsLightboxImage(currentImgIdx - 1); // swipe rechts: zurück 2339 } else { 2340 showStsLightboxImage(currentImgIdx + 1); // swipe links: vor 2341 } 2342 } 2343 touchStartX = null; 2344 touchStartY = null; 2345}); 2346 2347// === MARKER & PANEL INTERAKTION === 2348function findClusterElementForMarkerIdx(idx) { 2349 const markerPos = markers[idx].marker.position; 2350 const clusters = document.querySelectorAll('.gm-style > div > div > div'); 2351 for (let el of clusters) { 2352 if (el.title && el.title.indexOf('Firmen an diesem Standort') > -1) { 2353 return el; 2354 } 2355 } 2356 return null; 2357} 2358function highlightClusterByMarkerIdx(idx, highlight = true) { 2359 const clusters = document.querySelectorAll('[data-marker-idxs]'); 2360 clusters.forEach(el => { 2361 const idxList = el.getAttribute('data-marker-idxs').split(',').map(Number); 2362 if (idxList.includes(idx)) { 2363 if (highlight) el.classList.add('gmaps-cluster-highlight'); 2364 else el.classList.remove('gmaps-cluster-highlight'); 2365 } else { 2366 if (!highlight) el.classList.remove('gmaps-cluster-highlight'); 2367 } 2368 }); 2369} 2370function setMarkerHighlight(marker, highlight) { 2371 if (!marker) return; 2372 // Verhindere mehrfachen Austausch 2373 if (highlight && marker.__isHighlighted) return; 2374 if (!highlight && !marker.__isHighlighted) return; 2375 2376 // Neue Farbe für Highlight (z.â¯B. Gelb) 2377 const highlightColor = third_color; 2378 const color = highlight ? highlightColor : marker.__originalColor; 2379 2380 // Erzeuge neues SVG 2381 const newDiv = createSVGMarkerElement(color); 2382 // Ersetze das aktuelle SVG im DOM 2383 marker.content.innerHTML = newDiv.innerHTML; 2384 2385 marker.__isHighlighted = highlight; 2386} 2387function bindMapMarkerInteractions() { 2388 // A) HOVER-ANIMATION (über die Listenzeile) 2389 $('#stsErgebnisListe').off('mouseenter.markerHover mouseleave.markerHover', 'li.ergebnis-item'); 2390 $('#stsErgebnisListe').on('mouseenter.markerHover', 'li.ergebnis-item', function() { 2391 const idx = parseInt($(this).attr('data-idx'), 10); 2392 const found = markers.find(m => m.idx === idx); 2393 2394 if (found && found.marker.element && found.marker.element.offsetParent !== null) { 2395 //found.marker.element.classList.add('gmaps-marker-highlight'); 2396 setMarkerHighlight(found.marker, true); 2397 } else { 2398 highlightClusterByMarkerIdx(idx, true); 2399 } 2400 }); 2401 $('#stsErgebnisListe').on('mouseleave.markerHover', 'li.ergebnis-item', function() { 2402 const idx = parseInt($(this).attr('data-idx'), 10); 2403 const found = markers.find(m => m.idx === idx); 2404 2405 if (found && found.marker.element) { 2406 //found.marker.element.classList.remove('gmaps-marker-highlight'); 2407 setMarkerHighlight(found.marker, false); 2408 } 2409 // Alle Cluster-Highlights zurücksetzen: 2410 document.querySelectorAll('.gmaps-cluster-highlight').forEach(el => el.classList.remove('gmaps-cluster-highlight')); 2411 }); 2412 2413 // B) PANEL-ÃFFNEN-ZENTRIERUNG 2414 // Reagiere auf Ãffnen eines Panels (slideDown beendet) 2415 $('#stsErgebnisListe').off('shown.panelMap'); 2416 $('#stsErgebnisListe').on('shown.panelMap', '.accordion-panel', function() { 2417 const $panel = $(this); 2418 const idx = parseInt($panel.closest('li.ergebnis-item').attr('data-idx'), 10); 2419 const found = markers.find(m => m.idx === idx); 2420 if (found && found.marker.position) { 2421 map.panTo(found.marker.position); 2422 map.setZoom(Math.max(map.getZoom(), 15)); 2423 } 2424 });
2425} 2426 2427// === WEITERE HELPER === 2428function verschussel_srv(id) { 2429 let num = id + 31853; 2430 let octStr = num.toString(8); 2431 let base64 = btoa(octStr); 2432 base64 = base64.replace(/=/g, ''); 2433 let rot13 = base64.replace(/[A-Za-z]/g, function(c) { 2434 return String.fromCharCode( 2435 (c <= "Z" ? 90 : 122) >= 2436 (c = c.charCodeAt(0) + 13) ? c : c - 26 2437 ); 2438 }); 2439 return rot13; 2440} 2441function createVcfHtml(f,type) { 2442 let vcf = ''; 2443 let vcardcode = verschussel_srv(f); 2444 let vcardUrl = 'https://services.etl.de/vcard.php?vcf=AmLkAGH,' + vcardcode + '&l=de'; 2445 let vcarddata = encodeURIComponent(vcardUrl); 2446 let vcardQR = 'https://services.etl.de/services/standards/qr/index.php?data=' + vcarddata; 2447 2448 if(type===1){return vcardQR;} 2449 if(type===2){return vcardUrl;} 2450 return ''; 2451} 2452function check() 2453{ 2454 var ok = true; 2455 var out = {}; 2456 if (jQuery('#stsDL').children(":selected").val()) out.dl = jQuery('#stsDL').children(":selected").val(); 2457 else ok = false; 2458 if (jQuery('#stsSp').children(":selected").val()) out.sp = jQuery('#stsSp').children(":selected").val(); 2459 if (jQuery('#stsLoc').val()) out.loc = jQuery('#stsLoc').val(); 2460 if (!out.loc){ 2461 if (!showAll.includes(out.dl)) { 2462 if (!showAll.includes(out.sp)) { 2463 showInfo('Bitte einen Ort angeben', ''); 2464 ok = false; 2465 } 2466 } 2467 } 2468 if (ok) return out; 2469 return false; 2470} 2471 2472function modalHide(){ 2473 jQuery('#stsMod').modal('hide'); 2474 jQuery('#stsComp').modal('hide'); 2475} 2476function loadMore() { 2477 if($("#cl_div tbody tr").length > maxAnz) { 2478 $("#cl_div tbody tr:gt("+maxAnz+")").addClass('hidden'); 2479 $('.stsComps').append('<div class="btn-teal-primary loadMoreRes">Weitere Ergebnisse</div>') 2480 } 2481} 2482 2483$(document).on('click', ".loadMoreRes", function () { 2484 $("#cl_div tbody .hidden").each(function(i) { 2485 $(this).removeClass('hidden'); 2486 $(this).slideDown(); 2487 $('.loadMoreRes').hide(); 2488 }) 2489}); 2490 2491function sndLoc(idx) { 2492 if (!locs || !locs[idx]) return; 2493 jQuery('#stsLoc').val(locs[idx].loc); 2494 const targetTop = jQuery('.stsQueryHeader').offset()?.top ?? 0; 2495 // optional: stop(true) verhindert Stapeln mehrerer Scroll-Animationen 2496 jQuery('html, body') 2497 .stop(true) 2498 .animate({ scrollTop: targetTop - 100 }, 600) 2499 .promise() 2500 .done(function () { 2501 snd({ loc: idx }); 2502 }); 2503} 2504function showComp(idx) { 2505 jQuery('#stsComp').modal('hide'); 2506 if (comps[idx]) { 2507 jQuery('#stsComp').html(comps[idx]).modal('show'); 2508 } 2509} 2510 2511function showInfo(hd, txt) { 2512 const escapeHtml = (s) => 2513 String(s) 2514 .replace(/&/g, "&") 2515 .replace(/</g, "<") 2516 .replace(/>/g, ">") 2517 .replace(/"/g, """) 2518 .replace(/'/g, "'"); 2519 2520 let txtType = 0; 2521 let info = ""; 2522 2523 // Typ bestimmen (+ ggf. JSON parsen) 2524 if (typeof txt === "string") { 2525 try { 2526 const parsed = JSON.parse(txt); 2527 if (parsed && typeof parsed === "object") { 2528 txtType = 2; 2529 txt = parsed; 2530 } else { 2531 txtType = 1; 2532 } 2533 } catch { txtType = 1; } 2534 } else if (txt && typeof txt === "object") { 2535 txtType = 2; 2536 } else { 2537 txtType = 0; 2538 } 2539 2540 if (!hd) hd = "Unbekannter Fehler"; 2541 2542 if (txtType === 0 || txtType === 1) { 2543 info = ` 2544 <div id="stsErgebnisEmpty" class="alert alert-secondary text-center pt-4 d-flex flex-column justify-content-center align-items-center"> 2545 <i class="fas fa-search-location fa-2x mb-3"></i> 2546 <p class="mb-2 font-weight-bold">${escapeHtml(hd)}</p> 2547 <small>${escapeHtml(txt ?? "")}</small> 2548 </div> 2549 `; 2550 } else if (txtType === 2) { 2551 info = ` 2552 <div class="card"> 2553 <div class="card-body"> 2554 <p class="mb-3 h6">${escapeHtml(hd)}</p> 2555 ${buildLocationsList(txt)} 2556 </div> 2557 </div> 2558 `; 2559 } 2560 2561 const returnHTML = ` 2562 ${info} 2563 <style> 2564 .loc-list { list-style: none; padding: 0; margin: 0; } 2565 .loc-item { 2566 display: flex; align-items: center; justify-content: space-between; 2567 border: 1px solid #e6e6e6; border-radius: .2rem; background:#fff; 2568 margin-bottom: .4rem; padding: 0.8rem 1.0rem; 2569 } 2570 .loc-compact { font-size: 1.0rem; } 2571 .loc-main { display:flex; align-items:center; gap:.5rem; min-width: 0; } 2572 .loc-plz { 2573 display:inline-block; font-variant-numeric: tabular-nums; 2574 /*padding:.05rem .35rem;*/ border-radius:.35rem; /*background: #f1f3f5;*/ 2575 } 2576 .loc-ort { font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } 2577 .loc-action { margin-left:.5rem; } 2578 .loc-btn { text-align: center; background: var(--primary_color); color: #FFF; padding: 5px 20px; } 2579 .loc-btn:hover,.loc-btn:focus { background: var(--primary_light_color); } 2580 ul.loc-list { padding-left: 0 !important; text-indent: 0 !important; } 2581 ul.loc-list li::before { content: none !important; } 2582 .stsResultCont .card { background-color: #f1f1f1; } 2583 .stsResultContWrapper { height: inherit !important; max-height: inherit !important; min-height: inherit !important; } 2584 </style> 2585 `; 2586 2587 jQuery('.stsResultCont').html(returnHTML); 2588 2589 // --------- Helpers --------- 2590 2591 // Baut ARIA-freundliche Liste der Orte ("plz" + "loc") mit Aktionen sndLoc(key) 2592 function buildLocationsList(dataObj) { 2593 const rows = Object.entries(dataObj) 2594 .map(([key, v]) => ({ key, loc: v?.loc ?? "", plz: v?.plz ?? v?.plzgrp ?? "" })) 2595 .filter(r => r.loc || r.plz) 2596 .sort((a, b) => a.loc.localeCompare(b.loc, 'de') || a.plz.localeCompare(b.plz, 'de')); 2597 2598 if (!rows.length) return `<div class="text-muted">Keine Orte gefunden.</div>`; 2599 2600 const items = rows.map(r => { 2601 const label = `${r.plz} ${r.loc}`.trim(); 2602 const aria = `Ort auswählen: ${escapeHtml(label)} (ID ${escapeHtml(r.key)})`; 2603 return ` 2604 <li class="loc-item loc-compact" role="listitem"> 2605 <div class="loc-main">
2606 <span class="loc-plz" aria-hidden="true">${escapeHtml(r.plz)}</span> 2607 <span class="loc-ort">${escapeHtml(r.loc)}</span> 2608 </div> 2609 <div class="loc-action"> 2610 <button type="button" 2611 class="loc-btn btn" 2612 aria-label="${aria}" 2613 onclick="sndLoc('${escapeAttr(r.key)}')"> 2614 Auswählen 2615 </button> 2616 </div> 2617 </li> 2618 `; 2619 }).join(""); 2620 2621 return `<ul class="loc-list" role="list" aria-label="Ortsliste">${items}</ul>`; 2622 } 2623 2624 // für Attribute separat escapen 2625 function escapeAttr(s) { 2626 return String(s).replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">"); 2627 } 2628} 2629 2630 2631// === GOOGLE GEOCODING: GEOLOCATION UND PLACES (NEW) AUTOCOMPLETE 2632 2633// Hilfsfunktion: Logging mit Timestamp 2634function geoLog(...args) { 2635 console.log('[Geo]', new Date().toISOString(), ...args); 2636} 2637 2638// Standort und Ort ermitteln 2639function detectGeolocation(options = {}) { 2640 const { 2641 apiUrl, 2642 inputId = 'stsLoc', 2643 hintId = 'stsLocHint', 2644 geoTimeout = 8000 // in ms 2645 } = options; 2646 2647 function geoLog(...args) { 2648 console.log('[Geo]', new Date().toISOString(), ...args); 2649 } 2650 2651 if (location.protocol !== 'https:' && location.hostname !== 'localhost') { 2652 geoLog('Seite ist nicht über HTTPS â Geolocation wird abgebrochen.'); 2653 return; 2654 } 2655 if (!navigator.geolocation) { 2656 geoLog('Geolocation API nicht verfügbar.'); 2657 return; 2658 } 2659 2660 const locInput = document.getElementById(inputId); 2661 const locHint = document.getElementById(hintId); 2662 if (!locInput || !locHint) { 2663 geoLog('Eingabefeld oder Hinweisfeld fehlen im DOM.'); 2664 return; 2665 } 2666 locHint.textContent = 'Standort wird gesucht...'; 2667 locHint.style.display = 'block'; 2668 2669 let finished = false; // Steuert, dass nur ein Callback ausgeführt wird 2670 2671 // Fehler/Abbruch-Callback 2672 function onGeoError(err) { 2673 if (finished) return; 2674 finished = true; 2675 geoLog('Geolocation Error:', err); 2676 let message = 'Standort konnte nicht abgerufen werden.'; 2677 if (err && err.code === 1) message = 'Standortfreigabe wurde abgelehnt.'; 2678 else if (err && err.code === 2) message = 'Standort konnte nicht bestimmt werden.'; 2679 else if (err && err.code === 3) message = 'Anfrage nach Standort dauerte zu lange.'; 2680 else if (err && err.isManualTimeout) message = 'Standort-Anfrage dauerte zu lange.'; 2681 locHint.textContent = message + ' Bitte manuell eingeben.'; 2682 } 2683 2684 // 1. Manuellen Timeout setzen 2685 const geoTimeoutHandle = setTimeout(() => { 2686 onGeoError({ code: 3, isManualTimeout: true }); 2687 }, geoTimeout); 2688 2689 // 2. Geolocation anfordern 2690 navigator.geolocation.getCurrentPosition( 2691 async function success(position) { 2692 if (finished) return; 2693 finished = true; 2694 clearTimeout(geoTimeoutHandle); 2695 geoLog('Geolocation Success:', position.coords);
2696 2697 const lat = position.coords.latitude; 2698 const lng = position.coords.longitude; 2699 //const url = `${apiUrl}?lat=${lat}&lng=${lng}`; 2700 2701 try { 2702 const response = await fetch(apiUrl, { 2703 method: 'POST', 2704 headers: { 2705 'Content-Type': 'application/json', 2706 'X-Requested-With': 'fetch', 2707 'X-ETL-CSRF': getCookie('etl_csrf') 2708 }, 2709 credentials: 'include', 2710 body: JSON.stringify({ lat, lng }) 2711 }); 2712 if (!response.ok) throw new Error('API-Fehler: ' + response.status); 2713 const data = await response.json(); 2714 2715 geoLog('Geocode API Response:', data); 2716 2717 let ort = ''; 2718 const comps = data.results?.[0]?.address_components || []; 2719 for (const comp of comps) { 2720 if (comp.types.includes('locality')) { 2721 ort = comp.long_name; 2722 break; 2723 } 2724 if (!ort && comp.types.includes('administrative_area_level_2')) { 2725 ort = comp.long_name; 2726 } 2727 } 2728 2729 if (ort) { 2730 locInput.value = ort; 2731 locHint.textContent = `Standort automatisch erkannt (ändern möglich)`; 2732 function hideHint() { 2733 locHint.style.display = 'none'; 2734 locInput.removeEventListener('input', hideHint); 2735 locInput.removeEventListener('change', hideHint); 2736 } 2737 locInput.addEventListener('input', hideHint); 2738 locInput.addEventListener('change', hideHint); 2739 geoLog('Detected Ort:', ort); 2740 } else { 2741 geoLog('Ort nicht gefunden:', comps); 2742 locHint.textContent = 'Ort konnte nicht erkannt werden. Bitte manuell eingeben.'; 2743 } 2744 } catch (err) { 2745 geoLog('Geocode API Error:', err); 2746 locHint.textContent = 'Fehler beim Ermitteln des Ortes. Bitte manuell eingeben.'; 2747 } 2748 }, 2749 function error(err) { 2750 if (finished) return; 2751 finished = true; 2752 clearTimeout(geoTimeoutHandle); 2753 onGeoError(err); 2754 }, 2755 { 2756 enableHighAccuracy: true, 2757 timeout: geoTimeout, 2758 maximumAge: 0, 2759 } 2760 ); 2761} 2762 2763document.addEventListener('DOMContentLoaded', function () { 2764 // Cookie-Consent-Prüfung 2765 if ( 2766 typeof getConsent === 'function' && 2767 getConsent('borlabs-cookie').indexOf('maps') >= 0 2768 ) { 2769 2770 // --- AUTOMATISCHE GEOLOKALISIERUNG --- 2771 detectGeolocation({ apiUrl: srcGeoCodeLocalizer, inputId: 'stsLoc', hintId: 'stsLocHint', geoTimeout: 8000 }); 2772 2773 // --- GOOGLE PLACES (NEW) AUTOCOMPLETE ELEMENT --- 2774 // liefert bei nur Ortsangabe keine eindeutigen Postleitzahlen aus, daher Verwendung nicht ohne weiteres möglich 2775 // ggf. weitere Abfrage zu Geocoding notwendig, erhöht die Kosten für wenig Nutzen 2776 if(1==0){ 2777 2778 (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))}) 2779 ({key: GOOGLE_MAPS_API_KEY_AUTOCOMPLETE, v: "weekly"}); 2780 2781 async function initAutocomplete() { 2782 await google.maps.importLibrary("places"); 2783 const placeAutocomplete = new google.maps.places.PlaceAutocompleteElement(); 2784 var input = document.getElementById('stsLoc'); 2785 input.parentNode.insertBefore(placeAutocomplete, input.nextSibling); 2786 2787 placeAutocomplete.addEventListener('gmp-select', async ({ placePrediction }) => { 2788 const place = placePrediction.toPlace(); 2789 await place.fetchFields({ fields: ['addressComponents', 'formattedAddress'] }); 2790 2791 let plz = ''; 2792 if (place.addressComponents && Array.isArray(place.addressComponents)) {
2793 place.addressComponents.forEach(function (comp) { 2794 if (comp.types && comp.types.includes('postal_code')) { 2795 plz = comp.longText || comp.shortText || comp.text || ''; 2796 } 2797 }); 2798 } 2799 if (!plz && place.formattedAddress) { 2800 const m = place.formattedAddress.match(/\b\d{5}\b/); 2801 if (m) plz = m[0]; 2802 } 2803 if (plz) { 2804 input.value = plz; 2805 console.log('[Geo] Extracted PLZ:', plz); 2806 } else { 2807 console.log('[Geo] Keine PLZ gefunden:', place); 2808 } 2809 }); 2810 } 2811 initAutocomplete(); 2812 2813 } 2814 } 2815}); 2816</script>
2816 2817 2818 </div> 2819 2820 2821 2822<div class="col-12 etlAltCol"> 2823 </div> 2824 2825</div> 2826 2827</div> 2828 2829</div> 2830</div></div> 2831 2832 2833 <div class="container-fluid standorteuebersichtWrapper"> 2834 <div class="container"> 2835 <div class="row mt-3"> 2836 <div class="col-12 col-sm-12 col-md-8 col-lg-9"> 2837 <h2 class="headlineStichworte">Standortübersicht</h2> 2838 <p>Unsere regionalen Standorte geordnet nach Bundesland finden Sie hier.</p> 2839 </div> 2840 </div> 2841 <div class="row standortliste"> 2842 <div class="col-12 col-sm-12 col-md-8 col-lg-9 pb-5"> 2843 <div class="accordion" id="stAccordion"> 2844 <div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula1" data-bs-toggle="collapse" data-bs-target="#bula1">Baden-Württemberg</div><div id="bula1" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Friedrichshafen</b><ul><li class="my-2"><a href="https://www.etl.de/v/mqnmLp" target="_blank">ETL Bodensee Mergers & Acquisitions GmbH<br><span style="color:#525252;">AlbrechtstraÃe 20, 88045 Friedrichshafen</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>GroÃbettlingen</b><ul><li class="my-2"><a href="https://www.etl.de/v/EjcmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">KantstraÃe 10, 72663 GroÃbettlingen</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Heilbronn</b><ul><li class="my-2"><a href="https://www.etl.de/v/EENmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">UhlandstraÃe 21, 74072 Heilbronn</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Stuttgart</b><ul><li class="my-2"><a href="https://www.etl.de/v/MQmLp" target="_blank">RDG Stuttgart-München GmbH<br><span style="color:#525252;">WeidachstraÃe 5, 70597 Stuttgart</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula2" data-bs-toggle="collapse" data-bs-target="#bula2">Bayern</div><div id="bula2" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>GroÃwallstadt</b><ul><li class="my-2"><a href="https://www.etl.de/v/wbmLp" target="_blank">senseXpense<br><span style="color:#525252;">Lützeltaler StraÃe 5c, 63868 GroÃwallstadt</span></a></li><li class="my-2"><a href="https://www.etl.de/v/MMmLp" target="_blank">Travel Agency Accounting Gesellschaft mit beschränkter Haftung<br><span style="color:#525252;">Lützeltaler StraÃe 5c, 63868 GroÃwallstadt</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>München</b><ul><li class="my-2"><a href="https://www.etl.de/v/MimLp" target="_blank">RDG Stuttgart-München GmbH<br><span style="color:#525252;">PettenkoferstraÃe 37, 80336 München</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula3" data-bs-toggle="collapse" data-bs-target="#bula3">Berlin</div><div id="bula3" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Berlin</b><ul><li class="my-2"><a href="https://www.etl.de/v/TpmLp" target="_blank">ETL Unternehmensberatung AG<br><span style="color:#525252;">MauerstraÃe 86-88, 10117 Berlin</span></a></li><li class="my-2"><a href="https://www.etl.de/v/EEzmLp" target="_blank">ETL Unternehmensberatung Berlin, Niederlassung ADVISION Zentrale Berlin<br><span style="color:#525252;">MauerstraÃe 86-88, 10117 Berlin</span></a></li><li class="my-2"><a href="https://www.etl.de/v/EjCmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Spreeufer 5, 10178 Berlin</span></a></li><li class="my-2"><a href="https://www.etl.de/v/EE4mLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">MauerstraÃe 86-88, 10117 Berlin</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>München</b><ul><li class="my-2"><a href="https://www.etl.de/v/EjMmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">BalanstraÃe 55, 81541 München</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula4" data-bs-toggle="collapse" data-bs-target="#bula4">Brandenburg</div><div id="bula4" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Bernau bei Berlin</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEymLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">BrauerstraÃe 16-18, 16321 Bernau bei Berlin</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Fürstenwalde /Spree</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEMmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Karl-Marx-StraÃe 16, 15517 Fürstenwalde /Spree</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Wildau</b><ul><li class="my-2"><a href="https://www.etl.de/v/MUmLp" target="_blank">RDG Berlin-Hamburg GmbH<br><span style="color:#525252;">
2844Karl-Marx-StraÃe 18, 15745 Wildau</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Wittstock/Dosse</b><ul><li class="my-2"><a href="https://www.etl.de/v/E9MmLp" target="_blank">ETL Freund & Partner GmbH Steuerberatungsgesellschaft & Co. Wittstock KG<br><span style="color:#525252;">Am Markt 6, 16909 Wittstock/Dosse</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula5" data-bs-toggle="collapse" data-bs-target="#bula5">Bremen</div><div id="bula5" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Bremerhaven</b><ul><li class="my-2"><a href="https://www.etl.de/v/VhmLp" target="_blank">ETL-Hanse Treuhand Unternehmensberatung GmbH<br><span style="color:#525252;">Erich-Koch-Weser-Platz 1, 27568 Bremerhaven</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula6" data-bs-toggle="collapse" data-bs-target="#bula6">Hamburg</div><div id="bula6" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Hamburg</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEZmLp" target="_blank">ETL Unternehmensberatung Hamburg GmbH<br><span style="color:#525252;">Borsteler Chaussee 47, 22453 Hamburg</span></a></li><li class="my-2"><a href="https://www.etl.de/v/MDmLp" target="_blank">RDG Berlin-Hamburg GmbH<br><span style="color:#525252;">Borsteler Chaussee 47, 22453 Hamburg</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula7" data-bs-toggle="collapse" data-bs-target="#bula7">Hessen</div><div id="bula7" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Bad Homburg</b><ul><li class="my-2"><a href="https://www.etl.de/v/Ej4mLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Landgrafstr. 24b, 61348 Bad Homburg</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Frankfurt</b><ul><li class="my-2"><a href="https://www.etl.de/v/MYmLp" target="_blank">RDG Frankfurt-Erfurt GmbH<br><span style="color:#525252;">Darmstädter LandstraÃe 125, 60598 Frankfurt</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>GieÃen</b><ul><li class="my-2"><a href="https://www.etl.de/v/Ej3mLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Philipp-Reis-Str. 4, 35398 GieÃen</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Limburg a. d. Lahn</b><ul><li class="my-2"><a href="https://www.etl.de/v/V8mLp" target="_blank">ETL MCP Mühl Management Consulting GmbH<br><span style="color:#525252;">Brüsseler StraÃe 5, 65552 Limburg a. d. Lahn</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Wiesbaden</b><ul><li class="my-2"><a href="https://www.etl.de/v/EELmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">SteubenstraÃe 5, 65189 Wiesbaden</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula8" data-bs-toggle="collapse" data-bs-target="#bula8">Mecklenburg-Vorpommern</div><div id="bula8" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Anklam</b><ul><li class="my-2"><a href="https://www.etl.de/v/EjhmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">KeilstraÃe 2b, 17389 Anklam</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Bad Doberan</b><ul><li class="my-2"><a href="https://www.etl.de/v/EjzmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Am Kamp 5, 18209 Bad Doberan</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Ludwigslust</b><ul><li class="my-2"><a href="https://www.etl.de/v/EE9mLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">LindenstraÃe 35, 19288 Ludwigslust</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Neubrandenburg</b><ul><li class="my-2"><a href="https://www.etl.de/v/TqmLp" target="_blank">ETL Unternehmensberatung GmbH<br><span style="color:#525252;">Ihlenfelder StraÃe 88, 17034 Neubrandenburg</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Plau am See</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEwmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">SteinstraÃe 56, 19395 Plau am See</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Ribnitz-Damgarten</b><ul><li class="my-2"><a href="https://www.etl.de/v/EE6mLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Lange StraÃe 46, 18311 Ribnitz-Damgarten</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Rostock</b><ul><li class="my-2"><a href="https://www.etl.de/v/ZzmLp" target="_blank">Dr. Sabine Reetz Unternehmensberatungsgesellschaft mbH<br><span style="color:#525252;">Zur Himmelspforte 1, 18055 Rostock</span></a></li><li class="my-2"><a href="https://www.etl.de/v/EQDmLp" target="_blank">ETL Freund & Partner GmbH Steuerberatungsgesellschaft & Co. Rostock KG<br><span style="color:#525252;">Timmermannsstrat 4c, 18055 Rostock</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Schwerin</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEAmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Wismarsche StraÃe 184, 19053 Schwerin</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Sternberg</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEWmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Kleine Belower Furt 2b, 19406 Sternberg</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula9" data-bs-toggle="collapse" data-bs-target="#bula9">Niedersachsen</div><div id="bula9" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Braunschweig</b><ul><li class="my-2"><a href="https://www.etl.de/v/EjvmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Frankfurter StraÃe 254, 38122 Braunschweig</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula10" data-bs-toggle="collapse" data-bs-target="#bula10">Nordrhein-Westfalen</div><div id="bula10" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Alfter</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEdmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Herseler Weg 7a, 53347 Alfter</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Essen</b><ul><li class="my-2"><a href="https://www.etl.de/v/TNmLp" target="_blank">ETL Unternehmensberatung AG, Niederlassung<br><span style="color:#525252;">KruppstraÃe 4, 45128 Essen</span></a></li><li class="my-2"><a href="https://www.etl.de/v/EjgmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">WiesenstraÃe 55-57, 45128 Essen</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Gütersloh</b><ul><li class="my-2"><a href="https://www.etl.de/v/EyWmLp" target="_blank">ETL WRG Solutions GmbH<br><span style="color:#525252;">KahlertstraÃe 4, 33330 Gütersloh</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Köln</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEUmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Rösrather StraÃe 759, 51107 Köln</span></a></li><li class="my-2"><a href="https://www.etl.de/v/EExmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">
2844Kaiser-Wilhelm-Ring 3-5, 50672 Köln</span></a></li><li class="my-2"><a href="https://www.etl.de/v/MfmLp" target="_blank">RDG Köln GmbH<br><span style="color:#525252;">Zollstockgürtel 67, 50969 Köln</span></a></li><li class="my-2"><a href="https://www.etl.de/v/MtmLp" target="_blank">RDG Unternehmensberatung AG<br><span style="color:#525252;">Zollstockgürtel 67, 50969 Köln</span></a></li><li class="my-2"><a href="https://www.etl.de/v/MbmLp" target="_blank">RM Verwaltungsgesellschaft mit beschränkter Haftung<br><span style="color:#525252;">Zollstockgürtel 67, 50969 Köln</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Lindlar</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEgmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">HauptstraÃe 52, 51789 Lindlar</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Lippstadt</b><ul><li class="my-2"><a href="https://www.etl.de/v/EjXmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">WeiÃenburger StraÃe 21, 59557 Lippstadt</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Mettmann</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEfmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Am Rathaus 1, 40822 Mettmann</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Münster</b><ul><li class="my-2"><a href="https://www.etl.de/v/MAmLp" target="_blank">RDG Köln GmbH, Niederlassung<br><span style="color:#525252;">JohanniterstraÃe 1, 48143 Münster</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula11" data-bs-toggle="collapse" data-bs-target="#bula11">Sachsen</div><div id="bula11" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Dresden</b><ul><li class="my-2"><a href="https://www.etl.de/v/TSmLp" target="_blank">ETL Unternehmensberatung AG, Niederlassung<br><span style="color:#525252;">RankestraÃe 35, 01139 Dresden</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Reichenbach</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEEmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">Am Burgberg 1, 08468 Reichenbach</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Zwickau</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEFmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">SpiegelstraÃe 65, 08056 Zwickau</span></a></li><li class="my-2"><a href="https://www.etl.de/v/EjTmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">MoritzstraÃe 35, 08056 Zwickau</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula12" data-bs-toggle="collapse" data-bs-target="#bula12">Sachsen-Anhalt</div><div id="bula12" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Dessau-RoÃlau</b><ul><li class="my-2"><a href="https://www.etl.de/v/TamLp" target="_blank">ETL Unternehmensberatung AG, Niederlassung<br><span style="color:#525252;">AlbrechtstraÃe 101, 06844 Dessau-RoÃlau</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Halle (Saale)</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEemLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">GroÃe UlrichstraÃe 59-60, 06108 Halle (Saale)</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Lutherstadt Wittenberg</b><ul><li class="my-2"><a href="https://www.etl.de/v/EEGmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">PuschkinstraÃe 11, 06886 Lutherstadt Wittenberg</span></a></li></ul><hr class="mb-0"></div></div></div></div><div class="accordeon-item"><div class="accordeon-header accHeaderBig mt-3" data-toggle="collapse" data-target="#bula13" data-bs-toggle="collapse" data-bs-target="#bula13">Thüringen</div><div id="bula13" class="collapse" data-parent="#stAccordion" data-bs-parent="#stAccordion"><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Erfurt</b><ul><li class="my-2"><a href="https://www.etl.de/v/TdmLp" target="_blank">ETL Unternehmensberatung AG, Niederlassung<br><span style="color:#525252;">Witterdaer Weg 3, 99092 Erfurt</span></a></li><li class="my-2"><a href="https://www.etl.de/v/EEcmLp" target="_blank">ETL Unternehmensberatung GmbH, Niederlassung<br><span style="color:#525252;">WindthorststraÃe 18, 99096 Erfurt</span></a></li><li class="my-2"><a href="https://www.etl.de/v/MRmLp" target="_blank">RDG Frankfurt-Erfurt GmbH<br><span style="color:#525252;">BonifaciusstraÃe 15, 99084 Erfurt</span></a></li></ul><hr class="mb-0"></div></div><div class="pt-4"><div class="stBoxWrapper px-3"><i class="fas c-primary mr-2 fa-map-marker-alt"></i><b>Gera</b><ul><li class="my-2"><a href="https://www.etl.de/v/T3mLp" target="_blank">ETL Unternehmensberatung AG, Niederlassung<br><span style="color:#525252;">StraÃe des Friedens 104, 07548 Gera</span></a></li></ul><hr class="mb-0"></div></div></div></div> </div> 2845 </div> 2846 </div> 2847 </div> 2848 </div> 2849 2850 2851 <style> 2852 2853 </style> 2854 </div><!-- .entry-content --> 2855 2856 </article><!-- #post-347 --> 2857 2858 </main><!-- #main --> 2859 2860 2861 <div id="kontakt" class="mb-0 p-0 height-0 pos-absolute" style="position:absolute;margin-top:-50px;"></div> 2862 <footer id="colophon" class="site-footer noPrint"> 2863 <div class="wp-bootstrap-blocks-container container-fluid mb-0 bg-lightgrey footer-cta"> 2864 2865<div class="wp-bootstrap-blocks-container container mb-0 pt-5"> 2866 2867<div class="wp-bootstrap-blocks-row row"> 2868 2869 2870<div class="col-12 col-md-6 py-3"> 2871 2872<div class="editor-wrapper editor"> 2873 2874 <h2>Sprechen Sie uns an</h2> 2875<p>Sie haben Fragen zu unseren Leistungen? Senden Sie uns eine E-Mail<br> 2876oder rufen Sie uns an. Die ETL-Unternehmensberater freuen sich auf Sie.</p> 2877 2878</div> 2879 2880 </div> 2881 2882 2883 2884<div class="col-12 col-sm-6 col-md-3 py-3"> 2885 2886<div class="editor-wrapper editor"> 2887 2888 <p><span class="subheader">Unsere Kontaktdaten</span></p> 2889<p><span class="subheader"><a href="tel:00493022643400">(030) 22643400</a></span><br> 2890<span class="subheader"><a id="spam_mail_0" title="E-Mail an die Kanzlei senden" href="mailto:[email protected]">[email protected]</a><br> 2891</span></p> 2892<p>Mo. â Fr. 09:00 â 17:00 Uhr</p> 2893 2894</div> 2895 2896 </div> 2897 2898 2899 2900<div class="col-12 col-sm-6 col-md-3 py-3 col-newsletter"> 2901 2902<div class="editor-wrapper editor"> 2903 2904 <p><span class="subheader">Unser Newsletter</span></p> 2905<p>Abonnieren Sie unseren kostenlosen ETL-Newsletter.</p> 2906<p><a class="btn-teal-outline" href="https://www.etl.de/newsletter">Newsletter abonnieren</a></p> 2907<p><span class="subheader"><br> 2908Folgen Sie uns</span></p> 2909<div> 2910<div> <div class="socialMediaWrapper"> 2911<a target="_blank" href="https://www.facebook.com/ETLGruppe" rel="noopener" class="d-inline-block"><i class="fab fa-facebook-square"></i></a> 2912<a target="_blank" href="https://www.linkedin.com/company/etl-gruppe" rel="noopener" class="d-inline-block"><i class="fab fa-linkedin"></i></a> 2913<a target="_blank" href="https://www.instagram.com/etl_gruppe/" rel="noopener" class="d-inline-block"><i class="fab fa-instagram"></i></a> 2914 </div> 2915</div> 2916</div> 2917 2918</div> 2919 2920 </div> 2921 2922 2923 2924<div class="col-12">
2925 </div> 2926 2927</div> 2928 2929 2930 2931<hr class="wp-block-separator has-text-color has-css-opacity has-background is-style-wide footer-hr" style="background-color:#707070;color:#707070"> 2932 2933</div> 2934 2935</div> 2936 2937 2938<div class="wp-bootstrap-blocks-container container-fluid mb-0 bg-lightgrey py-5"> 2939 2940<div class="wp-bootstrap-blocks-container container mb-0"> 2941 2942<div class="wp-bootstrap-blocks-row row cols-5"> 2943 2944 2945<div class="col-12 col-md-6"> 2946 2947<div class="editor-wrapper editor"> 2948 2949 <p><img decoding="async" class="alignnone wp-image-869 size-full" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20110%2062'%3E%3C/svg%3E" alt="" width="110" height="62" data-lazy-src="https://www.etl.de/wp-content/uploads/sites/3/2020/09/etl_logo-1.svg"><noscript><img decoding="async" class="alignnone wp-image-869 size-full" src="https://www.etl.de/wp-content/uploads/sites/3/2020/09/etl_logo-1.svg" alt="" width="110" height="62"></noscript></p> 2950<p>Ein Unternehmen<br> 2951der ETL-Gruppe</p> 2952 2953</div> 2954 2955 </div> 2956 2957 2958 2959<div class="col-12 col-md-6 py-3 foot-nav-menu"> 2960 2961<div class="editor-wrapper editor"> 2962 2963 <div class="sec-ind">Ãber uns</div> 2964<p><a href="https://www.etl-unternehmensberatung.de/ueber-uns">Ãber uns</a><br> 2965<a href="https://www.etl-unternehmensberatung.de/standorte">Standortübersicht und -suche</a><br> 2966<a href="https://www.etl-unternehmensberatung.de/etl-gruppe">ETL-Gruppe</a><br> 2967<a href="https://www.etl-unternehmensberatung.de/soziales-engagement">Soziales Engagement</a><br> 2968<a href="https://www.etl-unternehmensberatung.de/zeigepdf/pdf/broschuere-unternehmensberatung" target="_blank" rel="noopener">Unsere Broschüre</a><br> 2969<a href="https://www.etl-unternehmensberatung.de/impressum/">Impressum</a><br> 2970<a href="https://www.etl-unternehmensberatung.de/datenschutzerklaerung/">Datenschutzerklärung</a><br> 2971<a href="https://www.etl-unternehmensberatung.de/barrierefreiheit/">Barrierefreiheitserklärung</a><br> 2972<a class="borlabs-cookie-open-dialog-preferences" href="#">Cookie-Einstellungen prüfen</a></p> 2973 2974</div> 2975 2976 </div> 2977 2978 2979 2980<div class="col-12 col-md-6 py-3 foot-nav-menu"> 2981 2982<div class="editor-wrapper editor"> 2983 2984 <div class="sec-ind">Webseiten der ETL-Gruppe</div> 2985<p><a href="https://etl-global.com/" target="_blank" rel="noopener">ETL GLOBAL</a><br> 2986<a href="https://www.etl-rechtsanwaelte.de" target="_blank" rel="noopener">ETL Rechtsanwälte</a><br> 2987<a href="https://www.etl-wirtschaftspruefung.de" target="_blank" rel="noopener">ETL Wirtschaftsprüfung</a><br> 2988<a href="https://www.etl-unternehmensberatung.de" target="_blank" rel="noopener">ETL Unternehmensberatung</a><br> 2989<a href="https://www.etl-finance.de" target="_blank" rel="noopener">ETL Finance</a><br> 2990<a href="https://www.etl-pkc.de" target="_blank" rel="noopener">ETL Personal-Kompetenzcenter</a><br> 2991<a href="https://www.etl-steuerrecht.de" target="_blank" rel="noopener">ETL Steuerrecht</a><br> 2992<a href="https://www.anteeo-finance.de" target="_blank" rel="noopener">ETL anteeo finance</a></p> 2993 2994</div> 2995 2996 </div> 2997 2998 2999 3000<div class="col-12 col-md-6 py-3 foot-nav-menu"> 3001 3002<div class="editor-wrapper editor"> 3003 3004 <div class="sec-ind">Weiterführende Links</div> 3005<p><a href="https://fynax.io/" target="_blank" rel="noopener">fynax</a><br> 3006<a href="https://etl-startup.de/" target="_blank" rel="noopener">ETL Startup</a><br> 3007<a href="https://www.eurodata.de/" target="_blank" rel="noopener">eurodata</a><br> 3008<a href="https://www.womensnetworkinglounge.de/" target="_blank" rel="noopener">Women´s Networking Lounge</a><br> 3009<a href="https://www.etl-kindertraeume.de/" target="_blank" rel="noopener">ETL-Stiftung Kinderträume</a></p> 3010 3011</div> 3012 3013 </div> 3014 3015 3016 3017<div class="col-12 col-md-6 py-3 foot-nav-menu"> 3018 3019<div class="editor-wrapper editor"> 3020 3021 <div class="sec-ind">Flyer ETL Unternehmensberatung</div> 3022<p><a href="https://www.etl-unternehmensberatung.de/zeigepdf/pdf/Flyer_ETL_Unternehmensberatung" target="_blank" rel="noopener"><img decoding="async" class="alignnone size-full wp-image-2239" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%20200'%3E%3C/svg%3E" alt="" width="96" height="200" data-lazy-src="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/11/Unbenannt-1.jpg"><noscript><img decoding="async" class="alignnone size-full wp-image-2239" src="https://www.etl-unternehmensberatung.de/wp-content/uploads/sites/9/2020/11/Unbenannt-1.jpg" alt="" width="96" height="200"></noscript></a></p> 3023 3024</div> 3025 3026 </div> 3027 3028 3029 3030<div class="col-12 col-md-6 py-3 foot-nav-menu">
3031 </div> 3032 3033</div> 3034 3035</div> 3036 3037</div> 3038 3039 3040<div data-wpr-lazyrender="1" class="wp-bootstrap-blocks-container container-fluid mb-0 bg-lightgrey"> 3041 3042<div class="wp-bootstrap-blocks-container container mb-0"> 3043 3044<div class="wp-bootstrap-blocks-row row"> 3045 3046 3047<div class="col-12 col-md-12"> 3048 3049<div class="editor-wrapper editor genderhinweis mb-5 py-3"> 3050 3051 <div class="mb-3"><sup>Für die Erstellung einiger Inhalte wurde KI-Technologie unterstützend eingesetzt.</sup></div> 3052<div><sup><strong>Genderhinweis</strong></sup><br> 3053<sup>Gleichbehandlung und Gleichberechtigung sind uns überaus wichtig! Im Sinne einer besseren Lesbarkeit der Texte wählen wir für unsere Kommunikationskanäle jedoch entweder die männliche oder weibliche Form von personenbezogenen Hauptwörtern. Dies impliziert aber keinesfalls eine Benachteiligung des jeweils anderen Geschlechts, sondern ist im Sinne der sprachlichen Vereinfachung als geschlechtsneutral zu verstehen. Alle Menschen mögen sich von den Inhalten unserer Informationskanäle gleichermaÃen angesprochen fühlen. Im Sinne der Gender Mainstreaming-Strategie der Bundesregierung vertreten wir ausdrücklich eine Politik der gleichstellungssensiblen Informationsvermittlung.</sup></div> 3054 3055</div> 3056 3057 3058 3059<style> 3060.genderhinweis { 3061 border-top: 1px solid var(--primary_color); 3062 hyphens: auto; 3063 max-height: 200px; 3064 overflow: auto; 3065} 3066</style>
3067<script> 3068/*jQuery('.genderhinweis').slideUp(); 3069var _gt=0; 3070function gendernote(){ 3071 if(_gt==0){ 3072 jQuery('.genderhinweis').slideToggle(); 3073 jQuery('html, body').animate({ scrollTop: $(document).height() }, 1000); 3074 _gt=1; 3075 }else{ 3076 jQuery('.genderhinweis').slideToggle(); 3077 _gt=0; 3078 } 3079}*/ 3080</script>
3080 3081 3082 </div> 3083 3084</div> 3085 3086</div> 3087 3088</div> 3089 <div data-wpr-lazyrender="1" class="site-info"> 3090 <div class="container-fluid bg-darkteal"> 3091 <div class="container"> 3092 <div class="row"> 3093 <div class="col-lg-8 py-3 text-center text-sm-left py-md-3"> 3094 © Copyright 2026 ETL Service GmbH. Alle Rechte vorbehalten - <a class="borlabs-cookie-open-dialog-preferences" href="#">Datenschutzeinstellungen prüfen</a> 3095 </div> 3096 <div class="col-lg-4 py-3 text-center text-sm-right py-md-3 text-right"> 3097 <div class="socialMediaWrapper"> 3098<a target="_blank" href="https://www.facebook.com/ETLGruppe" rel="noopener" class="d-inline-block"><i 3099 class="fab fa-facebook-square"></i></a> 3100<a target="_blank" href="https://www.linkedin.com/company/etl-gruppe" rel="noopener" class="d-inline-block"><i 3101 class="fab fa-linkedin"></i></a> 3102<a target="_blank" href="https://www.instagram.com/etl_gruppe/" rel="noopener" class="d-inline-block"><i 3103 class="fab fa-instagram"></i></a> 3104 </div> 3105 </div> 3106 </div> 3107 </div> 3108 </div> 3109 </div><!-- .site-info --> 3110 </footer><!-- #colophon --> 3111</div><!-- #page --> 3112
3113<script type="speculationrules"> 3114{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/sites/9/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/etl-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 3115</script>
vendor: 1 bytes, line 3115
3115
3116<script data-cfasync="false" data-no-minify="1" data-no-optimize="1" id="borlabs-cookie-core-js-module" src="https://www.etl-unternehmensberatung.de/wp-content/plugins/borlabs-cookie/assets/javascript/borlabs-cookie.min.js?ver=3.4.5" type="module"></script>
3116 3117<!--googleoff: all--><div data-nosnippet data-borlabs-cookie-consent-required='true' id='BorlabsCookieBox'></div><div id='BorlabsCookieWidget' class='brlbs-cmpnt-container'></div><!--googleon: all-->
3117<script id="gsap-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/gsap/gsap.min.js"></script>
vendor: 1 bytes, line 3117
3117
3118<script id="scrolltrigger-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/gsap/ScrollTrigger.min.js"></script>
vendor: 1 bytes, line 3118
3118
3119<script id="bootstrap-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/bootstrap/js/bootstrap.bundle.min.js"></script>
vendor: 1 bytes, line 3119
3119
3120<script id="bootstrapv4-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/bootstrap/bootstrap-4-shim-for-5.js"></script>
vendor: 1 bytes, line 3120
3120
3121<script id="swiper-js-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/swiperJSnew/swiper-bundle.min.js"></script>
vendor: 1 bytes, line 3121
3121
3122<script id="aos-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/aos/aos.js"></script>
vendor: 1 bytes, line 3122
3122
3123<script id="etl-theme-navigation-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/js/navigation.js"></script>
vendor: 1 bytes, line 3123
3123
3124<script id="etl-customs-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/js/etl-customs.js?20250620130000"></script>
vendor: 1 bytes, line 3124
3124
3125<script id="html2pdf-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/lib/html2pdf/loadPdfGenerator.js"></script>
vendor: 1 bytes, line 3125
3125
3126<script id="forms-ajax-js-extra"> 3127var formsAjax = {"ajaxurl":"https://www.etl-unternehmensberatung.de/wp-admin/admin-ajax.php","title":"Standorte, Ansprechpartnersuche","kontaktNonce":"9ceb8a96ac"}; 3128//# sourceURL=forms-ajax-js-extra 3129</script>
vendor: 1 bytes, line 3129
3129
3130<script id="forms-ajax-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/components/blocks/forms/forms-ajax.js"></script>
vendor: 1 bytes, line 3130
3130
3131<script id="etl-iframe-consent-js" src="https://www.etl-unternehmensberatung.de/wp-content/themes/etl-theme/js/etl-iframe-consent.js"></script>
3131 3132<template id="brlbs-cmpnt-cb-template-facebook-content-blocker"> 3133 <div class="brlbs-cmpnt-container brlbs-cmpnt-content-blocker brlbs-cmpnt-with-individual-styles" data-borlabs-cookie-content-blocker-id="facebook-content-blocker" data-borlabs-cookie-content=""><div class="brlbs-cmpnt-cb-preset-b brlbs-cmpnt-cb-facebook"> <div data-bg="https://www.etl-unternehmensberatung.de/wp-content/uploads/borlabs-cookie/9/cb-facebook-main.png" class="brlbs-cmpnt-cb-thumbnail rocket-lazyload" style=""></div> <div class="brlbs-cmpnt-cb-main"> <div class="brlbs-cmpnt-cb-content"> <p class="brlbs-cmpnt-cb-description">Sie sehen gerade einen Platzhalterinhalt von <strong>Facebook</strong>. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.</p> <a class="brlbs-cmpnt-cb-provider-toggle" href="#" data-borlabs-cookie-show-provider-information role="button">Mehr Informationen</a> </div> <div class="brlbs-cmpnt-cb-buttons"> <a class="brlbs-cmpnt-cb-btn" href="#" data-borlabs-cookie-unblock role="button">Inhalt entsperren</a> <a class="brlbs-cmpnt-cb-btn" href="#" data-borlabs-cookie-accept-service role="button" style="display: inherit">Erforderlichen Service akzeptieren und Inhalte entsperren</a> </div> </div> </div></div> 3134</template>
3135<script> 3136(function() { 3137 const template = document.querySelector("#brlbs-cmpnt-cb-template-facebook-content-blocker"); 3138 const divsToInsertBlocker = document.querySelectorAll('div.fb-video[data-href*="//www.facebook.com/"], div.fb-post[data-href*="//www.facebook.com/"]'); 3139 for (const div of divsToInsertBlocker) { 3140 const blocked = template.content.cloneNode(true).querySelector('.brlbs-cmpnt-container'); 3141 blocked.dataset.borlabsCookieContent = btoa(unescape(encodeURIComponent(div.outerHTML))); 3142 div.replaceWith(blocked); 3143 } 3144})() 3145</script>
3145<template id="brlbs-cmpnt-cb-template-instagram"> 3146 <div class="brlbs-cmpnt-container brlbs-cmpnt-content-blocker brlbs-cmpnt-with-individual-styles" data-borlabs-cookie-content-blocker-id="instagram" data-borlabs-cookie-content=""><div class="brlbs-cmpnt-cb-preset-b brlbs-cmpnt-cb-instagram"> <div data-bg="https://www.etl-unternehmensberatung.de/wp-content/uploads/borlabs-cookie/9/cb-instagram-main.png" class="brlbs-cmpnt-cb-thumbnail rocket-lazyload" style=""></div> <div class="brlbs-cmpnt-cb-main"> <div class="brlbs-cmpnt-cb-content"> <p class="brlbs-cmpnt-cb-description">Sie sehen gerade einen Platzhalterinhalt von <strong>Instagram</strong>. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.</p> <a class="brlbs-cmpnt-cb-provider-toggle" href="#" data-borlabs-cookie-show-provider-information role="button">Mehr Informationen</a> </div> <div class="brlbs-cmpnt-cb-buttons"> <a class="brlbs-cmpnt-cb-btn" href="#" data-borlabs-cookie-unblock role="button">Inhalt entsperren</a> <a class="brlbs-cmpnt-cb-btn" href="#" data-borlabs-cookie-accept-service role="button" style="display: inherit">Erforderlichen Service akzeptieren und Inhalte entsperren</a> </div> </div> </div></div> 3147</template>
3148<script> 3149(function() { 3150 const template = document.querySelector("#brlbs-cmpnt-cb-template-instagram"); 3151 const divsToInsertBlocker = document.querySelectorAll('blockquote.instagram-media[data-instgrm-permalink*="instagram.com/"]'); 3152 for (const div of divsToInsertBlocker) { 3153 const blocked = template.content.cloneNode(true).querySelector('.brlbs-cmpnt-container'); 3154 blocked.dataset.borlabsCookieContent = btoa(unescape(encodeURIComponent(div.outerHTML))); 3155 div.replaceWith(blocked); 3156 } 3157})() 3158</script>
3158<template id="brlbs-cmpnt-cb-template-x-alias-twitter-content-blocker"> 3159 <div class="brlbs-cmpnt-container brlbs-cmpnt-content-blocker brlbs-cmpnt-with-individual-styles" data-borlabs-cookie-content-blocker-id="x-alias-twitter-content-blocker" data-borlabs-cookie-content=""><div class="brlbs-cmpnt-cb-preset-b brlbs-cmpnt-cb-x"> <div data-bg="https://www.etl-unternehmensberatung.de/wp-content/uploads/borlabs-cookie/9/cb-twitter-main.png" class="brlbs-cmpnt-cb-thumbnail rocket-lazyload" style=""></div> <div class="brlbs-cmpnt-cb-main"> <div class="brlbs-cmpnt-cb-content"> <p class="brlbs-cmpnt-cb-description">Sie sehen gerade einen Platzhalterinhalt von <strong>X</strong>. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.</p> <a class="brlbs-cmpnt-cb-provider-toggle" href="#" data-borlabs-cookie-show-provider-information role="button">Mehr Informationen</a> </div> <div class="brlbs-cmpnt-cb-buttons"> <a class="brlbs-cmpnt-cb-btn" href="#" data-borlabs-cookie-unblock role="button">Inhalt entsperren</a> <a class="brlbs-cmpnt-cb-btn" href="#" data-borlabs-cookie-accept-service role="button" style="display: inherit">Erforderlichen Service akzeptieren und Inhalte entsperren</a> </div> </div> </div></div> 3160</template>
3161<script> 3162(function() { 3163 const template = document.querySelector("#brlbs-cmpnt-cb-template-x-alias-twitter-content-blocker"); 3164 const divsToInsertBlocker = document.querySelectorAll('blockquote.twitter-tweet,blockquote.twitter-video'); 3165 for (const div of divsToInsertBlocker) { 3166 const blocked = template.content.cloneNode(true).querySelector('.brlbs-cmpnt-container'); 3167 blocked.dataset.borlabsCookieContent = btoa(unescape(encodeURIComponent(div.outerHTML))); 3168 div.replaceWith(blocked); 3169 } 3170})() 3171</script>
3171<script>window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} 3172if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} 3173images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} 3174if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script>
3174<script data-no-minify="1" async src="https://www.etl-unternehmensberatung.de/wp-content/plugins/wp-rocket/assets/js/lazyload/17.8.3/lazyload.min.js"></script>
3174</body> 3175</html> 3176<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1791430595 -->
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.