PageSourceSearch

https://www.tekoplan-planen.shop/account/login?redirectTo=frontend…=%7B%22_noStore%22:true%7D

html tekoplan-planen.shop collected 2026-10-07 07:24:42 UTC 534,913 bytes, 11,339 lines download raw bytes

1<!DOCTYPE html>
2<html lang="de-DE"
3            itemscope="itemscope"
4      itemtype="https://schema.org/WebPage"
5      >
6
7        
8    
9                                
10    <head>
11                		                            <meta charset="utf-8">
12            
13                            <meta name="viewport"
14                      content="width=device-width, initial-scale=1, shrink-to-fit=no">
15            
16                            <meta name="author"
17                      content="">
18                <meta name="robots"
19                      content="noindex,follow">
20                <meta name="revisit-after"
21                      content="15 days">
22                <meta name="keywords"
23                      content="">
24                <meta name="description"
25                      content="">
26            
27                                                <meta property="og:url"
28                          content="https://www.tekoplan-planen.shop/account/login">
29                    <meta property="og:type"
30                          content="website">
31                    <meta property="og:site_name"
32                          content="Tekoplan GmbH - Der PVC Planen Online Shop">
33                    <meta property="og:title"
34                          content="Registrierung | Tekoplan GmbH - Der PVC Planen Online Shop">
35                    <meta property="og:description"
36                          content="">
37                    <meta property="og:image"
38                          content="https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341">
39
40                    <meta name="twitter:card"
41                          content="summary">
42                    <meta name="twitter:site"
43                          content="Tekoplan GmbH - Der PVC Planen Online Shop">
44                    <meta name="twitter:title"
45                          content="Registrierung | Tekoplan GmbH - Der PVC Planen Online Shop">
46                    <meta name="twitter:description"
47                          content="">
48                    <meta name="twitter:image"
49                          content="https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341">
50                            
51                                                                <meta itemprop="copyrightHolder"
52                          content="Tekoplan GmbH - Der PVC Planen Online Shop">
53                    <meta itemprop="copyrightYear"
54                          content="">
55                    <meta itemprop="isFamilyFriendly"
56                          content="true">
57                    <meta itemprop="image"
58                          content="https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341">
59                            
60                                            <meta name="theme-color"
61                      content="#171717">
62                            
63                                                
64
65	
66
67
68
69
70
71    
72        <!-- Custom html code --><meta name="google-site-verification" content="uSlcdPNGo_HNjwn5H8FLTiBoBFVt2EsQQaJ3vXFbSdw" />
72<script>
73  function uet_report_conversion() {
74    window.uetq = window.uetq || [];
75    window.uetq.push("event", "", {"revenue_value":"1","currency":"EUR"});
76  }
77</script>
77<!-- Meta Pixel Code -->
77<script>
vendor: 399 bytes, lines 77-86
77
78!function(f,b,e,v,n,t,s)
79{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
80n.callMethod.apply(n,arguments):n.queue.push(arguments)};
81if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
82n.queue=[];t=b.createElement(e);t.async=!0;
83t.src=v;s=b.getElementsByTagName(e)[0];
84s.parentNode.insertBefore(t,s)}(window, document,'script',
85'https://connect.facebook.net/en_US/fbevents.js');
86fbq('init', '
861965863263791371
vendor: 30 bytes, lines 86-87
86');
87fbq('track', 'PageView');
88</script>
88<noscript><img height="1" width="1" style="display:none"
89src="https://www.facebook.com/tr?id=1965863263791371&ev=PageView&noscript=1"
90/></noscript><!-- End Meta Pixel Code -->
91                
92
93            
94            
95                            
96                            
97                    <link rel="icon" href="https://www.tekoplan-planen.shop/media/3b/d5/d6/1757671064/exquisite-favicon_(8).png?ts=1757671064">
98        
99                                <link rel="apple-touch-icon"
100                  href="https://www.tekoplan-planen.shop/media/cb/c7/05/1757671064/exquisite-share-icon_(8).png?ts=1757671064">
101                    
102                            
103                                <title itemprop="name">
104                Registrierung | Tekoplan GmbH - Der PVC Planen Online Shop            </title>
105        
106        <style>
107                    :root {--sw-color-brand-primary: #dc1a22;--sw-color-brand-secondary: #070707;--sw-border-color: #dedede;--sw-background-color: #171717;--sw-color-success: #3cc261;--sw-color-info: #26b6cf;--sw-color-warning: #ffbd5d;--sw-color-danger: #e00000;--sw-font-family-base: 'Inter', sans-serif;--sw-text-color: #000000;--sw-font-family-headline: 'Oswald', sans-serif;--sw-headline-color: #333333;--sw-color-price: #000000;--sw-color-buy-button: #3d7f53;--sw-color-buy-button-text: #ffffff;--sw-logo-desktop: url('https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341');--sw-logo-tablet: url('https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341');--sw-logo-mobile: url('https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341');--sw-logo-share: url('https://www.tekoplan-planen.shop/media/cb/c7/05/1757671064/exquisite-share-icon_(8).png?ts=1757671064');--sw-logo-favicon: url('https://www.tekoplan-planen.shop/media/3b/d5/d6/1757671064/exquisite-favicon_(8).png?ts=1757671064');--sw-breakpoint-xs: 0;--sw-breakpoint-sm: 576;--sw-breakpoint-md: 768;--sw-breakpoint-lg: 992;--sw-breakpoint-xl: 1200;--sw-breakpoint-xxl: 1400;--twt-color-brand-primary-light: #e84545;--twt-color-brand-primary-dark: #ad0000;--twt-color-brand-secondary-light: #141414;--twt-color-brand-secondary-dark: #070707;--twt-font-size-base: 16;--twt-font-size-h1: 36;--twt-font-size-h2: 28;--twt-font-size-h3: 24;--twt-font-size-h4: 20;--twt-font-size-h5: 16;--twt-font-size-h6: 14;--twt-font-size-html-xs: 80;--twt-font-size-html-sm: 90;--twt-font-size-html-xl: 100;--twt-link-color: var(--sw-color-brand-primary);--twt-font-weight-light: 400;--twt-font-weight-normal: 400;--twt-font-weight-bold: 700;--twt-google-font-import: 1;--twt-font-family-base-font-weight: 400,700;
107--twt-font-family-headline-font-weight: 400,700;--twt-iconset: twt-six;--twt-icon-cart: bag;--twt-icon-newsletter-submit: envelope;--twt-icon-benefits: checkmark;--twt-color-details-button: #f9f9f9;--twt-sticky-nav-main-logo-image: url('https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341');--twt-shopping-experiences-header-logo-image: url('https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341');--twt-container-layout: 2;--twt-border-radius: 1;--twt-background-image-show: 2;--twt-background-image-size: cover;--twt-background-image-position: left top;--twt-background-image-repeat: repeat;--twt-background-image-attachment: fixed;--twt-background-image: url('https://www.tekoplan-planen.shop/media/1d/85/75/1757671064/exquisite-background_(8).jpg?ts=1757671064');--twt-container-max-width: 1900;--twt-container-layout-margin-top-bottom: 30;--twt-container-layout-box-shadow: 0 0 30px;--twt-container-layout-box-shadow-color: rgba(0, 0, 0, 0.3);--twt-container-padding-left-right: 10;--twt-container-main-margin-top: 20;--twt-container-main-margin-bottom: 40;--twt-container-main-padding-phone-xs: 8;--twt-container-main-padding-phone: 15;--twt-container-main-padding-tablet: 20;--twt-container-main-padding: 30;--twt-container-main-border-color: #ffffff;--twt-container-main-background-color: #ffffff;--twt-color-primary-button: var(--twt-color-brand-primary-dark);--twt-color-secondary-button: var(--sw-color-brand-secondary);--twt-color-light-button: #f9f9f9;--twt-dropdown-color: #000000;--twt-dropdown-link-color: #000000;--twt-dropdown-link-color-hover: var(--sw-color-brand-primary);--twt-dropdown-border-color: #e0e0e0;--twt-dropdown-background-color: #ffffff;--twt-dropdown-box-shadow-type: 1;--twt-forms-layout-type: 2;--twt-forms-input-color: #222222;--twt-forms-input-color-hover: var(--sw-color-brand-primary);--twt-forms-input-focus-color: var(--sw-color-brand-primary);--twt-forms-input-border-color: #cccccc;--twt-forms-input-border-color-hover: var(--sw-color-brand-primary);--twt-forms-input-focus-border-color: var(--sw-color-brand-primary);--twt-forms-input-background-color: #fafafa;--twt-forms-input-focus-background-color: #e7e7e7;--twt-forms-input-placeholder-color: #8e8e8e;--twt-forms-label-color: #515151;--twt-forms-check-input-background-color: #cccccc;--twt-forms-check-input-checked-background-color: var(--sw-color-brand-primary);--twt-forms-input-font-size: 15;--twt-forms-label-font-size: 14;--twt-modal-backdrop-color: rgba(0, 0, 0, 0.5);--twt-modal-backdrop-effect-blur: 0;--twt-product-review-point-color: #fedc70;--twt-product-review-point-blank-color: #bcc1c7;--twt-table-body-color: #333333;--twt-table-body-border-color: #eeeeee;--twt-table-body-background-color: transparent;--twt-table-accent-background-color: transparent;--twt-table-hover-color: var(--twt-table-body-color);--twt-table-hover-background-color: rgba(0, 0, 0, 0.075);--twt-table-active-background-color: var(--twt-table-hover-background-color);--twt-table-head-color: #ffffff;--twt-table-head-background-color: #333333;--twt-table-dark-color: #ffffff;--twt-table-dark-border-color: #5b6770;--twt-table-dark-background-color: #4a545b;--twt-table-dark-accent-background-color: rgba(255, 255, 255, 0.05);--twt-table-dark-hover-color: var(--twt-table-dark-color);--twt-table-dark-hover-background-color: rgba(255, 255, 255, 0.075);--twt-table-border-color: #dddddd;--twt-table-body-border-bottom-color: rgba(0, 0, 0, 0);--twt-table-head-border-bottom-color: var(--twt-table-body-border-color);--twt-table-dark-head-border-bottom-color: var(--twt-table-dark-border-color);--twt-header-type: 4;--twt-header-margin-top: 5;--twt-header-padding-top: 5;--twt-header-padding-bottom: 15;--twt-header-width: 1;--twt-header-height: 40;--twt-custom-header-nav-max-width: 1200;--twt-header-actions-background-color: rgba(255, 255, 255, 0);--twt-header-background-image-show: 2;--twt-header-background-image-size: auto;--twt-header-background-image-position: left top;--twt-header-background-image-repeat: repeat;--twt-header-background-image-attachment: fixed;--twt-header-background-image: url('https://www.tekoplan-planen.shop/media/a6/f2/54/1667310908/exquisite-background-footer.jpg?ts=1667310908');--twt-header-dropdown-font-size: 14;--twt-header-dropdown-color: #111111;--twt-header-dropdown-color-hover: var(--sw-color-brand-primary);
107--twt-header-dropdown-border-color: #e0e0e0;--twt-header-dropdown-background-color: #ffffff;--twt-header-logo-type: 1;--twt-header-logo-width: 360;--twt-header-logo-height: auto;--twt-header-logo-margin-top: 0;--twt-header-logo-hover-type: 2;--twt-textlogo-fill: #333333;--twt-textlogo-font-size: 24;--twt-textlogo-font-weight: bold;--twt-header-top-bar-show: 2;--twt-header-top-bar-width: 0;--twt-header-top-bar-color: #ffffff;--twt-header-top-bar-color-hover: #cccccc;--twt-header-top-bar-color-hotline: #555555;--twt-header-top-bar-border-color: transparent;--twt-header-top-bar-background-color: #000;--twt-header-top-bar-font-size: 14;--twt-header-top-bar-line-height: 40;--twt-header-top-bar-justify-content: flex-end;--twt-header-top-bar-icon-font-size: 1;--twt-header-top-bar-hotline-show: 1;--twt-header-top-bar-hotline-label-show: 2;--twt-header-top-bar-languages-menu-show: 2;--twt-header-top-bar-languages-menu-text-show: 2;--twt-languages-menu-additional-flags: 1;--twt-languages-menu-additional-flags-extended: 1;--twt-languages-menu-shopware-language-pack: 1;--twt-header-top-bar-currencies-menu-show: 2;--twt-header-top-bar-currencies-menu-text-show: 2;--twt-header-top-bar-service-menu-show: 2;--twt-header-top-bar-service-menu-text-show: 2;--twt-header-search-show: 2;--twt-header-search-type: 2;--twt-header-search-input-corner-type: 1;--twt-header-search-input-border-radius: 10;--twt-header-search-input-color: #000000;--twt-header-search-input-border-color: #ffffff;--twt-header-search-input-background-color: #ffffff;--twt-header-search-btn-icon-color: #ffffff;--twt-header-search-btn-border-color: var(--sw-color-brand-primary);--twt-header-search-btn-background-color: var(--sw-color-brand-primary);--twt-header-search-text-align: left;--twt-header-search-max-width: 500;--twt-header-search-width-desktop: 800;--twt-header-search-flyout-container-width: 1;--twt-header-search-flyout-max-width: 500;--twt-header-search-flyout-max-width-desktop: 100%;--twt-header-search-flyout-padding: 15;--twt-header-phone-search-flyout-background-color: #111111;--twt-header-search-flyout-background-color: #000000;--twt-header-search-fullscreen-backdrop-color: rgba(0, 0, 0, 0.9);--twt-header-search-fullscreen-backdrop-effect-blur: 0;--twt-header-actions-btn-text-show: 1;--twt-header-actions-btn-icon-position: 1;--twt-header-actions-btn-corner-type: 2;--twt-header-actions-btn-font-size: 14;--twt-header-actions-btn-font-weight: normal;--twt-header-actions-btn-line-height: 40;--twt-header-actions-btn-icon-font-size: 22;--twt-header-actions-btn-color: #ffffff;--twt-header-actions-btn-color-hover: #cccccc;--twt-header-actions-btn-icon-color: #ffffff;--twt-header-actions-btn-icon-color-hover: #cccccc;--twt-header-actions-btn-border-color: transparent;--twt-header-actions-btn-border-color-hover: transparent;--twt-header-actions-btn-background-color: transparent;--twt-header-actions-btn-background-color-hover: transparent;--twt-header-actions-wishlist-btn-badge-background-color: var(--sw-color-brand-primary);--twt-header-actions-account-menu-btn-badge-show: 1;--twt-header-actions-account-menu-btn-badge-background-color: var(--sw-color-brand-primary);--twt-header-actions-cart-btn-total-show: 3;--twt-header-actions-cart-btn-badge-show: 3;--twt-header-actions-cart-btn-text-show: 1;--twt-header-actions-cart-btn-separator-show: 1;--twt-header-actions-cart-btn-font-weight: normal;--twt-header-actions-cart-btn-color: #ffffff;--twt-header-actions-cart-btn-color-hover: #cccccc;--twt-header-actions-cart-btn-icon-color: #ffffff;--twt-header-actions-cart-btn-icon-color-hover: #cccccc;--twt-header-actions-cart-btn-border-color: transparent;--twt-header-actions-cart-btn-border-color-hover: transparent;--twt-header-actions-cart-btn-separator-border-color: #e4e7ea;--twt-header-actions-cart-btn-background-color: transparent;--twt-header-actions-cart-btn-background-color-hover: transparent;--twt-header-actions-cart-btn-badge-background-color: var(--sw-color-brand-primary);--twt-nav-main-show: 2;--twt-nav-main-home-link-show: 2;--twt-nav-main-home-link: 2;--twt-nav-main-arrows-show: 2;--twt-nav-main-hover-type: 1;--twt-nav-main-height: 60;--twt-nav-main-padding: 16;--twt-nav-main-padding-bottom: 0;--twt-nav-main-margin-left: 0;--twt-nav-main-margin-right: 0;--twt-nav-main-width: 0;--twt-nav-main-background-color: transparent;--twt-nav-main-border-bottom-color: var(--sw-color-brand-primary);--twt-nav-main-border-bottom-color-hover: var(--sw-color-brand-primary);--twt-nav-main-border: transparent;--twt-nav-main-font-family: 2;--twt-nav-main-font-size: 21;--twt-nav-main-font-weight: bold;--twt-nav-main-font-weight-active: bold;--twt-nav-main-justify-content: center;--twt-nav-main-text-transform: uppercase;--twt-nav-main-home-link-color: #ffffff;--twt-nav-main-home-link-color-hover: var(--sw-color-brand-primary);--twt-nav-main-home-link-color-active: var(--sw-color-brand-primary);--twt-nav-main-color: #ffffff;--twt-nav-main-color-hover: var(--sw-color-brand-primary);--twt-nav-main-color-active: var(--sw-color-brand-primary);--twt-nav-main-icon-color: #ffffff;--twt-nav-main-icon-color-hover: var(--sw-color-brand-primary);--twt-nav-main-icon-color-active: var(--sw-color-brand-primary);--twt-nav-main-link-background-color: rgba(255, 255, 255, 0);--twt-nav-main-background-color-hover: rgba(0, 0, 0, 0.97);--twt-nav-main-background-color-active: transparent;--twt-nav-main-link-highlighted-color: #ef2f3c;--twt-nav-main-link-highlighted-color-hover: #feecee;--twt-nav-main-link-highlighted-color-active: #ef2f3c;--twt-nav-main-link-highlighted-icon-color: #ef2f3c;--twt-nav-main-link-highlighted-icon-color-hover: #feecee;--twt-nav-main-link-highlighted-icon-color-active: #ef2f3c;--twt-nav-main-link-highlighted-background-color: rgba(255, 255, 255, 0);--twt-nav-main-link-highlighted-background-color-hover: #ef2f3c;--twt-nav-main-link-highlighted-background-color-active: #ffffff;--twt-nav-main-flyout: 2;--twt-nav-main-max-depth: 3;--twt-nav-main-flyout-sizing-mode: 4;--twt-nav-main-flyout-width: 1360px;--twt-nav-main-flyout-style: 2;--twt-nav-main-flyout-animation: 3;--twt-nav-main-flyout-categories-margin-left: 10;--twt-nav-main-flyout-categories-color: #ffffff;--twt-nav-main-flyout-categories-color-hover: var(--sw-color-brand-primary);--twt-nav-main-flyout-categories-color-active: var(--sw-color-brand-primary);--twt-nav-main-flyout-categories-icon-color: #ffffff;--twt-nav-main-flyout-background-color: rgba(0, 0, 0, 0.97);--twt-nav-main-flyout-seperator-color: #bcc1c7;--twt-nav-main-flyout-font-family: 1;--twt-nav-main-flyout-font-size: 16;
107--twt-nav-main-flyout-font-weight: normal;--twt-nav-main-flyout-text-transform: none;--twt-nav-main-flyout-level1-font-family: 1;--twt-nav-main-flyout-level1-font-size: 16;--twt-nav-main-flyout-level1-font-weight: normal;--twt-nav-main-flyout-level1-text-transform: none;--twt-nav-main-flyout-level2-font-family: 1;--twt-nav-main-flyout-level2-font-size: 16;--twt-nav-main-flyout-level2-font-weight: normal;--twt-nav-main-flyout-level2-text-transform: none;--twt-nav-main-flyout-bar-show: 2;--twt-nav-main-flyout-bar-padding-top-bottom: 15;--twt-nav-main-flyout-bar-padding-left-right: 15;--twt-nav-main-flyout-bar-color: #cccccc;--twt-nav-main-flyout-bar-color-hover: var(--sw-color-brand-primary);--twt-nav-main-flyout-bar-background-color: #111111;--twt-nav-main-flyout-close-btn-padding: 15;--twt-sticky-nav-main-show: 2;--twt-sticky-nav-main-type: 1;--twt-sticky-nav-main-scroll-top: 0;--twt-sticky-nav-main-breakpoint: 6;--twt-sticky-nav-main-height: 50;--twt-sticky-nav-main-justify-content: center;--twt-sticky-nav-main-toggle: 1;--twt-sticky-nav-main-cart-show: 2;--twt-sticky-nav-main-search-show: 1;--twt-sticky-nav-main-background-color: #111111;--twt-sticky-nav-main-logo-show: 2;--twt-sticky-nav-main-logo-width: 80;--twt-sticky-nav-main-logo-height: auto;--twt-sticky-nav-main-logo-margin-right: 20;--twt-header-minimal-fixed: 1;--twt-header-minimal-height: 90;--twt-header-minimal-color: #cccccc;--twt-header-minimal-link-color: #cccccc;--twt-header-minimal-link-color-hover: #ffffff;--twt-header-minimal-border-bottom-color: rgba(0, 0, 0, 0);--twt-header-minimal-background-color: rgba(0, 0, 0, 0);--twt-header-minimal-home-btn-color: #cccccc;--twt-header-minimal-home-btn-color-hover: #ffffff;--twt-header-minimal-home-btn-border-color: rgba(0, 0, 0, 0);--twt-header-minimal-home-btn-border-color-hover: rgba(0, 0, 0, 0);--twt-header-minimal-home-btn-background-color: #111111;--twt-header-minimal-home-btn-background-color-hover: #111111;--twt-header-phone-type: 1;--twt-header-logo-max-width-mobile: 160;--twt-header-height-mobile: 50;--twt-header-phone-fixed: 2;--twt-header-phone-background-color: #111111;--twt-header-phone-btn-color: #ffffff;--twt-header-phone-btn-color-hover: var(--sw-color-brand-primary);--twt-header-phone-btn-icon-color: #ffffff;--twt-header-phone-btn-icon-color-hover: var(--sw-color-brand-primary);--twt-header-phone-btn-border-color: #111111;--twt-header-phone-btn-border-color-hover: #111111;--twt-header-phone-btn-background-color: #111111;--twt-header-phone-btn-background-color-hover: #111111;--twt-header-phone-nav-type: 1;--twt-header-phone-nav-height: 70;--twt-header-phone-logo-position: center;--twt-header-phone-nav-background-color: #ffffff;--twt-header-phone-nav-box-shadow: 0 0 20px;--twt-header-phone-nav-box-shadow-color: rgba(0, 0, 0, 0.1);--twt-header-phone-btn-corner-type: 3;--twt-header-phone-btn-home: 1;--twt-header-phone-btn-home-order: 100;--twt-header-phone-btn-navigation-order: 200;--twt-header-phone-btn-search-order: 300;--twt-header-phone-btn-cart-order: 400;--twt-header-phone-btn-wishlist-order: 500;--twt-header-phone-btn-account-order: 600;--twt-header-phone-cart-btn-highlighting: 2;--twt-header-phone-search-flyout-position: 2;--twt-header-phone-nav-main-toggle-label-show: 2;--twt-shopping-experiences-header-position: 2;--twt-footer-margin-top: 20;--twt-footer-padding-top: 0;--twt-footer-padding-bottom: 0;--twt-footer-padding: 0;--twt-footer-background-color: #ffffff;--twt-footer-background-image-show: 2;--twt-footer-background-image-size: cover;--twt-footer-background-image-position: left top;--twt-footer-background-image-repeat: repeat;--twt-footer-background-image-attachment: fixed;--twt-footer-background-image: url('https://www.tekoplan-planen.shop/media/29/db/b2/1757671064/exquisite-background-footer_(8).jpg?ts=1757671064');--twt-footer-column-font-family: 1;--twt-footer-column-font-size: 16;--twt-footer-column-headline-font-size: 18;
107--twt-footer-column-headline-font-weight: bold;--twt-footer-column-headline-text-transform: none;--twt-footer-column-headline-link-underline: 1;--twt-footer-grid-columns-tablet: 4;--twt-footer-grid-columns: 3;--twt-footer-width-columns-top: 2;--twt-footer-upper-section-margin-bottom: 0;--twt-footer-columns-top-padding-top: 20;--twt-footer-columns-top-padding-right: 1;--twt-footer-columns-top-padding-bottom: 1;--twt-footer-columns-top-padding-left: 1;--twt-footer-columns-top-justify-content: space-around;--twt-footer-column-top-color: #ffffff;--twt-footer-column-top-link-color: #ffffff;--twt-footer-column-top-link-color-hover: var(--sw-color-brand-primary);--twt-footer-columns-top-background-color: #e00000;--twt-footer-column-top-headline-color: var(--sw-color-brand-primary);--twt-footer-column-top-headline-border-color: #050505;--twt-footer-upper-section-background-image-show: 2;--twt-footer-upper-section-background-image-size: auto;--twt-footer-upper-section-background-image-position: left top;--twt-footer-upper-section-background-image-repeat: repeat;--twt-footer-upper-section-background-image-attachment: fixed;--twt-footer-upper-section-background-image: url('');--twt-footer-column-top-text-align: center;--twt-footer-width: 1;--twt-footer-main-section-margin-bottom: 0;--twt-footer-columns-padding-top: 20;--twt-footer-columns-padding-right: 1;--twt-footer-columns-padding-bottom: 1;--twt-footer-columns-padding-left: 1;--twt-footer-justify-content: space-between;--twt-footer-column-color: #fefefe;--twt-footer-column-link-color: #ffffff;--twt-footer-column-link-color-hover: var(--sw-color-brand-primary);--twt-footer-columns-background-color: rgba(0, 0, 0, 0);--twt-footer-column-headline-color: var(--sw-color-brand-primary);--twt-footer-column-headline-border-color: #ffffff;--twt-footer-main-section-background-image-show: 2;--twt-footer-main-section-background-image-size: contain;--twt-footer-main-section-background-image-position: left top;--twt-footer-main-section-background-image-repeat: repeat;--twt-footer-main-section-background-image-attachment: fixed;--twt-footer-column-text-align: left;--twt-footer-width-columns-bottom: 2;--twt-footer-lower-section-margin-bottom: 0;--twt-footer-columns-bottom-padding-top: 20;--twt-footer-columns-bottom-padding-right: 1;--twt-footer-columns-bottom-padding-bottom: 1;--twt-footer-columns-bottom-padding-left: 1;--twt-footer-columns-bottom-justify-content: space-around;--twt-footer-column-bottom-color: #ffffff;--twt-footer-column-bottom-link-color: #ffffff;--twt-footer-column-bottom-link-color-hover: #cccccc;--twt-footer-columns-bottom-background-color: #e00000;--twt-footer-column-bottom-headline-color: var(--sw-color-brand-primary);--twt-footer-column-bottom-headline-border-color: #050505;--twt-footer-lower-section-background-image-show: 2;--twt-footer-lower-section-background-image-size: auto;--twt-footer-lower-section-background-image-position: left top;--twt-footer-lower-section-background-image-repeat: repeat;--twt-footer-lower-section-background-image-attachment: fixed;--twt-footer-lower-section-background-image: url('');--twt-footer-column-bottom-text-align: center;--twt-footer-element-1: about;--twt-footer-element-1-toggle: 3;--twt-footer-element-1-newcol: 3;--twt-footer-element-1-position: 1;--twt-footer-element-1-order: 100;--twt-footer-element-2: footernav;--twt-footer-element-2-toggle: 3;--twt-footer-element-2-newcol: 1;--twt-footer-element-2-position: 1;--twt-footer-element-2-order: 200;--twt-footer-element-3: hotline;--twt-footer-element-3-toggle: 3;--twt-footer-element-3-newcol: 1;--twt-footer-element-3-position: 1;--twt-footer-element-3-order: 300;--twt-footer-element-4: benefits;--twt-footer-element-4-toggle: 3;--twt-footer-element-4-newcol: 1;--twt-footer-element-4-position: 1;--twt-footer-element-4-order: 400;--twt-footer-element-5: paymentshipping;--twt-footer-element-5-toggle: 3;--twt-footer-element-5-newcol: 1;--twt-footer-element-5-position: 1;--twt-footer-element-5-order: 500;--twt-footer-element-6: newsletter;--twt-footer-element-6-toggle: 3;--twt-footer-element-6-newcol: 3;--twt-footer-element-6-position: 2;--twt-footer-element-6-order: 600;--twt-footer-element-7: awards;--twt-footer-element-7-toggle: 3;--twt-footer-element-7-newcol: 1;--twt-footer-element-7-position: 1;--twt-footer-element-7-order: 700;--twt-footer-element-8: communities;--twt-footer-element-8-toggle: 3;--twt-footer-element-8-newcol: 2;--twt-footer-element-8-position: 3;--twt-footer-element-8-order: 800;--twt-footer-element-9: none;--twt-footer-element-9-toggle: 3;--twt-footer-element-9-newcol: 1;--twt-footer-element-9-position: 1;--twt-footer-element-9-order: 900;--twt-footer-element-10: none;--twt-footer-element-10-toggle: 3;--twt-footer-element-10-newcol: 1;--twt-footer-element-10-position: 1;--twt-footer-element-10-order: 1000;--twt-footer-element-11: none;--twt-footer-element-11-toggle: 3;--twt-footer-element-11-newcol: 1;--twt-footer-element-11-position: 2;--twt-footer-element-11-order: 1100;--twt-footer-minimal-color: #cccccc;--twt-footer-minimal-link-color: #cccccc;--twt-footer-minimal-background-color: rgba(0, 0, 0, 0);--twt-footer-minimal-service-menu-link-color: #cccccc;--twt-footer-minimal-copyright-border-top-color: rgba(0, 0, 0, 0);--twt-footer-minimal-font-size: 14;--twt-footer-logos-show: none;--twt-footer-service-menu-show: 5;--twt-footer-bottom-element-1: none;--twt-footer-bottom-color: #cccccc;--twt-footer-bottom-link-color: #cccccc;--twt-footer-bottom-link-color-hover: #ffffff;--twt-footer-bottom-background-color: transparent;--twt-footer-bottom-background-image-show: 2;--twt-footer-bottom-background-image-size: auto;--twt-footer-bottom-background-image-position: left top;--twt-footer-bottom-background-image-repeat: repeat;--twt-footer-bottom-background-image-attachment: fixed;--twt-footer-bottom-background-image: url('');--twt-footer-bottom-font-size: 14;--twt-breadcrumb-show-home: 1;--twt-breadcrumb-show-cms-shop-pages: 1;--twt-breadcrumb-show-cms-landing-pages: 1;--twt-breadcrumb-show-cms-category-pages: 1;--twt-breadcrumb-show-cms-product-pages: 1;--twt-breadcrumb-style: 1;--twt-breadcrumb-separator-style: 1;--twt-breadcrumb-further-information: 1;--twt-breadcrumb-links-underline: 1;--twt-breadcrumb-text-color: #444444;--twt-breadcrumb-divider-color: #444444;--twt-breadcrumb-link-color: #444444;--twt-breadcrumb-link-active-color: var(--sw-color-brand-primary);--twt-breadcrumb-buttons-border-color: #bcc1c7;--twt-breadcrumb-buttons-background-color: #eeeeee;--twt-breadcrumb-buttons-border-color-active: var(--sw-color-brand-primary);--twt-breadcrumb-buttons-background-color-active: var(--sw-color-brand-primary);--twt-breadcrumb-buttons-corner-type: 2;--twt-breadcrumb-buttons-border-show: 2;--twt-breadcrumb-buttons-separator-show: 1;--twt-breadcrumb-list-corner-type: 2;--twt-breadcrumb-border-color-list: #bcc1c7;--twt-breadcrumb-background-color-list: #eeeeee;--twt-breadcrumb-container-styling: 1;--twt-breadcrumb-container-corner-type: 2;--twt-breadcrumb-width: 1;--twt-breadcrumb-margin-top: 10;--twt-breadcrumb-margin-bottom: 10;--twt-breadcrumb-padding-top-bottom: 1;--twt-breadcrumb-padding-left-right: 1;--twt-breadcrumb-justify-content: flex-start;--twt-breadcrumb-border-color: rgba(0, 0, 0, 0);--twt-breadcrumb-border-top-color: rgba(0, 0, 0, 0);--twt-breadcrumb-border-bottom-color: rgba(0, 0, 0, 0);--twt-breadcrumb-background-color: rgba(0, 0, 0, 0);--twt-cookie-permission-show: 2;--twt-cookie-permission-position: 1;--twt-cookie-permission-padding: 10;
107--twt-cookie-permission-box-shadow: 0 0 30px;--twt-cookie-permission-box-shadow-color: rgba(0, 0, 0, 0.2);--twt-cookie-permission-overlay-color: rgba(0, 0, 0, 0.5);--twt-cookie-permission-overlay-effect-blur: 0;--twt-cookie-permission-top: 40;--twt-cookie-permission-left: 25;--twt-cookie-permission-bottom: 40;--twt-cookie-permission-right: 25;--twt-cookie-permission-width: 1;--twt-cookie-permission-max-width: 260;--twt-cookie-permission-color: #555555;--twt-cookie-permission-border-color: #cccccc;--twt-cookie-permission-background-color: #ffffff;--twt-cookie-permission-deny-btn-background-color: var(--sw-border-color);--twt-cookie-permission-configuration-btn-background-color: var(--sw-color-brand-secondary);--twt-cookie-permission-accept-all-btn-background-color: var(--sw-color-brand-primary);--twt-offcanvas-layout-type: 1;--twt-offcanvas-margin: 10;--twt-offcanvas-border-radius: 3;--twt-offcanvas-backdrop-color: rgba(0, 0, 0, 0.5);--twt-offcanvas-backdrop-effect-blur: 0;--twt-offcanvas-nav-currencies-menu-text-show: 1;--twt-offcanvas-nav-languages-menu-text-show: 1;--twt-offcanvas-nav-service-menu-show: 1;--twt-offcanvas-nav-service-menu-icon-show: 2;--twt-offcanvas-nav-service-menu-text-show: 1;--twt-offcanvas-nav-dropdown-coloration: 1;--twt-pagination-style: 1;--twt-pagination-color: var(--sw-color-brand-primary);--twt-pagination-border-color: #bcc1c7;--twt-pagination-background-color: #ffffff;--twt-pagination-hover-border-color: #bcc1c7;--twt-pagination-hover-background-color: #eeeeee;--twt-pagination-active-color: #ffffff;--twt-pagination-active-border-color: var(--sw-color-brand-primary);--twt-pagination-active-background-color: var(--sw-color-brand-primary);--twt-pagination-disabled-color: #798490;--twt-pagination-disabled-border-color: #bcc1c7;--twt-pagination-disabled-background-color: #eeeeee;--twt-pagination-corner-type: 2;--twt-pagination-buttons-corner-type: 2;--twt-product-badges-corner-type: 3;--twt-product-badges-font-size: 16;--twt-product-badges-stock-badge-mode: 1;--twt-product-badges-stock-badge-coloration: 1;--twt-product-badges-stock-badge-background-color: #f1c40f;--twt-product-badges-stock-badge-icon-show: 1;--twt-product-badges-sold-badge-coloration: 1;--twt-product-badges-sold-badge-background-color: #0070e0;--twt-product-badges-sold-badge-icon-show: 1;--twt-product-badges-shipping-free-badge-coloration: 1;--twt-product-badges-shipping-free-badge-background-color: #4aa3df;--twt-product-badges-shipping-free-badge-icon-show: 1;--twt-product-badges-discount-badge-type: 1;--twt-product-badges-discount-badge-round: 1;--twt-product-badges-discount-badge-coloration: 1;--twt-product-badges-discount-badge-background-color: var(--sw-color-brand-primary);--twt-product-badges-topseller-badge-coloration: 1;--twt-product-badges-topseller-badge-background-color: #f1c40f;--twt-product-badges-topseller-badge-icon-show: 1;--twt-product-badges-new-badge-coloration: 1;--twt-product-badges-new-badge-background-color: #2ecc71;--twt-product-badges-new-badge-icon-show: 1;--twt-scroll-up-corner-type: 2;--twt-scroll-up-box-shadow: 1px 2px 6px;--twt-scroll-up-box-shadow-color: rgba(0, 0, 0, 0.3);--twt-scroll-up-color: #ffffff;--twt-scroll-up-border-color: var(--sw-color-brand-primary);--twt-scroll-up-background-color: var(--sw-color-brand-primary);--twt-scroll-up-color-hover: #ffffff;--twt-scroll-up-border-color-hover: var(--sw-color-brand-primary);--twt-scroll-up-background-color-hover: var(--twt-color-brand-primary-dark);--twt-base-slider-controls-style: 1;--twt-base-slider-controls-corner-type: 2;--twt-base-slider-controls-hover-type: 2;--twt-base-slider-controls-color: var(--sw-color-brand-primary);--twt-base-slider-controls-border-color: transparent;--twt-base-slider-controls-background-color: transparent;--twt-base-slider-controls-color-hover: var(--sw-color-brand-secondary);--twt-base-slider-navigation-dots-style: 2;--twt-base-slider-navigation-dots-type: 3;--twt-base-slider-navigation-dots-hover-type: 1;--twt-base-slider-navigation-dots-alignment: 3;--twt-base-slider-navigation-dots-background-color: #bcc1c7;--twt-base-slider-navigation-dots-background-color-active: #798490;
107--twt-cms-section-boxed-padding-left-right: 20;--twt-cms-animations-name: none;--twt-cms-animations-name-headlines: none;--twt-cms-layout-adjustments-landing-pages: 1;--twt-cms-layout-adjustments-category-pages: 2;--twt-cms-layout-adjustments-product-pages: 2;--twt-cms-layout-adjustments-shop-pages: 2;--twt-cms-section-boxed-sidebar-combined: 2;--twt-cms-section-boxed-margin-top-home: 1;--twt-cms-section-boxed-margin-top: 20;--twt-cms-section-margin-bottom: 1;--twt-cms-section-padding-top-bottom: 20;--twt-cms-section-background-color: rgba(255, 255, 255, 0);--twt-cms-section-boxed-border-color: #000;--twt-cms-section-boxed-background-color: #000;--twt-image-slider-controls-individual: 1;--twt-image-slider-controls-style: 1;--twt-image-slider-controls-corner-type: 2;--twt-image-slider-controls-hover-type: 2;--twt-image-slider-controls-color: var(--sw-color-brand-primary);--twt-image-slider-controls-border-color: transparent;--twt-image-slider-controls-background-color: transparent;--twt-image-slider-controls-color-hover: var(--sw-color-brand-secondary);--twt-image-slider-navigation-dots-alignment: 3;--twt-gallery-slider-controls-individual: 2;--twt-gallery-slider-controls-style: 1;--twt-gallery-slider-controls-corner-type: 2;--twt-gallery-slider-controls-hover-type: 1;--twt-gallery-slider-controls-color: var(--sw-color-brand-primary);--twt-gallery-slider-controls-border-color: transparent;--twt-gallery-slider-controls-background-color: #ffffff;--twt-gallery-slider-controls-color-hover: var(--sw-color-brand-secondary);--twt-gallery-slider-navigation-dots-alignment: 3;--twt-cms-block-image-position-mobile: 1;--twt-cms-block-image-position-desktop: 1;--twt-cms-block-image-font-size: 16;--twt-cms-block-image-align-items: flex-start;--twt-product-slider-controls-individual: 1;--twt-product-slider-controls-style: 1;--twt-product-slider-controls-corner-type: 2;--twt-product-slider-controls-hover-type: 2;--twt-product-slider-controls-color: var(--sw-color-brand-primary);--twt-product-slider-controls-border-color: transparent;--twt-product-slider-controls-background-color: transparent;--twt-product-slider-controls-color-hover: var(--sw-color-brand-secondary);--twt-cms-element-product-box: rgba(0, 0, 0, 0);--twt-filter-panel-layout-type: 2;--twt-filter-panel-toggle-btn-color: #333333;--twt-filter-panel-toggle-btn-border-color: #eeeeee;--twt-filter-panel-toggle-btn-background-color: #ffffff;--twt-filter-panel-toggle-btn-color-hover: #000000;--twt-filter-panel-toggle-btn-border-color-hover: #666666;--twt-filter-panel-toggle-btn-background-color-hover: #eeeeee;--twt-filter-panel-toggle-btn-color-expanded: var(--sw-color-brand-primary);--twt-filter-panel-toggle-btn-border-color-expanded: var(--sw-color-brand-primary);--twt-filter-panel-toggle-btn-background-color-expanded: #ffffff;--twt-filter-panel-spacing-sidebar: 2;--twt-filter-panel-item-dropdown-border-color-sidebar: #eeeeee;--twt-filter-panel-item-dropdown-background-color-sidebar: #ffffff;--twt-filter-panel-content-padding-top: 1;--twt-filter-panel-content-padding-right: 20;--twt-filter-panel-content-padding-bottom: 1;--twt-filter-panel-content-padding-left: 20;--twt-filter-panel-content-border: 1px solid;--twt-filter-panel-content-border-color: rgba(255, 255, 255, 0);--twt-filter-panel-content-background-color: rgba(255, 255, 255, 0);--twt-filter-panel-item-dropdown-border-color: #eeeeee;--twt-filter-panel-item-dropdown-background-color: #ffffff;--twt-sidebar-filter-headline-show: 1;--twt-sidebar-filter-headline-margin-bottom: 0;--twt-category-navigation-layout-type: 2;--twt-category-navigation-box-background-color: #ffffff;--twt-category-navigation-box-border-color: rgba(255, 255, 255, 0);--twt-category-navigation-border-color: #eeeeee;--twt-category-navigation-accent-color: #000000;--twt-category-navigation-link-color: #111111;--twt-category-navigation-link-color-hover: #ffffff;--twt-category-navigation-link-color-active: var(--sw-color-brand-primary);--twt-category-navigation-link-background-color: #ffffff;--twt-category-navigation-link-background-color-hover: var(--sw-color-brand-primary);--twt-category-navigation-link-background-color-active: #ffffff;--twt-category-navigation-headline-show: 1;--twt-category-navigation-headline-margin-bottom: 0;--twt-listing-column-count-xs: 12;--twt-listing-column-count-sm: 6;--twt-listing-column-count-md: 6;--twt-listing-column-count-lg: 4;--twt-listing-column-count-xl: 3;--twt-listing-column-count-sidebar-xs: 12;--twt-listing-column-count-sidebar-sm: 6;--twt-listing-column-count-sidebar-md: 6;--twt-listing-column-count-sidebar-lg: 6;--twt-listing-column-count-sidebar-xl: 4;--twt-listing-column-count-xs-image: 12;--twt-listing-column-count-sm-image: 6;--twt-listing-column-count-md-image: 6;--twt-listing-column-count-lg-image: 4;--twt-listing-column-count-xl-image: 3;--twt-listing-column-count-sidebar-xs-image: 12;--twt-listing-column-count-sidebar-sm-image: 6;--twt-listing-column-count-sidebar-md-image: 6;--twt-listing-column-count-sidebar-lg-image: 6;--twt-listing-column-count-sidebar-xl-image: 4;--twt-listing-column-count-xs-minimal: 12;--twt-listing-column-count-sm-minimal: 6;--twt-listing-column-count-md-minimal: 6;--twt-listing-column-count-lg-minimal: 4;--twt-listing-column-count-xl-minimal: 3;--twt-listing-column-count-sidebar-xs-minimal: 12;--twt-listing-column-count-sidebar-sm-minimal: 6;--twt-listing-column-count-sidebar-md-minimal: 6;--twt-listing-column-count-sidebar-lg-minimal: 6;--twt-listing-column-count-sidebar-xl-minimal: 4;--twt-product-badges-stock-badge-show: 1;--twt-product-badges-sold-badge-show: 2;--twt-product-badges-shipping-free-badge-show: 2;--twt-product-badges-discount-badge-show: 2;--twt-product-badges-topseller-badge-show: 2;--twt-product-badges-new-badge-show: 2;--twt-product-box-layout-type: 2;--twt-product-box-hover-type: 2;
107--twt-product-box-hover-apply: 1;--twt-product-box-text-align: center;--twt-product-box-action-buy-btn-show: 2;--twt-product-box-action-buy-btn-hover: 4;--twt-product-box-compact-layout: 2;--twt-product-box-description-show: 2;--twt-product-box-description-breakpoint: sm;--twt-product-box-short-description-show: 1;--twt-product-box-variant-characteristics-show: 2;--twt-product-box-ordernumber-show: 1;--twt-product-box-manufacturer-show: 1;--twt-product-box-price-unit-show: 2;--twt-product-box-cheapest-price-show: 2;--twt-product-box-list-price-price-show: 2;--twt-product-box-list-price-percentage-show: 2;--twt-product-box-border-color: #000000;--twt-product-box-border-color-hover: #000000;--twt-product-box-background-color: #ffffff;--twt-product-box-background-color-hover: #ffffff;--twt-product-box-box-shadow-type: 11;--twt-product-box-box-shadow: 0 5px 10px;--twt-product-box-box-shadow-color: rgba(0, 0, 0, 0.075);--twt-product-box-box-shadow-type-hover: 13;--twt-product-box-box-shadow-hover: 0 10px 20px;--twt-product-box-box-shadow-color-hover: rgba(0, 0, 0, 0.15);--twt-product-box-image-layout-type: 1;--twt-product-box-image-hover-type: 3;--twt-product-box-image-height: 200;--twt-product-box-image-object-fit: standard;--twt-product-box-image-align-items: center;--twt-product-box-image-background-color: rgba(0, 0, 0, 0);--twt-product-box-wishlist-button-position: bottom;--twt-product-box-wishlist-button-color: #4a545b;--twt-product-box-wishlist-button-background-color: #f9f9f9;--twt-product-box-product-review-rating-corner-type: 2;--twt-product-box-product-review-rating-position: 1;--twt-product-box-product-name-line-clamp: 2;--twt-product-box-btn-buy-layout: 1;--twt-product-box-btn-buy-icon-position: 1;--twt-product-box-ordernumber-show-box-standard: 1;--twt-product-box-manufacturer-show-box-standard: 1;--twt-product-box-product-name-line-clamp-box-standard: 2;--twt-product-box-ordernumber-show-box-image: 1;--twt-product-box-manufacturer-show-box-image: 1;--twt-product-box-product-name-line-clamp-box-image: 2;--twt-product-box-ordernumber-show-box-minimal: 1;--twt-product-box-manufacturer-show-box-minimal: 1;--twt-product-box-product-name-line-clamp-box-minimal: 2;--twt-product-detail-sticky-gallery-buybox: 1;--twt-product-detail-properties-table-layout: 2;--twt-product-detail-properties-table-style: 2;--twt-product-detail-properties-table-width: 2;--twt-product-detail-slider-image-similar-note-show: 1;--twt-product-detail-gallery-fetchpriority: 1;--twt-product-detail-short-description-show: 1;--twt-product-detail-prices-table-layout: 2;--twt-product-detail-prices-table-style: 2;--twt-product-detail-prices-table-width: 2;--twt-product-detail-prices-table-head-color: #ffffff;--twt-product-detail-prices-table-head-background-color: var(--sw-color-brand-primary);--twt-product-detail-btn-buy-layout: 1;--twt-product-detail-btn-buy-icon-position: 1;--twt-product-detail-configurator-layout-type: 2;--twt-product-detail-configurator-option-color: #2b3136;--twt-product-detail-configurator-option-border-color: #adb5bd;--twt-product-detail-configurator-option-bg-color: transparent;--twt-product-detail-configurator-option-color-hover: var(--sw-color-brand-primary);--twt-product-detail-configurator-option-border-color-hover: var(--sw-color-brand-primary);--twt-product-detail-configurator-option-bg-color-hover: transparent;--twt-product-detail-configurator-option-color-active: #2b3136;--twt-product-detail-configurator-option-border-color-active: var(--sw-color-brand-primary);--twt-product-detail-configurator-option-bg-color-active: transparent;--twt-product-detail-configurator-option-color-disabled: #2b3136;--twt-product-detail-configurator-option-border-color-disabled: #adb5bd;--twt-product-detail-configurator-option-bg-color-disabled: transparent;--twt-product-detail-configurator-option-disabled-layout-type: 3;--twt-product-detail-configurator-option-disabled-strikethrough-color: #b3bfcc;--twt-product-detail-configurator-text-option-bordered: 2;--twt-product-detail-labels-style: 1;--twt-product-detail-labels-arrangement: 2;--twt-product-detail-labels-position: 2;--twt-product-detail-shipping-free-label-show: 1;--twt-product-detail-stock-label-show: 1;--twt-product-detail-stock-label-mode: 1;--twt-product-detail-stock-label-threshold-lowstock: 10;--twt-product-detail-stock-label-threshold-highstock: 500;--twt-product-detail-sold-label-show: 1;--twt-product-detail-notavailable-label-show: 1;--twt-product-detail-preorder-label-show: 1;--twt-product-detail-deliverytime-available-label-show: 1;--twt-product-detail-deliverytime-restock-label-show: 1;--twt-product-detail-badges: 1;--twt-product-detail-badges-position: 2;--twt-product-detail-badges-stock-badge-show: 1;--twt-product-detail-badges-sold-badge-show: 2;--twt-product-detail-badges-shipping-free-badge-show: 2;--twt-product-detail-badges-discount-badge-show: 2;--twt-product-detail-badges-topseller-badge-show: 2;--twt-product-detail-badges-new-badge-show: 2;--twt-product-detail-specifications-section-spacing: 5;--twt-product-detail-ordernumber-show: 2;--twt-product-detail-manufacturer-show: 1;--twt-product-detail-manufacturernumber-show: 1;--twt-product-detail-ean-show: 1;--twt-product-detail-custom-field-1-show: 2;--twt-product-detail-weight-show: 1;--twt-product-detail-length-show: 1;--twt-product-detail-width-show: 1;--twt-product-detail-height-show: 1;--twt-product-detail-custom-field-2-show: 2;--twt-product-detail-stock-show: 1;
107--twt-product-detail-availablestock-show: 1;--twt-product-detail-deliverytime-show: 1;--twt-product-detail-minpurchase-show: 1;--twt-product-detail-maxpurchase-show: 1;--twt-product-detail-custom-field-3-show: 1;--twt-product-detail-specifications-label-font-weight: bold;--twt-product-detail-specifications-label-transform: none;--twt-product-detail-specifications-text-font-weight: normal;--twt-product-detail-videos-max-width: 0;--twt-product-detail-product-videos-show-controls: 2;--twt-product-detail-product-videos-advanced-privacy: 2;--twt-product-detail-product-videos-need-confirmation: 1;--twt-product-detail-product-videos-placeholder-layout-type: 1;--twt-product-detail-product-videos-placeholder-background-color: #eeeeee;--twt-product-detail-product-videos-backdrop-background-color: rgba(255, 255, 255, 0.5);--twt-product-detail-product-videos-overlay-background-color: rgba(255, 255, 255, 0.5);--twt-product-detail-product-videos-placeholder-preview-image: url('');--twt-social-proofing-infotext-show: 1;--twt-social-proofing-threshold: 1000;--twt-social-proofing-visibility: 1;--twt-social-proofing-infotext-position: 2;--twt-social-proofing-infotext-icon-show: 2;--twt-social-proofing-infotext-color: var(--sw-color-brand-primary);--twt-social-proofing-infotext-icon-color: var(--sw-color-brand-primary);--twt-social-proofing-infotext-font-weight: bold;--twt-social-proofing-infotext-transform: none;--twt-product-detail-sharing-links-show: 1;--twt-product-detail-sharing-links-icon-style: 4;--twt-product-detail-sharing-links-icon-size: 45;--twt-product-detail-sharing-links-icon-coloration: 1;--twt-product-detail-sharing-links-icon-color: var(--sw-color-brand-primary);
107--twt-product-detail-sharing-links-headline-font-weight: normal;--twt-product-detail-sharing-links-headline-transform: none;--twt-product-detail-benefits-show: 1;--twt-product-detail-benefits-layout-type: 1;--twt-product-detail-benefits-content: 1;--twt-product-detail-benefits-position: 2;--twt-product-detail-benefits-headline-show: 2;--twt-product-detail-benefits-icon-color: var(--sw-color-success);--twt-product-detail-benefits-border-color: #eeeeee;--twt-product-detail-benefits-background-color: #fafafa;--twt-product-detail-payment-logos-show: 1;--twt-product-detail-payment-logos-position: 1;--twt-product-detail-payment-logos-headline-font-weight: normal;--twt-product-detail-payment-logos-headline-transform: none;--twt-product-detail-tabs-layout-type: 1;--twt-product-detail-tabs-background-border-bottom: 2px solid;--twt-product-detail-tabs-container-background-color: #fafafa;--twt-product-detail-tabs-color: #000000;--twt-product-detail-tabs-color-hover: var(--sw-color-brand-primary);--twt-product-detail-tabs-color-active: var(--sw-color-brand-primary);--twt-product-detail-tabs-border-bottom-color: #eeeeee;--twt-product-detail-tabs-border-bottom-color-hover: #cccccc;--twt-product-detail-tabs-border-bottom-color-active: var(--sw-color-brand-primary);--twt-product-detail-tabs-background-color: #ffffff;--twt-product-detail-tabs-background-color-hover: #ffffff;--twt-product-detail-tabs-background-color-active: #ffffff;--twt-product-detail-description-title-show: 2;--twt-product-detail-properties-headline-show: 1;--twt-product-detail-properties-info-show: 1;--twt-product-detail-product-videos-show: 2;--twt-product-detail-product-videos-position: 2;--twt-product-detail-datasheets-show: 1;--twt-product-detail-datasheets-preview-show: 2;--twt-product-detail-further-links-show: 1;--twt-product-detail-further-links-new-tab: 2;--twt-product-detail-downloads-show: 1;--twt-product-detail-comment-show: 1;--twt-product-detail-properties-position: 2;--twt-product-detail-tab-properties-title-show: 2;--twt-product-detail-tab-properties-info-show: 1;--twt-product-detail-tab-product-videos-show: 1;--twt-product-detail-tab-product-videos-headline-show: 2;--twt-product-detail-tab-datasheets-show: 1;--twt-product-detail-tab-datasheets-headline-show: 2;--twt-product-detail-tab-custom-content-show: 1;--twt-product-detail-tab-custom-content-headline-show: 2;--twt-product-detail-tab-manufacturer-show: 1;--twt-product-detail-tab-manufacturer-title-show: 2;--twt-product-detail-tab-manufacturer-logo-show: 2;--twt-product-detail-tab-manufacturer-related-links-subheadline-show: 2;--twt-product-detail-tab-manufacturer-link-products-show: 1;--twt-product-detail-tab-manufacturer-link-website-show: 2;--twt-product-detail-cross-selling-show: 2;--twt-payment-shipping-method-name-color: #111111;--twt-payment-shipping-method-description-color: #71767b;--twt-cms-layout-adjustments-login-pages: 2;--twt-cms-layout-adjustments-account-pages: 2;--twt-cms-layout-adjustments-checkout-pages: 2;--twt-checkout-register-structure: 2;--twt-confirmpage-container-layout: 2;--twt-cms-layout-adjustments-b2b-components: 1;--twt-sidebar-content-sticky: 1;--twt-sidebar-block-content-layout-type: 1;--twt-sidebar-block-upper-section-margin-top: 20;--twt-sidebar-block-upper-section-margin-bottom: 30;--twt-sidebar-block-lower-section-margin-top: 30;--twt-sidebar-block-lower-section-margin-bottom: 30;--twt-sidebar-block-content-color: #000000;--twt-sidebar-block-content-background-color: #ffffff;--twt-sidebar-block-container-padding-top: 0;--twt-sidebar-block-container-padding-right: 0;--twt-sidebar-block-container-padding-bottom: 0;--twt-sidebar-block-container-padding-left: 0;--twt-sidebar-block-headline-layout-type: 2;--twt-sidebar-block-headline-padding-top: 7;--twt-sidebar-block-headline-padding-bottom: 7;--twt-sidebar-block-headline-color: #ffffff;--twt-sidebar-block-headline-background-color: rgba(0, 0, 0, 0);--twt-sidebar-block-headline-font-family: 1;--twt-sidebar-block-headline-font-size: 16;
107--twt-sidebar-block-headline-font-weight: normal;--twt-sidebar-block-headline-text-transform: none;--twt-sidebar-element-1: none;--twt-sidebar-element-1-toggle: 1;--twt-sidebar-element-1-position: 2;--twt-sidebar-element-1-order: 100;--twt-sidebar-element-1-margin-top: 0;--twt-sidebar-element-1-margin-bottom: 0;--twt-sidebar-element-2: none;--twt-sidebar-element-2-toggle: 1;--twt-sidebar-element-2-position: 3;--twt-sidebar-element-2-order: 200;--twt-sidebar-element-2-margin-top: 0;--twt-sidebar-element-2-margin-bottom: 0;--twt-sidebar-element-3: none;--twt-sidebar-element-3-toggle: 1;--twt-sidebar-element-3-position: 3;--twt-sidebar-element-3-order: 300;--twt-sidebar-element-3-margin-top: 30;--twt-sidebar-element-3-margin-bottom: 0;--twt-footer-footernav-list-style: 2;--twt-footer-footernav-padding-left: 17;--twt-footer-footernav-link-color: #ffffff;--twt-footer-footernav-link-color-hover: var(--sw-color-brand-primary);--twt-footer-footernav-marker-color: #ffffff;--twt-footer-footernav-border-bottom-color: #000000;--twt-footer-footernav-text-transform: none;--twt-footer-footernav-link-underline: 1;--twt-widget-awards-image-max-width: 100;--twt-widget-awards-image-max-height: none;--twt-widget-awards-text-show: 1;--twt-widget-awards-standard-ssl: 2;--twt-widget-benefits-content-type: 1;--twt-widget-benefits-icons-show: 2;--twt-widget-benefits-content-max-items: 6;--twt-widget-benefits-font-size-item: 16;--twt-widget-benefits-font-size-icon: 16;--twt-widget-communities-layout-type: 1;--twt-widget-communities-icon-style: 4;--twt-widget-communities-icon-size: 45;--twt-widget-communities-additional-text-show: 2;--twt-widget-communities-label-show: 1;--twt-widget-communities-label-position: 1;--twt-widget-communities-link-nofollow: 2;--twt-widget-communities-icon-coloration: 2;--twt-widget-communities-icon-color: #000000;--twt-widget-communities-icon-coloration-sidebar: 2;--twt-widget-communities-icon-color-sidebar: var(--twt-widget-communities-icon-color);--twt-widget-communities-facebook: 2;--twt-widget-communities-instagram: 2;--twt-widget-communities-twitter: 1;--twt-widget-communities-x: 1;--twt-widget-communities-youtube: 1;--twt-widget-communities-vimeo: 1;--twt-widget-communities-twitch: 1;--twt-widget-communities-flickr: 1;--twt-widget-communities-pinterest: 1;--twt-widget-communities-tiktok: 1;--twt-widget-communities-spotify: 1;--twt-widget-communities-blogger: 1;--twt-widget-communities-blog: 1;--twt-widget-communities-whatsapp: 1;--twt-widget-communities-linkedin: 1;--twt-widget-communities-xing: 1;--twt-widget-communities-website: 1;--twt-widget-hotline-contact-form-show: 1;--twt-widget-hotline-font-size: 16;--twt-widget-hotline-font-size-phone-number: 20;--twt-widget-location-route-button-show: 1;--twt-widget-location-route-button-color: #333333;--twt-widget-location-route-button-color-hover: #111111;--twt-widget-location-route-button-border-color: #dddddd;--twt-widget-location-route-button-border-color-hover: #cccccc;--twt-widget-location-route-button-background-color: #dddddd;--twt-widget-location-route-button-background-color-hover: #cccccc;--twt-widget-newsletter-input-corner-type: 1;--twt-widget-newsletter-input-border-radius: 10;--twt-widget-newsletter-input-color: #333333;--twt-widget-newsletter-input-border-color: #ffffff;--twt-widget-newsletter-input-background-color: #ffffff;--twt-widget-newsletter-button-color: #111111;--twt-widget-newsletter-button-color-hover: var(--sw-color-brand-primary);--twt-widget-newsletter-button-border-color: #eeeeee;--twt-widget-newsletter-button-border-color-hover: #eeeeee;--twt-widget-newsletter-button-background-color: #ffffff;--twt-widget-newsletter-button-background-color-hover: #eeeeee;--twt-widget-newsletter-input-text-align: left;--twt-widget-payment-logo-max-height: 45;--twt-widget-payment-logo-corner-type: 1;--twt-widget-payment-logo-link: 2;--twt-widget-payment-logo-fallback-badge: 2;--twt-widget-payment-logo-coloration: 1;--twt-widget-payment-logo-fallback-badge-color: #333333;--twt-widget-payment-logo-border-color: #eeeeee;--twt-widget-payment-logo-fallback-badge-border-color: #eeeeee;--twt-widget-payment-logo-fallback-badge-background-color: #ffffff;--twt-widget-payment-logo-fallback-badge-font-size: 10;--twt-widget-payment-logo-fallback-badge-text-transform: none;
107--twt-widget-payment-logo-fallback-badge-font-weight: bold;--twt-widget-payment-logo-custom-image-1: url('https://www.tekoplan-planen.shop/media/d3/51/69/1667994205/twt-amazon-pay.svg?ts=1667994205');--twt-widget-payment-logo-custom-image-2: url('https://www.tekoplan-planen.shop/media/00/c1/e3/1667994227/twt-paypal.svg?ts=1667994227');--twt-widget-payment-logo-custom-image-3: url('https://www.tekoplan-planen.shop/media/0a/de/59/1667994240/twt-custom-invoice.svg?ts=1667994240');--twt-widget-shipping-logo-max-height: 45;--twt-widget-shipping-logo-corner-type: 1;--twt-widget-shipping-logo-link: 2;--twt-widget-shipping-logo-fallback-badge: 2;--twt-widget-shipping-logo-coloration: 1;--twt-widget-shipping-logo-fallback-badge-color: #333333;--twt-widget-shipping-logo-border-color: #eeeeee;--twt-widget-shipping-logo-fallback-badge-border-color: #eeeeee;--twt-widget-shipping-logo-fallback-badge-background-color: #ffffff;--twt-widget-shipping-logo-fallback-badge-font-size: 10;--twt-widget-shipping-logo-fallback-badge-text-transform: none;--twt-widget-shipping-logo-fallback-badge-font-weight: bold;--twt-widget-shipping-logo-custom-image-2: url('https://www.tekoplan-planen.shop/media/60/1e/a2/1667994292/twt-dhl.svg?ts=1667994292');--twt-widget-shipping-logo-custom-image-3: url('https://www.tekoplan-planen.shop/media/3d/79/26/1667994298/twt-dachser.svg?ts=1667994298');--twt-announcement-banner-show: 1;--twt-announcement-banner-closable: 1;--twt-announcement-banner-link: 2;--twt-announcement-banner-link-newtab: 1;--twt-announcement-banner-link-nofollow: 2;--twt-announcement-banner-color: #000000;--twt-announcement-banner-background-color: #333333;--twt-announcement-banner-font-size: 14;--twt-announcement-banner-text-transform: none;--twt-announcement-banner-font-weight: normal;--twt-checkout-steps-show: 1;--twt-checkout-steps-cart-show: 1;--twt-checkout-steps-style: 1;--twt-checkout-steps-icon-style: 1;--twt-checkout-steps-item-text-show: 5;--twt-checkout-steps-item-box-shadow-type: 1;--twt-checkout-steps-item-corner-type: 3;--twt-checkout-steps-item-border-radius: 10;--twt-checkout-steps-item-color: #000000;--twt-checkout-steps-item-color-active: #000000;--twt-checkout-steps-item-color-completed: #000000;--twt-checkout-steps-item-icon-color: #dddddd;--twt-checkout-steps-item-icon-color-active: #000000;--twt-checkout-steps-item-icon-color-completed: var(--sw-color-success);--twt-checkout-steps-item-border-color: #dddddd;--twt-checkout-steps-item-border-color-active: #000000;--twt-checkout-steps-item-border-color-completed: var(--sw-color-success);--twt-checkout-steps-item-background-color: #ffffff;--twt-checkout-steps-item-background-color-active: #ffffff;--twt-checkout-steps-item-background-color-completed: #ffffff;--twt-checkout-steps-item-seperator-color: #dddddd;--twt-checkout-steps-item-seperator-color-active: #000000;--twt-checkout-steps-item-seperator-color-completed: var(--sw-color-success);--twt-checkout-steps-item-font-size: 14;--twt-checkout-steps-item-text-transform: none;--twt-checkout-steps-item-font-weight: normal;--twt-custom-announcement-show: 1;--twt-custom-announcement-border-color: #ffe79a;--twt-custom-announcement-background-color: #fff3cd;--twt-custom-announcement-font-size: 14;--twt-floating-widget-show: 1;--twt-floating-widget-mobile: 1;--twt-floating-widget-position: 1;--twt-floating-widget-hover-type: 2;--twt-floating-widget-width: 400;--twt-floating-widget-height: 300;--twt-floating-widget-title-width: 200;--twt-floating-widget-title-height: 40;--twt-floating-widget-padding: 20;--twt-floating-widget-align-items: center;--twt-floating-widget-justify-content: center;--twt-floating-widget-side-bottom-distance: 20;--twt-floating-widget-side-bottom-distance-unit: 1;--twt-floating-widget-color: #333333;--twt-floating-widget-link-color: var(--sw-color-brand-primary);--twt-floating-widget-link-color-hover: var(--twt-color-brand-primary-dark);--twt-floating-widget-background-color: #ffffff;--twt-floating-widget-title-color: #ffffff;--twt-floating-widget-title-background-color: var(--sw-color-brand-primary);--twt-floating-widget-background-image: url('');--twt-floating-widget-background-image-object-fit: none;--twt-floating-widget-font-size: 16;--twt-floating-widget-title-font-size: 18;--twt-floating-widget-text-align: center;--twt-floating-widget-title-text-transform: none;--twt-hero-section-show-cms-category-pages: 1;--twt-hero-section-show-cms-shop-pages: 1;--twt-hero-section-pull-up: 1;--twt-hero-section-text-coloration: white;--twt-hero-section-text-align: left;--twt-hero-section-sizing-mode: 1;--twt-hero-section-content-max-width: 100%;--twt-hero-section-padding-top-sm: 170;--twt-hero-section-padding-top-lg: 210;--twt-hero-section-overlay-background-color: #000000;--twt-hero-section-overlay-opacity: 90;--twt-hero-section-background-image-attachment: fixed;--twt-hero-section-background-image-parallax: 1;--twt-hero-section-breadcrumb-show: 1;--twt-hero-section-breadcrumb-position: bottom;--twt-hero-section-breadcrumb-justify-content: flex-start;--twt-listing-subcategories-show: 1;--twt-listing-subcategories-show-cms-shop-pages: 1;--twt-listing-subcategories-layout: textBelow;--twt-listing-subcategories-justify-content: flex-start;--twt-listing-subcategories-display-mode: contain;--twt-listing-subcategories-image-width: 100%;--twt-listing-subcategories-image-height: 140px;--twt-listing-subcategories-image-min-height: 140px;--twt-listing-subcategories-image-max-height: 140px;--twt-listing-subcategories-color: var(--sw-text-color);--twt-listing-subcategories-color-hover: var(--sw-color-brand-primary);--twt-listing-subcategories-background-color: #ffffff;--twt-listing-subcategories-background-color-hover: #ffffff;--twt-listing-subcategories-border-color: var(--sw-border-color);--twt-listing-subcategories-border-color-hover: var(--sw-color-brand-primary);--twt-listing-subcategories-image-background-color: #eef2f5;--twt-listing-subcategories-font-family: 1;--twt-listing-subcategories-font-size: 16;--twt-listing-subcategories-font-weight: normal;--twt-listing-subcategories-text-transform: none;--twt-listing-subcategories-column-count-xs: 12;--twt-listing-subcategories-column-count-sm: 6;--twt-listing-subcategories-column-count-md: 6;--twt-listing-subcategories-column-count-lg: 4;--twt-listing-subcategories-column-count-xl: 3;--twt-listing-subcategories-column-count-xxl: 3;--twt-listing-subcategories-lazy-loading: eager;--twt-slideout-communities-show: 1;--twt-slideout-communities-style: 1;--twt-slideout-communities-icon-size: 36;--twt-slideout-communities-icon-coloration: 1;--twt-slideout-communities-icon-color: var(--sw-color-brand-primary);--twt-slideout-communities-color: #ffffff;--twt-slideout-communities-background-color: #eeeeee;--twt-usp-bar-header: 2;--twt-usp-bar-footer: 2;--twt-usp-bar-header-position: 1;--twt-usp-bar-footer-position: 1;--twt-usp-bar-header-layout: 1;--twt-usp-bar-footer-layout: 1;--twt-usp-bar-large-icons-subtitle: 1;--twt-usp-bar-widget-content: communities;--twt-usp-bar-header-width: 1;--twt-usp-bar-width: 1;--twt-usp-bar-height-small-icons: 36;--twt-usp-bar-height-large-icons: 110;--twt-usp-bar-small-icons-justify-content: space-between;--twt-usp-bar-large-icons-justify-content: space-around;--twt-usp-bar-header-color: #cccccc;--twt-usp-bar-header-icon-color: #cccccc;--twt-usp-bar-header-border-color: #000000;--twt-usp-bar-header-background-color: #000000;--twt-usp-bar-footer-color: #cccccc;--twt-usp-bar-footer-icon-color: #cccccc;--twt-usp-bar-footer-border-color: #000000;--twt-usp-bar-footer-background-color: #000000;--twt-usp-bar-font-family: 1;--twt-usp-bar-font-size: 14;
107--twt-usp-bar-font-weight: normal;--twt-usp-bar-font-weight-large: bold;--twt-usp-bar-text-transform: none;--twt-usp-bar-icon-size-small: 15;--twt-usp-bar-icon-size-large: 36;--twt-usp-bar-breakpoint-item-1: 3;--twt-usp-bar-breakpoint-item-2: 4;--twt-usp-bar-breakpoint-item-3: 5;--twt-usp-bar-breakpoint-item-4: 6;--twt-usp-bar-breakpoint-item-5: 1;--twt-usp-bar-breakpoint-item-6: 8;--twt-accessibility-underline-links: 2;--twt-skip-target-link-color: #000000;--twt-forms-input-btn-focus-color: var(--sw-color-brand-primary);--twt-skip-to-content-color: #333333;--twt-skip-to-content-background-color: #eeeeee;--twt-cms-hero-slider-autoplay: 1;--twt-custom-cms-spacing-classes: 3;--twt-custom-cms-spacing-classes-more: 1;--twt-custom-cms-image-decoration-classes: 2;--twt-custom-cms-image-hover-classes: 2;--twt-cms-animations-more: 1;--twt-custom-cms-column-padding-classes: 2;--twt-custom-cms-headline-classes: 2;--twt-custom-css-max-width-classes: 1;--twt-cms-block-cloumns-classes: 2;--twt-cms-block-grid-classes: 2;--twt-cms-hero-slider-css: 2;--twt-cms-text-teaser-css: 2;--twt-cms-text-teaser-decorated-css: 2;--twt-cms-button-teaser-css: 2;--twt-cms-call-to-action-css: 2;--twt-cms-hover-box-css: 2;--twt-cms-hover-teaser-css: 2;--twt-cms-image-teaser-css: 2;--twt-cms-hero-teaser-css: 2;--twt-cms-advanced-teaser-css: 2;--twt-cms-classic-teaser-css: 2;--twt-cms-modern-teaser-css: 2;--twt-cms-round-teaser-css: 2;--twt-cms-image-banner-css: 2;--twt-cms-parallax-banner-css: 2;--twt-cms-hero-banner-css: 2;--twt-cms-advanced-banner-css: 2;--twt-cms-image-text-layered-css: 2;--twt-cms-listing-subcategories-css: 2;--twt-cms-countdown-banner-css: 2;--twt-cms-discount-banner-css: 2;--twt-cms-testimonials-css: 2;--twt-jquery-load: 2;--twt-header-type-compatibility: 2;--twt-header-account-btn-compatibility: 2;--twt-header-cart-btn-compatibility: 2;--twt-header-wishlist-btn-compatibility: 2;--twt-nav-main-home-link-compatibility: 2;--twt-nav-main-menu-items-compatibility: 2;--twt-top-bar-compatibility: 2;--twt-product-badges-discount-badge-compatibility: 2;--twt-product-badges-topseller-badge-compatibility: 2;--twt-product-badges-new-badge-compatibility: 2;--twt-breadcrumb-compatibility: 2;--twt-product-box-image-compatibility: 2;--twt-product-detail-buy-widget-compatibility: 2;--twt-product-detail-reviews-tab-compatibility: 2;--twt-footer-type-compatibility: 2;--twt-footer-logos-compatibility: 2;--twt-quickview-show: 1;--twt-product-box-quantity-selection-show: 1;--twt-nav-main-dropdown-box-shadow-type: 6;--twt-nav-main-external-links-icon-show: 1;--twt-product-box-sold: 1;--twt-product-box-sold-style: 1;--twt-product-box-image-srcset-and-sizes: 2;--twt-product-image-resizing: 1;--twt-product-image-resizing-breakpoint: 3;--twt-custom-css-deprecated-classes: 1;--twt-custom-cms-box-shadow-classes: 2;--twt-filter-panel-item-color: #000000;--twt-filter-panel-item-border-color: #ffffff;--twt-filter-panel-item-background-color: #ffffff;--twt-filter-panel-item-toggle-color: var(--sw-color-brand-primary);--twt-filter-panel-item-toggle-border-color: #ffffff;--twt-filter-panel-item-toggle-background-color: #ffffff;--twt-filter-panel-content-filter-active-background-color: #ffffff;}
108                </style>
109        		                                                                                                <link rel="stylesheet"
110                          href="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/css/all.css?1791201311">
111                                                    
112
113	
114
115
116
117
118
119
120                <!-- Custom css file -->
121        <link rel="stylesheet" href="https://www.tekoplan-planen.shop/css/individual.css" crossorigin="anonymous">
122    
123        
124    
125            <!-- Custom css code -->
126    <style>.nav-main .main-navigation-link {
127  font-family: "Oswald",sans-serif;
128  font-size: 21px;
129  font-size: 1.1125rem;
130  font-weight: 700;
131  text-transform: uppercase;
132}
133.top-bar-nav-btn.btn {
134  color: #fff;
135  font-weight: 400;
136  padding: 0;
137  border: 0 none;
138}
139
140.pix-uploadtwo-outer {
141  display: none;
142}
143
144.twt-widget-paymentshipping .is-payment-logo img.footer-logo-image {
145  border: 1px solid #000;
146}
147
148.twt-is-cms-product-detail .cms-section-default.boxed .cms-block:not(.twt-cms-block-reset):not(.bg-color) {
149  background-color: #fff;
150}
151
152body {
153  color: #000;
154}
155
156/* Cookie Banner als mittige Box */
157
158html body .cookie-permission-container[style*="display: block"] {
159    position: fixed !important;
160    top: 50% !important;
161    left: 50% !important;
162    right: auto !important;
163    bottom: auto !important;
164
165    transform: translate(-50%, -50%) !important;
166
167    width: calc(100vw - 40px) !important;
168    max-width: 640px !important;
169    height: auto !important;
170
171    margin: 0 !important;
172    padding: 28px !important;
173
174    background: #ffffff !important;
175    color: #222222 !important;
176
177    border: 1px solid #d8d8d8 !important;
178    border-top: 5px solid #e00000 !important;
179    border-radius: 8px !important;
180
181    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45) !important;
182
183    z-index: 999999 !important;
184}
185
186/* innerer Bootstrap-Container */
187html body .cookie-permission-container > .container {
188    width: 100% !important;
189    max-width: none !important;
190    padding: 0 !important;
191    margin: 0 !important;
192}
193
194/* Bootstrap-Row */
195html body .cookie-permission-container .row {
196    display: flex !important;
197    flex-direction: column !important;
198    align-items: stretch !important;
199
200    margin: 0 !important;
201}
202
203/* Textbereich */
204html body .cookie-permission-container .cookie-permission-content {
205    width: 100% !important;
206    max-width: 100% !important;
207
208    flex: 0 0 auto !important;
209
210    padding: 0 0 22px 0 !important;
211    margin: 0 !important;
212
213    text-align: center !important;
214    font-size: 15px !important;
215    line-height: 1.6 !important;
216}
217
218/* Mehr Informationen */
219html body .cookie-permission-container .cookie-permission-content a {
220    color: #e00000 !important;
221    font-weight: 700 !important;
222    text-decoration: underline !important;
223}
224
225/* Button-Bereich */
226html body .cookie-permission-container .cookie-permission-actions {
227    width: 100% !important;
228    max-width: 100% !important;
229
230    flex: 0 0 auto !important;
231
232    display: flex !important;
233    justify-content: center !important;
234    align-items: stretch !important;
235
236    gap: 10px !important;
237
238    margin: 0 !important;
239    padding: 0 !important;
240}
241
242/* beide Wrapper */
243html body .cookie-permission-container .cookie-permission-button,
244html body .cookie-permission-container .js-cookie-configuration-button {
245    display: block !important;
246    margin: 0 !important;
247}
248
249/* Buttons */
250html body .cookie-permission-container .btn {
251    min-height: 46px !important;
252    padding: 10px 18px !important;
253
254    border-radius: 4px !important;
255
256    font-size: 13px !important;
257    font-weight: 700 !important;
258}
259
260/* technisch notwendige */
261html body .cookie-permission-container .cookie-permission-button .btn {
262    background: #dedede !important;
263    border-color: #dedede !important;
264    color: #222 !important;
265}
266
267/* konfigurieren */
268html body .cookie-permission-container .js-cookie-configuration-button .btn {
269    background: #070707 !important;
270    border-color: #070707 !important;
271    color: #ffffff !important;
272}
273
274html body .cookie-permission-container .js-cookie-configuration-button .btn:hover {
275    background: #e00000 !important;
276    border-color: #e00000 !important;
277}
278
279/* Mobile */
280@media (max-width: 767.98px) {
281    html body .cookie-permission-container[style*="display: block"] {
282        width: calc(100vw - 24px) !important;
283        max-width: none !important;
284
285        padding: 22px 18px !important;
286
287        max-height: calc(100vh - 24px) !important;
288        overflow-y: auto !important;
289    }
290
291    html body .cookie-permission-container .cookie-permission-actions {
292        flex-direction: column !important;
293    }
294
295    html body .cookie-permission-container .cookie-permission-button,
296    html body .cookie-permission-container .js-cookie-configuration-button,
297    html body .cookie-permission-container .btn {
298        width: 100% !important;
299    }
300}
301.product-box .product-action,
302.product-box:hover .product-action {
303    position: static !important;
304    top: auto !important;
305    right: auto !important;
306    bottom: auto !important;
307    left: auto !important;
308    transform: none !important;
309    margin-top: 12px !important;
310}
311
312.cms-element-text h1 {
313    color: #f2f2f2 !important;
314    opacity: 1 !important;
315}
316
317.product-delivery-information p.delivery-information {
318  margin-bottom: 2px;
319  display: none;
320}
321
322/* Produktaktion immer sichtbar und unterhalb des Preises */
323.product-box .product-action,
324.product-box:hover .product-action {
325    position: static !important;
326    top: auto !important;
327    right: auto !important;
328    bottom: auto !important;
329    left: auto !important;
330
331    transform: none !important;
332
333    display: block !important;
334    visibility: visible !important;
335    opacity: 1 !important;
336    pointer-events: auto !important;
337
338    height: auto !important;
339    max-height: none !important;
340
341    margin-top: 12px !important;
342}
343
344.msis-free-shipping {
345    color: #2f8d52 !important;
346    font-weight: 700 !important;
347}
348
349.msis-free-shipping::before {
350    content: "✓ ";
351}
352
353.msis-paypal-guest-headline {
354    margin: 22px 0 10px;
355}
356
357.msis-paypal-guest-headline__title {
358    font-family: "Oswald", sans-serif;
359    font-size: 20px;
360    line-height: 1.2;
361    font-weight: 700;
362    color: #222;
363    margin-bottom: 3px;
364}
365
366.msis-paypal-guest-headline__text {
367    font-size: 13px;
368    line-height: 1.4;
369    color: #666;
370    margin-bottom: 10px;
371}
372
373/* ========================================
374   Warenkorb Conversion Optimierung
375   ======================================== */
376
377/* Automatischen Rabatt kompakter darstellen */
378.is-act-cartpage .line-item-promotion.msis-fixed-promotion .line-item-info-img {
379    display: none !important;
380}
381
382.is-act-cartpage .line-item-promotion.msis-fixed-promotion .line-item-label {
383    color: #2f8d52 !important;
384    font-weight: 700 !important;
385}
386
387.is-act-cartpage .line-item-promotion.msis-fixed-promotion .line-item-label::before {
388    content: "✓ ";
389}
390
391.is-act-cartpage .line-item-promotion.msis-fixed-promotion .line-item-remove {
392    display: none !important;
393}
394
395.is-act-cartpage .line-item-promotion.msis-fixed-promotion {
396    padding-top: 6px !important;
397    padding-bottom: 6px !important;
398}
399
400
401/* Produktnummer-Eingabe zunächst einklappen */
402.is-act-cartpage .msis-cart-add-product-form {
403    display: none !important;
404    margin-top: 10px !important;
405}
406
407.is-act-cartpage .msis-cart-add-product-form.is-open {
408    display: block !important;
409}
410
411.is-act-cartpage .msis-cart-add-toggle {
412    appearance: none;
413    border: 0;
414    background: transparent;
415    padding: 0;
416    color: #e00000;
417    font-weight: 700;
418    font-size: 14px;
419    cursor: pointer;
420}
421
422.is-act-cartpage .msis-cart-add-toggle:hover {
423    text-decoration: underline;
424}
425
426
427/* Kostenlosen Versand als Vorteil darstellen */
428.is-act-cartpage .cart-shipping-costs-btn.msis-shipping-free-link {
429    color: #2f8d52 !important;
430    font-weight: 700 !important;
431}
432
433
434/* Großen PayPal-Ratenbanner unter den Produkten ausblenden */
435.is-act-cartpage .msis-hide-cart-paypal-banner {
436    display: none !important;
437}
438
439
440/* Überschrift vor PayPal Express rechts */
441.is-act-cartpage .msis-cart-paypal-headline {
442    margin: 16px 0 8px;
443    padding-top: 13px;
444    border-top: 1px solid #dedede;
445}
446
447.is-act-cartpage .msis-cart-paypal-headline__title {
448    font-family: "Oswald", sans-serif;
449    font-size: 18px;
450    line-height: 1.25;
451    font-weight: 700;
452    color: #222;
453}
454
455.is-act-cartpage .msis-cart-paypal-headline__text {
456    margin-top: 2px;
457    font-size: 12px;
458    line-height: 1.4;
459    color: #666;
460}
461
462.is-act-cartpage .msis-cart-add-toggle {
463    color: #444 !important;
464    font-weight: 600 !important;
465}
466
467.is-act-cartpage .msis-cart-add-toggle:hover {
468    color: #e00000 !important;
469}
470
471/* Versanddetails-Link im Warenkorb ausblenden */
472.is-act-cartpage .cart-shipping-costs-btn {
473    display: none !important;
474}
475
476.msis-cart-delivery-headline {
477    font-family: "Oswald", sans-serif;
478    font-size: 18px;
479    line-height: 1.2;
480    font-weight: 700;
481    color: #222;
482    margin: 0 0 8px;
483}
484
485.msis-free-shipping {
486    color: #2f8d52 !important;
487    font-weight: 700 !important;
488}
489
490.msis-cart-green-label {
491    color: #2f8d52 !important;
492    font-weight: 700 !important;
493}
494
495.msis-offcanvas-count-fixed {
496    font-weight: 700;
497}
498
499.msis-auto-hidden {
500    display: none !important;
501}
502/* ==========================================
503   Offcanvas Warenkorb Feinschliff
504   ========================================== */
505
506/* Rabatt ohne Icon / unnötigen Platz */
507.offcanvas .msis-offcanvas-promotion-compact {
508    padding-top: 8px !important;
509    padding-bottom: 8px !important;
510}
511
512.offcanvas .msis-offcanvas-promotion-compact
513.line-item-info-img,
514.offcanvas .msis-offcanvas-promotion-compact
515.line-item-remove {
516    display: none !important;
517}
518
519.offcanvas .msis-offcanvas-discount {
520    color: #2f8d52 !important;
521    font-weight: 700 !important;
522}
523
524
525/* Versandkosten + Kostenlos in EINER Zeile */
526.offcanvas .msis-offcanvas-shipping-row {
527    display: flex !important;
528    align-items: center !important;
529    justify-content: space-between !important;
530    width: 100% !important;
531}
532
533.offcanvas .msis-offcanvas-free-inline {
534    margin-left: 12px !important;
535    color: #2f8d52 !important;
536    font-weight: 700 !important;
537    white-space: nowrap !important;
538}
539
540
541/* Trusted-Shops Floating Badge nur bei
542   geöffnetem Warenkorb ausblenden */
543body.msis-cart-offcanvas-open
544[id*="trustbadge" i],
545body.msis-cart-offcanvas-open
546[class*="trustbadge" i],
547body.msis-cart-offcanvas-open
548iframe[src*="trustedshops" i],
549body.msis-cart-offcanvas-open
550iframe[src*="etrusted" i] {
551    opacity: 0 !important;
552    visibility: hidden !important;
553    pointer-events: none !important;
554}
555
556/* Warenkorb */
557.is-act-cartpage .msis-cart-delivery-headline {
558    font-family: "Oswald", sans-serif;
559    font-size: 18px;
560    line-height: 1.2;
561    font-weight: 700;
562    color: #222;
563    margin: 0 0 8px;
564}
565
566
567/* Offcanvas */
568.offcanvas .msis-offcanvas-delivery-headline {
569    font-family: "Oswald", sans-serif;
570    font-size: 17px;
571    line-height: 1.2;
572    font-weight: 700;
573    color: #222;
574    margin: 20px 0 8px;
575}
576/* ==========================================
577   K3 Maßanfertigung: Lieferzeit + Konfiguration
578   ========================================== */
579
580/* Überschriften bei K3 */
581.is-act-cartpage .msis-k3-delivery-headline,
582.offcanvas .msis-k3-delivery-headline,
583.msis-k3-product-delivery-headline {
584    font-family: "Oswald", sans-serif;
585    font-size: 18px;
586    line-height: 1.2;
587    font-weight: 700;
588    color: #222;
589    margin: 0 0 8px;
590}
591
592.msis-k3-product-delivery-headline {
593    margin-top: 10px;
594}
595
596/* Originalen Netzhirsch-Countdown bei K3 ausblenden,
597   unseren Text aber sichtbar lassen */
598.netzhirsch-order-countdown.msis-k3-countdown
599> :not(.msis-k3-countdown-text) {
600    display: none !important;
601}
602
603/* Grüne K3-Lieferbox */
604.netzhirsch-order-countdown.msis-k3-countdown {
605    display: block !important;
606    background: #effff3 !important;
607    border: 1px solid #3cc261 !important;
608    padding: 12px 14px !important;
609    margin: 6px 0 16px !important;
610    color: #222 !important;
611}
612
613.netzhirsch-order-countdown.msis-k3-countdown .msis-k3-countdown-text {
614    display: block !important;
615    position: relative;
616    padding-left: 28px;
617    margin: 0 !important;
618    line-height: 1.45;
619}
620
621.netzhirsch-order-countdown.msis-k3-countdown .msis-k3-countdown-text::before {
622    content: "◷";
623    position: absolute;
624    left: 0;
625    top: -2px;
626    color: #2f9a52;
627    font-size: 19px;
628    line-height: 1;
629}
630
631.msis-k3-countdown-text strong {
632    font-weight: 700;
633}
634
635/* K3-Lieferzeit direkt am Artikel */
636.msis-k3-delivery-time {
637    font-weight: 600;
638    color: #555;
639}
640
641/* ==========================================
642   K3 Wunschplane – kompakte Konfiguration
643   ========================================== */
644
645.msis-k3-configuration {
646    margin-top: 10px;
647    max-width: 440px;
648}
649
650/* komplette Karte */
651.msis-k3-config-card {
652    background: #f8f9f8;
653    border: 1px solid #e3e6e3;
654    border-left: 3px solid #3cc261;
655    padding: 11px 13px;
656}
657
658/* Überschrift */
659.msis-k3-configuration-title {
660    font-family: "Oswald", sans-serif;
661    font-size: 15px;
662    line-height: 1.2;
663    font-weight: 700;
664    color: #222;
665    margin-bottom: 9px;
666}
667
668/* Hauptinformationen */
669.msis-k3-config-main {
670    display: grid;
671    gap: 5px;
672}
673
674.msis-k3-config-main-row {
675    display: grid;
676    grid-template-columns: 92px minmax(0, 1fr);
677    gap: 10px;
678    align-items: start;
679}
680
681.msis-k3-config-main-label {
682    color: #777;
683    font-size: 12px;
684    line-height: 1.35;
685}
686
687.msis-k3-config-main-value {
688    color: #222;
689    font-size: 12px;
690    line-height: 1.35;
691    font-weight: 700;
692}
693
694/* Details aufklappbar */
695.msis-k3-config-details {
696    margin-top: 10px;
697    padding-top: 8px;
698    border-top: 1px solid #dedede;
699}
700
701.msis-k3-config-details summary {
702    display: inline-block;
703    cursor: pointer;
704    color: #2f8d52;
705    font-size: 12px;
706    font-weight: 700;
707    list-style: none;
708}
709
710.msis-k3-config-details summary::-webkit-details-marker {
711    display: none;
712}
713
714.msis-k3-config-details summary::before {
715    content: "+ ";
716}
717
718.msis-k3-config-details[open] summary::before {
719    content: "− ";
720}
721
722.msis-k3-config-details summary:hover {
723    text-decoration: underline;
724}
725
726/* Detailinformationen */
727.msis-k3-config-detail-grid {
728    margin-top: 10px;
729    display: grid;
730    gap: 4px;
731}
732
733.msis-k3-config-detail-row {
734    display: grid;
735    grid-template-columns: 140px minmax(0, 1fr);
736    gap: 10px;
737}
738
739.msis-k3-config-detail-label {
740    color: #777;
741    font-size: 11px;
742    line-height: 1.4;
743}
744
745.msis-k3-config-detail-value {
746    color: #333;
747    font-size: 11px;
748    line-height: 1.4;
749    font-weight: 600;
750}
751
752/* Offcanvas */
753.offcanvas .msis-k3-configuration {
754    max-width: none;
755    margin-top: 8px;
756}
757
758.offcanvas .msis-k3-config-card {
759    padding: 10px;
760}
761
762.offcanvas .msis-k3-config-main-row {
763    grid-template-columns: 76px minmax(0, 1fr);
764}
765
766.offcanvas .msis-k3-config-detail-row {
767    grid-template-columns: 105px minmax(0, 1fr);
768}
769
770@media (max-width: 575.98px) {
771    .msis-k3-config-main-row,
772    .msis-k3-config-detail-row {
773        grid-template-columns: 1fr;
774        gap: 1px;
775    }
776
777    .msis-k3-config-main-row {
778        margin-bottom: 5px;
779    }
780}
781
782
783/* ==========================================
784   Warenkorb CRO Feinschliff 2026-08
785   ========================================== */
786
787/* Gutscheincode standardmäßig ruhig/eingeklappt */
788.msis-cart-coupon {
789    margin-top: 2px;
790}
791
792.msis-cart-coupon-toggle {
793    appearance: none;
794    border: 0;
795    background: transparent;
796    padding: 4px 0;
797    color: #555;
798    font-size: 13px;
799    font-weight: 600;
800    cursor: pointer;
801    text-align: left;
802}
803
804.msis-cart-coupon-toggle:hover {
805    color: #e00000;
806    text-decoration: underline;
807}
808
809.msis-cart-coupon:not(.is-open) .msis-cart-coupon-label,
810.msis-cart-coupon:not(.is-open) .msis-cart-coupon-fields {
811    display: none !important;
812}
813
814.msis-cart-coupon.is-open .msis-cart-coupon-toggle {
815    margin-bottom: 7px;
816}
817
818/* K3 Details bleiben kompakt und sind bewusst sekundär */
819.msis-k3-config-details > summary {
820    user-select: none;
821}
822
823/* Artikelnummer-Eingabe noch etwas zurücknehmen */
824.is-act-cartpage .msis-cart-add-toggle {
825    font-size: 12px !important;
826    font-weight: 600 !important;
827    color: #666 !important;
828}
829
830.is-act-cartpage .msis-cart-add-toggle:hover {
831    color: #e00000 !important;
832}
833
834/* Kompakte Servicebox auf der eigentlichen Warenkorbseite */
835.is-act-cartpage .msis-cart-service-compact {
836    padding-top: 12px !important;
837    padding-bottom: 12px !important;
838    min-height: 0 !important;
839}
840
841.is-act-cartpage .msis-cart-service-compact .msis-cart-service-hide {
842    display: none !important;
843}
844
845.is-act-cartpage .msis-cart-service-compact .msis-cart-service-title {
846    font-size: 18px !important;
847    line-height: 1.2 !important;
848    margin-bottom: 4px !important;
849}
850
851.is-act-cartpage .msis-cart-service-compact .msis-cart-service-portrait {
852    width: 58px !important;
853    height: 58px !important;
854    min-width: 58px !important;
855    object-fit: cover !important;
856}
857
858.is-act-cartpage .msis-cart-service-compact [class*="__head"] {
859    margin-bottom: 8px !important;
860}
861
862.is-act-cartpage .msis-cart-service-compact [class*="__grid"] {
863    display: flex !important;
864    align-items: center !important;
865    gap: 14px !important;
866    margin-top: 6px !important;
867}
868
869.is-act-cartpage .msis-cart-service-compact .msis-cart-service-phone {
870    margin: 0 !important;
871}
872
873/* Vertrauenszeile direkt nach dem Haupt-CTA */
874.msis-checkout-benefits {
875    display: flex;
876    flex-wrap: wrap;
877    justify-content: center;
878    align-items: center;
879    column-gap: 0 !important;
880    row-gap: 4px !important;
881    margin: 8px 0 12px !important;
882    color: #555 !important;
883    font-size: 12px !important;
884    line-height: 1.4;
885    text-align: center;
886}
887
888.msis-checkout-benefits > span:not(.msis-benefit-separator) {
889    white-space: nowrap;
890    font-weight: 500;
891    color: #555;
892}
893
894.msis-checkout-benefits > span:not(.msis-benefit-separator)::first-letter {
895    color: #2f8d52;
896    font-weight: 700;
897}
898
899/* Bewusst sichtbarer Abstand um die Trenner */
900.msis-benefit-separator {
901    color: #aaa !important;
902    margin: 0 7px !important;
903    flex: 0 0 auto;
904}
905
906.offcanvas .msis-checkout-benefits {
907    font-size: 10.5px !important;
908    margin-bottom: 9px !important;
909}
910
911@media (max-width: 575.98px) {
912    .msis-checkout-benefits {
913        row-gap: 4px !important;
914        font-size: 10px !important;
915    }
916
917    .msis-benefit-separator {
918        margin: 0 4px !important;
919    }
920
921    .is-act-cartpage .msis-cart-service-compact [class*="__grid"] {
922        display: block !important;
923    }
924}
925
926
927/* ==========================================
928   Warenkorb Stabilisierung V3
929   ========================================== */
930.is-act-cartpage .line-item-promotion.msis-fixed-promotion .line-item-info-img,
931.is-act-cartpage .line-item-promotion.msis-fixed-promotion .line-item-remove {
932    display: none !important;
933}
934
935.is-act-cartpage .line-item-promotion.msis-fixed-promotion .line-item-label {
936    color: #2f8d52 !important;
937    font-weight: 700 !important;
938}
939
940.is-act-cartpage .line-item-promotion.msis-fixed-promotion .line-item-label::before {
941    content: "✓ ";
942}
943
944.is-act-cartpage .msis-cart-add-product-form:not(.is-open) {
945    display: none !important;
946}
947
948.is-act-cartpage .msis-hide-cart-paypal-banner {
949    display: none !important;
950}
951
952/* ==========================================
953   TEKOPLAN Navigation Desktop – eine Zeile
954   ========================================== */
955@media (min-width: 1200px) {
956    .main-navigation .container,
957    .main-navigation-container,
958    .navigation-main .container {
959        max-width: 1600px !important;
960        width: 100% !important;
961    }
962
963    .main-navigation-menu {
964        display: flex !important;
965        flex-wrap: nowrap !important;
966        align-items: center !important;
967        justify-content: center !important;
968        width: 100% !important;
969    }
970
971    .main-navigation-link {
972        flex: 0 0 auto !important;
973        white-space: nowrap !important;
974        padding-left: 11px !important;
975        padding-right: 11px !important;
976    }
977
978    .main-navigation-link-text {
979        white-space: nowrap !important;
980    }
981}
982
983/* ==========================================
984   Checkout CRO V4
985   Bundesland bleibt unveraendert sichtbar.
986   ========================================== */
987
988.msis-checkout-register-cro .checkout-main {
989    --msis-checkout-green: #2f8d52;
990}
991
992/* Bestandskunden-Hinweis kompakter */
993.msis-checkout-register-cro .twt-checkout-header-login.msis-checkout-login-title {
994    margin-bottom: 5px !important;
995    font-size: 18px !important;
996}
997
998.msis-checkout-register-cro .msis-checkout-login-toggle {
999    display: inline-flex !important;
1000    align-items: center !important;
1001    gap: 5px !important;
1002    margin-bottom: 12px !important;
1003    padding: 0 !important;
1004    font-size: 13px !important;
1005}
1006
1007.msis-checkout-register-cro .msis-checkout-login-toggle a,
1008.msis-checkout-register-cro .msis-checkout-login-toggle button {
1009    font-weight: 700 !important;
1010    color: #e00000 !important;
1011    text-decoration: underline !important;
1012}
1013
1014/* PayPal klar als eigener Express-Weg */
1015.msis-checkout-register-cro .msis-checkout-paypal-headline {
1016    margin: 10px 0 8px !important;
1017    padding: 10px 0 0 !important;
1018    border-top: 1px solid #e5e5e5 !important;
1019}
1020
1021.msis-checkout-register-cro .msis-checkout-paypal-headline .msis-paypal-guest-headline__title {
1022    font-family: "Oswald", sans-serif !important;
1023    font-size: 19px !important;
1024    line-height: 1.2 !important;
1025    font-weight: 700 !important;
1026    color: #222 !important;
1027    margin-bottom: 2px !important;
1028}
1029
1030.msis-checkout-register-cro .msis-checkout-paypal-headline .msis-paypal-guest-headline__text {
1031    margin: 0 0 8px !important;
1032    color: #666 !important;
1033    font-size: 12px !important;
1034    line-height: 1.4 !important;
1035}
1036
1037/* Servicebox im Checkout nur als Hilfeleiste */
1038.msis-checkout-register-cro .msis-checkout-service-compact {
1039    margin: 14px 0 22px !important;
1040    padding: 10px 14px !important;
1041    min-height: 0 !important;
1042}
1043
1044.msis-checkout-register-cro .msis-checkout-service-compact .msis-checkout-service-hide {
1045    display: none !important;
1046}
1047
1048.msis-checkout-register-cro .msis-checkout-service-compact [class*="__head"] {
1049    grid-template-columns: 54px minmax(0, 1fr) !important;
1050    gap: 12px !important;
1051    margin-bottom: 8px !important;
1052}
1053
1054.msis-checkout-register-cro .msis-checkout-service-compact [class*="__portrait-wrap"] {
1055    width: 54px !important;
1056    height: 54px !important;
1057}
1058
1059.msis-checkout-register-cro .msis-checkout-service-compact .msis-checkout-service-title,
1060.msis-checkout-register-cro .msis-checkout-service-compact [class*="__title"] {
1061    font-size: 16px !important;
1062    line-height: 1.2 !important;
1063    margin: 0 0 4px !important;
1064}
1065
1066.msis-checkout-register-cro .msis-checkout-service-compact [class*="__status"] {
1067    font-size: 11px !important;
1068}
1069
1070.msis-checkout-register-cro .msis-checkout-service-compact [class*="__grid"] {
1071    display: block !important;
1072    margin: 0 !important;
1073}
1074
1075.msis-checkout-register-cro .msis-checkout-service-compact .msis-checkout-service-phone {
1076    display: grid !important;
1077    grid-template-columns: 34px minmax(0, 1fr) !important;
1078    gap: 9px !important;
1079    align-items: center !important;
1080    margin: 0 !important;
1081}
1082
1083.msis-checkout-register-cro .msis-checkout-service-compact .msis-checkout-service-phone [class*="__icon"] {
1084    width: 32px !important;
1085    height: 32px !important;
1086}
1087
1088.msis-checkout-register-cro .msis-checkout-service-compact .msis-checkout-service-phone a[href^="tel:"] {
1089    font-size: 13px !important;
1090    font-weight: 700 !important;
1091    white-space: nowrap !important;
1092}
1093
1094/* Gastkonto-Option: kompakt, sauber und eindeutig optional */
1095.msis-checkout-register-cro .msis-checkout-account-option {
1096    display: inline-flex !important;
1097    align-items: center !important;
1098    gap: 10px !important;
1099    width: auto !important;
1100    max-width: 100% !important;
1101    margin: 12px 0 18px !important;
1102    padding: 9px 12px !important;
1103    background: #f8f9f8 !important;
1104    border: 1px solid #dfe4df !important;
1105    border-radius: 3px !important;
1106    color: #333 !important;
1107    font-size: 12px !important;
1108    line-height: 1.3 !important;
1109}
1110
1111.msis-checkout-register-cro .msis-checkout-account-option .form-check-input,
1112.msis-checkout-register-cro .msis-checkout-account-option .msis-checkout-account-checkbox {
1113    position: static !important;
1114    float: none !important;
1115    flex: 0 0 18px !important;
1116    width: 18px !important;
1117    height: 18px !important;
1118    margin: 0 !important;
1119    border: 1.5px solid #8a8a8a !important;
1120    border-radius: 3px !important;
1121    background-color: #fff !important;
1122    box-shadow: none !important;
1123    cursor: pointer !important;
1124}
1125
1126.msis-checkout-register-cro .msis-checkout-account-option .form-check-input:checked,
1127.msis-checkout-register-cro .msis-checkout-account-option .msis-checkout-account-checkbox:checked {
1128    background-color: #dc1a22 !important;
1129    border-color: #dc1a22 !important;
1130}
1131
1132.msis-checkout-register-cro .msis-checkout-account-option .msis-checkout-account-label {
1133    display: inline-flex !important;
1134    align-items: center !important;
1135    flex-wrap: wrap !important;
1136    gap: 7px !important;
1137    margin: 0 !important;
1138    padding: 0 !important;
1139    font-weight: 500 !important;
1140    cursor: pointer !important;
1141}
1142
1143.msis-checkout-register-cro .msis-checkout-account-badge {
1144    display: inline-flex !important;
1145    align-items: center !important;
1146    min-height: 20px !important;
1147    padding: 2px 7px !important;
1148    border-radius: 999px !important;
1149    background: #ecefec !important;
1150    color: #626862 !important;
1151    font-size: 10px !important;
1152    font-weight: 700 !important;
1153    text-transform: uppercase !important;
1154    letter-spacing: .02em !important;
1155}
1156
1157.msis-checkout-register-cro .msis-checkout-account-text {
1158    color: #333 !important;
1159    font-size: 12px !important;
1160    font-weight: 600 !important;
1161}
1162
1163/* Automatischen 5-%-Rabatt auch in der Checkout-Seitenleiste schlank zeigen */
1164.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact {
1165    padding-top: 7px !important;
1166    padding-bottom: 7px !important;
1167    min-height: 0 !important;
1168}
1169
1170.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact .line-item-info-img,
1171.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact .line-item-remove {
1172    display: none !important;
1173}
1174
1175.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact .line-item-label {
1176    color: #2f8d52 !important;
1177    font-weight: 700 !important;
1178}
1179
1180/* Weiter-Button eindeutiger */
1181.msis-checkout-register-cro .msis-checkout-continue-btn {
1182    min-height: 44px !important;
1183    font-weight: 700 !important;
1184}
1185
1186.msis-checkout-register-cro .msis-checkout-continue-note {
1187    margin-top: 7px !important;
1188    text-align: center !important;
1189    font-size: 11px !important;
1190    line-height: 1.35 !important;
1191    color: #666 !important;
1192}
1193
1194/* Formular minimal ruhiger */
1195.msis-checkout-register-cro .register-card .card-body {
1196    padding-top: 4px !important;
1197}
1198
1199.msis-checkout-register-cro .twt-checkout-header-register {
1200    margin-top: 22px !important;
1201    margin-bottom: 8px !important;
1202}
1203
1204/* Rechte Warenkorbspalte: K3-Details kompakt lassen */
1205.msis-checkout-register-cro .checkout-aside .msis-k3-configuration {
1206    max-width: 100% !important;
1207    margin-top: 7px !important;
1208}
1209
1210.msis-checkout-register-cro .checkout-aside .msis-k3-config-card {
1211    padding: 9px 10px !important;
1212}
1213
1214/* Bundesland: KEINE Ausblend-Regel hier. */
1215
1216@media (max-width: 767.98px) {
1217    .msis-checkout-register-cro .msis-checkout-service-compact [class*="__head"] {
1218        grid-template-columns: 46px minmax(0, 1fr) !important;
1219    }
1220
1221    .msis-checkout-register-cro .msis-checkout-service-compact [class*="__portrait-wrap"] {
1222        width: 46px !important;
1223        height: 46px !important;
1224    }
1225
1226    .msis-checkout-register-cro .msis-checkout-paypal-headline .msis-paypal-guest-headline__title {
1227        font-size: 17px !important;
1228    }
1229}
1230
1231
1232/* ==========================================
1233   Checkout CRO V5 - Feinschliff
1234   ========================================== */
1235.msis-checkout-register-cro .msis-checkout-login-toggle .icon {
1236    width: 18px !important;
1237    height: 18px !important;
1238}
1239
1240.msis-checkout-register-cro .msis-checkout-login-toggle .login-collapse-toggle {
1241    display: inline-flex !important;
1242    align-items: center !important;
1243    min-height: 24px !important;
1244}
1245
1246.msis-checkout-register-cro #msis-paypal-guest-headline.msis-checkout-paypal-headline {
1247    display: block !important;
1248    width: 100% !important;
1249}
1250
1251@media (max-width: 575.98px) {
1252    .msis-checkout-register-cro .msis-checkout-account-option {
1253        display: flex !important;
1254        width: 100% !important;
1255    }
1256}
1257
1258/* ==========================================
1259   Checkout CRO V6 - kompakter Bestellcheck
1260   ========================================== */
1261
1262/* PayPal-Ratenhinweis bleibt erhalten, sitzt aber unter beiden Buttons */
1263.msis-checkout-register-cro [data-swag-paypal-express-button="true"] {
1264    width: 100% !important;
1265}
1266
1267.msis-checkout-register-cro .msis-checkout-paypal-installment-bottom {
1268    order: 20 !important;
1269    flex: 0 0 100% !important;
1270    width: 100% !important;
1271    max-width: 100% !important;
1272    margin: 5px 0 0 !important;
1273    padding: 0 !important;
1274    text-align: left !important;
1275}
1276
1277/* Von PayPal nachgeladenen Text bewusst klein als Zusatzinfo behandeln */
1278.msis-checkout-register-cro .msis-checkout-paypal-installment-bottom > * {
1279    max-width: 100% !important;
1280}
1281
1282/* Rechte Spalte = kompakte Bestellkontrolle statt zweiter Warenkorb */
1283.msis-checkout-register-cro .checkout-aside .msis-checkout-order-title {
1284    margin-bottom: 10px !important;
1285}
1286
1287.msis-checkout-register-cro .checkout-aside .line-item-product.msis-checkout-product-compact {
1288    position: relative !important;
1289    padding: 10px 0 !important;
1290    margin: 0 !important;
1291    border-bottom: 1px solid #e5e5e5 !important;
1292}
1293
1294.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-row,
1295.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-info > .row {
1296    margin-left: 0 !important;
1297    margin-right: 0 !important;
1298}
1299
1300.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-info {
1301    width: 100% !important;
1302    padding: 0 42px 0 0 !important;
1303}
1304
1305.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-info-img {
1306    flex: 0 0 54px !important;
1307    width: 54px !important;
1308    max-width: 54px !important;
1309    padding: 0 9px 0 0 !important;
1310}
1311
1312.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-img-container,
1313.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-img-link {
1314    width: 46px !important;
1315    height: 46px !important;
1316    min-height: 46px !important;
1317}
1318
1319.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-img {
1320    max-width: 46px !important;
1321    max-height: 46px !important;
1322    object-fit: contain !important;
1323}
1324
1325.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-details {
1326    flex: 1 1 auto !important;
1327    width: calc(100% - 54px) !important;
1328    min-width: 0 !important;
1329    padding: 0 !important;
1330}
1331
1332.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-label {
1333    display: inline !important;
1334    font-size: 14px !important;
1335    line-height: 1.25 !important;
1336    font-weight: 700 !important;
1337}
1338
1339.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-product-number,
1340.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact [class*="delivery"] {
1341    margin-top: 2px !important;
1342    font-size: 11px !important;
1343    line-height: 1.3 !important;
1344}
1345
1346/* Anzahl + Preis nicht mehr als zwei grosse Extrazeilen wiederholen */
1347.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact > .line-item-row > .line-item-quantity,
1348.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact > .line-item-row > .line-item-unit-price,
1349.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact > .line-item-row > .line-item-total-price {
1350    display: none !important;
1351}
1352
1353.msis-checkout-register-cro .checkout-aside .msis-checkout-line-price {
1354    display: flex !important;
1355    align-items: baseline !important;
1356    gap: 4px !important;
1357    margin-top: 5px !important;
1358    font-size: 12px !important;
1359    line-height: 1.3 !important;
1360    color: #333 !important;
1361}
1362
1363.msis-checkout-register-cro .checkout-aside .msis-checkout-line-total {
1364    font-size: 13px !important;
1365    color: #111 !important;
1366    font-weight: 700 !important;
1367}
1368
1369.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-remove {
1370    position: absolute !important;
1371    top: 9px !important;
1372    right: 0 !important;
1373    width: 34px !important;
1374    margin: 0 !important;
1375    z-index: 2 !important;
1376}
1377
1378.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-remove-button {
1379    width: 34px !important;
1380    height: 34px !important;
1381    padding: 4px !important;
1382}
1383
1384/* K3-Kontrollkarte in der schmalen Checkout-Spalte noch etwas kompakter */
1385.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .msis-k3-configuration {
1386    margin-top: 7px !important;
1387}
1388
1389.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .msis-k3-config-card {
1390    padding: 8px 9px !important;
1391}
1392
1393.msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .msis-k3-config-main {
1394    gap: 3px !important;
1395}
1396
1397/* Rabatt im Checkout wirklich in EINE Zeile bringen */
1398.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact {
1399    padding: 8px 0 !important;
1400    border-bottom: 1px solid #e5e5e5 !important;
1401}
1402
1403.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact > .line-item-row {
1404    display: flex !important;
1405    flex-wrap: nowrap !important;
1406    align-items: center !important;
1407    justify-content: space-between !important;
1408    margin: 0 !important;
1409}
1410
1411.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact .line-item-info {
1412    flex: 1 1 auto !important;
1413    width: auto !important;
1414    padding: 0 !important;
1415}
1416
1417.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact .line-item-total-price {
1418    display: block !important;
1419    flex: 0 0 auto !important;
1420    width: auto !important;
1421    margin: 0 0 0 12px !important;
1422    padding: 0 !important;
1423    text-align: right !important;
1424}
1425
1426.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact .line-item-total-price-label {
1427    display: none !important;
1428}
1429
1430.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact .line-item-total-price-value {
1431    font-size: 13px !important;
1432    font-weight: 700 !important;
1433    white-space: nowrap !important;
1434}
1435
1436@media (max-width: 767.98px) {
1437    .msis-checkout-register-cro .checkout-aside .msis-checkout-product-compact .line-item-info {
1438        padding-right: 38px !important;
1439    }
1440}
1441
1442
1443
1444/* ==========================================
1445   Checkout CRO V7 - Conversion Feinschliff
1446   ========================================== */
1447
1448/* Kontotyp + Anrede auf Desktop in einer gemeinsamen Zeile */
1449.msis-checkout-register-cro .msis-checkout-personal-top-row {
1450    margin-bottom: 0 !important;
1451}
1452
1453.msis-checkout-register-cro .msis-checkout-personal-top-row > .form-group {
1454    flex: 0 0 50% !important;
1455    width: 50% !important;
1456    max-width: 50% !important;
1457}
1458
1459/* Telefonnummer: freiwillig, Nutzen fuer Speditionslieferungen erklaeren */
1460.msis-checkout-register-cro .msis-checkout-phone-hint {
1461    margin-top: 5px !important;
1462    max-width: 520px !important;
1463    color: #6a6a6a !important;
1464    font-size: 11px !important;
1465    line-height: 1.35 !important;
1466}
1467
1468/* Rechte Bestellkontrolle auf Desktop beim Scrollen sichtbar halten */
1469@media (min-width: 992px) {
1470    .msis-checkout-register-cro .checkout-aside.msis-checkout-aside-sticky {
1471        position: sticky !important;
1472        top: 18px !important;
1473        align-self: flex-start !important;
1474    }
1475}
1476
1477/* Rabatt garantiert als eine kompakte Zeile – unabhaengig vom Shopware-Markup */
1478.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact {
1479    display: block !important;
1480    padding: 9px 0 !important;
1481    margin: 0 !important;
1482    min-height: 0 !important;
1483    border-bottom: 1px solid #e5e5e5 !important;
1484}
1485
1486.msis-checkout-register-cro .checkout-aside .line-item-promotion.msis-checkout-promotion-compact > :not(.msis-checkout-discount-row) {
1487    display: none !important;
1488}
1489
1490.msis-checkout-register-cro .checkout-aside .msis-checkout-discount-row {
1491    display: flex !important;
1492    align-items: center !important;
1493    justify-content: space-between !important;
1494    gap: 14px !important;
1495    width: 100% !important;
1496    margin: 0 !important;
1497    padding: 0 !important;
1498}
1499
1500.msis-checkout-register-cro .checkout-aside .msis-checkout-discount-label {
1501    color: #2f8d52 !important;
1502    font-size: 13px !important;
1503    font-weight: 700 !important;
1504    line-height: 1.25 !important;
1505    white-space: nowrap !important;
1506}
1507
1508.msis-checkout-register-cro .checkout-aside .msis-checkout-discount-value {
1509    margin-left: auto !important;
1510    color: #111 !important;
1511    font-size: 13px !important;
1512    font-weight: 700 !important;
1513    line-height: 1.25 !important;
1514    white-space: nowrap !important;
1515}
1516
1517/* Weiter-CTA bewusst linksbuendig statt optisch in der Mitte zu schweben */
1518.msis-checkout-register-cro .register-submit {
1519    text-align: left !important;
1520}
1521
1522.msis-checkout-register-cro .register-submit .msis-checkout-continue-btn {
1523    display: block !important;
1524    width: 56% !important;
1525    min-width: 420px !important;
1526    max-width: 620px !important;
1527    margin-left: 0 !important;
1528    margin-right: auto !important;
1529}
1530
1531.msis-checkout-register-cro .register-submit .msis-checkout-continue-note {
1532    width: 56% !important;
1533    min-width: 420px !important;
1534    max-width: 620px !important;
1535    margin: 7px 0 0 !important;
1536    text-align: left !important;
1537    color: #555 !important;
1538    font-size: 11px !important;
1539    line-height: 1.35 !important;
1540}
1541
1542@media (max-width: 767.98px) {
1543    .msis-checkout-register-cro .msis-checkout-personal-top-row > .form-group {
1544        flex: 0 0 100% !important;
1545        width: 100% !important;
1546        max-width: 100% !important;
1547    }
1548
1549    .msis-checkout-register-cro .register-submit .msis-checkout-continue-btn,
1550    .msis-checkout-register-cro .register-submit .msis-checkout-continue-note {
1551        width: 100% !important;
1552        min-width: 0 !important;
1553        max-width: none !important;
1554    }
1555}
1556
1557/* ==========================================
1558   V9 Hotfix: Startseite nur Cookie-Hinweis
1559   ========================================== */
1560
1561/* Die Beratungs-/Bestellhilfe gehoert nicht auf die Startseite.
1562   Doppelte Absicherung ueber die echte Shopware-Home-Bodyklasse und
1563   die bereits im Head gesetzte Guard-Klasse. */
1564html.msis-homepage-hide-support .msisdesign-configurator-support-v127,
1565html.msis-homepage-hide-support section[class*="msisdesign-configurator-support-"],
1566body.is-act-home .msisdesign-configurator-support-v127,
1567body.is-act-home section[class*="msisdesign-configurator-support-"],
1568body.is-active-route-frontend-home-page .msisdesign-configurator-support-v127,
1569body.is-active-route-frontend-home-page section[class*="msisdesign-configurator-support-"] {
1570    display: none !important;
1571    visibility: hidden !important;
1572    height: 0 !important;
1573    min-height: 0 !important;
1574    max-height: 0 !important;
1575    margin: 0 !important;
1576    padding: 0 !important;
1577    border: 0 !important;
1578    overflow: hidden !important;
1579}
1580
1581/* Checkout-CTA weiterhin wirklich linksbuendig. */
1582.msis-checkout-register-cro .register-submit.msis-checkout-submit-left {
1583    margin-left: 0 !important;
1584    margin-right: auto !important;
1585}
1586
1587.msis-checkout-register-cro .register-submit.msis-checkout-submit-left .msis-checkout-continue-btn {
1588    margin-left: 0 !important;
1589    margin-right: auto !important;
1590}
1591
1592/* ==========================================
1593   TEKOPLAN Cookie Banner CRO
1594   Nur notwendige | Alle akzeptieren
1595   ========================================== */
1596
1597/* Konfigurieren im ersten Dialog ausblenden */
1598html body .cookie-permission-container
1599.js-cookie-configuration-button {
1600    display: none !important;
1601}
1602
1603/* Buttonbereich */
1604html body .cookie-permission-container
1605.cookie-permission-actions {
1606    display: flex !important;
1607    justify-content: center !important;
1608    align-items: stretch !important;
1609    flex-wrap: nowrap !important;
1610    gap: 10px !important;
1611
1612    width: 100% !important;
1613    max-width: 100% !important;
1614
1615    margin: 0 !important;
1616    padding: 0 !important;
1617}
1618
1619/* Beide sichtbaren Button-Wrapper gleich breit */
1620html body .cookie-permission-container
1621.cookie-permission-button,
1622
1623html body .cookie-permission-container
1624.js-cookie-accept-all-button {
1625    display: block !important;
1626    flex: 1 1 0 !important;
1627    width: auto !important;
1628    margin: 0 !important;
1629}
1630
1631/* Beide Buttons */
1632html body .cookie-permission-container
1633.cookie-permission-button .btn,
1634
1635html body .cookie-permission-container
1636.js-cookie-accept-all-button .btn {
1637    width: 100% !important;
1638    min-height: 46px !important;
1639
1640    padding: 10px 18px !important;
1641
1642    border-radius: 4px !important;
1643
1644    font-size: 13px !important;
1645    font-weight: 700 !important;
1646
1647    white-space: nowrap !important;
1648}
1649
1650
1651/* ------------------------------------------
1652   Nur technisch notwendige
1653   ------------------------------------------ */
1654
1655html body .cookie-permission-container
1656.cookie-permission-button .btn {
1657    background: #dedede !important;
1658    border-color: #dedede !important;
1659    color: #222222 !important;
1660}
1661
1662html body .cookie-permission-container
1663.cookie-permission-button .btn:hover {
1664    background: #cccccc !important;
1665    border-color: #cccccc !important;
1666    color: #111111 !important;
1667}
1668
1669
1670/* ------------------------------------------
1671   Alle akzeptieren = Hauptaktion
1672   ------------------------------------------ */
1673
1674html body .cookie-permission-container
1675.js-cookie-accept-all-button .btn {
1676    background: #e00000 !important;
1677    border-color: #e00000 !important;
1678    color: #ffffff !important;
1679}
1680
1681html body .cookie-permission-container
1682.js-cookie-accept-all-button .btn:hover {
1683    background: #bd0000 !important;
1684    border-color: #bd0000 !important;
1685    color: #ffffff !important;
1686}
1687
1688
1689/* ------------------------------------------
1690   Mobile
1691   ------------------------------------------ */
1692
1693@media (max-width: 767.98px) {
1694
1695    html body .cookie-permission-container
1696    .cookie-permission-actions {
1697        flex-direction: column-reverse !important;
1698        gap: 8px !important;
1699    }
1700
1701    html body .cookie-permission-container
1702    .cookie-permission-button,
1703
1704    html body .cookie-permission-container
1705    .js-cookie-accept-all-button {
1706        width: 100% !important;
1707        flex: 0 0 auto !important;
1708    }
1709
1710    html body .cookie-permission-container
1711    .cookie-permission-button .btn,
1712
1713    html body .cookie-permission-container
1714    .js-cookie-accept-all-button .btn {
1715        width: 100% !important;
1716    }
1717}</style>
1718    
1719                                        
1720                            
1720<script type="importmap">
1721                    {
1722                        "imports": {"shopware":"https:\/\/www.tekoplan-planen.shop\/bundles\/storefront\/storefront\/shopware\/shopware.js?1781851651"}                    }
1723                </script>
1723
1724                    
1725                                                            
1725<script type="module" src="https://www.tekoplan-planen.shop/bundles/storefront/storefront/shopware/shopware.js?1781851651"></script>
1725
1726                    
1727                    
1728    
1728<script>
1729        window.features = JSON.parse('\u007B\u0022V6_5_0_0\u0022\u003Atrue,\u0022v6.5.0.0\u0022\u003Atrue,\u0022V6_6_0_0\u0022\u003Atrue,\u0022v6.6.0.0\u0022\u003Atrue,\u0022V6_7_0_0\u0022\u003Atrue,\u0022v6.7.0.0\u0022\u003Atrue,\u0022V6_8_0_0\u0022\u003Afalse,\u0022v6.8.0.0\u0022\u003Afalse,\u0022DISABLE_VUE_COMPAT\u0022\u003Atrue,\u0022disable.vue.compat\u0022\u003Atrue,\u0022ACCESSIBILITY_TWEAKS\u0022\u003Atrue,\u0022accessibility.tweaks\u0022\u003Atrue,\u0022TELEMETRY_METRICS\u0022\u003Afalse,\u0022telemetry.metrics\u0022\u003Afalse,\u0022FLOW_EXECUTION_AFTER_BUSINESS_PROCESS\u0022\u003Afalse,\u0022flow.execution.after.business.process\u0022\u003Afalse,\u0022PERFORMANCE_TWEAKS\u0022\u003Afalse,\u0022performance.tweaks\u0022\u003Afalse,\u0022ENABLE_OPENSEARCH_FOR_ADMIN_API\u0022\u003Afalse,\u0022enable.opensearch.for.admin.api\u0022\u003Afalse,\u0022CACHE_CONTEXT_HASH_RULES_OPTIMIZATION\u0022\u003Afalse,\u0022cache.context.hash.rules.optimization\u0022\u003Afalse,\u0022CACHE_REWORK\u0022\u003Afalse,\u0022cache.rework\u0022\u003Afalse,\u0022DEFERRED_CART_ERRORS\u0022\u003Afalse,\u0022deferred.cart.errors\u0022\u003Afalse,\u0022REPEATED_PAYMENT_FINALIZE\u0022\u003Afalse,\u0022repeated.payment.finalize\u0022\u003Afalse,\u0022PERMANENT_AUTOMATIC_PROMOTIONS\u0022\u003Afalse,\u0022permanent.automatic.promotions\u0022\u003Afalse,\u0022METEOR_TEXT_EDITOR\u0022\u003Afalse,\u0022meteor.text.editor\u0022\u003Afalse,\u0022MCP_SERVER\u0022\u003Afalse,\u0022mcp.server\u0022\u003Afalse,\u0022JSON_LD_DATA\u0022\u003Afalse,\u0022json.ld.data\u0022\u003Afalse,\u0022BREADCRUMB_REWORK\u0022\u003Afalse,\u0022breadcrumb.rework\u0022\u003Afalse\u007D');
1730    </script>
1730
1731        
1732                                                        
1733                        
1734
1735        
1735<script>
1736        window.dataLayer = window.dataLayer || [];
1737        window.gtag = window.gtag || function () { window.dataLayer.push(arguments); };
1738
1739        window.gtag('consent', 'default', {
1740            'ad_storage': 'denied',
1741            'analytics_storage': 'denied',
1742            'ad_user_data': 'denied',
1743            'ad_personalization': 'denied',
1744            'wait_for_update': 500
1745        });
1746
1747        // Improves same-domain conversion attribution when ad_storage is denied.
1748        // This does NOT grant consent and does NOT enable advertising cookies.
1749        window.gtag('set', 'url_passthrough', true);
1750
1751        window.gtag('js', new Date());
1752        window.gtag('config', 'AW-16748285166');
1753
1754        // Local diagnostic state only. Nothing here is sent by this diagnostic object.
1755        window.__tekoplanGoogleAdsTracking = window.__tekoplanGoogleAdsTracking || {};
1756        window.__tekoplanGoogleAdsTracking.version = '1.1.0';
1757        window.__tekoplanGoogleAdsTracking.tagId = 'AW-16748285166';
1758        window.__tekoplanGoogleAdsTracking.mode = 'advanced-consent-mode';
1759        window.__tekoplanGoogleAdsTracking.urlPassthrough = true;
1760        window.__tekoplanGoogleAdsTracking.baseTagInitializedAt = new Date().toISOString();
1761    </script>
vendor: 98 bytes, lines 1761-1762
1761
1762    <script id="tekoplan-google-ads-gtag" async src="https://www.googletagmanager.com/gtag/js?id=
1762AW-16748285166
vendor: 211 bytes, lines 1762-1766
1762"></script>
1763
1764
1765                                                                                                                                                                                                
1766    
1766<!-- added by Trusted Shops app: Start -->
1767    
1767<script src="https://integrations.etrusted.com/applications/widget.js/v2" async defer></script>
1767
1768    <!-- End -->
1769                    
1770            
1771
1772                    
1773                    
1774    
1775    
1776                
1777    
1777<script type="text/javascript" data-campit-matomo="true"
1778            data-campit-matomo-options="{&quot;context&quot;:{&quot;controllerName&quot;:&quot;auth&quot;,&quot;controllerAction&quot;:&quot;loginpage&quot;},&quot;siteId&quot;:&quot;1&quot;,&quot;matomoUrl&quot;:&quot;https:\/\/tekoplanplanenshop.matomo.cloud&quot;,&quot;cookieConsent&quot;:&quot;shopwareCookieConsent&quot;,&quot;debugEnabled&quot;:false}">
1779        window.campitMatomoCallBack = function () {
1780            <!-- Matomo -->
1781            var _paq = window._paq = window._paq || [];
1782            /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
1783                        _paq.push(['trackPageView']);
1784            _paq.push(['enableLinkTracking']);
1785            (function () {
1786                var u = "https://tekoplanplanenshop.matomo.cloud/";
1787                _paq.push(['setTrackerUrl', u + 'matomo.php']);
1788                _paq.push(['setSiteId', 1]);
1789                var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
1790                g.async = true;
1791                g.src = u + 'matomo.js';
1792                s.parentNode.insertBefore(g, s);
1793            })();
1794            <!-- End Matomo Code -->
1795        };
1796    </script>
vendor: 189 bytes, lines 1796-1800
1796
1797    
1798                            
1799            <script type="text/javascript" id="recaptcha-script"
1800                                data-src='https://www.google.com/recaptcha/api.js?render=
18006Le3G4AtAAAAABkM5gpgmXVYSjCN1VMIBaqf-TaF
vendor: 42 bytes, lines 1800-1802
1800'
1801                defer></script>
1802        
1802<script>
1803                                        window.googleReCaptchaV3Active = true;
1804                    </script>
1804
1805            
1806                
1807                                    
1807<script>
1808                    window.useDefaultCookieConsent = true;
1809                </script>
1809
1810                    
1811                                
1811<script>
1812                                                window.activeNavigationId = '26cf1202c12d4a88b183aae4579ac77f';
1813                window.activeNavigationPathIdList = JSON.parse('\u005B\u005D');
1814                window.activeRoute = 'frontend.account.login.page';
1815                window.activeRouteParameters = '\u007B\u0022_noStore\u0022\u003Atrue\u007D';
1816                window.router = {
1817                    'frontend.cart.offcanvas': '/checkout/offcanvas',
1818                    'frontend.cookie.offcanvas': '/cookie/offcanvas',
1819                    'frontend.cookie.groups': '/cookie/groups',
1820                    'frontend.checkout.finish.page': '/checkout/finish',
1821                    'frontend.checkout.info': '/widgets/checkout/info',
1822                    'frontend.menu.offcanvas': '/widgets/menu/offcanvas',
1823                    'frontend.cms.page': '/widgets/cms',
1824                    'frontend.cms.navigation.page': '/widgets/cms/navigation',
1825                    'frontend.country.country-data': '/country/country-state-data',
1826                    'frontend.app-system.generate-token': '/app-system/Placeholder/generate-token',
1827                    'frontend.gateway.context': '/gateway/context',
1828                    'frontend.cookie.consent.offcanvas': '/cookie/consent-offcanvas',
1829                    'frontend.account.login.page': '/account/login',
1830                    };
1831                window.salesChannelId = '2da9733a900347e7ac298d3df9036d94';
1832                window.currencyIsoCode = 'EUR';
1833                window.openOffcanvasAfterAddToCart = '1';
1834            </script>
1834
1835        
1836                                
1836<script>
1837                
1838                window.breakpoints = JSON.parse('\u007B\u0022xs\u0022\u003A0,\u0022sm\u0022\u003A576,\u0022md\u0022\u003A768,\u0022lg\u0022\u003A992,\u0022xl\u0022\u003A1200,\u0022xxl\u0022\u003A1400\u007D');
1839            </script>
1839
1840        
1841        
1842                			
1842<script src="https://www.tekoplan-planen.shop/theme/b5da4f959c9c4fa9afc26b2924556339/assets/js/jquery-3.5.1.slim.min.js?1790330373"></script>
1842
1843			
1844		        
1845
1846                        
1847    
1847<script>
1848        window.validationMessages = JSON.parse('\u007B\u0022required\u0022\u003A\u0022Die\u0020Eingabe\u0020darf\u0020nicht\u0020leer\u0020sein.\u0022,\u0022email\u0022\u003A\u0022Ung\\u00fcltige\u0020E\u002DMail\u002DAdresse.\u0020Die\u0020E\u002DMail\u0020ben\\u00f6tigt\u0020das\u0020Format\u0020\\\u0022nutzer\u0040beispiel.de\\\u0022.\u0022,\u0022confirmation\u0022\u003A\u0022Ihre\u0020Eingaben\u0020sind\u0020nicht\u0020identisch.\u0022,\u0022minLength\u0022\u003A\u0022Die\u0020Eingabe\u0020ist\u0020zu\u0020kurz.\u0022,\u0022pattern\u0022\u003A\u0022Die\u0020Eingabe\u0020entspricht\u0020nicht\u0020dem\u0020erforderlichen\u0020Format.\u0022,\u0022grecaptcha\u0022\u003A\u0022Bitte\u0020akzeptieren\u0020Sie\u0020die\u0020technisch\u0020erforderlichen\u0020Cookies,\u0020um\u0020die\u0020reCAPTCHA\u002D\\u00dcberpr\\u00fcfung\u0020zu\u0020erm\\u00f6glichen.\u0022\u007D');
1849    </script>
1849
1850        
1851                                                                                                    
1852                                                            
1852<script>
1853                            window.themeJsPublicPath = 'https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/';
1854                        </script>
1854
1855                                                    
1855<script type="text/javascript" src="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/storefront/storefront.js?1791201311" defer></script>
1855
1856                                                    
1856<script type="text/javascript" src="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/swag-pay-pal/swag-pay-pal.js?1791201311" defer></script>
1856
1857                                                    
1857<script type="text/javascript" src="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/pixel-areacalculator/pixel-areacalculator.js?1791201311" defer></script>
1857
1858                                                    
1858<script type="text/javascript" src="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/futi-checkout-upload/futi-checkout-upload.js?1791201311" defer></script>
1858
1859                                                    
1859<script type="text/javascript" src="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/netzhirsch-order-countdown/netzhirsch-order-countdown.js?1791201311" defer></script>
1859
1860                                                    
1860<script type="text/javascript" src="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/mollie-payments/mollie-payments.js?1791201311" defer></script>
1860
1861                                                    
1861<script type="text/javascript" src="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/campit-matomo/campit-matomo.js?1791201311" defer></script>
1861
1862                                                    
1862<script type="text/javascript" src="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/swag-custom-notification/swag-custom-notification.js?1791201311" defer></script>
1862
1863                                                    
1863<script type="text/javascript" src="https://www.tekoplan-planen.shop/theme/c7c869ddef4117828dbc452e4846ffba/js/tcinn-theme-ware-exquisite/tcinn-theme-ware-exquisite.js?1791201311" defer></script>
1863
1864                                                                        
1865                            
1866
1867    
1868            
1869            </head>
1870
1871        <body class="is-ctl-auth is-act-loginpage is-active-route-frontend-account-login-page themeware twt-exquisite twt-header-type-4 twt-full-width-boxed twt-cms-styling">
1872
1873        
1874            
1875                
1876    
1877    
1878            <div id="page-top" class="skip-to-content bg-primary-subtle text-primary-emphasis overflow-hidden" tabindex="-1">
1879            <div class="container skip-to-content-container d-flex justify-content-center visually-hidden-focusable">
1880                                                                                        <a href="#content-main" class="skip-to-content-link d-inline-flex text-decoration-underline m-1 p-2 fw-bold gap-2">
1881                                Zum Hauptinhalt springen
1882                            </a>
1883                                            
1884                                                                        <a href="#header-main-search-input" class="skip-to-content-link d-inline-flex text-decoration-underline m-1 p-2 fw-bold gap-2 d-none d-sm-block">
1885                                Zur Suche springen
1886                            </a>
1887                                            
1888                                                                        <a href="#main-navigation-menu" class="skip-to-content-link d-inline-flex text-decoration-underline m-1 p-2 fw-bold gap-2 d-none d-lg-block">
1889                                Zur Hauptnavigation springen
1890                            </a>
1891                                                                        </div>
1892        </div>
1893        
1894        
1895    						                    <noscript class="noscript-main">
1896                
1897    
1898        <div
1899                role="alert"
1900        aria-live="polite"
1901        class="alert alert-info d-flex align-items-center"
1902    >
1903
1904                                                                        
1905                                                        
1906        
1907        
1908        
1909                        
1910                                    
1911                <span class="icon icon-info" aria-hidden="true">
1912                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M12 7c.5523 0 1 .4477 1 1s-.4477 1-1 1-1-.4477-1-1 .4477-1 1-1zm1 9c0 .5523-.4477 1-1 1s-1-.4477-1-1v-5c0-.5523.4477-1 1-1s1 .4477 1 1v5zm11-4c0 6.6274-5.3726 12-12 12S0 18.6274 0 12 5.3726 0 12 0s12 5.3726 12 12zM12 2C6.4772 2 2 6.4772 2 12s4.4772 10 10 10 10-4.4772 10-10S17.5228 2 12 2z" id="icons-default-info" /></defs><use xlink:href="#icons-default-info" fill="#758CA3" fill-rule="evenodd" /></svg>
1913                    </span>
1914
1915                                                        
1916                                    
1917                    <div class="alert-content-container">
1918                                                    
1919                                                            Um unseren Shop in vollem Umfang nutzen zu können, empfehlen wir Ihnen Javascript in Ihrem Browser zu aktivieren.
1920                                                </div>
1921
1922                                                    </div>
1923            </noscript>
1924        
1925                    		
1926				
1927
1928
1929
1930
1931
1932
1933
1934	 					
1935	
1936	
1937
1938
1939	
1940	
1941	
1942	
1943
1944	
1945
1946	
1947	<section id="twt-usp-bar"			 class="twt-usp-bar is-header is-small layout-1 top"
1948			 data-twt-usp-bar-position="1"			 data-twt-usp-bar-usps="5"
1949			 role="region"
1950			 aria-label="Darum lohnt sich Einkaufen bei uns"
1951	>
1952
1953					<div class="twt-usp-bar-container container">
1954				<div class="row h-100 align-items-center">
1955					<div class="twt-usp-bar-items col px-0">
1956						
1957
1958
1959
1960
1961
1962
1963
1964 
1965
1966
1967
1968                            
1969            
1970                
1971                                    <div class="twt-usp-bar-item twt-usp-1 item-1">
1972                    <div class="item-icon">
1973                                                
1974
1975		
1976					    
1977        
1978        
1979        
1980                        
1981                                    
1982                <span class="icon icon-rocket" aria-hidden="true">
1983                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M5.2213 14.4042a12.7324 12.7324 0 0 0-3.4638-1.434c-.7541-.1886-1.0142-1.1277-.4646-1.6773l1.8284-1.8284A5 5 0 0 1 6.657 8h2.47l.47-.6462A13 13 0 0 1 20.1107 2H21c.5523 0 1 .4477 1 1v.8893a13 13 0 0 1-5.3538 10.5136l-.4355.3167.2102.8407a5 5 0 0 1-1.3152 4.7482l-2.3986 2.3986c-.5496.5496-1.4887.2895-1.6772-.4646a12.7324 12.7324 0 0 0-1.434-3.4638 41.8718 41.8718 0 0 1-5.2797 2.17c-.7817.2606-1.5255-.4832-1.2649-1.265a41.8718 41.8718 0 0 1 2.17-5.2795zm.9287-1.7747A41.8718 41.8718 0 0 1 7.7358 10h-1.079a3 3 0 0 0-2.1213.8787l-.661.661c.794.2997 1.5546.665 2.2755 1.0898zm8.309 3.33a41.8717 41.8717 0 0 1-3.0885 1.8905 14.7187 14.7187 0 0 1 1.0897 2.2755l1.2313-1.2312a3 3 0 0 0 .789-2.849l-.0214-.0858zm-4.2242.2328a39.8717 39.8717 0 0 0 4.292-2.721l.943-.6859a11 11 0 0 0 4.5296-8.7848A11 11 0 0 0 11.2146 8.53l-.686.9432a39.8717 39.8717 0 0 0-2.721 4.2919 14.762 14.762 0 0 1 2.4272 2.4271zm-1.8172.936a12.7602 12.7602 0 0 0-1.5459-1.5459c-.4347.9-.8358 1.8167-1.202 2.748a39.8718 39.8718 0 0 0 2.7479-1.2021z" id="icons-default-rocket" /></defs><use xlink:href="#icons-default-rocket" fill="#758CA3" fill-rule="evenodd" /></svg>
1984                    </span>
1985
1986    
1987	                    </div>
1988                    <div class="item-label">
1989                        <div class="item-title">Versand per GLS und Spedition</div>
1990                                            </div>
1991                </div>
1992                    
1993    
1994                
1995                                    <div class="twt-usp-bar-item twt-usp-2 item-2">
1996                    <div class="item-icon">
1997                                                
1998
1999		
2000					    
2001        
2002        
2003        
2004                        
2005                                    
2006                <span class="icon icon-clock" aria-hidden="true">
2007                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M13 11V6c0-.5523-.4477-1-1-1s-1 .4477-1 1v6c0 .5523.4477 1 1 1h4c.5523 0 1-.4477 1-1s-.4477-1-1-1h-3zm-1 13C5.3726 24 0 18.6274 0 12S5.3726 0 12 0s12 5.3726 12 12-5.3726 12-12 12zm0-2c5.5228 0 10-4.4772 10-10S17.5228 2 12 2 2 6.4772 2 12s4.4772 10 10 10z" id="icons-default-clock" /></defs><use xlink:href="#icons-default-clock" fill="#758CA3" fill-rule="evenodd" /></svg>
2008                    </span>
2009
2010    
2011	                    </div>
2012                    <div class="item-label">
2013                        <div class="item-title">Kundenservice von 8-17 Uhr</div>
2014                                            </div>
2015                </div>
2016                    
2017    
2018                
2019                                    <div class="twt-usp-bar-item twt-usp-3 item-3">
2020                    <div class="item-icon">
2021                                                
2022
2023		
2024					    
2025        
2026        
2027        
2028                        
2029                                    
2030                <span class="icon icon-thumb-up" aria-hidden="true">
2031                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M4 9c.5523 0 1 .4477 1 1s-.4477 1-1 1-1-.4477-1-1 .4477-1 1-1zm4-2h.2457a1 1 0 0 0 .9615-.7253l1.1711-4.0989A3 3 0 0 1 13.263 0h1.76c1.6568 0 3 1.3431 3 3a3 3 0 0 1-.1155.8242L17 7h4c1.6569 0 3 1.3431 3 3v5c0 4.4183-3.5817 8-8 8H8c0 .5523-.4477 1-1 1H1c-.5523 0-1-.4477-1-1V7c0-.5523.4477-1 1-1h6c.5523 0 1 .4477 1 1zM6 8H2v14h4V8zm2 1v12h8c3.3137 0 6-2.6863 6-6v-5c0-.5523-.4477-1-1-1h-6.6515l1.6358-5.7253A1 1 0 0 0 16.0228 3c0-.5523-.4477-1-1-1H13.263a1 1 0 0 0-.9615.7253l-1.1711 4.0989A3 3 0 0 1 8.2457 9H8z" id="icons-default-thumb-up" /></defs><use xlink:href="#icons-default-thumb-up" fill="#758CA3" fill-rule="evenodd" /></svg>
2032                    </span>
2033
2034    
2035	                    </div>
2036                    <div class="item-label">
2037                        <div class="item-title">Käuferschutz über Trusted Shops</div>
2038                                            </div>
2039                </div>
2040                    
2041    
2042                
2043                                    <div class="twt-usp-bar-item twt-usp-4 item-4">
2044                    <div class="item-icon">
2045                                                
2046
2047		
2048					    
2049        
2050        
2051        
2052                        
2053                                    
2054                <span class="icon icon-briefcase" aria-hidden="true">
2055                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M20 8v1c0 .5523-.4477 1-1 1s-1-.4477-1-1V8H6v1c0 .5523-.4477 1-1 1s-1-.4477-1-1V8H3c-.5523 0-1 .4477-1 1v10c0 .5523.4477 1 1 1h18c.5523 0 1-.4477 1-1V9c0-.5523-.4477-1-1-1h-1zM7 6V4c0-1.1046.8954-2 2-2h6c1.1046 0 2 .8954 2 2v2h4c1.6569 0 3 1.3431 3 3v10c0 1.6569-1.3431 3-3 3H3c-1.6569 0-3-1.3431-3-3V9c0-1.6569 1.3431-3 3-3h4zm2 0h6V4H9v2z" id="icons-default-briefcase" /></defs><use xlink:href="#icons-default-briefcase" fill="#758CA3" fill-rule="evenodd" /></svg>
2056                    </span>
2057
2058    
2059	                    </div>
2060                    <div class="item-label">
2061                        <div class="item-title">Bequemer Kauf auf Rechnung</div>
2062                                            </div>
2063                </div>
2064                    
2065    
2066        
2067                
2068                                    <div class="twt-usp-bar-item twt-usp-5 item-6">
2069                    <div class="item-icon">
2070                                                
2071
2072		
2073					    
2074        
2075        
2076        
2077                        
2078                                    
2079                <span class="icon icon-headset" aria-hidden="true">
2080                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M2 11v4h2v-4H2zm20-2c1.1046 0 2 .8954 2 2v4c0 1.1046-.8954 2-2 2v3c0 1.6569-1.3431 3-3 3h-1c0 .5523-.4477 1-1 1h-2c-.5523 0-1-.4477-1-1v-2c0-.5523.4477-1 1-1h2c.5523 0 1 .4477 1 1h1c.5523 0 1-.4477 1-1v-3c-1.1046 0-2-.8954-2-2v-4c0-1.1046.8954-2 2-2 0-3.866-3.134-7-7-7h-2C7.134 2 4 5.134 4 9c1.1046 0 2 .8954 2 2v4c0 1.1046-.8954 2-2 2H2c-1.1046 0-2-.8954-2-2v-4c0-1.1046.8954-2 2-2 0-4.9706 4.0294-9 9-9h2c4.9706 0 9 4.0294 9 9zm-2 2v4h2v-4h-2z" id="icons-default-headset" /></defs><use xlink:href="#icons-default-headset" fill="#758CA3" fill-rule="evenodd" /></svg>
2081                    </span>
2082
2083    
2084	                    </div>
2085                    <div class="item-label">
2086                        <div class="item-title">Beratung unter:  +49 (0)6681 9678446</div>
2087                                            </div>
2088                </div>
2089                    
2090    					</div>
2091
2092																				
2093														</div>
2094			</div>
2095		
2096	</section>
2097	
2098		            
2099    
2100        <header class="header-main">
2101                            <div class="container">
2102                        					            <div class="top-bar d-none d-lg-block">
2103        	        
2104										<nav class="top-bar-nav d-flex justify-content-end gap-3"
2105					 aria-label="Shop-Einstellungen"
2106				>
2107					<div class="row align-items-center twt-top-bar">
2108						
2109													<div class="col-auto">
2110								<div class="twt-top-bar-dropdowns d-flex justify-content-end gap-3">
2111									<div class="top-bar-nav-item top-bar-menu"><div class="service-menu dropdown"><button class="btn dropdown-toggle top-bar-nav-btn"
2112                            type="button"
2113                            id="serviceMenuDropdown-top-bar"
2114                            data-bs-toggle="dropdown"
2115                            aria-haspopup="true"
2116                            aria-expanded="false"
2117                                                                            ><span class="icon icon-themeware icon-help icon-solid" aria-hidden="true"><?xml version="1.0" encoding="utf-8"?><svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><rect x="10.96" y="16.13" width="2.06" height="2.06"/><path d="M12,5.81a4,4,0,0,0-4,4H10a2,2,0,1,1,4,0c0,.6-.51,1-1.29,1.72a5.31,5.31,0,0,0-.69.6,3.3,3.3,0,0,0-1,2.24v.69H13v-.69a1.33,1.33,0,0,1,.43-.86,2.16,2.16,0,0,1,.51-.43c.77-.69,2-1.64,2-3.27A3.91,3.91,0,0,0,12,5.81Z"/><path d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,20a9,9,0,1,1,9-9A9,9,0,0,1,12,21Z"/></svg></span><span class="top-bar-nav-text">Service/Hilfe</span></button><ul class="top-bar-list dropdown-menu dropdown-menu-end"><li class="top-bar-list-item"><a class="top-bar-list-item dropdown-item d-flex gap-1"
2118                                       href=""
2119                                                                              title="Nützliche Links">
2120                                        Nützliche Links
2121                                    </a></li><li class="top-bar-list-item"><a class="top-bar-list-item dropdown-item d-flex gap-1"
2122                                       href=""
2123                                                                              title="Planenkonfigurator">
2124                                        Planenkonfigurator
2125                                    </a></li></ul></div></div>								</div>
2126							</div>
2127											</div>
2128				</nav>
2129
2130			
2131			    </div>
2132    
2133
2134	
2135    					        <div class="row align-items-center header-row">
2136                            <div class="col-12 col-lg-auto header-logo-col pb-sm-2 my-3 m-lg-0">
2137                        <div class="header-logo-main text-center">
2138                    <a class="header-logo-main-link"
2139               href="/"
2140               title="Zur Startseite gehen">
2141                				                    <picture class="header-logo-picture d-block m-auto">
2142                                                                            
2143                                                                            
2144                                                                                    <img src="https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341"
2145                                     alt="Zur Startseite gehen"
2146                                     class="img-fluid header-logo-main-img">
2147                                                                        </picture>
2148                
2149	
2150						
2151							<a href="/"
2152			   class="header-logo-shopping-experiences-link"
2153			   title="Zur Startseite gehen"
2154			   			>
2155				<img src="https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341" alt="Zur Startseite gehen" class="img-fluid header-logo-shopping-experiences-img">
2156			</a>
2157			            </a>
2158            </div>
2159                </div>
2160            
2161            			
2162	
2163                            <div class="col-12 order-1 col-sm-auto order-sm-2 header-actions-col">
2164                    <div class="row g-0">
2165                            		
2166	
2167				
2168	
2169			
2170							
2171				
2172										
2173															
2174					
2175			
2176			<div class="col d-lg-none">
2177		<div class="menu-button">
2178
2179							<button
2180                    class="btn nav-main-toggle-btn header-actions-btn"
2181					type="button"
2182					data-off-canvas-menu="true"
2183					aria-label="Menü"
2184					title="Navigation"
2185				>
2186																														    
2187        
2188        
2189        
2190                        
2191                        
2192
2193    
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206    <span class="icon icon-themeware icon-stack icon-solid" aria-hidden="true"><?xml version="1.0" encoding="utf-8"?><svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2206<path d="M2,5.48H22a1,1,0,0,0,0-2H2a1,1,0,0,0,0,2Z"/><path d="M22,10.92H2a1,1,0,0,0,0,2H22a1,1,0,0,0,0-2Z"/><path d="M22,18.52H2a1,1,0,0,0,0,2H22a1,1,0,0,0,0-2Z"/></svg></span>
2207
2208
2209
2210
2211    											
2212										<span class="header-nav-main-toggle-label">
2213						Navigation
2214					</span>
2215				</button>
2216			
2217		</div>
2218	</div>
2219
2220                
2221                        		
2222		
2223		
2224					
2225		
2226	<div class="col-auto twt-search-col">
2227		  <div class="search-toggle">
2228				<button class="btn header-actions-btn search-toggle-btn js-search-toggle-btn collapsed"
2229						type="button"
2230						data-bs-toggle="collapse"
2231						data-bs-target="#searchCollapse"
2232						aria-expanded="false"
2233						aria-controls="searchCollapse"
2234						aria-label="Suchen"
2235				>
2236										<span class="header-search-toggle-icon">
2237													    
2238        
2239        
2240        
2241                        
2242                        
2243
2244    
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257    <span class="icon icon-themeware icon-search icon-solid" aria-hidden="true"><?xml version="1.0" encoding="utf-8"?><svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.34,1A8.52,8.52,0,0,0,7.77,15L1.43,21.29a1,1,0,0,0,0,1.42,1,1,0,0,0,.71.29,1,1,0,0,0,.71-.29l6.38-6.38A8.52,8.52,0,1,0,14.34,1Zm0,15a6.52,6.52,0,1,1,6.52-6.52A6.53,6.53,0,0,1,14.34,16Z"/></svg></span>
2258
2259
2260
2261
2262    						
2263													    
2264        
2265        
2266        
2267                        
2268                        
2269
2270    
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283    <span class="icon icon-themeware icon-x icon-solid" aria-hidden="true"><?xml version="1.0" encoding="utf-8"?><svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13.41,12l9.3-9.29a1,1,0,1,0-1.42-1.42L12,10.59,2.71,1.29A1,1,0,0,0,1.29,2.71L10.59,12l-9.3,9.29a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0L12,13.41l9.29,9.3a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42Z"/></svg></span>
2284
2285
2286
2287
2288    											</span>
2289
2290										<span class="header-search-toggle-name">
2291						Suche
2292					</span>
2293				</button>
2294		  </div>
2295	 </div>
2296
2297                        
2298                        						                            <div class="col-auto">
2299                                <div class="account-menu">
2300                                        <div class="dropdown">
2301        							<button class="btn account-menu-btn header-actions-btn"
2302				type="button"
2303				id="accountWidget"
2304				data-account-menu="true"
2305				data-bs-toggle="dropdown"
2306				aria-expanded="false"
2307				aria-label="Mein Konto"
2308				title="Mein Konto"
2309		>
2310						<span class="header-account-icon">
2311													    
2312        
2313        
2314        
2315                        
2316                        
2317
2318    
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331    <span class="icon icon-themeware icon-avatar icon-solid" aria-hidden="true"><?xml version="1.0" encoding="utf-8"?><svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.31,16.24A10.3,10.3,0,0,0,15.89,13a6.57,6.57,0,1,0-7.74,0A10.18,10.18,0,0,0,2.8,16.24a7.86,7.86,0,0,0-1.55,3.84,1,1,0,0,0,.35.85,8.89,8.89,0,0,0,2.94,1.41,28.5,28.5,0,0,0,7.34.84h.35a28.5,28.5,0,0,0,7.34-.84,9,9,0,0,0,2.94-1.41,1,1,0,0,0,.34-.85A7.8,7.8,0,0,0,21.31,16.24ZM12,3.17A4.57,4.57,0,1,1,7.44,7.74,4.57,4.57,0,0,1,12,3.17ZM19,20.43a25.91,25.91,0,0,1-6.64.74h-.52a26,26,0,0,1-6.64-.74,11,11,0,0,1-1.8-.74,5.19,5.19,0,0,1,1-2.16c2.64-3.14,7.58-3,7.63-3h.19s5-.18,7.63,3a5.32,5.32,0,0,1,1,2.16A11.2,11.2,0,0,1,19,20.43Z"/></svg></span>
2332
2333
2334
2335
2336    							</span>
2337
2338									<span class="header-account-name">
2339				Mein Konto
2340			</span>
2341
2342											</button>
2343
2344	
2345                    <div class="dropdown-menu dropdown-menu-end account-menu-dropdown js-account-menu-dropdown"
2346                 aria-labelledby="accountWidget">
2347                
2348
2349        
2350            <div class="offcanvas-header">
2351                            <button class="btn btn-secondary offcanvas-close js-offcanvas-close">
2352                                                
2353        
2354        
2355        
2356                        
2357                                    
2358                <span class="icon icon-x icon-sm" aria-hidden="true">
2359                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="m10.5858 12-7.293-7.2929c-.3904-.3905-.3904-1.0237 0-1.4142.3906-.3905 1.0238-.3905 1.4143 0L12 10.5858l7.2929-7.293c.3905-.3904 1.0237-.3904 1.4142 0 .3905.3906.3905 1.0238 0 1.4143L13.4142 12l7.293 7.2929c.3904.3905.3904 1.0237 0 1.4142-.3906.3905-1.0238.3905-1.4143 0L12 13.4142l-7.2929 7.293c-.3905.3904-1.0237.3904-1.4142 0-.3905-.3906-.3905-1.0238 0-1.4143L10.5858 12z" id="icons-default-x" /></defs><use xlink:href="#icons-default-x" fill="#758CA3" fill-rule="evenodd" /></svg>
2360                    </span>
2361
2362                        
2363                                            Menü schließen
2364                                    </button>
2365                    </div>
2366    
2367            <div class="offcanvas-body">
2368                <div class="account-menu">
2369                                    <div class="dropdown-header account-menu-header">
2370                    Ihr Konto
2371                </div>
2372                    
2373                                    <div class="account-menu-login">
2374                                            <a href="/account/login"
2375                           title="Anmelden"
2376                           class="btn btn-primary account-menu-login-button">
2377                            Anmelden
2378                        </a>
2379                    
2380                                            <div class="account-menu-register">
2381                            oder
2382                            <a href="/account/login"
2383                               title="Registrieren">
2384                                registrieren
2385                            </a>
2386                        </div>
2387                                    </div>
2388                    
2389                    <div class="account-menu-links">
2390                    <div class="header-account-menu">
2391        <div class="card account-menu-inner">
2392                                        
2393                                                <nav class="list-group list-group-flush account-aside-list-group">
2394                        
2395                                                                <a href="/account"
2396                                   title="Übersicht"
2397                                   class="list-group-item list-group-item-action account-aside-item"
2398                                   >
2399                                    Übersicht
2400                                </a>
2401                            
2402                                                            <a href="/account/profile"
2403                                   title="Persönliches Profil"
2404                                   class="list-group-item list-group-item-action account-aside-item"
2405                                   >
2406                                    Persönliches Profil
2407                                </a>
2408                            
2409                                                                                                                            <a href="/account/address"
2410                                   title="Adressen"
2411                                   class="list-group-item list-group-item-action account-aside-item"
2412                                   >
2413                                    Adressen
2414                                </a>
2415                            
2416                                                            <a href="/account/order"
2417                                   title="Bestellungen"
2418                                   class="list-group-item list-group-item-action account-aside-item"
2419                                   >
2420                                    Bestellungen
2421                                </a>
2422                                                    
2423
2424                                        <a href="/account/mollie/subscriptions"
2425                   title="Abonnements"
2426                   class="list-group-item list-group-item-action account-aside-item">
2427                    Abonnements
2428                </a>
2429                    
2430            
2431
2432                    </nav>
2433                            
2434                                                </div>
2435    </div>
2436            </div>
2437            </div>
2438        </div>
2439                </div>
2440            </div>
2441                                </div>
2442                            </div>
2443                        
2444
2445	
2446                        
2447                        						                            <div class="col-auto">
2448                                <div
2449                                    class="header-cart"
2450                                    data-off-canvas-cart="true"
2451                                    data-off-canvas-cart-options="{&quot;autoFocus&quot;:true}"
2452                                >
2453                                    <a
2454                                        class="btn header-cart-btn header-actions-btn"
2455                                        href="/checkout/cart"
2456                                        data-cart-widget="true"
2457                                        title="Warenkorb"
2458                                        aria-labelledby="cart-widget-aria-label"
2459                                        aria-haspopup="dialog"
2460                                    >
2461                                        					<span class="header-cart-icon">
2462															    
2463        
2464        
2465        
2466                        
2467                        
2468
2469    
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482    <span class="icon icon-themeware icon-bag icon-solid" aria-hidden="true"><?xml version="1.0" encoding="utf-8"?><svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2482<path d="M20.87,6.82a1,1,0,0,0-1-.93H16.72V5.36A4.45,4.45,0,0,0,12,1,4.42,4.42,0,0,0,7.23,5.36v.53H4.11a1,1,0,0,0-1,.93l-1,14a2,2,0,0,0,2,2.14H19.8a2,2,0,0,0,2-2.13ZM9.23,5.37A2.4,2.4,0,0,1,12,3c2.59,0,2.76,2,2.77,2.37v.53H9.23Zm-2,2.52v1a1,1,0,0,0,2,0v-1h5.49v1a1,1,0,1,0,2,0v-1h2.22l.5,7.61H4.51l.54-7.61ZM4.12,21l.3-4.24h15.1L19.8,21Z"/></svg></span>
2483
2484
2485
2486
2487    				
2488					</span>
2489
2490				<span class="header-cart-name">
2491			Warenkorb
2492		</span>
2493
2494		
2495				<span class="header-cart-total">
2496			0,00 €
2497		</span>
2498
2499	                                    </a>
2500                                </div>
2501                            </div>
2502                        
2503
2504	                    </div>
2505                </div>
2506                    </div>
2507    
2508
2509	                </div>
2510                    </header>
2511    
2512    		
2513					
2514														<div class="nav-main">
2515											<div class="container">
2516
2517																															<div id="sticky-logo" class="d-none">
2518										<a href="/"
2519										class="sticky-logo-main-link"
2520										title="Zur Startseite gehen"
2521																				>
2522											<picture>
2523
2524																																					<img src="https://www.tekoplan-planen.shop/media/8e/54/60/1668004341/tekoplan-planenmanufaktur.png?ts=1668004341" alt="Zur Startseite gehen">
2525												
2526																																																	
2527											</picture>
2528										</a>
2529									</div>
2530															
2531														
2532																						<span id="js-sticky-cart-position" class="d-none"></span>
2533							
2534																				</div>
2535
2536												                    <div class="container">
2537                
2538                                <nav class="navbar navbar-expand-lg main-navigation-menu"
2539                 id="main-navigation-menu"
2540                                  itemscope="itemscope"
2541                 itemtype="https://schema.org/SiteNavigationElement"
2542                                  data-navbar="true"
2543                 data-navbar-options="{&quot;pathIdList&quot;:[]}"
2544                 aria-label="Hauptnavigation"
2545            >
2546                <div class="collapse navbar-collapse" id="main_nav">
2547                    <ul class="navbar-nav main-navigation-menu-list flex-wrap">
2548                        
2549                        										<li class="nav-item nav-item-26cf1202c12d4a88b183aae4579ac77f">
2550                                <a class="nav-link main-navigation-link home-link root nav-item-26cf1202c12d4a88b183aae4579ac77f-link active"
2551                   href="/"
2552                                      itemprop="url"
2553                                      title="Home"
2554                >
2555                                                                                            <div class="main-navigation-icon">
2556                            <span itemprop="name">
2557                                                                                                        
2558        
2559        
2560        
2561                        
2562                        
2563
2564    
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577    <span class="icon icon-themeware icon-home icon-solid" aria-hidden="true"><?xml version="1.0" encoding="utf-8"?><svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22.72,11.55l-3.21-3.3V3.81a1,1,0,1,0-2,0V6.19L12.72,1.25A1.06,1.06,0,0,0,12,1a1,1,0,0,0-.72.31L3.45,9.51a.81.81,0,0,0-.18.19l-2,2.1a1,1,0,0,0,0,1.42,1,1,0,0,0,.69.27,1,1,0,0,0,.73-.31l.33-.36v8.43A1.94,1.94,0,0,0,5,23.18H18.85a1.93,1.93,0,0,0,1.93-1.93V12.43l.5.52a1,1,0,1,0,1.44-1.4Zm-9.1,9.63H10.23V14.4h3.39Zm5.16,0H14.87v-8H9v8H5.06V10.71l7-7.32,6.77,7Z"/></svg></span>
2578
2579
2580
2581
2582                                                                </span>
2583                        </div>
2584
2585                                    </a>
2586			</li>
2587
2588		
2589	
2590                                                                                                                                                                                                                    
2591                                                
2592        
2593                                                                                    
2594                
2595                    <li class="nav-item nav-item-01995b7eac107cc1ae4f6ea20a7f1e5f dropdown ">
2596                                                                                                                    <a class="nav-link nav-item-01995b7eac107cc1ae4f6ea20a7f1e5f-link root main-navigation-link no-dropdown"
2597                       href="https://www.tekoplan-planen.shop/Planenkonfigurator/"
2598                                                                                            itemprop="url"
2599                                              title="Planenkonfigurator"
2600                    >
2601                                                                                                        <sp
2601an itemprop="name" class="main-navigation-link-text">Planenkonfigurator</span>
2602                                                    
2603
2604                                                                    </a>
2605                
2606                                            </li>
2607        
2608                                                                                                                                                                                                
2609                                                
2610        
2611                                                                                    
2612                
2613                    <li class="nav-item nav-item-cafb42b7d7fa4d9c9160de5f078ef0ec dropdown ">
2614                                                                                                                    <a class="nav-link nav-item-cafb42b7d7fa4d9c9160de5f078ef0ec-link root main-navigation-link dropdown-toggle"
2615                       href="https://www.tekoplan-planen.shop/Abdeckplane/"
2616                                                                                            itemprop="url"
2617                                              title="Abdeckplane"
2618                    >
2619                                                                                                        <span itemprop="name" class="main-navigation-link-text">Abdeckplane</span>
2620                                                    
2621
2622                                                                                
2623        
2624        
2625        
2626                        
2627                
2628                <span class="icon icon-arrow-medium-down icon-xs" aria-hidden="true">
2629                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><defs><path id="icons-solid-arrow-medium-down" d="M4.7071 6.2929c-.3905-.3905-1.0237-.3905-1.4142 0-.3905.3905-.3905 1.0237 0 1.4142l4 4c.3905.3905 1.0237.3905 1.4142 0l4-4c.3905-.3905.3905-1.0237 0-1.4142-.3905-.3905-1.0237-.3905-1.4142 0L8 9.5858l-3.2929-3.293z" /></defs><use xlink:href="#icons-solid-arrow-medium-down" fill="#758CA3" fill-rule="evenodd" /></svg>
2630                    </span>
2631
2632                                                </a>
2633                
2634                                            </li>
2635        
2636                                                                                                                                                                                                
2637                                                
2638        
2639                                                                                    
2640                
2641                    <li class="nav-item nav-item-f3bcdc7c0bd84d569d4a3fdc2d30dc3c dropdown ">
2642                                                                                                                    <a class="nav-link nav-item-f3bcdc7c0bd84d569d4a3fdc2d30dc3c-link root main-navigation-link dropdown-toggle"
2643                       href="https://www.tekoplan-planen.shop/Terrassenplane/"
2644                                                                                            itemprop="url"
2645                                              title="Terrassenplane"
2646                    >
2647                                                                                                        <span itemprop="name" class="main-navigation-link-text">Terrassenplane</span>
2648                                                    
2649
2650                                                                                
2651        
2652        
2653        
2654                        
2655                
2656                <span class="icon icon-arrow-medium-down icon-xs" aria-hidden="true">
2657                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><use xlink:href="#icons-solid-arrow-medium-down" fill="#758CA3" fill-rule="evenodd" /></svg>
2658                    </span>
2659
2660                                                </a>
2661                
2662                                            </li>
2663        
2664                                                                                                                                                                                                
2665                                                
2666        
2667                                                                                    
2668                
2669                    <li class="nav-item nav-item-f914d8099fe74be
2669c8f4aecd5c3a906b6 dropdown ">
2670                                                                                                                    <a class="nav-link nav-item-f914d8099fe74bec8f4aecd5c3a906b6-link root main-navigation-link dropdown-toggle"
2671                       href="https://www.tekoplan-planen.shop/Carportplane/"
2672                                                                                            itemprop="url"
2673                                              title="Carportplane"
2674                    >
2675                                                                                                        <span itemprop="name" class="main-navigation-link-text">Carportplane</span>
2676                                                    
2677
2678                                                                                
2679        
2680        
2681        
2682                        
2683                
2684                <span class="icon icon-arrow-medium-down icon-xs" aria-hidden="true">
2685                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><use xlink:href="#icons-solid-arrow-medium-down" fill="#758CA3" fill-rule="evenodd" /></svg>
2686                    </span>
2687
2688                                                </a>
2689                
2690                                            </li>
2691        
2692                                                                                                                                                                                                
2693                                                
2694        
2695                                                                                    
2696                
2697                    <li class="nav-item nav-item-ce9fcfe3c3844c87bceccd35916c9b35 dropdown ">
2698                                                                                                                    <a class="nav-link nav-item-ce9fcfe3c3844c87bceccd35916c9b35-link root main-navigation-link dropdown-toggle"
2699                       href="https://www.tekoplan-planen.shop/Poolplane/"
2700                                                                                            itemprop="url"
2701                                              title="Poolplane"
2702                    >
2703                                                                                                        <span itemprop="name" class="main-navigation-link-text">Poolplane</span>
2704                                                    
2705
2706                                                                                
2707        
2708        
2709        
2710                        
2711                
2712                <span class="icon icon-arrow-medium-down icon-xs" aria-hidden="true">
2713                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><use xlink:href="#icons-solid-arrow-medium-down" fill="#758CA3" fill-rule="evenodd" /></svg>
2714                    </span>
2715
2716                                                </a>
2717                
2718                                            </li>
2719        
2720                                                                                                                                                                                                
2721                                                
2722        
2723                                                                                    
2724                
2725                    <li class="nav-item nav-item-596e59b0584e445289b53afd2bb79947 dropdown ">
2726                                                                                                                    <a class="nav-link nav-item-596e59b0584e445289b53afd2bb79947-link root main-navigation-link no-dropdown"
2727                       href="https://www.tekoplan-planen.shop/Anhaenger-LKW-Plane/"
2728                                                                                            itemprop="url"
2729                                              title="Anhänger- / LKW-Plane"
2730                    >
2731                                                                                                        <sp
2731an itemprop="name" class="main-navigation-link-text">Anhänger- / LKW-Plane</span>
2732                                                    
2733
2734                                                                    </a>
2735                
2736                                            </li>
2737        
2738                                                                                                                                                                                                
2739                                                
2740        
2741                                                                                    
2742                
2743                    <li class="nav-item nav-item-d05b4c474f724b19a2224872ed386373 dropdown ">
2744                                                                                                                    <a class="nav-link nav-item-d05b4c474f724b19a2224872ed386373-link root main-navigation-link dropdown-toggle"
2745                       href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/"
2746                                                                                            itemprop="url"
2747                                              title="Reptilienschutzzaun GTH"
2748                    >
2749                                                                                                        <span itemprop="name" class="main-navigation-link-text">Reptilienschutzzaun GTH</span>
2750                                                    
2751
2752                                                                                
2753        
2754        
2755        
2756                        
2757                
2758                <span class="icon icon-arrow-medium-down icon-xs" aria-hidden="true">
2759                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><use xlink:href="#icons-solid-arrow-medium-down" fill="#758CA3" fill-rule="evenodd" /></svg>
2760                    </span>
2761
2762                                                </a>
2763                
2764                                            </li>
2765        
2766                                                                                                                                                                                                
2767                                                
2768        
2769                                                                                    
2770                
2771                    <li class="nav-item nav-item-ba89017658744acabb36f8815637dfbd dropdown ">
2772                                                                                                                    <a class="nav-link nav-item-ba89017658744acabb36f8815637dfbd-link root main-navigation-link dropdown-toggle"
2773                       href="https://www.tekoplan-planen.shop/Rollenware/"
2774                                                                                            itemprop="url"
2775                                              title="Rollenware"
2776                    >
2777                                                                                                        <span itemprop="name" class="main-navigation-link-text">Rollenware</span>
2778                                                    
2779
2780                                                                                
2781        
2782        
2783        
2784                        
2785                
2786                <span class="icon icon-arrow-medium-down icon-xs" aria-hidden="true">
2787                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><use xlink:href="#icons-solid-arrow-medium-down" fill="#758CA3" fill-rule="evenodd" /></svg>
2788                    </span>
2789
2790                                                </a>
2791                
2792                                            </li>
2793        
2794                                                                                                                                                                                                
2795                                                
2796        
2797                                                                                    
2798                
2799                    <li class="nav-item nav-item-1433189901ef416396e572aec410bad2 dropdown ">
2800                                                                                                                    <a class="nav-link nav-item-1433189901ef416396e572aec410bad2-link root main-navigation-link dropdown-toggle"
2801                       href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/"
2802                                                                                            itemprop="url"
2803                                              title="Garten / Bau / Industrie"
2804                    >
2805                                                                                                        <sp
2805an itemprop="name" class="main-navigation-link-text">Garten / Bau / Industrie</span>
2806                                                    
2807
2808                                                                                
2809        
2810        
2811        
2812                        
2813                
2814                <span class="icon icon-arrow-medium-down icon-xs" aria-hidden="true">
2815                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><use xlink:href="#icons-solid-arrow-medium-down" fill="#758CA3" fill-rule="evenodd" /></svg>
2816                    </span>
2817
2818                                                </a>
2819                
2820                                            </li>
2821        
2822                                                                                                                                                                                                
2823                                                
2824        
2825                                                                                    
2826                
2827                    <li class="nav-item nav-item-dcbd334ebc314f4e946cf30d5a51b971 dropdown ">
2828                                                                                                                    <a class="nav-link nav-item-dcbd334ebc314f4e946cf30d5a51b971-link root main-navigation-link no-dropdown"
2829                       href="https://www.tekoplan-planen.shop/Sonnensegel/"
2830                                                                                            itemprop="url"
2831                                              title="Sonnensegel"
2832                    >
2833                                                                                                        <span itemprop="name" class="main-navigation-link-text">Sonnensegel</span>
2834                                                    
2835
2836                                                                    </a>
2837                
2838                                            </li>
2839        
2840                                                                            </ul>
2841                </div>
2842            </nav>
2843            </div>
2844            
2845									</div>
2846
2847			
2848		
2849	
2850	
2851								
2852		<div class="twt-top-navigation-flyout-wrapper" data-top-navigation-flyout>
2853															
2854												
2855				
2856															
2857												
2858									<div class="twt-top-navigation-flyout twt-top-navigation-flyout--default nav-item-dropdown-cafb42b7d7fa4d9c9160de5f078ef0ec dropdown-menu w-100 p-4 d-none">
2859						<div class="twt-top-navigation-flyout-container container">
2860							        
2861                                <div class="row">
2862                            <div class="col">
2863                    <div class="navigation-flyout-category-link">
2864                                                                                                                    <a href="https://www.tekoplan-planen.shop/Abdeckplane/"
2865                                                                      itemprop="url"
2866                                                                      title="Abdeckplane">
2867                                                                            Zur Kategorie Abdeckplane
2868                                                                    </a>
2869                                                                        </div>
2870                </div>
2871            
2872                            <div class="col-auto">
2873                    <button class="navigation-flyout-close js-close-flyout-menu btn-close" aria-label="Menü schließen">
2874                                                                                                                            </button>
2875                </div>
2876                    </div>
2877    
2878
2879    
2880            <div class="row navigation-flyout-content">
2881                            <div class="col-8 col-xl-9">
2882                    <div class="">
2883                                                    
2884            
2885                
2886    <div class="row navigation-flyout-categories is-level-0">
2887                                                        
2888                                                                            <div class="col-4 ">
2889                                        <a class="nav-item nav-item-5178f21997764651843dea343be852f0 nav-link nav-item-5178f21997764651843dea343be852f0-link navigation-flyout-link is-level-0"
2890           href="https://www.tekoplan-planen.shop/Abdeckplane/Abdeckplane-mit-Tuer-und-Fenster-konfigurieren/"
2891                      itemprop="url"
2892                                 title="Abdeckplane mit Tür und Fenster konfigurieren"
2893        >
2894            <span itemprop="name">Abdeckplane mit Tür und Fenster konfigurieren</span>
2895
2896                                </a>
2897
2898    
2899                                                
2900    
2901    <div class="navigation-flyout-categories is-level-1">
2902            </div>
2903        
2904                    </div>
2905                                                                    
2906                                                                            <div class="col-4 navigation-flyout-col">
2907                                        <a class="nav-item nav-item-373f3d51d452453191593fa1ffbbbdb1 nav-link nav-item-373f3d51d452453191593fa1ffbbbdb1-link navigation-flyout-link is-level-0"
2908           href="https://www.tekoplan-planen.shop/Abdeckplane/Abdeckplane-rechteckig-konfigurieren/"
2909                      itemprop="url"
2910                                 title="Abdeckplane rechteckig konfigurieren"
2911        >
2912            <span itemprop="name">Abdeckplane rechteckig konfigurieren</span>
2913
2914                                </a>
2915
2916    
2917                                                
2918    
2919    <div class="navigation-flyout-categories is-level-1">
2920            </div>
2921        
2922                    </div>
2923                                                                    
2924                                                                            <div class="col-4 navigation-flyout-col">
2925                                        <a class="nav-item nav-item-fdd60408f8e34cb6b6741ce61436232c nav-link nav-item-fdd60408f8e34cb6b6741ce61436232c-link navigation-flyout-link is-level-0"
2926           href="https://www.tekoplan-planen.shop/Abdeckplane/Abdeckplane-mit-schraeger-Seite-links-rechts-konfigurieren/"
2927                      itemprop="url"
2928                                 title="Abdeckplane mit schräger Seite (links/rechts) konfigurieren"
2929        >
2930            <span itemprop="name">Abdeckplane mit schräger Seite (links/rechts) konfigurieren</span>
2931
2932                                </a>
2933
2934    
2935                                                
2936    
2937    <div class="navigation-flyout-categories is-level-1">
2938            </div>
2939        
2940                    </div>
2941                                                                    
2942                                                                            <div class="col-4 ">
2943                                        <a class="nav-item nav-item-f182b8728e764de7939200d552abebf4 nav-link nav-item-f182b8728e764de7939200d552abebf4-link navigation-flyout-link is-level-0"
2944           href="https://www.tekoplan-planen.shop/Abdeckplane/Abdeckplane-rund-konfigurieren/"
2945                      itemprop="url"
2946                                 title="Abdeckplane rund konfigurieren"
2947        >
2948            <span itemprop="name">Abdeckplane rund konfigurieren</span>
2949
2950                                </a>
2951
2952    
2953                                                
2954    
2955    <div class="navigation-flyout-categories is-level-1">
2956            </div>
2957        
2958                    </div>
2959                                                                    
2960                                                                            <div class="col-4 navigation-flyout-col">
2961                                        <a class="nav-item nav-item-1363c26aa4254fecbc4d285ca46b7600 nav-link nav-item-1363c26aa4254fecbc4d285ca46b7600-link navigation-flyout-link is-level-0"
2962           href="https://www.tekoplan-planen.shop/Abdeckplane/Abdeckplane-dreieckig-konfigurieren/"
2963                      itemprop="url"
2964                                 title="Abdeckplane dreieckig konfigurieren"
2965        >
2966            <span itemprop="name">Abdeckplane dreieckig konfigurieren</span>
2967
2968                                </a>
2969
2970    
2971                                                
2972    
2973    <div class="navigation-flyout-categories is-level-1">
2974            </div>
2975        
2976                    </div>
2977                                                                    
2978                                                                            <div class="col-4 navigation-flyout-col">
2979                                        <a class="nav-item nav-item-faf322e2f15d4a4682ff2fc04794aceb nav-link nav-item-faf322e2f15d4a4682ff2fc04794aceb-link navigation-flyout-link is-level-0"
2980           href="https://www.tekoplan-planen.shop/Abdeckplane/Abdeckplane-oval-konfigurieren/"
2981                      itemprop="url"
2982                                 title="Abdeckplane oval konfigurieren"
2983        >
2984            <span itemprop="name">Abdeckplane oval konfigurieren</span>
2985
2986                                </a>
2987
2988    
2989                                                
2990    
2991    <div class="navigation-flyout-categories is-level-1">
2992            </div>
2993        
2994                    </div>
2995                        </div>
2996
2997                        </div>
2998                </div>
2999            
3000                                                <div class="col-4 col-xl-3">
3001                        <div class="navigation-flyout-teaser">
3002                                                            <a class="navigation-flyout-teaser-image-container"
3003                                   href="https://www.tekoplan-planen.shop/Abdeckplane/"
3004                                                                      title="Abdeckplane">
3005                                    
3006                    
3007                        
3008                        
3009    
3010    
3011    
3012        
3013                
3014        
3015                
3016        
3017                                
3018                                            
3019                                            
3020                    
3021                
3022                
3023        
3024        
3025                                                                                                                                
3026            
3027            <img src="https://www.tekoplan-planen.shop/media/f0/5a/78/1671288802/abdeckplane_ohne.jpg?ts=1750679926"                             srcset="https://www.tekoplan-planen.shop/thumbnail/f0/5a/78/1671288802/abdeckplane_ohne_400x400.jpg?ts=1671288806 400w, https://www.tekoplan-planen.shop/thumbnail/f0/5a/78/1671288802/abdeckplane_ohne_800x800.jpg?ts=1671288806 800w, https://www.tekoplan-planen.shop/thumbnail/f0/5a/78/1671288802/abdeckplane_ohne_1920x1920.jpg?ts=1671288806 1920w"                                 sizes="310px"
3028                                         class="navigation-flyout-teaser-image img-fluid" alt="Abdeckplane Holz" title="Abdeckplane Holz" data-object-fit="cover" loading="lazy"        />
3029                                    </a>
3030                                                    </div>
3031                    </div>
3032                                    </div>
3033    						</div>
3034					</div>
3035
3036				
3037															
3038												
3039									<div class="twt-top-navigation-flyout twt-top-navigation-flyout--default nav-item-dropdown-f3bcdc7c0bd84d569d4a3fdc2d30dc3c dropdown-menu w-100 p-4 d-none">
3040						<div class="twt-top-navigation-flyout-container container">
3041							        
3042                                <div class="row">
3043                            <div class="col">
3044                    <div class="navigation-flyout-category-link">
3045                                                                                                                    <a href="https://www.tekoplan-planen.shop/Terrassenplane/"
3046                                                                      itemprop="url"
3047                                                                      title="Terrassenplane">
3048                                                                            Zur Kategorie Terrassenplane
3049                                                                    </a>
3050                                                                        </div>
3051                </div>
3052            
3053                            <div class="col-auto">
3054                    <button class="navigation-flyout-close js-close-flyout-menu btn-close" aria-label="Menü schließen">
3055                                                                                                                            </button>
3056                </div>
3057                    </div>
3058    
3059
3060    
3061            <div class="row navigation-flyout-content">
3062                            <div class="col-8 col-xl-9">
3063                    <div class="">
3064                                                    
3065            
3066                
3067    <div class="row navigation-flyout-categories is-level-0">
3068                                                        
3069                                                                            <div class="col-4 ">
3070                                        <a class="nav-item nav-item-7c04307e2da94c4c8e7b9eda2e8a28ac nav-link nav-item-7c04307e2da94c4c8e7b9eda2e8a28ac-link navigation-flyout-link is-level-0"
3071           href="https://www.tekoplan-planen.shop/Terrassenplane/Terrassenplane-mit-Tuer-und-Fenster-konfigurieren/"
3072                      itemprop="url"
3073                                 title="Terrassenplane mit Tür und Fenster konfigurieren"
3074        >
3075            <span itemprop="name">Terrassenplane mit Tür und Fenster konfigurieren</span>
3076
3077                                </a>
3078
3079    
3080                                                
3081    
3082    <div class="navigation-flyout-categories is-level-1">
3083            </div>
3084        
3085                    </div>
3086                                                                    
3087                                                                            <div class="col-4 navigation-flyout-col">
3088                                        <a class="nav-item nav-item-794c4f4c3e1a48a2b7c5b6eeb950ce5b nav-link nav-item-794c4f4c3e1a48a2b7c5b6eeb950ce5b-link navigation-flyout-link is-level-0"
3089           href="https://www.tekoplan-planen.shop/Terrassenplane/Terrassenplane-rechteckig-konfigurieren/"
3090                      itemprop="url"
3091                                 title="Terrassenplane rechteckig konfigurieren"
3092        >
3093            <span itemprop="name">Terrassenplane rechteckig konfigurieren</span>
3094
3095                                </a>
3096
3097    
3098                                                
3099    
3100    <div class="navigation-flyout-categories is-level-1">
3101            </div>
3102        
3103                    </div>
3104                                                                    
3105                                                                            <div class="col-4 navigation-flyout-col">
3106                                        <a class="nav-item nav-item-101188826592436d9a0b13e9ca654561 nav-link nav-item-101188826592436d9a0b13e9ca654561-link navigation-flyout-link is-level-0"
3107           href="https://www.tekoplan-planen.shop/Terrassenplane/Terrassenplane-mit-schraeger-Seite-links-rechts-konfigurieren/"
3108                      itemprop="url"
3109                                 title="Terrassenplane mit schräger Seite (links/rechts) konfigurieren"
3110        >
3111            <span itemprop="name">Terrassenplane mit schräger Seite (links/rechts) konfigurieren</span>
3112
3113                                </a>
3114
3115    
3116                                                
3117    
3118    <div class="navigation-flyout-categories is-level-1">
3119            </div>
3120        
3121                    </div>
3122                                                                    
3123                                                                            <div class="col-4 ">
3124                                        <a class="nav-item nav-item-53e417f4c0f44a6bbcffe2d78c7f3da6 nav-link nav-item-53e417f4c0f44a6bbcffe2d78c7f3da6-link navigation-flyout-link is-level-0"
3125           href="https://www.tekoplan-planen.shop/Terrassenplane/Terrassenplane-rund-konfigurieren/"
3126                      itemprop="url"
3127                                 title="Terrassenplane rund konfigurieren"
3128        >
3129            <span itemprop="name">Terrassenplane rund konfigurieren</span>
3130
3131                                </a>
3132
3133    
3134                                                
3135    
3136    <div class="navigation-flyout-categories is-level-1">
3137            </div>
3138        
3139                    </div>
3140                                                                    
3141                                                                            <div class="col-4 navigation-flyout-col">
3142                                        <a class="nav-item nav-item-ec7345ea97184751a7cc4e8b8fbce4d9 nav-link nav-item-ec7345ea97184751a7cc4e8b8fbce4d9-link navigation-flyout-link is-level-0"
3143           href="https://www.tekoplan-planen.shop/Terrassenplane/Terrassenplane-dreieckig-konfigurieren/"
3144                      itemprop="url"
3145                                 title="Terrassenplane dreieckig konfigurieren"
3146        >
3147            <span itemprop="name">Terrassenplane dreieckig konfigurieren</span>
3148
3149                                </a>
3150
3151    
3152                                                
3153    
3154    <div class="navigation-flyout-categories is-level-1">
3155            </div>
3156        
3157                    </div>
3158                                                                    
3159                                                                            <div class="col-4 navigation-flyout-col">
3160                                        <a class="nav-item nav-item-2cec13453cf044d5b4d8401fc779ad2d nav-link nav-item-2cec13453cf044d5b4d8401fc779ad2d-link navigation-flyout-link is-level-0"
3161           href="https://www.tekoplan-planen.shop/Terrassenplane/Terrassenplane-oval-konfigurieren/"
3162                      itemprop="url"
3163                                 title="Terrassenplane oval konfigurieren"
3164        >
3165            <span itemprop="name">Terrassenplane oval konfigurieren</span>
3166
3167                                </a>
3168
3169    
3170                                                
3171    
3172    <div class="navigation-flyout-categories is-level-1">
3173            </div>
3174        
3175                    </div>
3176                        </div>
3177
3178                        </div>
3179                </div>
3180            
3181                                                <div class="col-4 col-xl-3">
3182                        <div class="navigation-flyout-teaser">
3183                                                            <a class="navigation-flyout-teaser-image-container"
3184                                   href="https://www.tekoplan-planen.shop/Terrassenplane/"
3185                                                                      title="Terrassenplane">
3186                                    
3187                    
3188                        
3189                        
3190    
3191    
3192    
3193        
3194                
3195        
3196                
3197        
3198                                
3199                                            
3200                                            
3201                    
3202                
3203                
3204        
3205        
3206                                                                                                                                
3207            
3208            <img src="https://www.tekoplan-planen.shop/media/43/a9/5d/1682582625/terrassenplane_ohne_text.jpg?ts=1750681015"                             srcset="https://www.tekoplan-planen.shop/thumbnail/43/a9/5d/1682582625/terrassenplane_ohne_text_1920x1920.jpg?ts=1682582639 1920w, https://www.tekoplan-planen.shop/thumbnail/43/a9/5d/1682582625/terrassenplane_ohne_text_400x400.jpg?ts=1682582639 400w, https://www.tekoplan-planen.shop/thumbnail/43/a9/5d/1682582625/terrassenplane_ohne_text_800x800.jpg?ts=1682582639 800w"                                 sizes="310px"
3209                                         class="navigation-flyout-teaser-image img-fluid" alt="Terrassenplane" title="Terrassenplane" data-object-fit="cover" loading="lazy"        />
3210                                    </a>
3211                                                    </div>
3212                    </div>
3213                                    </div>
3214    						</div>
3215					</div>
3216
3217				
3218															
3219												
3220									<div class="twt-top-navigation-flyout twt-top-navigation-flyout--default nav-item-dropdown-f914d8099fe74bec8f4aecd5c3a906b6 dropdown-menu w-100 p-4 d-none">
3221						<div class="twt-top-navigation-flyout-container container">
3222							        
3223                                <div class="row">
3224                            <div class="col">
3225                    <div class="navigation-flyout-category-link">
3226                                                                                                                    <a href="https://www.tekoplan-planen.shop/Carportplane/"
3227                                                                      itemprop="url"
3228                                                                      title="Carportplane">
3229                                                                            Zur Kategorie Carportplane
3230                                                                    </a>
3231                                                                        </div>
3232                </div>
3233            
3234                            <div class="col-auto">
3235                    <button class="navigation-flyout-close js-close-flyout-menu btn-close" aria-label="Menü schließen">
3236                                                                                                                            </button>
3237                </div>
3238                    </div>
3239    
3240
3241    
3242            <div class="row navigation-flyout-content">
3243                            <div class="col-8 col-xl-9">
3244                    <div class="">
3245                                                    
3246            
3247                
3248    <div class="row navigation-flyout-categories is-level-0">
3249                                                        
3250                                                                            <div class="col-4 ">
3251                                        <a class="nav-item nav-item-26772b7f2a57449d92a70880a5c85de2 nav-link nav-item-26772b7f2a57449d92a70880a5c85de2-link navigation-flyout-link is-level-0"
3252           href="https://www.tekoplan-planen.shop/Carportplane/Carportplane-mit-Tuer-und-Fenster-konfigurieren/"
3253                      itemprop="url"
3254                                 title="Carportplane mit Tür und Fenster konfigurieren"
3255        >
3256            <span itemprop="name">Carportplane mit Tür und Fenster konfigurieren</span>
3257
3258                                </a>
3259
3260    
3261                                                
3262    
3263    <div class="navigation-flyout-categories is-level-1">
3264            </div>
3265        
3266                    </div>
3267                                                                    
3268                                                                            <div class="col-4 navigation-flyout-col">
3269                                        <a class="nav-item nav-item-ccc333cd4e804b2f9bd283fb65f8e816 nav-link nav-item-ccc333cd4e804b2f9bd283fb65f8e816-link navigation-flyout-link is-level-0"
3270           href="https://www.tekoplan-planen.shop/Carportplane/Carportplane-rechteckig-konfigurieren/"
3271                      itemprop="url"
3272                                 title="Carportplane rechteckig konfigurieren"
3273        >
3274            <span itemprop="name">Carportplane rechteckig konfigurieren</span>
3275
3276                                </a>
3277
3278    
3279                                                
3280    
3281    <div class="navigation-flyout-categories is-level-1">
3282            </div>
3283        
3284                    </div>
3285                                                                    
3286                                                                            <div class="col-4 navigation-flyout-col">
3287                                        <a class="nav-item nav-item-b7441b0d60584acf8296217e737a5c99 nav-link nav-item-b7441b0d60584acf8296217e737a5c99-link navigation-flyout-link is-level-0"
3288           href="https://www.tekoplan-planen.shop/Carportplane/Carportplane-mit-schraeger-Seite-links-rechts-konfigurieren/"
3289                      itemprop="url"
3290                                 title="Carportplane mit schräger Seite (links/rechts) konfigurieren"
3291        >
3292            <span itemprop="name">Carportplane mit schräger Seite (links/rechts) konfigurieren</span>
3293
3294                                </a>
3295
3296    
3297                                                
3298    
3299    <div class="navigation-flyout-categories is-level-1">
3300            </div>
3301        
3302                    </div>
3303                                                                    
3304                                                                            <div class="col-4 ">
3305                                        <a class="nav-item nav-item-2d58ea94a3b44683b2dd102e89be5ed0 nav-link nav-item-2d58ea94a3b44683b2dd102e89be5ed0-link navigation-flyout-link is-level-0"
3306           href="https://www.tekoplan-planen.shop/Carportplane/Carportplane-rund-konfigurieren/"
3307                      itemprop="url"
3308                                 title="Carportplane rund konfigurieren"
3309        >
3310            <span itemprop="name">Carportplane rund konfigurieren</span>
3311
3312                                </a>
3313
3314    
3315                                                
3316    
3317    <div class="navigation-flyout-categories is-level-1">
3318            </div>
3319        
3320                    </div>
3321                                                                    
3322                                                                            <div class="col-4 navigation-flyout-col">
3323                                        <a class="nav-item nav-item-06e24e3cb01549c4832c8506e18ad13b nav-link nav-item-06e24e3cb01549c4832c8506e18ad13b-link navigation-flyout-link is-level-0"
3324           href="https://www.tekoplan-planen.shop/Carportplane/Carportplane-dreieckig-konfigurieren/"
3325                      itemprop="url"
3326                                 title="Carportplane dreieckig konfigurieren"
3327        >
3328            <span itemprop="name">Carportplane dreieckig konfigurieren</span>
3329
3330                                </a>
3331
3332    
3333                                                
3334    
3335    <div class="navigation-flyout-categories is-level-1">
3336            </div>
3337        
3338                    </div>
3339                                                                    
3340                                                                            <div class="col-4 navigation-flyout-col">
3341                                        <a class="nav-item nav-item-d916137e628441a1b5e662fcfc4a77d8 nav-link nav-item-d916137e628441a1b5e662fcfc4a77d8-link navigation-flyout-link is-level-0"
3342           href="https://www.tekoplan-planen.shop/Carportplane/Carportplane-oval-konfigurieren/"
3343                      itemprop="url"
3344                                 title="Carportplane oval konfigurieren"
3345        >
3346            <span itemprop="name">Carportplane oval konfigurieren</span>
3347
3348                                </a>
3349
3350    
3351                                                
3352    
3353    <div class="navigation-flyout-categories is-level-1">
3354            </div>
3355        
3356                    </div>
3357                        </div>
3358
3359                        </div>
3360                </div>
3361            
3362                                                <div class="col-4 col-xl-3">
3363                        <div class="navigation-flyout-teaser">
3364                                                            <a class="navigation-flyout-teaser-image-container"
3365                                   href="https://www.tekoplan-planen.shop/Carportplane/"
3366                                                                      title="Carportplane">
3367                                    
3368                    
3369                        
3370                        
3371    
3372    
3373    
3374        
3375                
3376        
3377                
3378        
3379                                
3380                                            
3381                                            
3382                    
3383                
3384                
3385        
3386        
3387                                                                                                                                
3388            
3389            <img src="https://www.tekoplan-planen.shop/media/67/f2/dd/1671196907/carportplane_nach_mass.jpg?ts=1750680348"                             srcset="https://www.tekoplan-planen.shop/thumbnail/67/f2/dd/1671196907/carportplane_nach_mass_800x800.jpg?ts=1671196923 800w, https://www.tekoplan-planen.shop/thumbnail/67/f2/dd/1671196907/carportplane_nach_mass_1920x1920.jpg?ts=1671196923 1920w, https://www.tekoplan-planen.shop/thumbnail/67/f2/dd/1671196907/carportplane_nach_mass_400x400.jpg?ts=1671196923 400w"                                 sizes="310px"
3390                                         class="navigation-flyout-teaser-image img-fluid" alt="Carportplane für Carport" title="Carportplane für Carport" data-object-fit="cover" loading="lazy"        />
3391                                    </a>
3392                                                    </div>
3393                    </div>
3394                                    </div>
3395    						</div>
3396					</div>
3397
3398				
3399															
3400												
3401									<div class="twt-top-navigation-flyout twt-top-navigation-flyout--default nav-item-dropdown-ce9fcfe3c3844c87bceccd35916c9b35 dropdown-menu w-100 p-4 d-none">
3402						<div class="twt-top-navigation-flyout-container container">
3403							        
3404                                <div class="row">
3405                            <div class="col">
3406                    <div class="navigation-flyout-category-link">
3407                                                                                                                    <a href="https://www.tekoplan-planen.shop/Poolplane/"
3408                                                                      itemprop="url"
3409                                                                      title="Poolplane">
3410                                                                            Zur Kategorie Poolplane
3411                                                                    </a>
3412                                                                        </div>
3413                </div>
3414            
3415                            <div class="col-auto">
3416                    <button class="navigation-flyout-close js-close-flyout-menu btn-close" aria-label="Menü schließen">
3417                                                                                                                            </button>
3418                </div>
3419                    </div>
3420    
3421
3422    
3423            <div class="row navigation-flyout-content">
3424                            <div class="col-8 col-xl-9">
3425                    <div class="">
3426                                                    
3427            
3428                
3429    <div class="row navigation-flyout-categories is-level-0">
3430                                                        
3431                                                                            <div class="col-4 ">
3432                                        <a class="nav-item nav-item-606a7af590a44df9bce87ccddb15eed1 nav-link nav-item-606a7af590a44df9bce87ccddb15eed1-link navigation-flyout-link is-level-0"
3433           href="https://www.tekoplan-planen.shop/Poolplane/Rechteckige-Poolplane/"
3434                      itemprop="url"
3435                                 title="Rechteckige Poolplane"
3436        >
3437            <span itemprop="name">Rechteckige Poolplane</span>
3438
3439                                </a>
3440
3441    
3442                                                
3443    
3444    <div class="navigation-flyout-categories is-level-1">
3445            </div>
3446        
3447                    </div>
3448                                                                    
3449                                                                            <div class="col-4 navigation-flyout-col">
3450                                        <a class="nav-item nav-item-37b7ddf77d41484c80a86bd7a9675064 nav-link nav-item-37b7ddf77d41484c80a86bd7a9675064-link navigation-flyout-link is-level-0"
3451           href="https://www.tekoplan-planen.shop/Poolplane/Runde-Poolplane/"
3452                      itemprop="url"
3453                                 title="Runde Poolplane"
3454        >
3455            <span itemprop="name">Runde Poolplane</span>
3456
3457                                </a>
3458
3459    
3460                                                
3461    
3462    <div class="navigation-flyout-categories is-level-1">
3463            </div>
3464        
3465                    </div>
3466                        </div>
3467
3468                        </div>
3469                </div>
3470            
3471                                                <div class="col-4 col-xl-3">
3472                        <div class="navigation-flyout-teaser">
3473                                                            <a class="navigation-flyout-teaser-image-container"
3474                                   href="https://www.tekoplan-planen.shop/Poolplane/"
3475                                                                      title="Poolplane">
3476                                    
3477                    
3478                        
3479                        
3480    
3481    
3482    
3483        
3484                
3485        
3486                
3487        
3488                                
3489                                            
3490                                            
3491                    
3492                
3493                
3494        
3495        
3496                                                                                                                                
3497            
3498            <img src="https://www.tekoplan-planen.shop/media/d6/47/13/1690458814/Poolplane.jpg?ts=1750683007"                             srcset="https://www.tekoplan-planen.shop/thumbnail/d6/47/13/1690458814/Poolplane_1920x1920.jpg?ts=1690458835 1920w, https://www.tekoplan-planen.shop/thumbnail/d6/47/13/1690458814/Poolplane_400x400.jpg?ts=1690458835 400w, https://www.tekoplan-planen.shop/thumbnail/d6/47/13/1690458814/Poolplane_800x800.jpg?ts=1690458835 800w"                                 sizes="310px"
3499                                         class="navigation-flyout-teaser-image img-fluid" alt="Poolplane" title="Poolplane" data-object-fit="cover" loading="lazy"        />
3500                                    </a>
3501                                                    </div>
3502                    </div>
3503                                    </div>
3504    						</div>
3505					</div>
3506
3507				
3508															
3509												
3510				
3511															
3512												
3513									<div class="twt-top-navigation-flyout twt-top-navigation-flyout--default nav-item-dropdown-d05b4c474f724b19a2224872ed386373 dropdown-menu w-100 p-4 d-none">
3514						<div class="twt-top-navigation-flyout-container container">
3515							        
3516                                <div class="row">
3517                            <div class="col">
3518                    <div class="navigation-flyout-category-link">
3519                                                                                                                    <a href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/"
3520                                                                      itemprop="url"
3521                                                                      title="Reptilienschutzzaun GTH">
3522                                                                            Zur Kategorie Reptilienschutzzaun GTH
3523                                                                    </a>
3524                                                                        </div>
3525                </div>
3526            
3527                            <div class="col-auto">
3528                    <button class="navigation-flyout-close js-close-flyout-menu btn-close" aria-label="Menü schließen">
3529                                                                                                                            </button>
3530                </div>
3531                    </div>
3532    
3533
3534    
3535            <div class="row navigation-flyout-content">
3536                            <div class="col-8 col-xl-9">
3537                    <div class="">
3538                                                    
3539            
3540                
3541    <div class="row navigation-flyout-categories is-level-0">
3542                                                        
3543                                                                            <div class="col-4 ">
3544                                        <a class="nav-item nav-item-ec89c0540f7b47c5935e5a830a4b1498 nav-link nav-item-ec89c0540f7b47c5935e5a830a4b1498-link navigation-flyout-link is-level-0"
3545           href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/Tekotex-PVC-freier-Reptilienschutzzaun-GTH-TX/"
3546                      itemprop="url"
3547                                 title="Tekotex PVC-freier Reptilienschutzzaun GTH-TX"
3548        >
3549            <span itemprop="name">Tekotex PVC-freier Reptilienschutzzaun GTH-TX</span>
3550
3551                                </a>
3552
3553    
3554                                                
3555    
3556    <div class="navigation-flyout-categories is-level-1">
3557            </div>
3558        
3559                    </div>
3560                                                                    
3561                                                                            <div class="col-4 navigation-flyout-col">
3562                                        <a class="nav-item nav-item-69bef1579f62461e9a415766aa810dcd nav-link nav-item-69bef1579f62461e9a415766aa810dcd-link navigation-flyout-link is-level-0"
3563           href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/Premium-Reptilienschutzzaun-GTH-P-mit-OEsen-Kederverbindung-und-Clips/"
3564                      itemprop="url"
3565                                 title="Premium Reptilienschutzzaun GTH-P mit Ösen, Kederverbindung und Clips"
3566        >
3567            <span itemprop="name">Premium Reptilienschutzzaun GTH-P mit Ösen, Kederverbindung und Clips</span>
3568
3569                                </a>
3570
3571    
3572                                                
3573    
3574    <div class="navigation-flyout-categories is-level-1">
3575            </div>
3576        
3577                    </div>
3578                                                                    
3579                                                                            <div class="col-4 navigation-flyout-col">
3580                                        <a class="nav-item nav-item-9772ddefeef74f66bf7d3f286f6c6a3d nav-link nav-item-9772ddefeef74f66bf7d3f286f6c6a3d-link navigation-flyout-link is-level-0"
3581           href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/Standard-Reptilienschutzzaun-GTH-S-mit-OEsen-und-Kederverbindung/"
3582                      itemprop="url"
3583                                 title="Standard Reptilienschutzzaun GTH-S mit Ösen und Kederverbindung"
3584        >
3585            <span itemprop="name">Standard Reptilienschutzzaun GTH-S mit Ösen und Kederverbindung</span>
3586
3587                                </a>
3588
3589    
3590                                                
3591    
3592    <div class="navigation-flyout-categories is-level-1">
3593            </div>
3594        
3595                    </div>
3596                                                                    
3597                                                                            <div class="col-4 ">
3598                                        <a class="nav-item nav-item-e7eb8da69d724514b5f1a3e51caf76d8 nav-link nav-item-e7eb8da69d724514b5f1a3e51caf76d8-link navigation-flyout-link is-level-0"
3599           href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/Hamsterschutzzaun-GTH-HS/"
3600                      itemprop="url"
3601                                 title="Hamsterschutzzaun GTH-HS"
3602        >
3603            <span itemprop="name">Hamsterschutzzaun GTH-HS</span>
3604
3605                                </a>
3606
3607    
3608                                                
3609    
3610    <div class="navigation-flyout-categories is-level-1">
3611            </div>
3612        
3613                    </div>
3614                                                                    
3615                                                                            <div class="col-4 navigation-flyout-col">
3616                                        <a class="nav-item nav-item-715c79614f7d48b0810d9e0c6533ef9f nav-link nav-item-715c79614f7d48b0810d9e0c6533ef9f-link navigation-flyout-link is-level-0"
3617           href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/Reptilienschutzzaun-fuer-Standfuss-GTH-S-ST/"
3618                      itemprop="url"
3619                                 title="Reptilienschutzzaun für Standfuß GTH-S-ST"
3620        >
3621            <span itemprop="name">Reptilienschutzzaun für Standfuß GTH-S-ST</span>
3622
3623                                </a>
3624
3625    
3626                                                
3627    
3628    <div class="navigation-flyout-categories is-level-1">
3629            </div>
3630        
3631                    </div>
3632                                                                    
3633                                                                            <div class="col-4 navigation-flyout-col">
3634                                        <a class="nav-item nav-item-ca92792076e74904bc55bbff8aee5dfb nav-link nav-item-ca92792076e74904bc55bbff8aee5dfb-link navigation-flyout-link is-level-0"
3635           href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/Reptilienschutzzaun-GTH-O-ohne-OEsen/"
3636                      itemprop="url"
3637                                 title="Reptilienschutzzaun GTH-O ohne Ösen"
3638        >
3639            <span itemprop="name">Reptilienschutzzaun GTH-O ohne Ösen</span>
3640
3641                                </a>
3642
3643    
3644                                                
3645    
3646    <div class="navigation-flyout-categories is-level-1">
3647            </div>
3648        
3649                    </div>
3650                                                                    
3651                                                                            <div class="col-4 ">
3652                                        <a class="nav-item nav-item-437bf29f53fc4738b209fa9de15cc774 nav-link nav-item-437bf29f53fc4738b209fa9de15cc774-link navigation-flyout-link is-level-0"
3653           href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/HDPE-Reptilien-Amphibienschutzzaun/"
3654                      itemprop="url"
3655                                 title="HDPE Reptilien-/Amphibienschutzzaun"
3656        >
3657            <span itemprop="name">HDPE Reptilien-/Amphibienschutzzaun</span>
3658
3659                                </a>
3660
3661    
3662                                                
3663    
3664    <div class="navigation-flyout-categories is-level-1">
3665            </div>
3666        
3667                    </div>
3668                        </div>
3669
3670                        </div>
3671                </div>
3672            
3673                                                <div class="col-4 col-xl-3">
3674                        <div class="navigation-flyout-teaser">
3675                                                            <a class="navigation-flyout-teaser-image-container"
3676                                   href="https://www.tekoplan-planen.shop/Reptilienschutzzaun-GTH/"
3677                                                                      title="Reptilienschutzzaun GTH">
3678                                    
3679                    
3680                        
3681                        
3682    
3683    
3684    
3685        
3686        
3687            <img src="https://www.tekoplan-planen.shop/media/e9/56/ca/1671631439/reptilienschutzzaun_nach_mass.jpg?ts=1750677211"                          class="navigation-flyout-teaser-image img-fluid" alt="Reptilienschutzzaun nach Maß" title="Reptilienschutzzaun nach Maß" data-object-fit="cover" loading="lazy"        />
3688                                    </a>
3689                                                    </div>
3690                    </div>
3691                                    </div>
3692    						</div>
3693					</div>
3694
3695				
3696															
3697												
3698									<div class="twt-top-navigation-flyout twt-top-navigation-flyout--default nav-item-dropdown-ba89017658744acabb36f8815637dfbd dropdown-menu w-100 p-4 d-none">
3699						<div class="twt-top-navigation-flyout-container container">
3700							        
3701                                <div class="row">
3702                            <div class="col">
3703                    <div class="navigation-flyout-category-link">
3704                                                                                                                    <a href="https://www.tekoplan-planen.shop/Rollenware/"
3705                                                                      itemprop="url"
3706                                                                      title="Rollenware">
3707                                                                            Zur Kategorie Rollenware
3708                                                                    </a>
3709                                                                        </div>
3710                </div>
3711            
3712                            <div class="col-auto">
3713                    <button class="navigation-flyout-close js-close-flyout-menu btn-close" aria-label="Menü schließen">
3714                                                                                                                            </button>
3715                </div>
3716                    </div>
3717    
3718
3719    
3720            <div class="row navigation-flyout-content">
3721                            <div class="col">
3722                    <div class="">
3723                                                    
3724            
3725                
3726    <div class="row navigation-flyout-categories is-level-0">
3727                                                        
3728                                                                            <div class="col-3 ">
3729                                        <a class="nav-item nav-item-b66b7d63a9514c4280e443704a19d09a nav-link nav-item-b66b7d63a9514c4280e443704a19d09a-link navigation-flyout-link is-level-0"
3730           href="https://www.tekoplan-planen.shop/Rollenware/Rollenware-PVC-exklusiv-matt/"
3731                      itemprop="url"
3732                                 title="Rollenware PVC exklusiv matt"
3733        >
3734            <span itemprop="name">Rollenware PVC exklusiv matt</span>
3735
3736                                </a>
3737
3738    
3739                                                
3740    
3741    <div class="navigation-flyout-categories is-level-1">
3742            </div>
3743        
3744                    </div>
3745                                                                    
3746                                                                            <div class="col-3 navigation-flyout-col">
3747                                        <a class="nav-item nav-item-52ef8ee226c647738cb63434205efbb3 nav-link nav-item-52ef8ee226c647738cb63434205efbb3-link navigation-flyout-link is-level-0"
3748           href="https://www.tekoplan-planen.shop/Rollenware/Rollenware-PVC-glaenzend/"
3749                      itemprop="url"
3750                                 title="Rollenware PVC glänzend"
3751        >
3752            <span itemprop="name">Rollenware PVC glänzend</span>
3753
3754                                </a>
3755
3756    
3757                                                
3758    
3759    <div class="navigation-flyout-categories is-level-1">
3760            </div>
3761        
3762                    </div>
3763                                                                    
3764                                                                            <div class="col-3 navigation-flyout-col">
3765                                        <a class="nav-item nav-item-edebb22f2df24adc81f46eb505133391 nav-link nav-item-edebb22f2df24adc81f46eb505133391-link navigation-flyout-link is-level-0"
3766           href="https://www.tekoplan-planen.shop/Rollenware/Rollenware-PVC-Netz/"
3767                      itemprop="url"
3768                                 title="Rollenware PVC Netz"
3769        >
3770            <span itemprop="name">Rollenware PVC Netz</span>
3771
3772                                </a>
3773
3774    
3775                                                
3776    
3777    <div class="navigation-flyout-categories is-level-1">
3778            </div>
3779        
3780                    </div>
3781                                                                    
3782                                                                            <div class="col-3 navigation-flyout-col">
3783                                        <a class="nav-item nav-item-f67e545b9e48495da3e7a53dc08c16b6 nav-link nav-item-f67e545b9e48495da3e7a53dc08c16b6-link navigation-flyout-link is-level-0"
3784           href="https://www.tekoplan-planen.shop/Rollenware/Rollenware-PVC-transparent/"
3785                      itemprop="url"
3786                                 title="Rollenware PVC transparent"
3787        >
3788            <span itemprop="name">Rollenware PVC transparent</span>
3789
3790                                </a>
3791
3792    
3793                                                
3794    
3795    <div class="navigation-flyout-categories is-level-1">
3796            </div>
3797        
3798                    </div>
3799                                                                    
3800                                                                            <div class="col-3 ">
3801                                        <a class="nav-item nav-item-32d7243cd36b4b888e530695db15ccdc nav-link nav-item-32d7243cd36b4b888e530695db15ccdc-link navigation-flyout-link is-level-0"
3802           href="https://www.tekoplan-planen.shop/Rollenware/PVC-Rollen-B1-60-Meter/"
3803                      itemprop="url"
3804                                 title="PVC-Rollen B1 / 60 Meter"
3805        >
3806            <span itemprop="name">PVC-Rollen B1 / 60 Meter</span>
3807
3808                                </a>
3809
3810    
3811                                                
3812    
3813    <div class="navigation-flyout-categories is-level-1">
3814            </div>
3815        
3816                    </div>
3817                        </div>
3818
3819                        </div>
3820                </div>
3821            
3822                                                </div>
3823    						</div>
3824					</div>
3825
3826				
3827															
3828												
3829									<div class="twt-top-navigation-flyout twt-top-navigation-flyout--default nav-item-dropdown-1433189901ef416396e572aec410bad2 dropdown-menu w-100 p-4 d-none">
3830						<div class="twt-top-navigation-flyout-container container">
3831							        
3832                                <div class="row">
3833                            <div class="col">
3834                    <div class="navigation-flyout-category-link">
3835                                                                                                                    <a href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/"
3836                                                                      itemprop="url"
3837                                                                      title="Garten / Bau / Industrie">
3838                                                                            Zur Kategorie Garten / Bau / Industrie
3839                                                                    </a>
3840                                                                        </div>
3841                </div>
3842            
3843                            <div class="col-auto">
3844                    <button class="navigation-flyout-close js-close-flyout-menu btn-close" aria-label="Menü schließen">
3845                                                                                                                            </button>
3846                </div>
3847                    </div>
3848    
3849
3850    
3851            <div class="row navigation-flyout-content">
3852                            <div class="col">
3853                    <div class="">
3854                                                    
3855            
3856                
3857    <div class="row navigation-flyout-categories is-level-0">
3858                                                        
3859                                                                            <div class="col-3 ">
3860                                        <a class="nav-item nav-item-7b55a8f8011a4c5e9cb3d4d6e46a25d4 nav-link nav-item-7b55a8f8011a4c5e9cb3d4d6e46a25d4-link navigation-flyout-link is-level-0"
3861           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Sichtschutz-Windschutz/"
3862                      itemprop="url"
3863                                 title="Sichtschutz/Windschutz"
3864        >
3865            <span itemprop="name">Sichtschutz/Windschutz</span>
3866
3867                                </a>
3868
3869    
3870                                                
3871    
3872    <div class="navigation-flyout-categories is-level-1">
3873            </div>
3874        
3875                    </div>
3876                                                                    
3877                                                                            <div class="col-3 navigation-flyout-col">
3878                                        <a class="nav-item nav-item-39244f1bb20e4083a42dc9edcb275c3e nav-link nav-item-39244f1bb20e4083a42dc9edcb275c3e-link navigation-flyout-link is-level-0"
3879           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Baumbewaesserungssack/"
3880                      itemprop="url"
3881                                 title="Baumbewässerungssack"
3882        >
3883            <span itemprop="name">Baumbewässerungssack</span>
3884
3885                                </a>
3886
3887    
3888                                                
3889    
3890    <div class="navigation-flyout-categories is-level-1">
3891            </div>
3892        
3893                    </div>
3894                                                                    
3895                                                                            <div class="col-3 navigation-flyout-col">
3896                                        <a class="nav-item nav-item-e7194ba9d414493bac26d20358601559 nav-link nav-item-e7194ba9d414493bac26d20358601559-link navigation-flyout-link is-level-0"
3897           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Saecke/"
3898                      itemprop="url"
3899                                 title="Säcke"
3900        >
3901            <span itemprop="name">Säcke</span>
3902
3903                                </a>
3904
3905    
3906                                                
3907    
3908    <div class="navigation-flyout-categories is-level-1">
3909            </div>
3910        
3911                    </div>
3912                                                                    
3913                                                                            <div class="col-3 navigation-flyout-col">
3914                                        <a class="nav-item nav-item-d35e21a0067743a9bb30f24692409610 nav-link nav-item-d35e21a0067743a9bb30f24692409610-link navigation-flyout-link is-level-0"
3915           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Anhaenger-Containernetze/"
3916                      itemprop="url"
3917                                 title="Anhänger-/Containernetze"
3918        >
3919            <span itemprop="name">Anhänger-/Containernetze</span>
3920
3921                                </a>
3922
3923    
3924                                                
3925    
3926    <div class="navigation-flyout-categories is-level-1">
3927            </div>
3928        
3929                    </div>
3930                                                                    
3931                                                                            <div class="col-3 ">
3932                                        <a class="nav-item nav-item-e950afa47a8747ae87897e9b37872877 nav-link nav-item-e950afa47a8747ae87897e9b37872877-link navigation-flyout-link is-level-0"
3933           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Bauzaunplanen/"
3934                      itemprop="url"
3935                                 title="Bauzaunplanen"
3936        >
3937            <span itemprop="name">Bauzaunplanen</span>
3938
3939                                </a>
3940
3941    
3942                                                
3943    
3944    <div class="navigation-flyout-categories is-level-1">
3945            </div>
3946        
3947                    </div>
3948                                                                    
3949                                                                            <div class="col-3 navigation-flyout-col">
3950                                        <a class="nav-item nav-item-d757e665130b4b86aa959d34e4347b8d nav-link nav-item-d757e665130b4b86aa959d34e4347b8d-link navigation-flyout-link is-level-0"
3951           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Fangzaeune/"
3952                      itemprop="url"
3953                                 title="Fangzäune"
3954        >
3955            <span itemprop="name">Fangzäune</span>
3956
3957                                </a>
3958
3959    
3960                                                
3961    
3962    <div class="navigation-flyout-categories is-level-1">
3963            </div>
3964        
3965                    </div>
3966                                                                    
3967                                                                            <div class="col-3 navigation-flyout-col">
3968                                        <a class="nav-item nav-item-ff1f61ff60e2403bb043549449155e62 nav-link nav-item-ff1f61ff60e2403bb043549449155e62-link navigation-flyout-link is-level-0"
3969           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Laterneneisen/"
3970                      itemprop="url"
3971                                 title="Laterneneisen"
3972        >
3973            <span itemprop="name">Laterneneisen</span>
3974
3975                                </a>
3976
3977    
3978                                                
3979    
3980    <div class="navigation-flyout-categories is-level-1">
3981            </div>
3982        
3983                    </div>
3984                                                                    
3985                                                                            <div class="col-3 navigation-flyout-col">
3986                                        <a class="nav-item nav-item-c1d3686c2453406ba5e6f108fc9c5ad3 nav-link nav-item-c1d3686c2453406ba5e6f108fc9c5ad3-link navigation-flyout-link is-level-0"
3987           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Untersetzer/"
3988                      itemprop="url"
3989                                 title="Untersetzer"
3990        >
3991            <span itemprop="name">Untersetzer</span>
3992
3993                                </a>
3994
3995    
3996                                                
3997    
3998    <div class="navigation-flyout-categories is-level-1">
3999            </div>
4000        
4001                    </div>
4002                                                                    
4003                                                                            <div class="col-3 ">
4004                                        <a class="nav-item nav-item-4ebdf3f7841b457496ddd3b74d8da913 nav-link nav-item-4ebdf3f7841b457496ddd3b74d8da913-link navigation-flyout-link is-level-0"
4005           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Tropfschlauch-Bewaesserungssystem/"
4006                      itemprop="url"
4007                                 title="Tropfschlauch-Bewässerungssystem"
4008        >
4009            <span itemprop="name">Tropfschlauch-Bewässerungssystem</span>
4010
4011                                </a>
4012
4013    
4014                                                
4015    
4016    <div class="navigation-flyout-categories is-level-1">
4017            </div>
4018        
4019                    </div>
4020                                                                    
4021                                                                            <div class="col-3 navigation-flyout-col">
4022                                        <a class="nav-item nav-item-f51e8029d38c4af0978264a3b852dd79 nav-link nav-item-f51e8029d38c4af0978264a3b852dd79-link navigation-flyout-link is-level-0"
4023           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Bodengewebe/"
4024                      itemprop="url"
4025                                 title="Bodengewebe"
4026        >
4027            <span itemprop="name">Bodengewebe</span>
4028
4029                                </a>
4030
4031    
4032                                                
4033    
4034    <div class="navigation-flyout-categories is-level-1">
4035            </div>
4036        
4037                    </div>
4038                                                                    
4039                                                                            <div class="col-3 navigation-flyout-col">
4040                                        <a class="nav-item nav-item-01995b9e1a627e2ba10c204d1a91c6a5 nav-link nav-item-01995b9e1a627e2ba10c204d1a91c6a5-link navigation-flyout-link is-level-0"
4041           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Lamellenvorhang/"
4042                      itemprop="url"
4043                                 title="Lamellenvorhang"
4044        >
4045            <span itemprop="name">Lamellenvorhang</span>
4046
4047                                </a>
4048
4049    
4050                                                
4051    
4052    <div class="navigation-flyout-categories is-level-1">
4053            </div>
4054        
4055                    </div>
4056                                                                    
4057                                                                            <div class="col-3 navigation-flyout-col">
4058                                        <a class="nav-item nav-item-019ed9cb7cc57827944a22439c8b7cdf nav-link nav-item-019ed9cb7cc57827944a22439c8b7cdf-link navigation-flyout-link is-level-0"
4059           href="https://www.tekoplan-planen.shop/Garten-Bau-Industrie/Schweissvorhang-Schweisserschutzvorhang/"
4060                      itemprop="url"
4061                                 title="Schweißvorhang /Schweißerschutzvorhang"
4062        >
4063            <span itemprop="name">Schweißvorhang /Schweißerschutzvorhang</span>
4064
4065                                </a>
4066
4067    
4068                                                
4069    
4070    <div class="navigation-flyout-categories is-level-1">
4071            </div>
4072        
4073                    </div>
4074                        </div>
4075
4076                        </div>
4077                </div>
4078            
4079                                                </div>
4080    						</div>
4081					</div>
4082
4083				
4084															
4085												
4086				
4087					</div>
4088	
4089							<div class="search-container">
4090				
4091    <div class="collapse"
4092         id="searchCollapse">
4093        <div class="header-search my-2 m-sm-auto">
4094                            <form action="/search"
4095                      method="get"
4096                      data-search-widget="true"
4097                      data-search-widget-options="{&quot;searchWidgetMinChars&quot;:2}"
4098                      data-url="/suggest?search="
4099                      class="header-search-form js-search-form">
4100                    		                        <div class="input-group">
4101                                                            <input
4102                                    type="search"
4103                                    id="header-main-search-input"
4104                                    name="search"
4105                                    class="form-control header-search-input"
4106                                    autocomplete="off"
4107                                    autocapitalize="off"
4108                                    placeholder="Suchbegriff eingeben ..."
4109                                    aria-label="Suchbegriff eingeben ..."
4110                                    role="combobox"
4111                                    aria-autocomplete="list"
4112                                    aria-expanded="false"
4113                                    value="">
4114                            
4115                            	<button type="submit"
4116			class="btn header-search-btn"
4117			aria-label="Suchen"
4118	>
4119		<span class="header-search-icon">
4120													    
4121        
4122        
4123        
4124                        
4125                        
4126
4127    
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140    <span class="icon icon-themeware icon-search icon-solid" aria-hidden="true"><?xml version="1.0" encoding="utf-8"?><svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.34,1A8.52,8.52,0,0,0,7.77,15L1.43,21.29a1,1,0,0,0,0,1.42,1,1,0,0,0,.71.29,1,1,0,0,0,.71-.29l6.38-6.38A8.52,8.52,0,1,0,14.34,1Zm0,15a6.52,6.52,0,1,1,6.52-6.52A6.53,6.53,0,0,1,14.34,16Z"/></svg></span>
4141
4142
4143
4144
4145    					</span>
4146	</button>
4147
4148                                                            <button class="btn header-close-btn js-search-close-btn"
4149                                        type="button"
4150                                        aria-label="Die Dropdown-Suche schließen">
4151                                    <span class="header-close-icon">
4152                                            
4153        
4154        
4155        
4156                        
4157                                    
4158                <span class="icon icon-x" aria-hidden="true">
4159                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-x" fill="#758CA3" fill-rule="evenodd" /></svg>
4160                    </span>
4161
4162                                        </span>
4163                                </button>
4164                                                    </div>
4165                    
4166
4167						                </form>
4168                    </div>
4169    </div>
4170			</div>
4171			
4172		
4173                        <div class="d-none js-navigation-offcanvas-initial-content">
4174                                    
4175
4176        
4177            <div class="offcanvas-header">
4178                            <button class="btn btn-secondary offcanvas-close js-offcanvas-close">
4179                                                
4180        
4181        
4182        
4183                        
4184                                    
4185                <span class="icon icon-x icon-sm" aria-hidden="true">
4186                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-x" fill="#758CA3" fill-rule="evenodd" /></svg>
4187                    </span>
4188
4189                        
4190                                            Menü schließen
4191                                    </button>
4192                    </div>
4193    
4194            <div class="offcanvas-body">
4195                                            <nav class="nav navigation-offcanvas-actions">
4196                                
4197                
4198                                
4199                        </nav>
4200    
4201
4202    
4203                <div class="navigation-offcanvas-container"></div>
4204            </div>
4205                                </div>
4206            
4207
4208        
4209                                        
4210
4211
4212                
4213            
4214                <main class="content-main" id="content-main">
4215                                    <div class="flashbags container">
4216                                            </div>
4217                
4218                                                    
4219                                    <div class="container">
4220                                                    <div class="container-main">
4221                                                                                                            
4222                                    
4223                                                                        
4224                                            <div class="account-register">
4225                            <h1>Anmelden oder Konto erstellen</h1>
4226            
4227                            <div class="row">
4228                                            <div class="col-lg-4">
4229                                <div class="card login-card mb-3">
4230        <div class="card-body">
4231                                                <h2 class="card-title">
4232                        Ich bin bereits Kunde
4233                    </h2>
4234                            
4235                            <form class="login-form"
4236                      action="/account/login"
4237                      method="post"
4238                      data-form-handler="true">
4239                                            <input type="hidden"
4240                               name="redirectTo"
4241                               value="frontend.account.profile.page">
4242
4243                        <input type="hidden"
4244                               name="redirectParameters"
4245                               value="{&quot;_noStore&quot;:true}">
4246                    
4247                                    
4248    
4249                                                                
4250                                            <div class="row g-2">
4251                                                            
4252    
4253    
4254    
4255        
4256    
4257    
4258    <div class="form-group col-sm-6 col-lg-12">
4259                                    <label class="form-label" for="loginMail">
4260                    Ihre E-Mail-Adresse
4261
4262                                            <span class="form-required-label" aria-hidden="true">*</span>
4263                                    </label>
4264                    
4265                    
4266            
4267            
4268            <input type="email"
4269                   class="form-control"
4270                   id="loginMail"
4271                   name="username"
4272                   aria-describedby="loginMail-feedback"
4273                                                         autocomplete="username webauthn"                                                         data-validation="required,email"                   aria-required="true"                                      >
4274        
4275                            
4276                    <div id="loginMail-feedback" class="form-field-feedback">
4277                                                                </div>
4278            </div>
4279                            
4280                                                            
4281    
4282    
4283    
4284        
4285    
4286    
4287    <div class="form-group col-sm-6 col-lg-12">
4288                                    <label class="form-label" for="loginPassword">
4289                    Ihr Passwort
4290
4291                                            <span class="form-required-label" aria-hidden="true">*</span>
4292                                    </label>
4293                    
4294                    
4295            
4296            
4297            <input type="password"
4298                   class="form-control"
4299                   id="loginPassword"
4300                   name="password"
4301                   aria-describedby="loginPassword-feedback"
4302                                                         autocomplete="current-password"                                                         data-validation="required"                   aria-required="true"                                      >
4303        
4304                            
4305                    <div id="loginPassword-feedback" class="form-field-feedback">
4306                                                                </div>
4307            </div>
4308                                                    </div>
4309                    
4310                                            <div class="login-password-recover mb-3">
4311                                                            <a href="https://www.tekoplan-planen.shop/account/recover">
4312                                    Ich habe mein Passwort vergessen.
4313                                </a>
4314                                                    </div>
4315                    
4316                                            <div class="login-submit">
4317                            <button type="submit"
4318                                    class="btn btn-primary">
4319                                Anmelden
4320                            </button>
4321                        </div>
4322                                    </form>
4323                    </div>
4324    </div>
4325
4326                                                            <div class="login-advantages">
4327                                                                            <div class="h5 login-advantages-header">
4328                                            Vorteile einer Registrierung:
4329                                        </div>
4330                                    
4331                                                                            <ul>
4332                                                                                            <li>Schnelles Einkaufen</li>
4333                                            
4334                                                                                            <li>Speichern Sie Ihre Daten und Einstellungen.</li>
4335                                            
4336                                                                                            <li>Bestellübersicht und Versandinformationen</li>
4337                                            
4338                                                                                            <li>Verwalten Sie Ihr Newsletter-Abonnement</li>
4339                                                                                    </ul>
4340                                                                    </div>
4341                                                    </div>
4342                    
4343                                            <div class="col-lg-8">
4344                                
4345    <div class="card register-card">
4346        <div class="card-body">
4347                                                <h2 class="card-title">
4348                        Schnell bestellen – kein Kundenkonto erforderlich.
4349                    </h2>
4350                            
4351                            <form action="/account/register"
4352                      class="register-form"
4353                      method="post"
4354                      data-form-handler="true">
4355                                            <input type="hidden"
4356                               name="redirectTo"
4357                               value="frontend.account.profile.page">
4358
4359                        <input type="hidden"
4360                               name="redirectParameters"
4361                               value="{&quot;_noStore&quot;:true}">
4362                    
4363                                            <input type="hidden"
4364                           name="createCustomerAccount"
4365                           value="1">
4366                    
4367                                            <input type="hidden"
4368                               name="errorRoute"
4369                               value="frontend.account.login.page">
4370
4371                        <input type="hidden"
4372                               name="errorParameters"
4373                               value="">
4374                    
4375                                            <fieldset class="register-personal mb-3">
4376                                                            <legend class="register-personal-title visually-hidden">
4377                                    Persönliche Informationen
4378                                </legend>
4379                            
4380                                                                                                            
4381                    <div class="row g-2">
4382                
4383                
4384                
4385                
4386                
4387                                                                    
4388                                
4389                
4390                                    
4391        
4392    
4393    
4394    <div class="form-group col-md-6 contact-type">
4395                                    <label class="form-label" for="-accountType">
4396                    Kontotyp
4397
4398                                            <span class="form-required-label" aria-hidden="true">*</span>
4399                                    </label>
4400                    
4401                    
4402                                        
4403            
4404            <select class="form-select contact-select"
4405                    id="-accountType"
4406                    name="accountType"
4407                    aria-describedby="-accountType-feedback"
4408                    autocomplete="off"                    data-validation="required"                    aria-required="true"                                                                        data-form-field-toggle="true"                                                    data-form-field-toggle-target=".js-field-toggle-contact-type-company"                                                    data-form-field-toggle-value="business"                                                    data-form-field-toggle-scope="all"                                                    data-form-field-toggle-parent-selector                                                                >
4409                                                                                <option disabled="disabled"
4410                                selected="selected"
4411                                value="">
4412                            Auswählen ...
4413                        </option>
4414                    
4415                                            <option value="private"
4416                            >
4417                            Privat
4418                        </option>
4419                    
4420                    <option value="business"
4421                        >
4422                        Gewerblich
4423                    </option>
4424                
4425                            </select>
4426        
4427                            
4428                    <div id="-accountType-feedback" class="form-field-feedback">
4429                                                                </div>
4430            </div>
4431
4432                
4433                            </div>
4434            
4435                        <div class="row g-2">
4436                                                            
4437                                                    
4438        
4439    
4440    
4441    <div class="form-group col-md-3 col-sm-6">
4442                                    <label class="form-label" for="personalSalutation">
4443                    Anrede
4444
4445                                    </label>
4446                    
4447                    
4448            
4449            
4450            <select class="form-select"
4451                    id="personalSalutation"
4452                    name="salutationId"
4453                    aria-describedby="personalSalutation-feedback"
4454                    autocomplete="section-personal honorific-prefix"                                                                                >
4455                                                                                                <option                                     value="163207496779436f8ba5057e52df5b70">
4456                                    Keine Angabe
4457                                </option>
4458                                                            <option                                     value="a9897d36beb845aab39fd45a453cfb3b">
4459                                    Frau
4460                                </option>
4461                                                            <option                                     value="335866c3dab64ad9949d275c50b65369">
4462                                    Herr
4463                                </option>
4464                                                    
4465                            </select>
4466        
4467                            
4468                    <div id="personalSalutation-feedback" class="form-field-feedback">
4469                                                                </div>
4470            </div>
4471
4472                                                            
4473                                                                </div>
4474            
4475            <div class="row g-2">
4476                                                                
4477                                
4478                                    
4479                
4480    
4481    
4482        
4483    
4484    
4485    <div class="form-group col-sm-6">
4486                                    <label class="form-label" for="billingAddress-personalFirstName">
4487                    Vorname
4488
4489                                            <span class="form-required-label" aria-hidden="true">*</span>
4490                                    </label>
4491                    
4492                    
4493            
4494            
4495            <input type="text"
4496                   class="form-control"
4497                   id="billingAddress-personalFirstName"
4498                   name="billingAddress[firstName]"
4499                   aria-describedby="billingAddress-personalFirstName-feedback"
4500                                                         autocomplete="section-personal given-name"                                                         data-validation="required"                   aria-required="true"                                      >
4501        
4502                            
4503                    <div id="billingAddress-personalFirstName-feedback" class="form-field-feedback">
4504                                                                </div>
4505            </div>
4506                            
4507                                                                
4508                
4509                                    
4510                
4511    
4512    
4513        
4514    
4515    
4516    <div class="form-group col-sm-6">
4517                                    <label class="form-label" for="billingAddress-personalLastName">
4518                    Nachname
4519
4520                                            <span class="form-required-label" aria-hidden="true">*</span>
4521                                    </label>
4522                    
4523                    
4524            
4525            
4526            <input type="text"
4527                   class="form-control"
4528                   id="billingAddress-personalLastName"
4529                   name="billingAddress[lastName]"
4530                   aria-describedby="billingAddress-personalLastName-feedback"
4531                                                         autocomplete="section-personal family-name"                                                         data-validation="required"                   aria-required="true"                                      >
4532        
4533                            
4534                    <div id="billingAddress-personalLastName-feedback" class="form-field-feedback">
4535                                                                </div>
4536            </div>
4537                                    </div>
4538    
4539                                        
4540                                        
4541                                                
4542                                                                        
4543            <div class="js-field-toggle-contact-type-company d-none">
4544                            <div class="row g-2">
4545                                            
4546                                                    
4547                
4548    
4549    
4550        
4551    
4552    
4553    <div class="form-group col-12">
4554                                    <label class="form-label" for="billingAddresscompany">
4555                    Firma
4556
4557                                            <span class="form-required-label" aria-hidden="true">*</span>
4558                                    </label>
4559                    
4560                    
4561            
4562            
4563            <input type="text"
4564                   class="form-control"
4565                   id="billingAddresscompany"
4566                   name="billingAddress[company]"
4567                   aria-describedby="billingAddresscompany-feedback"
4568                                                         autocomplete="section-personal organization"                                                         data-validation="required"                   aria-required="true"                                      >
4569        
4570                            
4571                    <div id="billingAddresscompany-feedback" class="form-field-feedback">
4572                                                                </div>
4573            </div>
4574                                                            </div>
4575                <div class="row g-2">
4576                                            
4577                                                    
4578                
4579    
4580    
4581        
4582    
4583    
4584    <div class="form-group col-md-6">
4585                                    <label class="form-label" for="billingAddressdepartment">
4586                    Abteilung
4587
4588                                    </label>
4589                    
4590                    
4591            
4592            
4593            <input type="text"
4594                   class="form-control"
4595                   id="billingAddressdepartment"
4596                   name="billingAddress[department]"
4597                   aria-describedby="billingAddressdepartment-feedback"
4598                                                         autocomplete="off"                                                                                                                  >
4599        
4600                            
4601                    <div id="billingAddressdepartment-feedback" class="form-field-feedback">
4602                                                                </div>
4603            </div>
4604                                            
4605                                                                                                        
4606    
4607            
4608                
4609    
4610    
4611        
4612    
4613    
4614    <div class="form-group col-md-6">
4615                                    <label class="form-label" for="vatIds">
4616                    Umsatzsteuer-ID
4617
4618                                    </label>
4619                    
4620                    
4621            
4622            
4623            <input type="text"
4624                   class="form-control"
4625                   id="vatIds"
4626                   name="vatIds[]"
4627                   aria-describedby="vatIds-feedback"
4628                                                         autocomplete="off"                                                                                                                  >
4629        
4630                            
4631                    <div id="vatIds-feedback" class="form-field-feedback">
4632                                                                </div>
4633            </div>
4634                                                                </div>
4635                    </div>
4636                                    
4637                                
4638                                
4639                                
4640                                
4641                                                                    <div class="row g-2">
4642                                                                                                                    
4643    
4644    
4645    
4646        
4647    
4648    
4649    <div class="form-group col-sm-6">
4650                                    <label class="form-label" for="personalMail">
4651                    E-Mail-Adresse
4652
4653                                            <span class="form-required-label" aria-hidden="true">*</span>
4654                                    </label>
4655                    
4656                    
4657            
4658            
4659            <input type="email"
4660                   class="form-control"
4661                   id="personalMail"
4662                   name="email"
4663                   aria-describedby="personalMail-feedback"
4664                                                         autocomplete="section-personal email"                                                         data-validation="required,email"                   aria-required="true"                                      >
4665        
4666                            
4667                    <div id="personalMail-feedback" class="form-field-feedback">
4668                                                                </div>
4669            </div>
4670                                                                    
4671
4672                                        
4673                                                                                                                    
4674                                                                                                                            
4675                                                                                    
4676    
4677    
4678    
4679        
4680    
4681                
4682    <div class="form-group col-sm-6 js-form-field-toggle-guest-mode">
4683                                    <label class="form-label" for="personalPassword">
4684                    Passwort
4685
4686                                            <span class="form-required-label" aria-hidden="true">*</span>
4687                                    </label>
4688                    
4689                    
4690            
4691            
4692            <input type="password"
4693                   class="form-control"
4694                   id="personalPassword"
4695                   name="password"
4696                   aria-describedby="personalPassword-description personalPassword-feedback"
4697                                                         autocomplete="new-password"                   minlength="8"                                      data-validation="required,minLength"                   aria-required="true"                                      >
4698        
4699                                    <small id="personalPassword-description" class="form-text">Das Passwort muss mindestens 8 Zeichen lang sein.</small>
4700                    
4701                    <div id="personalPassword-feedback" class="form-field-feedback">
4702                                                                </div>
4703            </div>
4704                                                                                                            
4705
4706                                                                            </div>
4707                                                                                    </fieldset>
4708                    
4709                                            <div class="register-address mb-5">
4710                                                                                                <fieldset class="register-billing">
4711                                                                                    <legend class="card-title">
4712                                                Ihre Adresse
4713                                            </legend>
4714                                        
4715                                                                                                        
4716                
4717            
4718                        
4719                
4720        <div class="row g-2">
4721                                                
4722    
4723                
4724    
4725                
4726    
4727    
4728        
4729    
4730    
4731    <div class="form-group col-md-6">
4732                                    <label class="form-label" for="billingAddress-AddressStreet">
4733                    Straße und Hausnummer
4734
4735                                            <span class="form-required-label" aria-hidden="true">*</span>
4736                                    </label>
4737                    
4738                    
4739            
4740            
4741            <input type="text"
4742                   class="form-control"
4743                   id="billingAddress-AddressStreet"
4744                   name="billingAddress[street]"
4745                   aria-describedby="billingAddress-AddressStreet
4745-feedback"
4746                                                         autocomplete="billing address-line1"                                                         data-validation="required"                   aria-required="true"                                      >
4747        
4748                            
4749                    <div id="billingAddress-AddressStreet-feedback" class="form-field-feedback">
4750                                                                </div>
4751            </div>
4752            
4753                                                                            
4754                    
4755                    
4756                    
4757                                                                                                                                                        
4758    
4759    
4760                
4761    
4762                
4763    
4764    
4765        
4766    
4767    
4768    <div class="form-group col-md-3 col-4">
4769                                    <label class="form-label" for="billingAddressAddressZipcode">
4770                    PLZ
4771
4772                                    </label>
4773                    
4774                    
4775            
4776            
4777            <input type="text"
4778                   class="form-control"
4779                   id="billingAddressAddressZipcode"
4780                   name="billingAddress[zipcode]"
4781                   aria-describedby="billingAddressAddressZipcode-feedback"
4782                                                         autocomplete="billing postal-code"                                                                                                                                                 data-input-name="zipcodeInput"                                                             >
4783        
4784                            
4785                    <div id="billingAddressAddressZipcode-feedback" class="form-field-feedback">
4786                                                                </div>
4787            </div>
4788                    
4789                                                            
4790    
4791                
4792    
4793                
4794    
4795    
4796        
4797    
4798    
4799    <div class="form-group col-md-3 col-8">
4800                                    <label class="form-label" for="billingAddressAddressCity">
4801                    Ort
4802
4803                                            <span class="form-required-label" aria-hidden="true">*</span>
4804                                    </label>
4805                    
4806                    
4807            
4808            
4809            <input type="text"
4810                   class="form-control"
4811                   id="billingAddressAddressCity"
4812                   name="billingAddress[city]"
4813                   aria-describedby="billingAddressAddressCity-feedback"
4814                                                         autocomplete="billing address-level2"                                                         data-validation="required"                   aria-required="true"                                      >
4815        
4816                            
4817                    <div id="billingAddressAddressCity-feedback" class="form-field-feedback">
4818                                                                </div>
4819            </div>
4820                    
4821                                                                                                    
4822                                        
4823                                                </div>
4824
4825                
4826                        <div
4827            class="row g-2 country-and-state-form-elements"
4828            data-country-state-select="true"
4829            data-country-state-select-options="{&quot;scopeElementSelector&quot;:&quot;.register-billing&quot;,&quot;prefix&quot;:&quot;billingAddress&quot;}"
4830        >
4831                                                                            
4832    
4833    
4834    
4835                
4836    
4837    
4838        
4839    
4840    
4841    <div class="form-group col-md-6">
4842                                    <label class="form-label" for="billingAddressAddressCountry">
4843                    Land
4844
4845                                            <span class="form-required-label" aria-hidden="true">*</span>
4846                                    </label>
4847                    
4848                    
4849                                        
4850            
4851            <select class="form-select country-select"
4852                    id="billingAddressAddressCountry"
4853                    name="billingAddress[countryId]"
4854                    aria-describedby="billingAddressAddressCountry-feedback"
4855                    autocomplete="billing country-name"                    data-validation="required"                    aria-required="true"                                                                        data-initial-country-id="3b847cc222df44f3af8f6bbb80b97d03"                                                                >
4856                                                                <option value="3b847cc222df44f3af8f6bbb80b97d03"
4857                    selected="selected"                    data-zipcode-required="1"
4858                    data-vat-id-required=""
4859                    data-state-required=""
4860                    >
4861
4862                Deutschland
4863
4864                            </option>
4865                    <option value="5bf955947f6f48b5be9b5e2a64c6c223"
4866                                        data-zipcode-required=""
4867                    data-vat-id-required=""
4868                    data-state-required=""
4869                    >
4870
4871                Österreich
4872
4873                            </option>
4874                    <option value="74d47c48987548c2b3653dc76381d124"
4875                                        data-zipcode-required=""
4876                    data-vat-id-required=""
4877                    data-state-required=""
4878                    >
4879
4880                Schweiz
4881
4882                            </option>
4883                    <option value="356fb7e3827c4e45af8bdc9216c154f8"
4884                                        data-zipcode-required="1"
4885                    data-vat-id-required=""
4886                    data-state-required=""
4887                    >
4888
4889                Niederlande
4890
4891                            </option>
4892                    <option value="3dc01b81569e4099bf9125807d9413e5"
4893                                        data-zipcode-required="1"
4894                    data-vat-id-required=""
4895                    data-state-required=""
4896                    >
4897
4898                Belgien
4899
4900                            </option>
4901                    <option value="f596edb059da42b78e8eae797b71fb09"
4902                                        data-zipcode-required="1"
4903                    data-vat-id-required=""
4904                    data-state-required=""
4905                    >
4906
4907                Frankreich
4908
4909                            </option>
4910                    <option value="cb7dcea897ce4cd9859e3bc0949860d7"
4911                                        data-zipcode-required="1"
4912                    data-vat-id-required=""
4913                    data-state-required=""
4914                    >
4915
4916                Italien
4917
4918                            </option>
4919                    <option value="2c6dc7978f1b449d8aa44b86a7f6da15"
4920                                        data-zipcode-required="1"
4921                    data-vat-id-required=""
4922                    data-state-required=""
4923                    >
4924
4925                Liechtenstein
4926
4927                            </option>
4928                    <option value="bf3c5b0cbf694935b9405acd1d78f307"
4929                                        data-zipcode-required="1"
4930                    data-vat-id-required=""
4931                    data-state-required=""
4932                    >
4933
4934                Luxemburg
4935
4936                            </option>
4937                    <option value="b10d6883e46b498193983132b83a887c"
4938                                        data-zipcode-required="1"
4939                    data-vat-id-required=""
4940                    data-state-required=""
4941                    >
4942
4943                Polen
4944
4945                            </option>
4946                    <option value="9d8764d2300c45c2a4917556a147cc50"
4947                                        data-zipcode-required="1"
4948                    data-vat-id-required=""
4949                    data-state-required=""
4950                    >
4951
4952                Tschechische Republik
4953
4954                            </option>
4955            
4956                            </select>
4957        
4958                            
4959                    <div id="billingAddressAddressCountry-feedback" class="form-field-feedback">
4960                                                                </div>
4961            </div>
4962
4963                
4964                                                                                
4965    
4966                
4967    
4968    
4969        
4970    
4971    
4972    <div class="form-group col-md-6 d-none">
4973                                    <label class="form-label" for="billingAddressAddressCountryState">
4974                    Bundesland
4975
4976                                    </label>
4977                    
4978                    
4979                                        
4980            
4981            <select class="form-select country-state-select"
4982                    id="billingAddressAddressCountryState"
4983                    name="billingAddress[countryStateId]"
4984                    aria-describedby="billingAddressAddressCountryState-feedback"
4985                    autocomplete="billing address-level1"                                                                                                                data-initial-country-state-id                                                                >
4986                                            <option value=""
4987                selected="selected"
4988                data-placeholder-option="true">
4989            Bundesland auswählen ...
4990        </option>
4991    
4992                            </select>
4993        
4994                            
4995                    <div id="billingAddressAddressCountryState-feedback" class="form-field-feedback">
4996                                                                </div>
4997            </div>
4998
4999                                                        </div>
5000        
5001        <div class="row g-2">
5002                                                    
5003    
5004                
5005    
5006                
5007    
5008    
5009        
5010    
5011    
5012    <div class="form-group col-md-6">
5013                                    <label class="form-label" for="billingAddressAddressPhoneNumber">
5014                    Telefonnummer
5015
5016                                    </label>
5017                    
5018                    
5019            
5020            
5021            <input type="text"
5022                   class="form-control"
5023                   id="billingAddressAddressPhoneNumber"
5024                   name="billingAddress[phoneNumber]"
5025                   aria-describedby="billingAddressAddressPhoneNumber-feedback"
5026                                                         autocomplete="billing tel"                                                                                                                  >
5027        
5028                            
5029                    <div id="billingAddressAddressPhoneNumber-feedback" class="form-field-feedback">
5030                                                                </div>
5031            </div>
5032                                    </div>
5033                                                                                </fieldset>
5034                                
5035                                                                    <div>
5036                                                                                    <div class="form-check register-different-shipping mb-3">
5037                                                                                                    <input type="checkbox"
5038                                                           class="form-check-input js-different-shipping-checkbox"
5039                                                           name="differentShippingAddress"
5040                                                           value="1"
5041                                                           id="differentShippingAddress"
5042                                                                                                                      data-form-field-toggle="true"
5043                                                           data-form-field-toggle-target=".js-form-field-toggle-shipping-address"
5044                                                           data-form-field-toggle-value="true"
5045                                                           data-form-field-toggle-trigger-nested="true">
5046                                                
5047                                                                                                    <label class="custom-control-label no-validation"
5048                                                           for="differentShippingAddress">
5049                                                        Lieferadresse weicht von Rechnungsadresse ab.
5050                                                    </label>
5051                                                                                            </div>
5052                                        
5053                                                                                    <fieldset class="register-shipping js-form-field-toggle-shipping-address d-none mb-4">
5054                                                                                                    <legend class="card-title">
5055                                                        Abweichende Lieferadresse
5056                                                    </legend>
5057                                                
5058                                                                                                                                                                        
5059                    <div class="row g-2">
5060                
5061                                                    
5062                
5063                
5064                
5065                                                                    
5066                                
5067                
5068                                    
5069        
5070    
5071    
5072    <div class="form-group col-md-6 contact-type">
5073                                    <label class="form-label" for="shippingAddress-accountType">
5074                    Kontotyp
5075
5076                                            <span class="form-required-label" aria-hidden="true">*</span>
5077                                    </label>
5078                    
5079                    
5080                                        
5081            
5082            <select class="form-select contact-select"
5083                    id="shippingAddress-accountType"
5084                    name="shippingAddress[accountType]"
5085                    aria-describedby="shippingAddress-accountType-feedback"
5086                    autocomplete="off"                    data-validation="required"                    aria-required="true"                                                                        data-form-field-toggle="true"                                                    data-form-field-toggle-target=".js-field-toggle-contact-type-company-shippingAddress"                                                    data-form-field-toggle-value="business"                                                    data-form-field-toggle-scope="all"                                                    data-form-field-toggle-parent-selector                                                                >
5087                                                                                <option disabled="disabled"
5088                                selected="selected"
5089                                value="">
5090                            Auswählen ...
5091                        </option>
5092                    
5093                                            <option value="private"
5094                            >
5095                            Privat
5096                        </option>
5097                    
5098                    <option value="business"
5099                        >
5100                        Gewerblich
5101                    </option>
5102                
5103                            </select>
5104        
5105                            
5106                    <div id="shippingAddress-accountType-feedback" class="form-field-feedback">
5107                                                                </div>
5108            </div>
5109
5110                
5111                            </div>
5112            
5113                        <div class="row g-2">
5114                                                            
5115                                                    
5116        
5117    
5118    
5119    <div class="form-group col-md-3 col-sm-6">
5120                                    <label class="form-label" for="shippingAddresspers
5120onalSalutation">
5121                    Anrede
5122
5123                                    </label>
5124                    
5125                    
5126            
5127            
5128            <select class="form-select"
5129                    id="shippingAddresspersonalSalutation"
5130                    name="shippingAddress[salutationId]"
5131                    aria-describedby="shippingAddresspersonalSalutation-feedback"
5132                    autocomplete="section-personal honorific-prefix"                                                                                >
5133                                                                                                <option                                     value="163207496779436f8ba5057e52df5b70">
5134                                    Keine Angabe
5135                                </option>
5136                                                            <option                                     value="a9897d36beb845aab39fd45a453cfb3b">
5137                                    Frau
5138                                </option>
5139                                                            <option                                     value="335866c3dab64ad9949d275c50b65369">
5140                                    Herr
5141                                </option>
5142                                                    
5143                            </select>
5144        
5145                            
5146                    <div id="shippingAddresspersonalSalutation-feedback" class="form-field-feedback">
5147                                                                </div>
5148            </div>
5149
5150                                                            
5151                                                                </div>
5152            
5153            <div class="row g-2">
5154                                                                
5155                                
5156                                    
5157                
5158    
5159    
5160        
5161    
5162    
5163    <div class="form-group col-sm-6">
5164                                    <label class="form-label" for="shippingAddress-personalFirstName">
5165                    Vorname
5166
5167                                            <span class="form-required-label" aria-hidden="true">*</span>
5168                                    </label>
5169                    
5170                    
5171            
5172            
5173            <input type="text"
5174                   class="form-control"
5175                   id="shippingAddress-personalFirstName"
5176                   name="shippingAddress[firstName]"
5177                   aria-describedby="shippingAddress-personalFirstName-feedback"
5178                                                         autocomplete="section-personal given-name"                                                         data-validation="required"                   aria-required="true"                                      >
5179        
5180                            
5181                    <div id="shippingAddress-personalFirstName-feedback" class="form-field-feedback">
5182                                                                </div>
5183            </div>
5184                            
5185                                                                
5186                
5187                                    
5188                
5189    
5190    
5191        
5192    
5193    
5194    <div class="form-group col-sm-6">
5195                                    <label class="form-label" for="shippingAddress-personalLastName">
5196                    Nachname
5197
5198                                            <span class="form-required-label" aria-hidden="true">*</span>
5199                                    </label>
5200                    
5201                    
5202            
5203            
5204            <input type="text"
5205                   class="form-control"
5206                   id="shippingAddress-personalLastName"
5207                   name="shippingAddress[lastName]"
5208                   aria-describedby="shippingAddress-personalLastName-feedback"
5209                                                         autocomplete="section-personal family-name"                                                         data-validation="required"                   aria-required="true"                                      >
5210        
5211                            
5212                    <div id="shippingAddress-personalLastName-feedback" class="form-field-feedback">
5213                                                                </div>
5214            </div>
5215                                    </div>
5216    
5217                                        
5218                                        
5219                                                                    
5220                                                                                                                
5221            <div class="js-field-toggle-contact-type-company-shippingAddress d-none">
5222                            <div class="row g-2">
5223                                            
5224                                                    
5225                
5226    
5227    
5228        
5229    
5230    
5231    <div class="form-group col-12">
5232                                    <label class="form-label" for="shippingAddresscompany">
5233                    Firma
5234
5235                                            <span class="form-required-label" aria-hidden="true">*</span>
5236                                    </label>
5237                    
5238                    
5239            
5240            
5241            <input type="text"
5242                   class="form-control"
5243                   id="shippingAddresscompany"
5244                   name="shippingAddress[company]"
5245                   aria-describedby="shippingAddresscompany-feedback"
5246                                                         autocomplete="section-personal organization"                                                         data-validation="required"                   aria-required="true"                                      >
5247        
5248                            
5249                    <div id="shippingAddresscompany-feedback" class="form-field-feedback">
5250                                                                </div>
5251            </div>
5252                                                            </div>
5253                <div class="row g-2">
5254                                            
5255                                                    
5256                
5257    
5258    
5259        
5260    
5261    
5262    <div class="form-group col-md-6">
5263                                    <label class="form-label" for="shippingAddressdepartment">
5264                    Abteilung
5265
5266                                    </label>
5267                    
5268                    
5269            
5270            
5271            <input type="text"
5272                   class="form-control"
5273                   id="shippingAddressdepartment"
5274                   name="shippingAddress[department]"
5275                   aria-describedby="shippingAddressdepartment-feedback"
5276                                                         autocomplete="off"                                                                                                                  >
5277        
5278                            
5279                    <div id="shippingAddressdepartment-feedback" class="form-field-feedback">
5280                                                                </div>
5281            </div>
5282                                            
5283                                                                                                    </div>
5284                    </div>
5285                                                        
5286                                                                                                                                
5287                
5288            
5289                        
5290                
5291        <div class="row g-2">
5292                                                
5293    
5294                
5295    
5296                
5297    
5298    
5299        
5300    
5301    
5302    <div class="form-group col-md-6">
5303                                    <label class="form-label" for="shippingAddress-AddressStreet">
5304                    Straße und Hausnummer
5305
5306                                            <span class="form-required-label" aria-hidden="true">*</span>
5307                                    </label>
5308                    
5309                    
5310            
5311            
5312            <input type="text"
5313                   class="form-control"
5314                   id="shippingAddress-AddressStreet"
5315                   name="shippingAddress[street]"
5316                   aria-describedby="shippingAddress-AddressStreet-feedback"
5317                                                         autocomplete="shipping address-line1"                                                         data-validation="required"                   aria-required="true"                                      >
5318        
5319                            
5320                    <div id="shippingAddress-AddressStreet-feedback" class="form-field-feedback">
5321                                                                </div>
5322            </div>
5323            
5324                                                                            
5325                    
5326                    
5327                    
5328                                                                                                                                                        
5329    
5330    
5331                
5332    
5333                
5334    
5335    
5336        
5337    
5338    
5339    <div class="form-group col-md-3 col-4">
5340                                    <label class="form-label" for="shippingAddressAddressZipcode">
5341                    PLZ
5342
5343                                    </label>
5344                    
5345                    
5346            
5347            
5348            <input type="text"
5349                   class="form-control"
5350                   id="shippingAddressAddressZipcode"
5351                   name="shippingAddress[zipcode]"
5352                   aria-describedby="shippingAddressAddressZipcode-feedback"
5353                                                         autocomplete="shipping postal-code"                                                                                                                                                 data-input-name="zipcodeInput"                                                             >
5354        
5355                            
5356                    <div id="shippingAddressAddressZipcode-feedback" class="form-field-feedback">
5357                                                                </div>
5358            </div>
5359                    
5360                                                            
5361    
5362                
5363    
5364                
5365    
5366    
5367        
5368    
5369    
5370    <div class="form-group col-md-3 col-8">
5371                                    <label class="form-label" for="shippingAddressAddressCity">
5372                    Ort
5373
5374                                            <span class="form-required-label" aria-hidden="true">*</span>
5375                                    </label>
5376                    
5377                    
5378            
5379            
5380            <input type="text"
5381                   class="form-control"
5382                   id="shippingAddressAddressCity"
5383                   name="shippingAddress[city]"
5384                   aria-describedby="shippingAddressAddressCity-feedback"
5385                                                         autocomplete="shipping address-level2"                                                         data-validation="required"                   aria-required="true"                                      >
5386        
5387                            
5388                    <div id="shippingAddressAddressCity-feedback" class="form-field-feedback">
5389                                                                </div>
5390            </div>
5391                    
5392                                                                                                    
5393                                        
5394                                                </div>
5395
5396                
5397                        <div
5398            class="row g-2 country-and-state-form-elements"
5399            data-country-state-select="true"
5400            data-country-state-select-options="{&quot;scopeElementSelector&quot;:&quot;.register-shipping&quot;,&quot;prefix&quot;:&quot;shippingAddress&quot;}"
5401        >
5402                                                                            
5403    
5404    
5405    
5406                
5407    
5408    
5409        
5410    
5411    
5412    <div class="form-group col-md-6">
5413                                    <label class="form-label" for="shippingAddressAddressCountry">
5414                    Land
5415
5416                                            <span class="form-required-label" aria-hidden="true">*</span>
5417                                    </label>
5418                    
5419                    
5420                                        
5421            
5422            <select class="form-select country-select"
5423                    id="shippingAddressAddressCountry"
5424                    name="shippingAddress[countryId]"
5425                    aria-describedby="shippingAddressAddressCountry-feedback"
5426                    autocomplete="shipping country-name"                    data-validation="required"                    aria-required="true"                                                                        data-initial-country-id="3b847cc222df44f3af8f6bbb80b97d03"                                                                >
5427                                                                <option value="3b847cc222df44f3af8f6bbb80b97d03"
5428                    selected="selected"                    data-zipcode-required="1"
5429                    data-vat-id-required=""
5430                    data-state-required=""
5431                    >
5432
5433                Deutschland
5434
5435                            </option>
5436                    <option value="5bf955947f6f48b5be9b5e2a64c6c223"
5437                                        data-zipcode-required=""
5438                    data-vat-id-required=""
5439                    data-state-required=""
5440                    >
5441
5442                Österreich
5443
5444                            </option>
5445                    <option value="74d47c48987548c2b3653dc76381d124"
5446                                        data-zipcode-required=""
5447                    data-vat-id-required=""
5448                    data-state-required=""
5449                    >
5450
5451                Schweiz
5452
5453                            </option>
5454                    <option value="356fb7e3827c4e45af8bdc9216c154f8"
5455                                        data-zipcode-required="1"
5456                    data-vat-id-required=""
5457                    data-state-required=""
5458                    >
5459
5460                Niederlande
5461
5462                            </option>
5463                    <option value="3dc01b81569e4099bf9125807d9413e5"
5464                                        data-zipcode-required="1"
5465                    data-vat-id-required=""
5466                    data-state-required=""
5467                    >
5468
5469                Belgien
5470
5471                            </option>
5472                    <option value="f596edb059da42b78e8eae797b71fb09"
5473                                        data-zipcode-required="1"
5474                    data-vat-id-required=""
5475                    data-state-required=""
5476                    >
5477
5478                Frankreich
5479
5480                            </option>
5481                    <option value="cb7dcea897ce4cd9859e3bc0949860d7"
5482                                        data-zipcode-required="1"
5483                    data-vat-id-required=""
5484                    data-state-required=""
5485                    >
5486
5487                Italien
5488
5489                            </option>
5490                    <option value="2c6dc7978f1b449d8aa44b86a7f6da15"
5491                                        data-zipcode-required="1"
5492                    data-vat-id-required=""
5493                    data-state-required=""
5494                    >
5495
5496                Liechtenstein
5497
5498                            </option>
5499                    <option value="bf3c5b0cbf694935b9405acd1d78f307"
5500                                        data-zipcode-required="1"
5501                    data-vat-id-required=""
5502                    data-state-required=""
5503                    >
5504
5505                Luxemburg
5506
5507                            </option>
5508                    <option value="b10d6883e46b498193983132b83a887c"
5509                                        data-zipcode-required="1"
5510                    data-vat-id-required=""
5511                    data-state-required=""
5512                    >
5513
5514                Polen
5515
5516                            </option>
5517                    <option value="9d8764d2300c45c2a4917556a147cc50"
5518                                        data-zipcode-required="1"
5519                    data-vat-id-required=""
5520                    data-state-required=""
5521                    >
5522
5523                Tschechische Republik
5524
5525                            </option>
5526            
5527                            </select>
5528        
5529                            
5530                    <div id="shippingAddressAddressCountry-feedback" class="form-field-feedback">
5531                                                                </div>
5532            </div>
5533
5534                
5535                                                                                
5536    
5537                
5538    
5539    
5540        
5541    
5542    
5543    <div class="form-group col-md-6 d-none">
5544                                    <label class="form-label" for="shippingAddressAddressCountryState">
5545                    Bundesland
5546
5547                                    </label>
5548                    
5549                    
5550                                        
5551            
5552            <select class="form-select country-state-select"
5553                    id="shippingAddressAddressCountryState"
5554                    name="shippingAddress[countryStateId]"
5555                    aria-describedby="shippingAddressAddressCountryState-feedback"
5556                    autocomplete="shipping address-level1"                                                                                                                data-initial-country-state-id                                                                >
5557                                            <option value=""
5558                selected="selected"
5559                data-placeholder-option="true">
5560            Bundesland auswählen ...
5561        </option>
5562    
5563                            </select>
5564        
5565                            
5566                    <div id="shippingAddressAddressCountryState-feedback" class="form-field-feedback">
5567                                                                </div>
5568            </div>
5569
5570                                                        </div>
5571        
5572        <div class="row g-2">
5573                                                    
5574    
5575                
5576    
5577                
5578    
5579    
5580        
5581    
5582    
5583    <div class="form-group col-md-6">
5584                                    <label class="form-label" for="shippingAddressAddressPhoneNumber">
5585                    Telefonnummer
5586
5587                                    </label>
5588                    
5589                    
5590            
5591            
5592            <input type="text"
5593                   class="form-control"
5594                   id="shippingAddressAddressPhoneNumber"
5595                   name="shippingAddress[phoneNumber]"
5596                   aria-describedby="shippingAddressAddressPhoneNumber-feedback"
5597                                                         autocomplete="shipping tel"                                                                                                                  >
5598        
5599                            
5600                    <div id="shippingAddressAddressPhoneNumber-feedback" class="form-field-feedback">
5601                                                                </div>
5602            </div>
5603                                    </div>
5604                                                                                                                                                    </fieldset>
5605                                                                            </div>
5606                                                                                    </div>
5607                    
5608                                                            
5609    
5610                                            <div class="shopware_surname_confirm">
5611                    <input type="text"
5612                   name="shopware_surname_confirm"
5613                   class="d-none"
5614                   value=""
5615                   tabindex="-1"
5616                   autocapitalize="off"
5617                   spellcheck="false"
5618                   autocorrect="off"
5619                                      autocomplete="new-password"
5620            >
5621            </div>
5622                                                                                            
5623    
5624    <div class="captcha-google-re-captcha-v3"
5625         data-google-re-captcha-v3="true"
5626         data-google-re-captcha-v3-options="{&quot;siteKey&quot;:&quot;6Le3G4AtAAAAABkM5gpgmXVYSjCN1VMIBaqf-TaF&quot;}">
5627        <input
5628            type="hidden"
5629            class="grecaptcha_v3-input"
5630            name="_grecaptcha_v3"
5631            data-validation="grecaptcha"
5632            data-validate-hidden="true"
5633            aria-describedby="form-1202557733-grecaptcha-v3-feedback">
5634
5635        <div class="data-protection-information grecaptcha-protection-information">
5636            Diese Seite ist durch reCAPTCHA geschützt und es gelten die <a href="https://policies.google.com/privacy?hl=de">Datenschutzrichtlinie</a> und <a href="https://policies.google.com/terms?hl=de">Nutzungsbedingungen</a>.
5637        </div>
5638
5639        <div id="form-1202557733-grecaptcha-v3-feedback" class="form-field-feedback"></div>
5640    </div>
5641                                            
5642                                                <fieldset class="form-text privacy-notice">
5643                    <legend class="form-text privacy-notice-title">
5644                <strong>Datenschutz</strong>
5645            </legend>
5646            <br>
5647        
5648                                            
5649                
5650                                
5651    
5652    <div class="form-group form-check">
5653                    
5654            
5655            
5656            <input type="checkbox"
5657                   class="form-check-input"
5658                   id="acceptedDataProtection"
5659                   name="acceptedDataProtection"
5660                   value="1"
5661                   aria-describedby="acceptedDataProtection-feedback"
5662                   data-validation="required"                   aria-required="true"                                                         >
5663        
5664                    <label class="custom-control-label"
5665                   for="acceptedDataProtection">
5666                Ich habe die <button type="button" class="btn btn-link-inline" aria-haspopup="dialog" data-ajax-modal="true" data-url="/widgets/cms">Datenschutzbestimmungen</button> zur Kenntnis genommen und die <button type="button" class="btn btn-link-inline" aria-haspopup="dialog" data-ajax-modal="true" data-url="/widgets/cms">AGB</button> gelesen und bin mit ihnen einverstanden.
5667
5668                                    <span class="form-required-label" aria-hidden="true">*</span>
5669                            </label>
5670        
5671                    <div id="acceptedDataProtection-feedback" class="form-field-feedback">
5672                                                                </div>
5673            </div>
5674                        </fieldset>
5675                    
5676                                            <p class="register-required-info">
5677                            Die mit einem Stern (*) markierten Felder sind Pflichtfelder.
5678                        </p>
5679                    
5680                                            <div class="register-submit d-grid col-md-6 offset-md-6">
5681                            <button type="submit"
5682                                    class="btn btn-primary btn-lg">
5683                                Weiter
5684                            </button>
5685                        </div>
5686                                    </form>
5687                    </div>
5688    </div>
5689                        </div>
5690                                    </div>
5691                    </div>
5692                                </div>
5693                                            </div>
5694                            </main>
5695        
5696
5697    
5698    
5699                    				
5700
5701
5702
5703
5704
5705
5706
5707
5708	 					
5709	
5710	
5711
5712	
5713	
5714	
5715	
5716
5717	
5718
5719	
5720	<section 			 class="twt-usp-bar is-footer is-small layout-1"
5721			 			 data-twt-usp-bar-usps="5"
5722			 role="region"
5723			 aria-label="Noch unentschlossen? Diese Vorteile sprechen für uns"
5724	>
5725
5726					<div class="twt-usp-bar-container container">
5727				<div class="row h-100 align-items-center">
5728					<div class="twt-usp-bar-items col px-0">
5729						
5730
5731
5732
5733
5734
5735
5736
5737 
5738
5739
5740
5741                            
5742            
5743                
5744                                    <div class="twt-usp-bar-item twt-usp-1 item-1">
5745                    <div class="item-icon">
5746                                                
5747
5748		
5749					    
5750        
5751        
5752        
5753                        
5754                                    
5755                <span class="icon icon-rocket" aria-hidden="true">
5756                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M5.2213 14.4042a12.7324 12.7324 0 0 0-3.4638-1.434c-.7541-.1886-1.0142-1.1277-.4646-1.6773l1.8284-1.8284A5 5 0 0 1 6.657 8h2.47l.47-.6462A13 13 0 0 1 20.1107 2H21c.5523 0 1 .4477 1 1v.8893a13 13 0 0 1-5.3538 10.5136l-.4355.3167.2102.8407a5 5 0 0 1-1.3152 4.7482l-2.3986 2.3986c-.5496.5496-1.4887.2895-1.6772-.4646a12.7324 12.7324 0 0 0-1.434-3.4638 41.8718 41.8718 0 0 1-5.2797 2.17c-.7817.2606-1.5255-.4832-1.2649-1.265a41.8718 41.8718 0 0 1 2.17-5.2795zm.9287-1.7747A41.8718 41.8718 0 0 1 7.7358 10h-1.079a3 3 0 0 0-2.1213.8787l-.661.661c.794.2997 1.5546.665 2.2755 1.0898zm8.309 3.33a41.8717 41.8717 0 0 1-3.0885 1.8905 14.7187 14.7187 0 0 1 1.0897 2.2755l1.2313-1.2312a3 3 0 0 0 .789-2.849l-.0214-.0858zm-4.2242.2328a39.8717 39.8717 0 0 0 4.292-2.721l.943-.6859a11 11 0 0 0 4.5296-8.7848A11 11 0 0 0 11.2146 8.53l-.686.9432a39.8717 39.8717 0 0 0-2.721 4.2919 14.762 14.762 0 0 1 2.4272 2.4271zm-1.8172.936a12.7602 12.7602 0 0 0-1.5459-1.5459c-.4347.9-.8358 1.8167-1.202 2.748a39.8718 39.8718 0 0 0 2.7479-1.2021z" id="icons-default-rocket" /></defs><use xlink:href="#icons-default-rocket" fill="#758CA3" fill-rule="evenodd" /></svg>
5757                    </span>
5758
5759    
5760	                    </div>
5761                    <div class="item-label">
5762                        <div class="item-title">Versand per GLS und Spedition</div>
5763                                            </div>
5764                </div>
5765                    
5766    
5767                
5768                                    <div class="twt-usp-bar-item twt-usp-2 item-2">
5769                    <div class="item-icon">
5770                                                
5771
5772		
5773					    
5774        
5775        
5776        
5777                        
5778                                    
5779                <span class="icon icon-clock" aria-hidden="true">
5780                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M13 11V6c0-.5523-.4477-1-1-1s-1 .4477-1 1v6c0 .5523.4477 1 1 1h4c.5523 0 1-.4477 1-1s-.4477-1-1-1h-3zm-1 13C5.3726 24 0 18.6274 0 12S5.3726 0 12 0s12 5.3726 12 12-5.3726 12-12 12zm0-2c5.5228 0 10-4.4772 10-10S17.5228 2 12 2 2 6.4772 2 12s4.4772 10 10 10z" id="icons-default-clock" /></defs><use xlink:href="#icons-default-clock" fill="#758CA3" fill-rule="evenodd" /></svg>
5781                    </span>
5782
5783    
5784	                    </div>
5785                    <div class="item-label">
5786                        <div class="item-title">Kundenservice von 8-17 Uhr</div>
5787                                            </div>
5788                </div>
5789                    
5790    
5791                
5792                                    <div class="twt-usp-bar-item twt-usp-3 item-3">
5793                    <div class="item-icon">
5794                                                
5795
5796		
5797					    
5798        
5799        
5800        
5801                        
5802                                    
5803                <span class="icon icon-thumb-up" aria-hidden="true">
5804                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M4 9c.5523 0 1 .4477 1 1s-.4477 1-1 1-1-.4477-1-1 .4477-1 1-1zm4-2h.2457a1 1 0 0 0 .9615-.7253l1.1711-4.0989A3 3 0 0 1 13.263 0h1.76c1.6568 0 3 1.3431 3 3a3 3 0 0 1-.1155.8242L17 7h4c1.6569 0 3 1.3431 3 3v5c0 4.4183-3.5817 8-8 8H8c0 .5523-.4477 1-1 1H1c-.5523 0-1-.4477-1-1V7c0-.5523.4477-1 1-1h6c.5523 0 1 .4477 1 1zM6 8H2v14h4V8zm2 1v12h8c3.3137 0 6-2.6863 6-6v-5c0-.5523-.4477-1-1-1h-6.6515l1.6358-5.7253A1 1 0 0 0 16.0228 3c0-.5523-.4477-1-1-1H13.263a1 1 0 0 0-.9615.7253l-1.1711 4.0989A3 3 0 0 1 8.2457 9H8z" id="icons-default-thumb-up" /></defs><use xlink:href="#icons-default-thumb-up" fill="#758CA3" fill-rule="evenodd" /></svg>
5805                    </span>
5806
5807    
5808	                    </div>
5809                    <div class="item-label">
5810                        <div class="item-title">Käuferschutz über Trusted Shops</div>
5811                                            </div>
5812                </div>
5813                    
5814    
5815                
5816                                    <div class="twt-usp-bar-item twt-usp-4 item-4">
5817                    <div class="item-icon">
5818                                                
5819
5820		
5821					    
5822        
5823        
5824        
5825                        
5826                                    
5827                <span class="icon icon-briefcase" aria-hidden="true">
5828                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M20 8v1c0 .5523-.4477 1-1 1s-1-.4477-1-1V8H6v1c0 .5523-.4477 1-1 1s-1-.4477-1-1V8H3c-.5523 0-1 .4477-1 1v10c0 .5523.4477 1 1 1h18c.5523 0 1-.4477 1-1V9c0-.5523-.4477-1-1-1h-1zM7 6V4c0-1.1046.8954-2 2-2h6c1.1046 0 2 .8954 2 2v2h4c1.6569 0 3 1.3431 3 3v10c0 1.6569-1.3431 3-3 3H3c-1.6569 0-3-1.3431-3-3V9c0-1.6569 1.3431-3 3-3h4zm2 0h6V4H9v2z" id="icons-default-briefcase" /></defs><use xlink:href="#icons-default-briefcase" fill="#758CA3" fill-rule="evenodd" /></svg>
5829                    </span>
5830
5831    
5832	                    </div>
5833                    <div class="item-label">
5834                        <div class="item-title">Bequemer Kauf auf Rechnung</div>
5835                                            </div>
5836                </div>
5837                    
5838    
5839        
5840                
5841                                    <div class="twt-usp-bar-item twt-usp-5 item-6">
5842                    <div class="item-icon">
5843                                                
5844
5845		
5846					    
5847        
5848        
5849        
5850                        
5851                                    
5852                <span class="icon icon-headset" aria-hidden="true">
5853                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M2 11v4h2v-4H2zm20-2c1.1046 0 2 .8954 2 2v4c0 1.1046-.8954 2-2 2v3c0 1.6569-1.3431 3-3 3h-1c0 .5523-.4477 1-1 1h-2c-.5523 0-1-.4477-1-1v-2c0-.5523.4477-1 1-1h2c.5523 0 1 .4477 1 1h1c.5523 0 1-.4477 1-1v-3c-1.1046 0-2-.8954-2-2v-4c0-1.1046.8954-2 2-2 0-3.866-3.134-7-7-7h-2C7.134 2 4 5.134 4 9c1.1046 0 2 .8954 2 2v4c0 1.1046-.8954 2-2 2H2c-1.1046 0-2-.8954-2-2v-4c0-1.1046.8954-2 2-2 0-4.9706 4.0294-9 9-9h2c4.9706 0 9 4.0294 9 9zm-2 2v4h2v-4h-2z" id="icons-default-headset" /></defs><use xlink:href="#icons-default-headset" fill="#758CA3" fill-rule="evenodd" /></svg>
5854                    </span>
5855
5856    
5857	                    </div>
5858                    <div class="item-label">
5859                        <div class="item-title">Beratung unter:  +49 (0)6681 9678446</div>
5860                                            </div>
5861                </div>
5862                    
5863    					</div>
5864
5865																				
5866														</div>
5867			</div>
5868		
5869	</section>
5870	
5871		    <footer class="footer-main">
5872                        <div class="container">
5873        
5874		
5875					
5876					
5877					
5878					
5879					
5880					
5881					
5882					
5883		
5884		
5885		
5886				
5887			
5888			
5889									
5890													
5891															
5892		
5893											
5894						
5895															
5896		
5897											
5898						
5899															
5900		
5901											
5902						
5903															
5904		
5905											
5906						
5907															
5908		
5909					
5910								
5911													
5912															
5913											
5914						
5915															
5916		
5917					
5918		
5919								
5920													
5921																
5922				<div
5923            id="footerColumnsTop"
5924			class="row footer-columns first"
5925			data-collapse-footer-columns="true"
5926			role="list"
5927		>
5928																																																															
5929																					
5930					
5931
5932
5933
5934					
5935		
5936					
5937		
5938		
5939					
5940					
5941				<div class="twt-footer-column-newsletter col-md-6 footer-column-newsletter footer-column js-footer-column twt-element-newsletter twt-element-6 first last">
5942			<div class="twt-anchor" id="newsletterSubscription"></div>
5943
5944							<div class="footer-column-headline footer-headline js-footer-column-headline"
5945					 id="collapseFooterNewsletterTitle"
5946					 role="listitem"
5947				>
5948					Newsletter
5949
5950																		<button class="footer-column-toggle btn btn-link btn-link-inline js-collapse-footer-column-trigger"
5951									data-bs-target="#collapseFooterNewsletter"
5952									data-bs-toggle="collapse"
5953									aria-controls="collapseFooterNewsletter"
5954									aria-labelledby="collapseFooterNewsletterTitle"
5955									aria-expanded="true"
5956							>
5957                                    
5958        
5959        
5960        
5961                        
5962                                    
5963                <span class="icon icon-plus icon-footer-plus" aria-hidden="true">
5964                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M11 11V3c0-.5523.4477-1 1-1s1 .4477 1 1v8h8c.5523 0 1 .4477 1 1s-.4477 1-1 1h-8v8c0 .5523-.4477 1-1 1s-1-.4477-1-1v-8H3c-.5523 0-1-.4477-1-1s.4477-1 1-1h8z" id="icons-default-plus" /></defs><use xlink:href="#icons-default-plus" fill="#758CA3" fill-rule="evenodd" /></svg>
5965                    </span>
5966
5967    
5968                                    
5969        
5970        
5971        
5972                        
5973                                    
5974                <span class="icon icon-minus icon-footer-minus" aria-hidden="true">
5975                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path id="icons-default-minus" d="M3 13h18c.5523 0 1-.4477 1-1s-.4477-1-1-1H3c-.5523 0-1 .4477-1 1s.4477 1 1 1z" /></defs><use xlink:href="#icons-default-minus" fill="#758CA3" fill-rule="evenodd" /></svg>
5976                    </span>
5977
5978    							</button>
5979											
5980				</div>
5981			
5982							<div id="collapseFooterNewsletter"
5983					 class="footer-column-content js-footer-column-content collapse"
5984					 aria-labelledby="collapseFooterNewsletterTitle"
5985					 role="listitem"
5986				>
5987					<div class="footer-column-content-inner">
5988						
5989
5990
5991
5992
5993
5994    <div class="twt-widget-newsletter twt-newsletter is-footer">
5995                    <p class="twt-newsletter-text mb-3">
5996                Abonnieren Sie jetzt einfach unseren regelmäßig erscheinenden Newsletter und Sie werden stets unter den Ersten sein, über neue Produkte und Angebote informiert werden.
5997            </p>
5998
5999            <div class="cms-block cms-block-form">                 <div class="cms-element-form">
6000                                                                    <form action="/form/newsletter"
6001                              method="post"
6002                                                            data-form-handler="true"
6003                              id="twt-form-newsletter"
6004                              aria-label="Newsletter abonnieren"
6005                        >
6006                            <div class="form-content">
6007                                                                <div class="twt-form-newsletter-subscribe row g-2 mb-2 ms-0 me-0 d-none">
6008                                                                            
6009                                        
6010        
6011    
6012    
6013    <div class="form-group col-12">
6014                                    <label class="form-label" for="newsletterAction">
6015                    Aktion
6016
6017                                            <span class="form-required-label" aria-hidden="true">*</span>
6018                                    </label>
6019                    
6020                    
6021                                        
6022            
6023            <select class="form-select contact-select"
6024                    id="newsletterAction"
6025                    name="option"
6026                    aria-describedby="newsletterAction-feedback"
6027                                        data-validation="required"                    aria-required="true"                                                                        data-form-field-toggle="true"                                                    data-form-field-toggle-value="subscribe"                                                    hidden="hidden"                                                    aria-hidden="true"                                                    tabindex="-1"                                                                >
6028                                                                                <option selected="selected"
6029                                                    value="subscribe">
6030                                                Newsletter abonnieren
6031                                            </option>
6032
6033                                            <option value="unsubscribe">
6034                                                Newsletter abbestellen
6035                                            </option>
6036                                        
6037                            </select>
6038        
6039                            
6040                    <div id="newsletterAction-feedback" class="form-field-feedback">
6041                                                                </div>
6042            </div>
6043
6044                                                                                                            </div>
6045
6046                                                                
6047                                                                <div class="twt-form-newsletter-email-submit row g-2 mb-2 ms-0 me-0">
6048                                    <div class="col-12">
6049                                                                                        
6050                
6051                
6052    
6053    
6054    
6055    
6056        
6057    
6058    
6059    <div class="form-group">
6060                                    <label class="form-label" for="twt-form-newsletter-form-email">
6061                    E-Mail-Adresse
6062
6063                                            <span class="form-required-label" aria-hidden="true">*</span>
6064                                    </label>
6065                    
6066                    
6067            
6068            
6069            <input type="email"
6070                   class="form-control"
6071                   id="twt-form-newsletter-form-email"
6072                   name="email"
6073                   aria-describedby="twt-form-newsletter-form-email-feedback"
6074                                      placeholder="E-Mail-Adresse eingeben ..."                   autocomplete="email"                                                         data-validation="required,email"                   aria-required="true"                                      >
6075        
6076                            
6077                    <div id="twt-form-newsletter-form-email-feedback" class="form-field-feedback">
6078                                                                </div>
6079            </div>
6080                                        
6081                                                                                                                                                                                                                                                                            <button type="submit" class="btn btn-primary" aria-label="Submit">
6082                                                                                                                                                                            
6083        
6084        
6085        
6086                        
6087                        
6088
6089    
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102    <span class="icon icon-themeware icon-envelope icon-solid" aria-hidden="true"><?xml version="1.0" encoding="utf-8"?><svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22,3.69H2a1,1,0,0,0-1,1V18.31a2,2,0,0,0,2,2H21a2,2,0,0,0,2-2V4.69A1,1,0,0,0,22,3.69ZM3,7.07l7,4.57L3,17.56Zm9.09,4.41L3.17,5.69H21Zm-1,.87.62.4a.63.63,0,0,0,.68,0l.46-.3,7,5.86H4.06ZM14,11.74l7-4.57V17.65Z"/></svg></span>
6103
6104
6105
6106
6107                                                                                                                                                                </button>
6108                                                                                    
6109                                    </div>
6110                                </div>
6111
6112                                
6113                                                                
6114                                                                                    
6115    
6116                                            <div class="shopware_surname_confirm">
6117                    <input type="text"
6118                   name="shopware_surname_confirm"
6119                   class="d-none"
6120                   value=""
6121                   tabindex="-1"
6122                   autocapitalize="off"
6123                   spellcheck="false"
6124                   autocorrect="off"
6125                                      autocomplete="new-password"
6126            >
6127            </div>
6128                                                                                            
6129    
6130    <div class="captcha-google-re-captcha-v3"
6131         data-google-re-captcha-v3="true"
6132         data-google-re-captcha-v3-options="{&quot;siteKey&quot;:&quot;6Le3G4AtAAAAABkM5gpgmXVYSjCN1VMIBaqf-TaF&quot;}">
6133        <input
6134            type="hidden"
6135            class="grecaptcha_v3-input"
6136            name="_grecaptcha_v3"
6137            data-validation="grecaptcha"
6138            data-validate-hidden="true"
6139            aria-describedby="form-742018179-grecaptcha-v3-feedback">
6140
6141        <div class="data-protection-information grecaptcha-protection-information">
6142            Diese Seite ist durch reCAPTCHA geschützt und es gelten die <a href="https://policies.google.com/privacy?hl=de">Datenschutzrichtlinie</a> und <a href="https://policies.google.com/terms?hl=de">Nutzungsbedingungen</a>.
6143        </div>
6144
6145        <div id="form-742018179-grecaptcha-v3-feedback" class="form-field-feedback"></div>
6146    </div>
6147                                                        
6148                                                                                                    <div class="twt-form-newsletter-privacy">
6149                                        
6150                                                                                                                            <fieldset class="form-text privacy-notice">
6151                    <legend class="form-text privacy-notice-title">
6152                <strong>Datenschutz</strong>
6153            </legend>
6154            <br>
6155        
6156                                            
6157                
6158                                
6159    
6160    <div class="form-group form-check">
6161                    
6162            
6163            
6164            <input type="checkbox"
6165                   class="form-check-input"
6166                   id="acceptedDataProtection"
6167                   name="acceptedDataProtection"
6168                   value="1"
6169                   aria-describedby="acceptedDataProtection-feedback"
6170                   data-validation="required"                   aria-required="true"                                                         >
6171        
6172                    <label class="custom-control-label"
6173                   for="acceptedDataProtection">
6174                Ich habe die <button type="button" class="btn btn-link-inline" aria-haspopup="dialog" data-ajax-modal="true" data-url="/widgets/cms">Datenschutzbestimmungen</button> zur Kenntnis genommen und die <button type="button" class="btn btn-link-inline" aria-haspopup="dialog" data-ajax-modal="true" data-url="/widgets/cms">AGB</button> gelesen und bin mit ihnen einverstanden.
6175
6176                                    <span class="form-required-label" aria-hidden="true">*</span>
6177                            </label>
6178        
6179                    <div id="acceptedDataProtection-feedback" class="form-field-feedback">
6180                                                                </div>
6181            </div>
6182                        </fieldset>
6183                                    </div>
6184                                
6185                                                            </div>
6186
6187                                                            <div class="form-hidden-fields">
6188                                    <input type="submit" class="submit--hidden d-none">
6189                                </div>
6190                                                    </form>
6191                                    </div>
6192            </div>
6193
6194            </div>
6195					</div>
6196				</div>
6197			
6198		</div>
6199																								</div>
6200	
6201							<div
6202				id="footerColumns"
6203				class="row footer-columns"
6204				data-collapse-footer-columns="true"
6205				role="list"
6206			>
6207																																		
6208												
6209						
6210
6211
6212
6213					
6214		
6215					
6216		
6217		
6218					
6219		
6220				<div class="twt-footer-column-about col-md-6 footer-column-about footer-column js-footer-column twt-element-about twt-element-1 first">
6221
6222							<div class="footer-column-headline footer-headline js-footer-column-headline"
6223					 id="collapseFooterAboutTitle"
6224					 role="listitem"
6225				>
6226					Wir fertigen Ihre PVC-Plane nach Maß - Sattler Qualität made in Germany!
6227
6228																		<button class="footer-column-toggle btn btn-link btn-link-inline js-collapse-footer-column-trigger"
6229									data-bs-target="#collapseFooterAbout"
6230									data-bs-toggle="collapse"
6231									aria-controls="collapseFooterAbout"
6232									aria-labelledby="collapseFooterAboutTitle"
6233									aria-expanded="true"
6234							>
6235                                    
6236        
6237        
6238        
6239                        
6240                                    
6241                <span class="icon icon-plus icon-footer-plus" aria-hidden="true">
6242                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-plus" fill="#758CA3" fill-rule="evenodd" /></svg>
6243                    </span>
6244
6245    
6246                                    
6247        
6248        
6249        
6250                        
6251                                    
6252                <span class="icon icon-minus icon-footer-minus" aria-hidden="true">
6253                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-minus" fill="#758CA3" fill-rule="evenodd" /></svg>
6254                    </span>
6255
6256    							</button>
6257											
6258				</div>
6259			
6260							<div id="collapseFooterAbout"
6261					 class="footer-column-content js-footer-column-content collapse"
6262					 aria-labelledby="collapseFooterAboutTitle"
6263					 role="listitem"
6264				>
6265					<div class="footer-column-content-inner">
6266						
6267
6268
6269    <div class="twt-widget-about twt-about is-footer">
6270                    <p> Bei <strong>Tekoplan</strong> wird jede <strong>Abdeckplane von Hand maßgefertigt</strong> – in echter <strong>Sattlerqualität Made in Germany</strong>. Als erfahrener Hersteller für <strong>PVC-Planen nach Maß</strong> bieten wir langlebige, wetterfeste und individuell gefertigte Lösungen für private, gewerbliche und industrielle Anwendungen. </p>  <p> Unsere <strong>Abdeckplanen</strong> sind in zahlreichen <strong>Ausführungen, Farben, Formen und Größen</strong> erhältlich und lassen sich flexibel anpassen. Je nach Einsatzzweck fertigen wir Planen <strong>mit Saum und Ösen im Abstand von 50 cm oder 100 cm</strong>, mit verstärktem Rand, mit oder ohne Ösen sowie mit individuell abgestimmten Befestigungslösungen. </p>  <p> In unserem <strong>Online-Shop für PVC-Planen</strong> finden Sie außerdem ein umfangreiches Sortiment an <strong>Planenzubehör</strong> wie Planenspanner, Expanderhaken, Expanderseile und weiteres Befestigungsmaterial. Für einfache Anwendungen stehen auch <strong>PVC-Planen in Standardabmessungen</strong> in der Kategorie Abdeckplanen zur Verfügung. </p>  <p> Wenn Sie hingegen eine <strong>PVC-Plane nach Maß</strong> benötigen, nutzen Sie unseren <strong>Planenkonfigurator / Planenkalkulator</strong>. Damit konfigurieren Sie Ihre Abdeckplane präzise nach Ihren Anforderungen und stellen sicher, dass <strong>Maße, Ausstattung und Verarbeitung exakt passen</strong>. </p>
6271            </div>
6272					</div>
6273				</div>
6274			
6275		</div>
6276																											
6277												
6278						
6279
6280
6281
6282    
6283                                                                                                                
6284                        
6285                                                    
6286                        
6287                        
6288                        
6289                        
6290                                        <div class="col-md-4 col-xl-3 footer-column-footernav footer-column js-footer-column twt-element-footernav twt-element-2">
6291
6292                                            <div class="footer-column-headline footer-headline js-footer-column-headline"
6293                             id="collapseFooterTitle1"
6294                             role="listitem"
6295                        >
6296
6297                                                                                            <a href=""
6298                                                                                                         title="Nützliche Links"
6299                                >
6300                                    Nützliche Links
6301                                </a>
6302                            
6303                                                                                                <button class="footer-column-toggle btn btn-link btn-link-inline js-collapse-footer-column-trigger"
6304                                            data-bs-target="#collapseFooter1"
6305                                            data-bs-toggle="collapse"
6306                                            aria-controls="collapseFooter1"
6307                                            aria-labelledby="collapseFooterTitle1"
6308                                            aria-expanded="true"
6309                                    >
6310                                            
6311        
6312        
6313        
6314                        
6315                                    
6316                <span class="icon icon-plus icon-footer-plus" aria-hidden="true">
6317                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-plus" fill="#758CA3" fill-rule="evenodd" /></svg>
6318                    </span>
6319
6320    
6321                                            
6322        
6323        
6324        
6325                        
6326                                    
6327                <span class="icon icon-minus icon-footer-minus" aria-hidden="true">
6328                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-minus" fill="#758CA3" fill-rule="evenodd" /></svg>
6329                    </span>
6330
6331                                        </button>
6332                                                            
6333                        </div>
6334                    
6335                                            <div id="collapseFooter1"
6336                             class="footer-column-content js-footer-column-content collapse"
6337                             aria-labelledby="collapseFooterTitle1"
6338                             role="listitem"
6339                        >
6340                            <div class="footer-column-content-inner">
6341
6342                                                                    <ul class="list-unstyled">
6343                                                                                                                                
6344                                                                                            <li class="footer-link-item">
6345                                                                                                                                                                        <a class="footer-link"
6346                                                                                                                              href="https://www.tekoplan-planen.shop/Nuetzliche-Links/Angebotsformular/"
6347                                                                                                                                                                                             title="Angebotsformular"
6348                                                            >
6349                                                                Angebotsformular
6350                                                            </a>
6351                                                                                                            
6352                                                </li>
6353                                            
6354                                                                                                                                
6355                                                                                            <li class="footer-link-item">
6356                                                                                                                                                                        <a class="footer-link"
6357                                                                                                                              href="https://www.tekoplan-planen.shop/Nuetzliche-Links/Impressum/"
6358                                                                                                                                                                                             title="Impressum"
6359                                                            >
6360                                                                Impressum
6361                                                            </a>
6362                                                                                                            
6363                                                </li>
6364                                            
6365                                                                                                                                
6366                                                                                            <li class="footer-link-item">
6367                                                                                                                                                                        <a class="footer-link"
6368                                                                                                                              href="https://www.tekoplan-planen.shop/Nuetzliche-Links/Datenschutz/"
6369                                                                                                                                                                                             title="Datenschutz"
6370                                                            >
6371                                                                Datenschutz
6372                                                            </a>
6373                                                                                                            
6374                                                </li>
6375                                            
6376                                                                                                                                
6377                                                                                            <li class="footer-link-item">
6378                                                                                                                                                                        <a class="footer-link"
6379                                                                                                                              href="https://www.tekoplan-planen.shop/Nuetzliche-Links/Downloads/"
6380                                                                                                                                                                                             title="Downloads"
6381                                                            >
6382                                                                Downloads
6383                                                            </a>
6384                                                                                                            
6385                                                </li>
6386                                            
6387                                                                                                                                
6388                                                                                            <li class="footer-link-item">
6389                                                                                                                                                                        <a class="footer-link"
6390                                                                                                                              href="https://www.tekoplan-planen.shop/Nuetzliche-Links/Wiederrufserklaerung/"
6391                                                                                                                                                                                             title="Wiederrufserklärung"
6392                                                            >
6393                                                                Wiederrufserklärung
6394                                                            </a>
6395                                                                                                            
6396                                                </li>
6397                                            
6398                                                                                                                                
6399                                                                                            <li class="footer-link-item">
6400                                                                                                                                                                        <a class="footer-link"
6401                                                                                                                              href="https://www.tekoplan-planen.shop/Nuetzliche-Links/AGB/"
6402                                                                                                                                                                                             title="AGB"
6403                                                            >
6404                                                                AGB
6405                                                            </a>
6406                                                                                                            
6407                                                </li>
6408                                            
6409                                                                            </ul>
6410                                
6411                            </div>
6412                        </div>
6413                    
6414                </div>
6415                    
6416    
6417                                                                                                                
6418                        
6419                                                    
6420                        
6421                        
6422                        
6423                        
6424                                        <div class="col-md-4 col-xl-3 footer-column-footernav footer-column js-footer-column twt-element-footernav twt-element-2">
6425
6426                                            <div class="footer-column-headline footer-headline js-footer-column-headline"
6427                             id="collapseFooterTitle2"
6428                             role="listitem"
6429                        >
6430
6431                                                            Planenkonfigurator
6432                            
6433                                                                                                <button class="footer-column-toggle btn btn-link btn-link-inline js-collapse-footer-column-trigger"
6434                                            data-bs-target="#collapseFooter2"
6435                                            data-bs-toggle="collapse"
6436                                            aria-controls="collapseFooter2"
6437                                            aria-labelledby="collapseFooterTitle2"
6438                                            aria-expanded="true"
6439                                    >
6440                                            
6441        
6442        
6443        
6444                        
6445                                    
6446                <span class="icon icon-plus icon-footer-plus" aria-hidden="true">
6447                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-plus" fill="#758CA3" fill-rule="evenodd" /></svg>
6448                    </span>
6449
6450    
6451                                            
6452        
6453        
6454        
6455                        
6456                                    
6457                <span class="icon icon-minus icon-footer-minus" aria-hidden="true">
6458                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-minus" fill="#758CA3" fill-rule="evenodd" /></svg>
6459                    </span>
6460
6461                                        </button>
6462                                                            
6463                        </div>
6464                    
6465                                            <div id="collapseFooter2"
6466                             class="footer-column-content js-footer-column-content collapse"
6467                             aria-labelledby="collapseFooterTitle2"
6468                             role="listitem"
6469                        >
6470                            <div class="footer-column-content-inner">
6471
6472                                                                    <ul class="list-unstyled">
6473                                                                            </ul>
6474                                
6475                            </div>
6476                        </div>
6477                    
6478                </div>
6479                    
6480    																										
6481												
6482						
6483
6484
6485
6486
6487
6488
6489												
6490		
6491					
6492		
6493		
6494		
6495		
6496				<div class="twt-footer-column-hotline col-md-4 col-xl-3 footer-column-hotline footer-column js-footer-column twt-element-hotline twt-element-3">
6497
6498							<div class="footer-column-headline footer-headline js-footer-column-headline"
6499					 id="collapseFooterHotlineTitle"
6500					 role="listitem"
6501				>
6502					Kundenservice
6503
6504																		<button class="footer-column-toggle btn btn-link btn-link-inline js-collapse-footer-column-trigger"
6505									data-bs-target="#collapseFooterHotline"
6506									data-bs-toggle="collapse"
6507									aria-controls="collapseFooterHotline"
6508									aria-labelledby="collapseFooterHotlineTitle"
6509									aria-expanded="true"
6510							>
6511                                    
6512        
6513        
6514        
6515                        
6516                                    
6517                <span class="icon icon-plus icon-footer-plus" aria-hidden="true">
6518                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-plus" fill="#758CA3" fill-rule="evenodd" /></svg>
6519                    </span>
6520
6521    
6522                                    
6523        
6524        
6525        
6526                        
6527                                    
6528                <span class="icon icon-minus icon-footer-minus" aria-hidden="true">
6529                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-minus" fill="#758CA3" fill-rule="evenodd" /></svg>
6530                    </span>
6531
6532    							</button>
6533											
6534				</div>
6535			
6536							<div id="collapseFooterHotline"
6537				 	 class="footer-column-content js-footer-column-content collapse"
6538					 aria-labelledby="collapseFooterHotlineTitle"
6539					 role="listitem"
6540				>
6541					<div class="footer-column-content-inner">
6542						
6543
6544
6545
6546
6547
6548
6549    
6550    <div class="twt-widget-hotline twt-hotline is-footer">
6551                    <div class="twt-widget-hotline-content">
6552                <p class="twt-widget-hotline-contact-text footer-contact-hotline">
6553                    <p> <strong>Persönliche Fachberatung rund um PVC-Planen &amp; Abdeckplanen nach Maß</strong><br /> Telefonisch erreichen Sie uns unter <a href="tel:+4966819678446">+49 (0)6681 9678446</a><br /> Montag bis Freitag von <strong>08:00 bis 17:00 Uhr</strong><br />
6553oder per E-Mail <a href="mailto:[email protected]"></a>. </p>
6554                </p>
6555            </div>
6556
6557            
6558                                                                        
6559                                                                                                                                                                                                                                                                                                                                                                                                                                                            
6560                                    
6561                                                                                                                                
6562                                                                                                                                                                                            
6563                    <div class="twt-widget-hotline-revocation-button footer-revocation-button">
6564                        <a class="btn btn-primary" href="/page/cms/019ede90e50e7317901aa6737c0f8370" title="Vertrag widerrufen">Vertrag widerrufen</a>
6565                    </div>
6566                                        </div>
6567					</div>
6568				</div>
6569			
6570		</div>
6571																											
6572												
6573						
6574
6575
6576
6577												
6578		
6579					
6580		
6581		
6582		
6583		
6584				<div class="twt-footer-column-benefits col-md-4 col-xl-3 footer-column-benefits footer-column js-footer-column twt-element-benefits twt-element-4">
6585
6586							<div class="footer-column-headline footer-headline js-footer-column-headline"
6587					 id="collapseFooterBenefitsTitle"
6588					 role="listitem"
6589				>
6590					Das bieten wir Ihnen
6591
6592																		<button class="footer-column-toggle btn btn-link btn-link-inline js-collapse-footer-column-trigger"
6593									data-bs-target="#collapseFooterBenefits"
6594									data-bs-toggle="collapse"
6595									aria-controls="collapseFooterBenefits"
6596									aria-labelledby="collapseFooterBenefitsTitle"
6597									aria-expanded="true"
6598							>
6599                                    
6600        
6601        
6602        
6603                        
6604                                    
6605                <span class="icon icon-plus icon-footer-plus" aria-hidden="true">
6606                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-plus" fill="#758CA3" fill-rule="evenodd" /></svg>
6607                    </span>
6608
6609    
6610                                    
6611        
6612        
6613        
6614                        
6615                                    
6616                <span class="icon icon-minus icon-footer-minus" aria-hidden="true">
6617                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-minus" fill="#758CA3" fill-rule="evenodd" /></svg>
6618                    </span>
6619
6620    							</button>
6621											
6622				</div>
6623			
6624							<div id="collapseFooterBenefits"
6625					 class="footer-column-content js-footer-column-content collapse"
6626					 aria-labelledby="collapseFooterBenefitsTitle"
6627					 role="listitem"
6628				>
6629					<div class="footer-column-content-inner">
6630						
6631
6632
6633
6634
6635
6636    <div class="twt-widget-benefits twt-benefits is-footer">
6637
6638                                    
6639                                    <div class="twt-widget-benefits-list benefits-list">
6640                    <ul>
6641                                                    <li>
6642                                                                                                                                        
6643
6644		
6645					    
6646        
6647        
6648        
6649                        
6650                                    
6651                <span class="icon icon-checkmark" aria-hidden="true">
6652                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path id="icons-default-checkmark" d="M2.7071 10.2929c-.3905-.3905-1.0237-.3905-1.4142 0-.3905.3905-.3905 1.0237 0 1.4142l7 7c.3905.3905 1.0237.3905 1.4142 0l13-13c.3905-.3905.3905-1.0237 0-1.4142-.3905-.3905-1.0237-.3905-1.4142 0L9 16.5858l-6.2929-6.293z" /></defs><use xlink:href="#icons-default-checkmark" fill="#758CA3" fill-rule="evenodd" /></svg>
6653                    </span>
6654
6655    
6656	                                 
6657                                                                Versicherter Versand per GLS und Spedition
6658                            </li>
6659                                                    <li>
6660                                                                                                                                        
6661
6662		
6663					    
6664        
6665        
6666        
6667                        
6668                                    
6669                <span class="icon icon-checkmark" aria-hidden="true">
6670                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-checkmark" fill="#758CA3" fill-rule="evenodd" /></svg>
6671                    </span>
6672
6673    
6674	                                 
6675                                                                 bequemer Kauf auf Rechnung
6676                            </li>
6677                                                    <li>
6678                                                                                                                                        
6679
6680		
6681					    
6682        
6683        
6684        
6685                        
6686                                    
6687                <span class="icon icon-checkmark" aria-hidden="true">
6688                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-checkmark" fill="#758CA3" fill-rule="evenodd" /></svg>
6689                    </span>
6690
6691    
6692	                                 
6693                                                                 direkt vom Hersteller – maßgefertigte PVC-Planen in Sattlerqualität Made in Germany
6694                            </li>
6695                                                    <li>
6696                                                                                                                                        
6697
6698		
6699					    
6700        
6701        
6702        
6703                        
6704                                    
6705                <span class="icon icon-checkmark" aria-hidden="true">
6706                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-checkmark" fill="#758CA3" fill-rule="evenodd" /></svg>
6707                    </span>
6708
6709    
6710	                                 
6711                                                                 Käuferschutz über Trusted Shops
6712                            </li>
6713                                                    <li>
6714                                                                                                                                        
6715
6716		
6717					    
6718        
6719        
6720        
6721                        
6722                                    
6723                <span class="icon icon-checkmark" aria-hidden="true">
6724                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-checkmark" fill="#758CA3" fill-rule="evenodd" /></svg>
6725                    </span>
6726
6727    
6728	                                 
6729                                                                 kompetente Fachberatung rund um PVC-Planen nach Maß
6730                            </li>
6731                                            </ul>
6732                </div>
6733
6734                    
6735    </div>
6736					</div>
6737				</div>
6738			
6739		</div>
6740																											
6741												
6742						
6743
6744
6745
6746												
6747		
6748					
6749		
6750		
6751		
6752		
6753				<div class="col-md-4 col-xl-3 footer-column-paymentshipping footer-column js-footer-column twt-element-paymentshipping twt-element-5">
6754
6755							<div class="twt-footer-column-paymentshipping footer-column-headline footer-headline js-footer-column-headline"
6756					 id="collapseFooterPaymentshippingTitle"
6757					 role="listitem"
6758				>
6759					Zahlungsarten und Versandländer:
6760
6761																		<button class="footer-column-toggle btn btn-link btn-link-inline js-collapse-footer-column-trigger"
6762									data-bs-target="#collapseFooterPaymentshipping"
6763									data-bs-toggle="collapse"
6764									aria-controls="collapseFooterPaymentshipping"
6765									aria-labelledby="collapseFooterPaymentshippingTitle"
6766									aria-expanded="true"
6767							>
6768                                    
6769        
6770        
6771        
6772                        
6773                                    
6774                <span class="icon icon-plus icon-footer-plus" aria-hidden="true">
6775                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-plus" fill="#758CA3" fill-rule="evenodd" /></svg>
6776                    </span>
6777
6778    								
6779                                    
6780        
6781        
6782        
6783                        
6784                                    
6785                <span class="icon icon-minus icon-footer-minus" aria-hidden="true">
6786                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-minus" fill="#758CA3" fill-rule="evenodd" /></svg>
6787                    </span>
6788
6789    							</button>
6790											
6791				</div>
6792			
6793							<div id="collapseFooterPaymentshipping"
6794					 class="footer-column-content js-footer-column-content collapse footer-logos-column"
6795					 aria-labelledby="collapseFooterPaymentshippingTitle"
6796					 role="listitem"
6797				>
6798					<div class="footer-column-content-inner">
6799						
6800
6801
6802    <div class="twt-widget-paymentshipping is-footer d-flex">
6803        
6804
6805
6806
6807 
6808
6809
6810
6811
6812
6813
6814
6815					
6816				
6817															<div class="footer-logo is-payment-logo twt-order-1">
6818											<a href="/#payment"
6819						   title="PayPal"
6820						   						>
6821					
6822													
6823                    
6824                        
6825                        
6826    
6827    
6828    
6829        
6830        
6831            <img src="https://www.tekoplan-planen.shop/media/b5/af/44/1765461579/swag_paypal_paypal.svg?ts=1765461579"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
6832    
6833												<span class="visually-hidden">PayPal</span>
6834
6835											</a>
6836									</div>
6837
6838																<div class="footer-logo is-payment-logo twt-order-1">
6839											<a href="/#payment"
6840						   title="Apple Pay"
6841						   						>
6842					
6843													
6844                    
6845                        
6846                        
6847    
6848    
6849    
6850        
6851        
6852            <img src="https://www.tekoplan-planen.shop/media/a5/15/5e/1787736492/applepay-icon.svg?ts=1787736492"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
6853    
6854												<span class="visually-hidden">Apple Pay</span>
6855
6856											</a>
6857									</div>
6858
6859																<div class="footer-logo is-payment-logo twt-order-1">
6860											<a href="/#payment"
6861						   title="Klarna"
6862						   						>
6863					
6864													
6865                    
6866                        
6867                        
6868    
6869    
6870    
6871        
6872        
6873            <img src="https://www.tekoplan-planen.shop/media/1f/c6/76/1787736495/klarna-icon.svg?ts=1787736495"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
6874    
6875												<span class="visually-hidden">Klarna</span>
6876
6877											</a>
6878									</div>
6879
6880																					<div  class="footer-logo is-payment-logo is-fallback-badge twt-order-1">
6881													<a href="/#payment"
6882							   title="CrefoPay - Vorkasse"
6883							>
6884								<span>CrefoPay - Vorkasse</span>
6885							</a>
6886
6887											</div>
6888				
6889																					<div  class="footer-logo is-payment-logo is-fallback-badge twt-order-1">
6890													<a href="/#payment"
6891							   title="Rechnung"
6892							>
6893								<span>Rechnung</span>
6894							</a>
6895
6896											</div>
6897				
6898																					<div  class="footer-logo is-payment-logo is-fallback-badge twt-order-1">
6899													<a href="/#payment"
6900							   title="CrefoPay - Sofort"
6901							>
6902								<span>CrefoPay - Sofort</span>
6903							</a>
6904
6905											</div>
6906				
6907																<div class="footer-logo is-payment-logo twt-order-2">
6908											<a href="/#payment"
6909						   title="Später bezahlen"
6910						   						>
6911					
6912													
6913                    
6914                        
6915                        
6916    
6917    
6918    
6919        
6920        
6921            <img src="https://www.tekoplan-planen.shop/media/b5/af/44/1765461579/swag_paypal_paypal.svg?ts=1765461579"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
6922    
6923												<span class="visually-hidden">Später bezahlen</span>
6924
6925											</a>
6926									</div>
6927
6928																<div class="footer-logo is-payment-logo twt-order-3">
6929											<a href="/#payment"
6930						   title="Kredit- oder Debitkarte"
6931						   						>
6932					
6933													
6934                    
6935                        
6936                        
6937    
6938    
6939    
6940        
6941        
6942            <img src="https://www.tekoplan-planen.shop/media/eb/34/66/1765461579/swag_paypal_card.svg?ts=1765461579"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
6943    
6944												<span class="visually-hidden">Kredit- oder Debitkarte</span>
6945
6946											</a>
6947									</div>
6948
6949																					<div  class="footer-logo is-payment-logo is-fallback-badge twt-order-8">
6950													<a href="/#payment"
6951							   title="Vorkasse"
6952							>
6953								<span>Vorkasse</span>
6954							</a>
6955
6956											</div>
6957				
6958						
6959				<div class="footer-logo is-payment-logo is-custom-logo">
6960							<a href="/#payment"
6961				   title="Benutzerdefiniertes Bild 1"
6962				   				>
6963							<img src="https://www.tekoplan-planen.shop/media/d3/51/69/1667994205/twt-amazon-pay.svg?ts=1667994205"
6964					 class="footer-logo-image"
6965					 						alt=""
6966					 					 height="45"
6967					 loading="lazy"
6968				>
6969				<span class="visually-hidden">Benutzerdefiniertes Bild 1</span>
6970							</a>
6971					</div>
6972	
6973				<div class="footer-logo is-payment-logo is-custom-logo">
6974							<a href="/#payment"
6975				   title="Benutzerdefiniertes Bild 2"
6976				   				>
6977							<img src="https://www.tekoplan-planen.shop/media/00/c1/e3/1667994227/twt-paypal.svg?ts=1667994227"
6978					 class="footer-logo-image"
6979					 						alt=""
6980					 					 height="45"
6981					 loading="lazy"
6982				>
6983				<span class="visually-hidden">Benutzerdefiniertes Bild 2</span>
6984							</a>
6985					</div>
6986	
6987				<div class="footer-logo is-payment-logo is-custom-logo">
6988							<a href="/#payment"
6989				   title="Benutzerdefiniertes Bild 3"
6990				   				>
6991							<img src="https://www.tekoplan-planen.shop/media/0a/de/59/1667994240/twt-custom-invoice.svg?ts=1667994240"
6992					 class="footer-logo-image"
6993					 						 alt=""
6994					 					 height="45"
6995					 loading="lazy"
6996				>
6997				<span class="visually-hidden">Benutzerdefiniertes Bild 3</span>
6998							</a>
6999					</div>
7000	        
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012					
7013				
7014															<div class="footer-logo is-shipping-logo twt-order-1">
7015											<a href="/#shipping"
7016						   title="Standard GLS Versand"
7017						   						>
7018					
7019													
7020                    
7021                        
7022                        
7023    
7024    
7025    
7026        
7027        
7028            <img src="https://www.tekoplan-planen.shop/media/91/47/bc/1769677553/deutsc
7028hland.svg?ts=1769677553"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7029    
7030												<span class="visually-hidden">Standard GLS Versand</span>
7031
7032											</a>
7033									</div>
7034
7035																<div class="footer-logo is-shipping-logo twt-order-3">
7036											<a href="/#shipping"
7037						   title="Standard GLS Versand Österreich"
7038						   						>
7039					
7040													
7041                    
7042                        
7043                        
7044    
7045    
7046    
7047        
7048        
7049            <img src="https://www.tekoplan-planen.shop/media/53/49/1a/1769677498/oesterreich.svg?ts=1769677498"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7050    
7051												<span class="visually-hidden">Standard GLS Versand Österreich</span>
7052
7053											</a>
7054									</div>
7055
7056																<div class="footer-logo is-shipping-logo twt-order-4">
7057											<a href="/#shipping"
7058						   title="Standard GLS Versand Schweiz"
7059						   						>
7060					
7061													
7062                    
7063                        
7064                        
7065    
7066    
7067    
7068        
7069        
7070            <img src="https://www.tekoplan-planen.shop/media/1e/c6/01/1769677482/schweiz.svg?ts=1769677482"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7071    
7072												<span class="visually-hidden">Standard GLS Versand Schweiz</span>
7073
7074											</a>
7075									</div>
7076
7077																<div class="footer-logo is-shipping-logo twt-order-6">
7078											<a href="/#shipping"
7079						   title="Standard GLS Versand Niederlande"
7080						   						>
7081					
7082													
7083                    
7084                        
7085                        
7086    
7087    
7088    
7089        
7090        
7091            <img src="https://www.tekoplan-planen.shop/media/27/b4/ef/1769677508/niederlande.svg?ts=1769677508"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7092    
7093												<span class="visually-hidden">Standard GLS Versand Niederlande</span>
7094
7095											</a>
7096									</div>
7097
7098																<div class="footer-logo is-shipping-logo twt-order-7">
7099											<a href="/#shipping"
7100						   title="Standard GLS Versand Belgien"
7101						   						>
7102					
7103													
7104                    
7105                        
7106                        
7107    
7108    
7109    
7110        
7111        
7112            <img src="https://www.tekoplan-planen.shop/media/6b/97/b6/1769677545/belgien.svg?ts=1769677545"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7113    
7114												<span class="visually-hidden">Standard GLS Versand Belgien</span>
7115
7116											</a>
7117									</div>
7118
7119																<div class="footer-logo is-shipping-logo twt-order-8">
7120											<a href="/#shipping"
7121						   title="Standard GLS Versand Frankreich"
7122						   						>
7123					
7124													
7125                    
7126                        
7127                        
7128    
7129    
7130    
7131        
7132        
7133            <img src="https://www.tekoplan-planen.shop/media/9c/e5/8c/1769677538/frankreich.svg?ts=1769677538"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7134    
7135												<span class="visually-hidden">Standard GLS Versand Frankreich</span>
7136
7137											</a>
7138									</div>
7139
7140																<div class="footer-logo is-shipping-logo twt-order-9">
7141											<a href="/#shipping"
7142						   title="Standard GLS Versand Italien"
7143						   						>
7144					
7145													
7146                    
7147                        
7148                        
7149    
7150    
7151    
7152        
7153        
7154            <img src="https://www.tekoplan-planen.shop/media/48/2e/9f/1769677530/italien.svg?ts=1769677530"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7155    
7156												<span class="visually-hidden">Standard GLS Versand Italien</span>
7157
7158											</a>
7159									</div>
7160
7161																<div class="footer-logo is-shipping-logo twt-order-10">
7162											<a href="/#shipping"
7163						   title="Standard GLS Versand Liechtenstein"
7164						   						>
7165					
7166													
7167                    
7168                        
7169                        
7170    
7171    
7172    
7173        
7174        
7175            <img src="https://www.tekoplan-planen.shop/media/17/02/8f/1769677522/liechtenstein.svg?ts=1769677522"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7176    
7177												<span class="visually-hidden">Standard GLS Versand Liechtenstein</span>
7178
7179											</a>
7180									</div>
7181
7182																<div class="footer-logo is-shipping-logo twt-order-11">
7183											<a href="/#shipping"
7184						   title="Standard GLS Versand Luxemburg"
7185						   						>
7186					
7187													
7188                    
7189                        
7190                        
7191    
7192    
7193    
7194        
7195        
7196            <img src="https://www.tekoplan-planen.shop/media/2a/84/ac/1769677516/luxemburg.svg?ts=1769677516"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7197    
7198												<span class="visually-hidden">Standard GLS Versand Luxemburg</span>
7199
7200											</a>
7201									</div>
7202
7203																<div class="footer-logo is-shipping-logo twt-order-12">
7204											<a href="/#shipping"
7205						   title="Standard GLS Versand Polen"
7206						   						>
7207					
7208													
7209                    
7210                        
7211                        
7212    
7213    
7214    
7215        
7216        
7217            <img src="https://www.tekoplan-planen.shop/media/0e/46/9b/1769677489/polen.svg?ts=1769677489"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7218    
7219												<span class="visually-hidden">Standard GLS Versand Polen</span>
7220
7221											</a>
7222									</div>
7223
7224																<div class="footer-logo is-shipping-logo twt-order-12">
7225											<a href="/#shipping"
7226						   title="Standard GLS Versand Tschechien"
7227						   						>
7228					
7229													
7230                    
7231                        
7232                        
7233    
7234    
7235    
7236        
7237        
7238            <img src="https://www.tekoplan-planen.shop/media/b8/a1/42/1769677470/tschechien.svg?ts=1769677470"                          class="footer-logo-image" alt="" height="45" loading="lazy"        />
7239    
7240												<span class="visually-hidden">Standard GLS Versand Tschechien</span>
7241
7242											</a>
7243									</div>
7244
7245						
7246		
7247				<div class="footer-logo is-shipping-logo is-custom-logo">
7248							<a href="/#shipping"
7249				   title="Benutzerdefiniertes Bild 2"
7250				   				>
7251							<img src="https://www.tekoplan-planen.shop/media/60/1e/a2/1667994292/twt-dhl.svg?ts=1667994292"
7252					 class="footer-logo-image"
7253					 						alt=""
7254					 					 height="45"
7255					 loading="lazy"
7256				>
7257				<span class="visually-hidden">Benutzerdefiniertes Bild 2</span>
7258							</a>
7259					</div>
7260	
7261				<div class="footer-logo is-shipping-logo is-custom-logo">
7262							<a href="/#shipping"
7263				   title="Benutzerdefiniertes Bild 3"
7264				   				>
7265							<img src="https://www.tekoplan-planen.shop/media/3d/79/26/1667994298/twt-dachser.svg?ts=1667994298"
7266					 class="footer-logo-image"
7267					 						alt=""
7268					 					 height="45"
7269					 loading="lazy"
7270				>
7271				<span class="visually-hidden">Benutzerdefiniertes Bild 3</span>
7272							</a>
7273					</div>
7274	    </div>
7275					</div>
7276				</div>
7277			
7278		</div>
7279																																				
7280																									
7281						
7282
7283
7284
7285												
7286		
7287					
7288		
7289		
7290		
7291					
7292				<div class="twt-footer-column-awards col-md-4 col-xl-3 footer-column-awards footer-column js-footer-column twt-element-awards twt-element-7 last">
7293
7294							<div class="footer-column-headline footer-headline js-footer-column-headline"
7295					 id="collapseFooterAwardsTitle"
7296					 role="listitem"
7297				>
7298					Bewusst Einkaufen
7299
7300																		<button class="footer-column-toggle btn btn-link btn-link-inline js-collapse-footer-column-trigger"
7301									data-bs-target="#collapseFooterAwards"
7302									data-bs-toggle="collapse"
7303									aria-controls="collapseFooterAwards"
7304									aria-labelledby="collapseFooterAwardsTitle"
7305									aria-expanded="true"
7306							>
7307                                    
7308        
7309        
7310        
7311                        
7312                                    
7313                <span class="icon icon-plus icon-footer-plus" aria-hidden="true">
7314                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-plus" fill="#758CA3" fill-rule="evenodd" /></svg>
7315                    </span>
7316
7317    
7318                                    
7319        
7320        
7321        
7322                        
7323                                    
7324                <span class="icon icon-minus icon-footer-minus" aria-hidden="true">
7325                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-minus" fill="#758CA3" fill-rule="evenodd" /></svg>
7326                    </span>
7327
7328    							</button>
7329											
7330				</div>
7331			
7332							<div id="collapseFooterAwards"
7333					 class="footer-column-content js-footer-column-content collapse"
7334					 aria-labelledby="collapseFooterAwardsTitle"
7335					 role="listitem"
7336				>
7337					<div class="footer-column-content-inner">
7338						
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351        
7352
7353
7354
7355
7356
7357
7358    <div class="twt-widget-awards twt-awards is-">
7359
7360                    
7361            <div class="twt-awards-container">
7362                                                                        
7363                    <span class="twt-awards-custom-image-container">
7364                                                    <img src="https://www.tekoplan-planen.shop/theme/b5da4f959c9c4fa9afc26b2924556339/assets/awards/twt-ssl-siegel.png?1790330373"
7365                                 alt="twt.widget.awards.sslSeal.alt"
7366                                 title="twt.widget.awards.sslSeal.title"
7367                                 class="twt-awards-ssl-secure-image"
7368                                 width="200"
7369                                 height="200"
7370                                 loading="lazy"
7371                            >
7372
7373                                            </span>
7374                
7375                                
7376                                
7377                                
7378                                
7379                                
7380                                            </div>
7381        
7382    </div>
7383					</div>
7384				</div>
7385			
7386		</div>
7387																						</div>
7388			
7389	
7390			<div
7391            id="footerColumnsBottom"
7392			class="row footer-columns last"
7393			data-collapse-footer-columns="true"
7394			role="list"
7395		>
7396																																																																													
7397																					
7398					
7399
7400
7401
7402					
7403		
7404					
7405		
7406		
7407					
7408					
7409				<div class="twt-footer-column-communities col-md-12 footer-column-communities footer-column js-footer-column twt-element-communities twt-element-8 first last">
7410
7411							<div class="footer-column-headline footer-headline js-footer-column-headline"
7412					 id="collapseFooterCommunitiesTitle"
7413					 role="listitem"
7414				>
7415					Unsere Communities
7416
7417																		<button class="footer-column-toggle btn btn-link btn-link-inline js-collapse-footer-column-trigger"
7418									data-bs-target="#collapseFooterCommunities"
7419									data-bs-toggle="collapse"
7420									aria-controls="collapseFooterCommunities"
7421									aria-labelledby="collapseFooterCommunitiesTitle"
7422									aria-expanded="true"
7423							>
7424                                    
7425        
7426        
7427        
7428                        
7429                                    
7430                <span class="icon icon-plus icon-footer-plus" aria-hidden="true">
7431                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-plus" fill="#758CA3" fill-rule="evenodd" /></svg>
7432                    </span>
7433
7434    
7435                                    
7436        
7437        
7438        
7439                        
7440                                    
7441                <span class="icon icon-minus icon-footer-minus" aria-hidden="true">
7442                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><use xlink:href="#icons-default-minus" fill="#758CA3" fill-rule="evenodd" /></svg>
7443                    </span>
7444
7445    							</button>
7446											
7447				</div>
7448			
7449							<div id="collapseFooterCommunities"
7450					 class="footer-column-content js-footer-column-content collapse"
7451					 aria-labelledby="collapseFooterCommunitiesTitle"
7452					 role="listitem"
7453				>
7454					<div class="footer-column-content-inner">
7455						
7456
7457
7458
7459
7460
7461
7462	
7463
7464
7465	<div class="twt-widget-communities twt-communities">
7466									<div class="twt-communities-additional-text">
7467					<p>Über unsere Social-Media-Kanäle halten wir Sie regelmäßig über Neuigkeiten, Produktinformationen und Entwicklungen rund um PVC-Planen, Abdeckplanen nach Maß, Zubehör sowie unseren Planenkonfigurator auf dem Laufenden. <br />Folgen Sie uns und erhalten Sie Einblicke in Projekte, Anwendungen und maßgeschneiderte Lösungen aus unserer Planenfertigung.</p>
7468				</div>
7469			
7470			<ul class="twt-communities-list">
7471																									<li class="twt-communities-item item-facebook">
7472							<a href="/#facebook"
7473							   class="twt-communities-link link-facebook"
7474							   title="Besuche uns auf Facebook"
7475							   aria-label="Besuche uns auf Facebook"
7476							   target="_blank"
7477							   rel="noopener nofollow"
7478							>
7479																
7480
7481
7482    <span class="twt-social-icon icon icon-themeware icon-facebook icon-square"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><g class="color1"><rect x="4" y="4" width="32" height="32" fill="#1877f2"/></g><g class="color2"><path d="M30.13,24l.74-4.84H26.23V16A2.42,2.42,0,0,1,29,13.39h2.11V9.28A25.6,25.6,0,0,0,27.32,9C23.5,9,21,11.26,21,15.46v3.68H16.76V24H21V36h5.23V24Z" fill="#fff"/></g></svg></span>								<span class="twt-communities-label visually-hidden">
7483									Facebook
7484								</span>
7485							</a>
7486						</li>
7487									
7488																									<li class="twt-communities-item item-instagram">
7489							<a href="/#instagram"
7490							   class="twt-communities-link link-instagram"
7491							   title="Schau auf Instagram vorbei"
7492							   aria-label="Schau auf Instagram vorbei"
7493							   target="_blank"
7494							   rel="noopener nofollow"
7495							>
7496																
7497
7498
7499    <span class="twt-social-icon icon icon-themeware icon-instagram icon-square"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><g class="color1"><rect x="4" y="4" width="32" height="32" fill="#dd2a7b"/></g><g class="color2"><path d="M20,11.8c2.67,0,3,0,4,.06a5.61,5.61,0,0,1,1.86.34,3.33,3.33,0,0,1,1.9,1.9A5.61,5.61,0,0,1,28.14,16c.05,1.05.06,1.37.06,4s0,3-.06,4a5.61,5.61,0,0,1-.34,1.86,3.33,3.33,0,0,1-1.9,1.9,5.61,5.61,0,0,1-1.86.34c-1.05.05-1.37.06-4,.06s-3,0-4-.06a5.61,5.61,0,0,1-1.86-.34,3.33,3.33,0,0,1-1.9-1.9A5.61,5.61,0,0,1,11.86,24c0-1.05-.06-1.37-.06-4s0-3,.06-4a5.61,5.61,0,0,1,.34-1.86,3.33,3.33,0,0,1,1.9-1.9A5.61,5.61,0,0,1,16,11.86c1.05,0,1.37-.06,4-.06M20,10c-2.72,0-3.06,0-4.12.06a7.59,7.59,0,0,0-2.43.46,5.19,5.19,0,0,0-2.93,2.93,7.59,7.59,0,0,0-.46,2.43C10,16.94,10,17.28,10,20s0,3.06.06,4.12a7.59,7.59,0,0,0,.46,2.43,5.19,5.19,0,0,0,2.93,2.93,7.59,7.59,0,0,0,2.43.46c1.06,0,1.4.06,4.12.06s3.06,0,4.12-.06a7.59,7.59,0,0,0,2.43-.46,5.19,5.19,0,0,0,2.93-2.93,7.59,7.59,0,0,0,.46-2.43c0-1.06.06-1.4.06-4.12s0-3.06-.06-4.12a7.59,7.59,0,0,0-.46-2.43,5.19,5.19,0,0,0-2.93-2.93,7.59,7.59,0,0,0-2.43-.46C23.06,10,22.72,10,20,10Z" fill="#fff"/><path d="M20,14.86A5.14,5.14,0,1,0,25.14,20,5.14,5.14,0,0,0,20,14.86Zm0,8.47A3.33,3.33,0,1,1,23.33,20,3.33,3.33,0,0,1,20,23.33Z" fill="#fff"/><circle cx="25.34" cy="14.66" r="1.2" fill="#fff"/></g></svg></span>								<span class="twt-communities-label visually-hidden">
7500									Instagram
7501								</span>
7502							</a>
7503						</li>
7504									
7505								
7506								
7507								
7508								
7509								
7510								
7511								
7512								
7513								
7514								
7515								
7516								
7517								
7518								
7519				
7520											</ul>
7521
7522			</div>
7523					</div>
7524				</div>
7525			
7526		</div>
7527										</div>
7528	
7529        			
7530	    </div>
7531
7532            <div class="footer-bottom">
7533            		
7534	<div class="container">
7535								<ul class="footer-service-menu list-unstyled">						<li class="footer-service-menu-item">
7536							<a class="footer-service-menu-link"
7537							   							   href=""
7538                                                              							   title="Nützliche Links"
7539							>
7540								Nützliche Links
7541							</a>
7542						</li>
7543											<li class="footer-service-menu-item">
7544							<a class="footer-service-menu-link"
7545							   							   href=""
7546                                                              							   title="Planenkonfigurator"
7547							>
7548								Planenkonfigurator
7549							</a>
7550						</li>
7551					</ul>
7552			</div>
7553
7554                            
7555                                    <div class="footer-vat">
7556                        
7557                                                
7558                                                                                                                                                        
7559                                                                                                                                                                                                                            
7560                        <p>
7561                            Alle Preise inkl. gesetzl. Mehrwertsteuer zzgl. <a href="/page/cms/92e6d79ac7a14f00a64c1c0d8ccc536e">Versandkosten</a> und ggf. Nachnahmegebühren, wenn nicht anders angegeben.
7562                        </p>
7563                    </div>
7564                            
7565            	<div class="footer-copyright">
7566		
7567
7568
7569© 2026 Tekoplan GmbH - Der PVC Planen Online Shop - Ihr Spezialist für Planenbau, LKW-Planen, Anhängerplanen, Industrieplanen und individuelle Sonderanfertigungen. Website &amp; Online-Marketing von <a href="https://www.msisdesign.de/">msisdesign – Die Markenagentur</a>.	 Theme by <a href="https://themeware.design" title="ThemeWare® Shopware Theme" rel="dofollow noopener" target="_blank">ThemeWare®</a>
7570	</div>
7571        </div>
7572                </footer>
7573
7574
7575			
7576		
7577        
7578    
7579
7580	
7581
7582            
7583    <div class="scroll-up-container" data-scroll-up="true">
7584                    <div class="scroll-up-button js-scroll-up-button">
7585                <button class="btn btn-primary" aria-label="Zurück zum Anfang der Seite springen">
7586                                                
7587        
7588        
7589        
7590                        
7591                                    
7592                <span class="icon icon-arrow-up icon-sm" aria-hidden="true">
7593                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="M13 3.4142V23c0 .5523-.4477 1-1 1s-1-.4477-1-1V3.4142l-4.2929 4.293c-.3905.3904-1.0237.3904-1.4142 0-.3905-.3906-.3905-1.0238 0-1.4143l6-6c.3905-.3905 1.0237-.3905 1.4142 0l6 6c.3905.3905.3905 1.0237 0 1.4142-.3905.3905-1.0237.3905-1.4142 0L13 3.4142z" id="icons-default-arrow-up" /></defs><use xlink:href="#icons-default-arrow-up" fill="#758CA3" fill-rule="evenodd" /></svg>
7594                    </span>
7595
7596                                        </button>
7597            </div>
7598            </div>
7599    
7600                            
7601
7602    
7603    						                <div
7604            class="cookie-permission-container"
7605            data-cookie-permission="true"
7606            data-cookie-permission-options="{&quot;autoFocus&quot;:true}"
7607            role="region"
7608            tabindex="-1"
7609            aria-label="Cookie-Voreinstellungen">
7610            <div class="container">
7611                <div class="row align-items-center">
7612                                            <div class="col cookie-permission-content">
7613                                                        
7614                            Diese Website verwendet Cookies, um eine bestmögliche Erfahrung bieten zu können. <a href="/page/cms/" title="Mehr Informationen">Mehr Informationen ...</a>
7615                        </div>
7616                    
7617                                            <div class="col-12 col-md-auto d-flex justify-content-center flex-wrap cookie-permission-actions pe-2">
7618                                                            <span class="cookie-permission-button js-cookie-permission-button order-0">
7619                                    <button
7620                                        type="submit"
7621                                        class="btn btn-primary">
7622                                        Nur technisch notwendige
7623                                    </button>
7624                                </span>
7625                            
7626                                                            <span class="js-cookie-configuration-button order-1">
7627                                    <button
7628                                        type="submit"
7629                                        class="btn btn-primary">
7630                                        Konfigurieren
7631                                    </button>
7632                                </span>
7633                            
7634                                                    </div>
7635                                    </div>
7636            </div>
7637        </div>
7638    
7639
7640	            
7641            
7642    <div class="js-pseudo-modal-template">
7643        <div class="modal modal-lg fade"
7644             tabindex="-1"
7645             role="dialog"
7646             aria-modal="true"
7647             aria-hidden="true"
7648             aria-labelledby="pseudo-modal-title">
7649            <div class="modal-dialog">
7650                <div class="modal-content js-pseudo-modal-template-root-element">
7651                                            <div class="modal-header only-close">
7652                                                            <div id="pseudo-modal-title" class="modal-title js-pseudo-modal-template-title-element h5"></div>
7653                            
7654                                                            <button type="button"
7655                                        class="btn-close close"
7656                                        data-bs-dismiss="modal"
7657                                        aria-label="Schließen">
7658                                                                    </button>
7659                                                    </div>
7660                    
7661                                            <div class="modal-body js-pseudo-modal-template-content-element">
7662                        </div>
7663                                    </div>
7664            </div>
7665
7666            <template class="js-pseudo-modal-back-btn-template">
7667                
7668                                                    <button class="js-pseudo-modal-back-btn btn btn-outline-primary" data-ajax-modal="true" data-url="#" href="#">
7669                                                        
7670        
7671        
7672        
7673                        
7674                                    
7675                <span class="icon icon-arrow-left icon-sm icon-me-1" aria-hidden="true">
7676                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><defs><path d="m3.4142 13 4.293 4.2929c.3904.3905.3904 1.0237 0 1.4142-.3906.3905-1.0238.3905-1.4143 0l-6-6c-.3905-.3905-.3905-1.0237 0-1.4142l6-6c.3905-.3905 1.0237-.3905 1.4142 0 .3905.3905.3905 1.0237 0 1.4142L3.4142 11H23c.5523 0 1 .4477 1 1s-.4477 1-1 1H3.4142z" id="icons-default-arrow-left" /></defs><use xlink:href="#icons-default-arrow-left" fill="#758CA3" fill-rule="evenodd" /></svg>
7677                    </span>
7678
7679                                Zurück
7680                                            </button>
7681                            </template>
7682        </div>
7683    </div>
7684    
7685                
7686                		
7687				<div id="twt-data-attributes" class="invisible d-none"
7688			 			 
7689			 data-twt-header-type="4"
7690			 data-twt-header-phone-type="1"
7691			 data-twt-top-navigation-type="2"
7692			 data-twt-search-type="2"
7693
7694			 			 			 				 data-twt-sticky-header="4" 				 data-twt-sticky-breakpoint="6"
7695				 data-twt-sticky-cart="2"
7696				 data-twt-sticky-container-width="1900"
7697				 data-twt-sticky-scroll-top="0"
7698				 data-twt-sticky-search="1"
7699				 data-twt-sticky-type="1"
7700			 
7701			 			 
7702						
7703						 			 
7704			 			 			 				 data-twt-mobile-sticky-header="2"
7705			 
7706			 			 			 			 			 		></div>
7707	
7708											
7709									
7709<script>
7710				window.twtCookiePermissionPositioned = false;
7711			</script>
7711
7712		
7713			
7714		
7715		
7716			
7717		    
7718
7719				<!-- Custom js code -->
7720		<!-- Google Tag Manager -->
7721<script>
vendor: 327 bytes, lines 7721-7725
7721(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
7722new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
7723j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
7724'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
7725})(window,document,'script','dataLayer','
7725GTM-54RLN39
vendor: 3 bytes, line 7725
7725');
7725</script>
7725
7726<!-- End Google Tag Manager -->
7727
7728<!-- msisdesign: Supportbox niemals auf der Startseite anzeigen -->
7729<script>
7730(function () {
7731    'use strict';
7732
7733    const path = (window.location.pathname || '/').replace(/\/+$/, '') || '/';
7734    if (path !== '/') return;
7735
7736    document.documentElement.classList.add('msis-homepage-hide-support');
7737
7738    const selector = '.msisdesign-configurator-support-v127, section[class*="msisdesign-configurator-support-"]';
7739
7740    function removeSupport(root) {
7741        if (!root) return;
7742
7743        if (root.nodeType === 1 && root.matches && root.matches(selector)) {
7744            root.remove();
7745            return;
7746        }
7747
7748        if (root.querySelectorAll) {
7749            root.querySelectorAll(selector).forEach(function (section) {
7750                section.remove();
7751            });
7752        }
7753    }
7754
7755    function activateGuard() {
7756        removeSupport(document);
7757
7758        const observer = new MutationObserver(function (mutations) {
7759            mutations.forEach(function (mutation) {
7760                mutation.addedNodes.forEach(function (node) {
7761                    removeSupport(node);
7762                });
7763            });
7764        });
7765
7766        observer.observe(document.documentElement, { childList: true, subtree: true });
7767
7768        /* Nach dem initialen Cookie-/Theme-Rendering ist der Guard nicht mehr noetig. */
7769        window.setTimeout(function () {
7770            observer.disconnect();
7771            removeSupport(document);
7772        }, 15000);
7773    }
7774
7775    if (document.readyState === 'loading') {
7776        document.addEventListener('DOMContentLoaded', activateGuard, { once: true });
7777    } else {
7778        activateGuard();
7779    }
7780})();
7781</script>
7781
7782
7783
7784
7785<script>    (function(w,d,t,r,u)    {        var f,n,i;        w[u]=w[u]||[],f=function()        {            var o={ti:"343057985"};            o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")        },        n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()        {            var s=this.readyState;            s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)        },        i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)    })    (window,document,"script","//bat.bing.com/bat.js","uetq");</script>
7785
7786
7787<script type='module' src='https://widget.accessgo.de/accessGoWidget.js'></script>
7787
7788
7789<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 7789-7790
7789
7790<script async src="https://www.googletagmanager.com/gtag/js?id=
7790G-FEF73WJ5MK
vendor: 12 bytes, line 7790
7790"></script>
7791<script>
7792  
vendor: 134 bytes, lines 7792-7796
7792window.dataLayer = window.dataLayer || [];
7793  function gtag(){dataLayer.push(arguments);}
7794  gtag('js', new Date());
7795
7796  gtag('config', '
7796G-FEF73WJ5MK
vendor: 4 bytes, line 7796
7796');
7797</script>
7797
7798<!-- Matomo -->
7799<script>
7800  var _paq = window._paq = window._paq || [];
7801
7802  (function () {
7803    var u = "https://tekoplanplanenshop.matomo.cloud/";
7804    _paq.push(['setTrackerUrl', u + 'matomo.php']);
7805    _paq.push(['setSiteId', '1']);
7806
7807    var p = new URLSearchParams(location.search);
7808
7809    function getLower(key){
7810      var v = p.get(key);
7811      return v ? (""+v).toLowerCase() : "";
7812    }
7813
7814    // ===== Paid-Erkennung (Google/Microsoft + Matomo Tag Manager mtm_ Parameter) =====
7815    var utmMedium = getLower('utm_medium');
7816    var mtmMedium = getLower('mtm_medium');
7817
7818    var isPaid =
7819      // Click-IDs
7820      p.has('gclid') || p.has('wbraid') || p.has('gbraid') || p.has('msclkid') ||
7821      p.has('mtm_gclid') || p.has('mtm_msclkid') ||
7822      // Medium (klassisch + MTM)
7823      /^(cpc|ppc|paid|paidsearch|display|remarketing|retargeting|pmax|shopping|affiliate|social_paid)$/i.test(utmMedium) ||
7824      /^(cpc|ppc|paid|paidsearch|display|remarketing|retargeting|pmax|shopping|affiliate|social_paid)$/i.test(mtmMedium);
7825
7826    var hint = isPaid ? "SEA (Google Ads / Paid)" : "organische SEO über Agentur";
7827
7828    // Dimension-ID anpassen (bei dir aktuell 1)
7829    _paq.push(['setCustomDimension', 1, hint]);
7830
7831    _paq.push(['trackPageView']);
7832    _paq.push(['enableLinkTracking']);
7833
7834    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
7835    g.async=true; g.src='https://cdn.matomo.cloud/tekoplanplanenshop.matomo.cloud/matomo.js';
7836    s.parentNode.insertBefore(g,s);
7837  })();
7838</script>
7838
7839<!-- End Matomo Code -->
7840
7841<script>
7842document.addEventListener('DOMContentLoaded', function () {
7843    function markFreeShipping() {
7844        document.querySelectorAll('*').forEach(function (label) {
7845            if (label.children.length > 0) {
7846                return;
7847            }
7848
7849            if (label.textContent.trim() !== 'Versandkosten') {
7850                return;
7851            }
7852
7853            const row = label.parentElement;
7854
7855            if (!row) {
7856                return;
7857            }
7858
7859            const elements = row.querySelectorAll('*');
7860
7861            elements.forEach(function (element) {
7862                const value = element.textContent
7863                    .replace(/\s/g, '')
7864                    .replace(',', '.');
7865
7866                if (value === '0.00€' || value === '0.00EUR') {
7867                    element.textContent = 'Kostenlos';
7868                    element.classList.add('msis-free-shipping');
7869                }
7870            });
7871        });
7872    }
7873
7874    markFreeShipping();
7875
7876    const observer = new MutationObserver(function () {
7877        markFreeShipping();
7878    });
7879
7880    observer.observe(document.body, {
7881        childList: true,
7882        subtree: true
7883    });
7884});
7885</script>
7885
7886
7887<script>
7888document.addEventListener('DOMContentLoaded', function () {
7889
7890    function addPayPalGuestHeadline() {
7891        if (document.getElementById('msis-paypal-guest-headline')) {
7892            return;
7893        }
7894
7895        const buttons = Array.from(
7896            document.querySelectorAll('button, a, [role="button"]')
7897        );
7898
7899        const paypalButton = buttons.find(function (element) {
7900            return /Direkt\s+zu\s+PayPal/i.test(element.textContent || '');
7901        });
7902
7903        if (!paypalButton) {
7904            return;
7905        }
7906
7907        const headline = document.createElement('div');
7908        headline.id = 'msis-paypal-guest-headline';
7909        headline.className = 'msis-paypal-guest-headline';
7910
7911        headline.innerHTML = `
7912            <div class="msis-paypal-guest-headline__title">
7913                Schneller zahlen – ohne Registrierung
7914            </div>
7915            <div class="msis-paypal-guest-headline__text">
7916                Direkt mit PayPal bezahlen, ohne ein Kundenkonto anzulegen.
7917            </div>
7918        `;
7919
7920        paypalButton.insertAdjacentElement('beforebegin', headline);
7921    }
7922
7923    addPayPalGuestHeadline();
7924
7925    const observer = new MutationObserver(function () {
7926        addPayPalGuestHeadline();
7927    });
7928
7929    observer.observe(document.body, {
7930        childList: true,
7931        subtree: true
7932    });
7933});
7934</script>
7934
7935
7936<script>
7937document.addEventListener('DOMContentLoaded', function () {
7938
7939    if (!document.body.classList.contains('is-act-cartpage')) {
7940        return;
7941    }
7942
7943    /* ----------------------------------------
7944       1. Nur echte Produkte im Warenkorb zählen
7945       ---------------------------------------- */
7946    const productCount = document.querySelectorAll(
7947        '.checkout-product-table .line-item-product'
7948    ).length;
7949
7950    const itemCounter = document.querySelector(
7951        '.cart-main-header-item-counter'
7952    );
7953
7954    if (itemCounter && productCount > 0) {
7955        itemCounter.textContent =
7956            '(' + productCount + ' Artikel)';
7957    }
7958
7959
7960    /* ----------------------------------------
7961       2. Automatischen 5%-Rabatt markieren
7962       ---------------------------------------- */
7963    document.querySelectorAll('.line-item-promotion').forEach(function (item) {
7964        const label = item.querySelector('.line-item-label');
7965
7966        if (
7967            label &&
7968            /5\s*%\s*Rabatt/i.test(label.textContent.trim())
7969        ) {
7970            item.classList.add('msis-fixed-promotion');
7971        }
7972    });
7973
7974
7975    /* ----------------------------------------
7976       3. Produktnummer erst nach Klick anzeigen
7977       ---------------------------------------- */
7978    const addProductContainer = document.querySelector(
7979        '.cart-add-product-container'
7980    );
7981
7982    if (addProductContainer) {
7983        const form = addProductContainer.querySelector('form');
7984
7985        if (
7986            form &&
7987            !addProductContainer.querySelector('.msis-cart-add-toggle')
7988        ) {
7989            form.classList.add('msis-cart-add-product-form');
7990
7991            const toggle = document.createElement('button');
7992
7993            toggle.type = 'button';
7994            toggle.className = 'msis-cart-add-toggle';
7995            toggle.setAttribute('aria-expanded', 'false');
7996            toggle.textContent = '+ Artikel per Produktnummer hinzufügen';
7997
7998            toggle.addEventListener('click', function () {
7999                const isOpen = form.classList.toggle('is-open');
8000
8001                toggle.setAttribute(
8002                    'aria-expanded',
8003                    isOpen ? 'true' : 'false'
8004                );
8005
8006                toggle.textContent = isOpen
8007                    ? '− Produktnummer-Eingabe schließen'
8008                    : '+ Artikel per Produktnummer hinzufügen';
8009
8010                if (isOpen) {
8011                    const input = form.querySelector('#addProductInput');
8012
8013                    if (input) {
8014                        setTimeout(function () {
8015                            input.focus();
8016                        }, 50);
8017                    }
8018                }
8019            });
8020
8021            addProductContainer.insertBefore(toggle, form);
8022        }
8023    }
8024
8025
8026    /* ----------------------------------------
8027       4. Versanddetails verständlicher benennen
8028       ---------------------------------------- */
8029    const shippingButton = document.querySelector(
8030        '.cart-shipping-costs-btn'
8031    );
8032
8033    if (shippingButton) {
8034        const freeShipping =
8035            document.querySelector('.msis-free-shipping');
8036
8037        if (freeShipping) {
8038            shippingButton.textContent =
8039                '✓ Kostenloser Standardversand – Details';
8040
8041            shippingButton.classList.add(
8042                'msis-shipping-free-link'
8043            );
8044        } else {
8045            shippingButton.textContent =
8046                'Versandinformationen';
8047        }
8048    }
8049
8050
8051    /* ----------------------------------------
8052       5. Großen PayPal-Ratenbanner links entfernen
8053       ---------------------------------------- */
8054    document.querySelectorAll(
8055        '.checkout-product-table [data-swag-paypal-installment-banner="true"]'
8056    ).forEach(function (banner) {
8057        const row = banner.closest('.form-row');
8058
8059        if (row) {
8060            row.classList.add(
8061                'msis-hide-cart-paypal-banner'
8062            );
8063        }
8064    });
8065
8066
8067    /* ----------------------------------------
8068       6. PayPal rechts klar als Gast-Expressweg
8069       kennzeichnen
8070       ---------------------------------------- */
8071    const paypalExpress = document.querySelector(
8072        '[data-swag-paypal-express-button="true"]'
8073    );
8074
8075    if (
8076        paypalExpress &&
8077        !document.querySelector('.msis-cart-paypal-headline')
8078    ) {
8079        const headline = document.createElement('div');
8080
8081        headline.className = 'msis-cart-paypal-headline';
8082
8083        headline.innerHTML =
8084            '<div class="msis-cart-paypal-headline__title">' +
8085                'Schnell bezahlen – kein Kundenkonto erforderlich.' +
8086            '</div>' +
8087            '<div class="msis-cart-paypal-headline__text">' +
8088                'Direkt mit PayPal bezahlen und ohne Registrierung fortfahren.' +
8089            '</div>';
8090
8091        paypalExpress.insertAdjacentElement(
8092            'beforebegin',
8093            headline
8094        );
8095    }
8096
8097});
8098</script>
8098
8099
8100<script>
8101document.addEventListener('DOMContentLoaded', function () {
8102
8103    if (!document.body.classList.contains('is-act-cartpage')) {
8104        return;
8105    }
8106
8107    if (document.querySelector('.msis-cart-delivery-headline')) {
8108        return;
8109    }
8110
8111    const elements = Array.from(
8112        document.querySelectorAll('div, p, span')
8113    );
8114
8115    const countdownText = elements.find(function (element) {
8116        return /Bestellen Sie innerhalb von/i.test(
8117            element.textContent || ''
8118        );
8119    });
8120
8121    if (!countdownText) {
8122        return;
8123    }
8124
8125    const countdownBox =
8126        countdownText.closest('.alert') ||
8127        countdownText.parentElement;
8128
8129    if (!countdownBox) {
8130        return;
8131    }
8132
8133    const headline = document.createElement('div');
8134
8135    headline.className = 'msis-cart-delivery-headline';
8136    headline.textContent = 'Schnell geliefert';
8137
8138    countdownBox.insertAdjacentElement(
8139        'beforebegin',
8140        headline
8141    );
8142});
8143</script>
8143
8144
8145<script>
8146(function () {
8147
8148    function cleanText(el) {
8149        return (el.textContent || '')
8150            .replace(/\u00a0/g, ' ')
8151            .replace(/\s+/g, ' ')
8152            .trim();
8153    }
8154
8155    function isLeaf(el) {
8156        return el && el.children.length === 0;
8157    }
8158
8159    function fixTekoplanOffcanvas() {
8160
8161        const offcanvas = document.querySelector(
8162            '.offcanvas.show, .offcanvas.is-open, .offcanvas'
8163        );
8164
8165        if (!offcanvas) {
8166            return;
8167        }
8168
8169        /* Nur ausführen, wenn es wirklich der Warenkorb ist */
8170        if (!/Warenkorb/i.test(offcanvas.textContent || '')) {
8171            return;
8172        }
8173
8174
8175        /* ========================================
8176           1. Nur echte Produkte zählen
8177           ======================================== */
8178
8179        let productCount = offcanvas.querySelectorAll(
8180            '.line-item-product'
8181        ).length;
8182
8183        /* Fallback */
8184        if (!productCount) {
8185            productCount = Array.from(
8186                offcanvas.querySelectorAll('*')
8187            ).filter(function (el) {
8188                return isLeaf(el) &&
8189                    /^Produkt-Nr\.:/i.test(cleanText(el));
8190            }).length;
8191        }
8192
8193        if (productCount > 0) {
8194
8195            Array.from(offcanvas.querySelectorAll('*'))
8196                .filter(isLeaf)
8197                .forEach(function (el) {
8198
8199                    const text = cleanText(el);
8200
8201                    if (/^\d+\s+(Position|Positionen)$/i.test(text)) {
8202                        el.textContent =
8203                            productCount + ' ' +
8204                            (productCount === 1 ? 'Artikel' : 'Artikel');
8205                    }
8206                });
8207        }
8208
8209
8210        /* ========================================
8211           2. Rabatt grün + Haken
8212           ======================================== */
8213
8214        Array.from(offcanvas.querySelectorAll('*'))
8215            .filter(isLeaf)
8216            .forEach(function (el) {
8217
8218                const text = cleanText(el);
8219
8220                if (/^5\s*%\s*Rabatt$/i.test(text)) {
8221
8222                    el.textContent = '✓ 5% Rabatt';
8223
8224                    el.style.color = '#2f8d52';
8225                    el.style.fontWeight = '700';
8226                }
8227            });
8228
8229
8230        /* ========================================
8231           3. Versandkosten GLS-Text entfernen
8232           ======================================== */
8233
8234        Array.from(offcanvas.querySelectorAll('*'))
8235            .filter(isLeaf)
8236            .forEach(function (el) {
8237
8238                const text = cleanText(el);
8239
8240                if (
8241                    /^Versandkosten\s*\(Standard GLS Versand\)$/i.test(text)
8242                ) {
8243                    el.textContent = 'Versandkosten';
8244                }
8245            });
8246
8247
8248        /* ========================================
8249           4. 0,00 € Versand -> ✓ Kostenlos
8250           ======================================== */
8251
8252        const shippingLabels = Array.from(
8253            offcanvas.querySelectorAll('*')
8254        ).filter(function (el) {
8255            return isLeaf(el) &&
8256                cleanText(el) === 'Versandkosten';
8257        });
8258
8259        shippingLabels.forEach(function (label) {
8260
8261            const row =
8262                label.closest('dl, .row, .summary-value, .cart-aside-summary') ||
8263                label.parentElement;
8264
8265            if (!row) {
8266                return;
8267            }
8268
8269            Array.from(row.querySelectorAll('*'))
8270                .filter(isLeaf)
8271                .forEach(function (el) {
8272
8273                    const text = cleanText(el);
8274
8275                    if (/^\+?\s*0,00\s*€$/.test(text)) {
8276
8277                        el.textContent = '✓ Kostenlos';
8278
8279                        el.style.color = '#2f8d52';
8280                        el.style.fontWeight = '700';
8281                    }
8282                });
8283        });
8284    }
8285
8286
8287    /* Offcanvas wird dynamisch geladen */
8288    let timer = null;
8289
8290    function scheduleFix() {
8291        clearTimeout(timer);
8292
8293        timer = setTimeout(function () {
8294            fixTekoplanOffcanvas();
8295        }, 100);
8296    }
8297
8298    document.addEventListener('DOMContentLoaded', scheduleFix);
8299
8300    const observer = new MutationObserver(scheduleFix);
8301
8302    observer.observe(document.body, {
8303        childList: true,
8304        subtree: true
8305    });
8306
8307})();
8308</script>
8308
8309
8310<script>
8311(function () {
8312
8313    function cleanText(el) {
8314        return (el.textContent || '')
8315            .replace(/\u00a0/g, ' ')
8316            .replace(/\s+/g, ' ')
8317            .trim();
8318    }
8319
8320    function getCartOffcanvas() {
8321        return Array.from(document.querySelectorAll('.offcanvas'))
8322            .find(function (el) {
8323                return /Warenkorb/i.test(el.textContent || '');
8324            });
8325    }
8326
8327    function isVisible(el) {
8328        if (!el) {
8329            return false;
8330        }
8331
8332        const rect = el.getBoundingClientRect();
8333
8334        return rect.width > 100 &&
8335               rect.right > 0 &&
8336               rect.left < window.innerWidth;
8337    }
8338
8339
8340    function optimizeOffcanvas() {
8341
8342        const offcanvas = getCartOffcanvas();
8343
8344        if (!offcanvas) {
8345            document.body.classList.remove(
8346                'msis-cart-offcanvas-open'
8347            );
8348            return;
8349        }
8350
8351
8352        /* =====================================
8353           1. Rabatt kompakt
8354           ===================================== */
8355
8356        Array.from(offcanvas.querySelectorAll('*')).forEach(function (el) {
8357
8358            if (
8359                el.children.length === 0 &&
8360                /^✓?\s*5\s*%\s*Rabatt$/i.test(cleanText(el))
8361            ) {
8362
8363                el.textContent = '✓ 5 % Rabatt';
8364                el.classList.add('msis-offcanvas-discount');
8365
8366                const promotion =
8367                    el.closest('.line-item-promotion') ||
8368                    el.closest('.line-item');
8369
8370                if (promotion) {
8371
8372                    const image = promotion.querySelector(
8373                        '.line-item-info-img'
8374                    );
8375
8376                    const remove = promotion.querySelector(
8377                        '.line-item-remove'
8378                    );
8379
8380                    if (image) {
8381                        image.style.display = 'none';
8382                    }
8383
8384                    if (remove) {
8385                        remove.style.display = 'none';
8386                    }
8387
8388                    promotion.classList.add(
8389                        'msis-offcanvas-promotion-compact'
8390                    );
8391                }
8392            }
8393        });
8394
8395
8396        /* =====================================
8397           2. "Standard GLS Versand" entfernen
8398           ===================================== */
8399
8400        Array.from(offcanvas.querySelectorAll('*')).forEach(function (el) {
8401
8402            if (
8403                el.children.length === 0 &&
8404                /Standard GLS Versand/i.test(cleanText(el))
8405            ) {
8406                el.style.display = 'none';
8407            }
8408        });
8409
8410
8411        /* =====================================
8412           3. Kostenlos direkt neben Versandkosten
8413           ===================================== */
8414
8415        const shippingLabel = Array.from(
8416            offcanvas.querySelectorAll('*')
8417        ).find(function (el) {
8418
8419            return el.children.length === 0 &&
8420                   cleanText(el) === 'Versandkosten';
8421        });
8422
8423        const freeValue = Array.from(
8424            offcanvas.querySelectorAll('*')
8425        ).find(function (el) {
8426
8427            return el.children.length === 0 &&
8428                   /^✓?\s*Kostenlos$/i.test(cleanText(el));
8429        });
8430
8431
8432        if (shippingLabel && freeValue) {
8433
8434            const labelHost = shippingLabel.parentElement;
8435
8436            if (labelHost) {
8437
8438                labelHost.classList.add(
8439                    'msis-offcanvas-shipping-row'
8440                );
8441
8442                let inlineFree = labelHost.querySelector(
8443                    '.msis-offcanvas-free-inline'
8444                );
8445
8446                if (!inlineFree) {
8447
8448                    inlineFree = document.createElement('span');
8449
8450                    inlineFree.className =
8451                        'msis-offcanvas-free-inline';
8452
8453                    inlineFree.textContent = '✓ Kostenlos';
8454
8455                    labelHost.appendChild(inlineFree);
8456                }
8457
8458                /*
8459                 * ursprüngliche untere Kostenlos-Zeile
8460                 * nur ausblenden, wenn sie nicht unser
8461                 * neues Inline-Element ist
8462                 */
8463                if (
8464                    !freeValue.classList.contains(
8465                        'msis-offcanvas-free-inline'
8466                    )
8467                ) {
8468                    freeValue.style.display = 'none';
8469                }
8470            }
8471        }
8472
8473
8474        /* =====================================
8475           4. Trusted Shops nur bei offenem
8476              Warenkorb ausblenden
8477           ===================================== */
8478
8479        if (isVisible(offcanvas)) {
8480            document.body.classList.add(
8481                'msis-cart-offcanvas-open'
8482            );
8483        } else {
8484            document.body.classList.remove(
8485                'msis-cart-offcanvas-open'
8486            );
8487        }
8488    }
8489
8490
8491    let timer;
8492
8493    function scheduleOptimization() {
8494
8495        clearTimeout(timer);
8496
8497        timer = setTimeout(
8498            optimizeOffcanvas,
8499            100
8500        );
8501    }
8502
8503
8504    document.addEventListener(
8505        'DOMContentLoaded',
8506        scheduleOptimization
8507    );
8508
8509    document.addEventListener(
8510        'click',
8511        scheduleOptimization
8512    );
8513
8514    const observer = new MutationObserver(
8515        scheduleOptimization
8516    );
8517
8518    observer.observe(document.body, {
8519        childList: true,
8520        subtree: true,
8521        attributes: true,
8522        attributeFilter: ['class', 'style']
8523    });
8524
8525})();
8526</script>
8526
8527
8528<script>
8529(function () {
8530
8531    function addDeliveryHeadlines() {
8532
8533        /*
8534         * 1. Normaler Warenkorb
8535         */
8536        if (document.body.classList.contains('is-act-cartpage')) {
8537
8538            document.querySelectorAll(
8539                '.checkout-aside .netzhirsch-order-countdown'
8540            ).forEach(function (countdown) {
8541
8542                if (
8543                    countdown.previousElementSibling &&
8544                    countdown.previousElementSibling.classList.contains(
8545                        'msis-cart-delivery-headline'
8546                    )
8547                ) {
8548                    return;
8549                }
8550
8551                const headline = document.createElement('div');
8552
8553                headline.className =
8554                    'msis-cart-delivery-headline';
8555
8556                headline.textContent =
8557                    'Schnell geliefert';
8558
8559                countdown.insertAdjacentElement(
8560                    'beforebegin',
8561                    headline
8562                );
8563            });
8564        }
8565
8566
8567        /*
8568         * 2. Offcanvas-Warenkorb
8569         */
8570        document.querySelectorAll(
8571            '.offcanvas .netzhirsch-order-countdown'
8572        ).forEach(function (countdown) {
8573
8574            if (
8575                countdown.previousElementSibling &&
8576                countdown.previousElementSibling.classList.contains(
8577                    'msis-offcanvas-delivery-headline'
8578                )
8579            ) {
8580                return;
8581            }
8582
8583            const headline = document.createElement('div');
8584
8585            headline.className =
8586                'msis-offcanvas-delivery-headline';
8587
8588            headline.textContent =
8589                'Schnell geliefert';
8590
8591            countdown.insertAdjacentElement(
8592                'beforebegin',
8593                headline
8594            );
8595        });
8596    }
8597
8598
8599    let timer;
8600
8601    function scheduleDeliveryHeadlines() {
8602        clearTimeout(timer);
8603
8604        timer = setTimeout(function () {
8605            addDeliveryHeadlines();
8606        }, 100);
8607    }
8608
8609
8610    if (document.readyState === 'loading') {
8611        document.addEventListener(
8612            'DOMContentLoaded',
8613            scheduleDeliveryHeadlines
8614        );
8615    } else {
8616        scheduleDeliveryHeadlines();
8617    }
8618
8619    /*
8620     * Offcanvas wird von Shopware dynamisch geladen
8621     */
8622    const observer = new MutationObserver(
8623        scheduleDeliveryHeadlines
8624    );
8625
8626    observer.observe(document.body, {
8627        childList: true,
8628        subtree: true
8629    });
8630
8631})();
8632</script>
vendor: 1 bytes, line 8632
8632
8633<script>
8634(function () {
8635    const k3Cache = new Map();
8636
8637    const FIELD_DEFS = [
8638        { key: 'Welche Ausführung wünschen Sie?', label: 'Ausführung' },
8639        { key: 'Breite', label: 'Breite', unit: 'cm' },
8640        { key: 'Höhe links', label: 'Höhe links', unit: 'cm' },
8641        { key: 'Höhe rechts', label: 'Höhe rechts', unit: 'cm' },
8642        { key: 'Einrückung links', label: 'Einrückung links', unit: 'cm' },
8643        { key: 'Einrückung rechts', label: 'Einrückung rechts', unit: 'cm' },
8644        { key: 'Welches Material wünschen Sie sich?', label: 'Material' },
8645        { key: 'Farbe', label: 'Farbe' },
8646        { key: 'Saum & Ösen', label: 'Saum & Ösen' },
8647        { key: 'Ösenart', label: 'Ösenart' },
8648        { key: 'Ösenabstand', label: 'Ösenabstand', unit: 'cm' },
8649        { key: 'Hohlsaum', label: 'Hohlsaum' },
8650        { key: 'Faulstreifen', label: 'Faulstreifen' },
8651        { key: 'Aufrollriemen', label: 'Aufrollriemen' },
8652        { key: 'Aufrollriemen Farbe', label: 'Farbe Aufrollriemen' },
8653        { key: 'Haben Sie noch weitere Wünsche?', label: 'Weitere Wünsche' },
8654        { key: 'Fläche', label: 'Fläche', unit: 'm²' },
8655        { key: 'Gewicht', label: 'Gewicht', unit: 'kg' },
8656        { key: 'Versandart', label: 'Versandart' }
8657    ];
8658
8659    function cleanText(value) {
8660        return String(value || '')
8661            .replace(/\u00a0/g, ' ')
8662            .replace(/\s+/g, ' ')
8663            .trim();
8664    }
8665
8666    function nodeText(el) {
8667        return cleanText(el && el.textContent);
8668    }
8669
8670    function containsK3(root) {
8671        return !!root && /(?:Produkt-Nr\.|Produktnummer)?\s*:?\s*K3_/i.test(nodeText(root));
8672    }
8673
8674    function getK3LineItems() {
8675        const products = Array.from(document.querySelectorAll('.line-item-product'))
8676            .filter(containsK3);
8677
8678        if (products.length) {
8679            return products;
8680        }
8681
8682        return Array.from(document.querySelectorAll('.line-item'))
8683            .filter(function (item) {
8684                return containsK3(item) && !item.querySelector('.line-item-product');
8685            });
8686    }
8687
8688    function shippingIsFree() {
8689        const scopes = Array.from(document.querySelectorAll(
8690            '.checkout-aside, .cart-aside, .offcanvas, .checkout-main, .checkout'
8691        ));
8692
8693        return scopes.some(function (scope) {
8694            const t = nodeText(scope);
8695            return /Versandkosten[\s\S]{0,80}(?:✓\s*)?Kostenlos/i.test(t) ||
8696                   /Versandkosten[\s\S]{0,80}\+?\s*0,00\s*€/i.test(t);
8697        });
8698    }
8699
8700    function formatValue(def, value) {
8701        let result = cleanText(value)
8702            .replace(/^[:\-–—]+\s*/, '')
8703            .replace(/\s*[|;]+\s*$/, '');
8704
8705        if (!result || result === '-' || result === '–') {
8706            return '';
8707        }
8708
8709        if (def.unit && /^-?\d+(?:[.,]\d+)?$/.test(result)) {
8710            const number = Number(result.replace(',', '.'));
8711
8712            if (Number.isFinite(number)) {
8713                if (def.unit === 'kg') {
8714                    result = number.toLocaleString('de-DE', {
8715                        minimumFractionDigits: 0,
8716                        maximumFractionDigits: 2
8717                    });
8718                } else if (def.unit === 'm²') {
8719                    result = number.toLocaleString('de-DE', {
8720                        minimumFractionDigits: 0,
8721                        maximumFractionDigits: 3
8722                    });
8723                } else {
8724                    result = number.toLocaleString('de-DE', {
8725                        maximumFractionDigits: 2
8726                    });
8727                }
8728            }
8729
8730            result += ' ' + def.unit;
8731        }
8732
8733        return result;
8734    }
8735
8736    function fixK3ProductRows() {
8737        getK3LineItems().forEach(function (item) {
8738            item.classList.add('msis-k3-line-item');
8739
8740            Array.from(item.querySelectorAll('*')).forEach(function (el) {
8741                if (el.children.length !== 0) {
8742                    return;
8743                }
8744
8745                if (/^Lieferzeitraum\s*:/i.test(nodeText(el))) {
8746                    el.textContent = 'Lieferzeit: ca. 5–10 Werktage';
8747                    el.classList.add('msis-k3-delivery-time');
8748                }
8749            });
8750        });
8751    }
8752
8753    function ensureK3ProductHeadline(box) {
8754        if (!box || box.closest('.checkout-aside, .offcanvas')) {
8755            return;
8756        }
8757
8758        const prev = box.previousElementSibling;
8759        if (prev && prev.classList.contains('msis-k3-product-delivery-headline')) {
8760            return;
8761        }
8762
8763        const headline = document.createElement('div');
8764        headline.className = 'msis-k3-product-delivery-headline';
8765        headline.textContent = 'Individuell gefertigt';
8766        box.insertAdjacentElement('beforebegin', headline);
8767    }
8768
8769    function fixK3DeliveryNotice() {
8770        const productDetail = document.querySelector('.product-detail, .product-detail-buy, main');
8771        const k3OnProductPage = productDetail && containsK3(productDetail);
8772
8773        const cartItems = Array.from(document.querySelectorAll('.line-item-product'));
8774        const k3Items = cartItems.filter(function (item) {
8775            return containsK3(item);
8776        });
8777        const normalItems = cartItems.filter(function (item) {
8778            return !containsK3(item);
8779        });
8780
8781        const k3InCart = k3Items.length > 0;
8782        const mixedCart = k3InCart && normalItems.length > 0;
8783        const hasK3 = !!(k3OnProductPage || k3InCart);
8784        const freeShipping = shippingIsFree();
8785
8786        document.querySelectorAll(
8787            '.msis-cart-delivery-headline, .msis-offcanvas-delivery-headline'
8788        ).forEach(function (headline) {
8789            if (!headline.dataset.msisOriginalText) {
8790                headline.dataset.msisOriginalText = headline.textContent || 'Schnell geliefert';
8791            }
8792
8793            if (hasK3) {
8794                const desiredHeadline = mixedCart
8795                    ? 'Unterschiedliche Lieferzeiten'
8796                    : 'Individuell gefertigt';
8797                if (headline.textContent !== desiredHeadline) {
8798                    headline.textContent = desiredHeadline;
8799                }
8800                headline.classList.add('msis-k3-delivery-headline');
8801            } else {
8802                if (headline.textContent !== headline.dataset.msisOriginalText) {
8803                    headline.textContent = headline.dataset.msisOriginalText;
8804                }
8805                headline.classList.remove('msis-k3-delivery-headline');
8806            }
8807        });
8808
8809        document.querySelectorAll('.netzhirsch-order-countdown').forEach(function (box) {
8810            if (hasK3) {
8811                box.classList.add('msis-k3-countdown');
8812
8813                if (k3OnProductPage && !box.closest('.checkout-aside, .offcanvas')) {
8814                    ensureK3ProductHeadline(box);
8815                }
8816
8817                let custom = box.querySelector('.msis-k3-countdown-text');
8818                if (!custom) {
8819                    custom = document.createElement('div');
8820                    custom.className = 'msis-k3-countdown-text';
8821                    box.appendChild(custom);
8822                }
8823
8824                let desiredHtml;
8825                if (mixedCart) {
8826                    desiredHtml =
8827                        '<span>Ihre Wunschplane wird individuell gefertigt.</span> ' +
8828                        '<strong>Lieferzeit ca. 5–10 Werktage.</strong> ' +
8829                        '<span>Weitere Artikel können früher geliefert werden.</span>' +
8830                        (freeShipping ? ' <span>Der Versand ist kostenfrei.</span>' : '');
8831                } else {
8832                    desiredHtml =
8833                        '<span>Ihre Wunschplane wird nach Ihrer Konfiguration gefertigt.</span> ' +
8834                        '<strong>Lieferzeit ca. 5–10 Werktage.</strong>' +
8835                        (freeShipping
8836                            ? ' <span>Und anschließend kostenfrei zu Ihnen nach Hause geliefert.</span>'
8837                            : '');
8838                }
8839
8840                if (custom.innerHTML !== desiredHtml) {
8841                    custom.innerHTML = desiredHtml;
8842                }
8843            } else if (box.classList.contains('msis-k3-countdown')) {
8844                box.classList.remove('msis-k3-countdown');
8845                const custom = box.querySelector('.msis-k3-countdown-text');
8846                if (custom) {
8847                    custom.remove();
8848                }
8849            }
8850        });
8851    }
8852
8853    function getK3ProductLink(item) {
8854        const preferred = item.querySelector(
8855            'a.line-item-label[href], .line-item-label a[href], .line-item-info a[href]'
8856        );
8857
8858        if (preferred && !/checkout|cart|warenkorb|line-item/i.test(preferred.href || '')) {
8859            return preferred;
8860        }
8861
8862        return Array.from(item.querySelectorAll('a[href]')).find(function (link) {
8863            const href = link.href || '';
8864            return href && !/checkout|cart|warenkorb|line-item/i.test(href);
8865        }) || null;
8866    }
8867
8868    function configurationSourceCandidates(doc) {
8869        const set = new Set();
8870
8871        doc.querySelectorAll(
8872            '.product-detail-description-text, ' +
8873            '.product-detail-description, ' +
8874            '.product-detail-tabs-content, ' +
8875            '.tab-pane, ' +
8876            '[itemprop="description"], ' +
8877            '.cms-element-text'
8878        ).forEach(function (el) {
8879            set.add(el);
8880        });
8881
8882        Array.from(doc.querySelectorAll('h1,h2,h3,h4,h5,h6')).forEac
8882h(function (heading) {
8883            if (!/Produktinformationen/i.test(nodeText(heading))) {
8884                return;
8885            }
8886
8887            let parent = heading.parentElement;
8888            for (let i = 0; parent && i < 4; i += 1, parent = parent.parentElement) {
8889                set.add(parent);
8890            }
8891        });
8892
8893        return Array.from(set).filter(function (el) {
8894            const t = nodeText(el);
8895            const score = FIELD_DEFS.reduce(function (sum, def) {
8896                return sum + (t.toLowerCase().includes(def.key.toLowerCase()) ? 1 : 0);
8897            }, 0);
8898            return score >= 4;
8899        }).sort(function (a, b) {
8900            return nodeText(a).length - nodeText(b).length;
8901        });
8902    }
8903
8904    function sourceToLines(source) {
8905        const clone = source.cloneNode(true);
8906
8907        clone.querySelectorAll(
8908            'script, style, .product-detail-review, .product-detail-reviews, ' +
8909            '.review-container, [data-review], .product-detail-tabs, ' +
8910            '.product-detail-tab-navigation'
8911        ).forEach(function (el) {
8912            el.remove();
8913        });
8914
8915        clone.querySelectorAll('br').forEach(function (br) {
8916            br.replaceWith(clone.ownerDocument.createTextNode('\n'));
8917        });
8918
8919        clone.querySelectorAll('p,div,li,tr,td,th,dt,dd').forEach(function (el) {
8920            el.appendChild(clone.ownerDocument.createTextNode('\n'));
8921        });
8922
8923        return (clone.textContent || '')
8924            .replace(/\r/g, '')
8925            .split('\n')
8926            .map(cleanText)
8927            .filter(Boolean)
8928            .filter(function (line) {
8929                return !/^Produktinformationen\b/i.test(line) &&
8930                       !/^Beschreibung$/i.test(line) &&
8931                       !/^Bewertungen$/i.test(line);
8932            });
8933    }
8934
8935    function parseFromLines(lines) {
8936        const values = new Map();
8937        const defs = FIELD_DEFS.slice().sort(function (a, b) {
8938            return b.key.length - a.key.length;
8939        });
8940
8941        for (let i = 0; i < lines.length; i += 1) {
8942            const line = lines[i];
8943            const def = defs.find(function (entry) {
8944                return line.toLowerCase().startsWith(entry.key.toLowerCase());
8945            });
8946
8947            if (!def) {
8948                continue;
8949            }
8950
8951            let value = cleanText(line.slice(def.key.length));
8952
8953            if (!value) {
8954                for (let j = i + 1; j < lines.length; j += 1) {
8955                    const next = lines[j];
8956                    const isNextLabel = defs.some(function (entry) {
8957                        return next.toLowerCase().startsWith(entry.key.toLowerCase());
8958                    });
8959
8960                    if (isNextLabel) {
8961                        break;
8962                    }
8963
8964                    value = next;
8965                    i = j;
8966                    break;
8967                }
8968            }
8969
8970            value = formatValue(def, value);
8971            if (value && !values.has(def.key)) {
8972                values.set(def.key, value);
8973            }
8974        }
8975
8976        return values;
8977    }
8978
8979    function parseFromFlatText(source, current) {
8980        const values = current || new Map();
8981        const flat = nodeText(source);
8982        const occurrences = [];
8983
8984        FIELD_DEFS.forEach(function (def) {
8985            const index = flat.toLowerCase().indexOf(def.key.toLowerCase());
8986            if (index >= 0) {
8987                occurrences.push({ def: def, index: index });
8988            }
8989        });
8990
8991        occurrences.sort(function (a, b) {
8992            return a.index - b.index;
8993        });
8994
8995        occurrences.forEach(function (entry, index) {
8996            if (values.has(entry.def.key)) {
8997                return;
8998            }
8999
9000            const start = entry.index + entry.def.key.length;
9001            const end = index + 1 < occurrences.length
9002                ? occurrences[index + 1].index
9003                : flat.length;
9004
9005            const value = formatValue(entry.def, flat.slice(start, end));
9006            if (value) {
9007                values.set(entry.def.key, value);
9008            }
9009        });
9010
9011        return values;
9012    }
9013
9014    function extractConfiguration(doc) {
9015        const candidates = configurationSourceCandidates(doc);
9016        const source = candidates[0] || doc.body;
9017        if (!source) {
9018            return [];
9019        }
9020
9021        let values = parseFromLines(sourceToLines(source));
9022        values = parseFromFlatText(source, values);
9023
9024        /* Fallback: wenn der Theme-Container die Beschreibung nicht sauber
9025           trennt, noch einmal den gesamten Body auswerten. */
9026        if (values.size < 3 && doc.body && source !== doc.body) {
9027            values = parseFromLines(sourceToLines(doc.body));
9028            values = parseFromFlatText(doc.body, values);
9029        }
9030
9031        return FIELD_DEFS.map(function (def) {
9032            const value = values.get(def.key);
9033            return value ? { label: def.label, value: value } : null;
9034        }).filter(Boolean);
9035    }
9036
9037    async function fetchK3Configuration(url) {
9038        if (k3Cache.has(url)) {
9039            return k3Cache.get(url);
9040        }
9041
9042        try {
9043            const response = await fetch(url, {
9044                credentials: 'same-origin',
9045                            });
9046
9047            if (!response.ok) {
9048                console.warn('K3-Konfiguration: Produktseite nicht erreichbar', response.status, url);
9049                return [];
9050            }
9051
9052            const html = await response.text();
9053            const doc = new DOMParser().parseFromString(html, 'text/html');
9054            const rows = extractConfiguration(doc);
9055
9056            if (!rows.length) {
9057                console.warn('K3-Konfiguration: keine Konfigurationsdaten gefunden', url);
9058            }
9059
9060            k3Cache.set(url, rows);
9061            return rows;
9062        } catch (error) {
9063            console.warn('K3-Konfiguration konnte nicht geladen werden', error);
9064            return [];
9065        }
9066    }
9067
9068    function renderConfiguration(rows, isOffcanvas) {
9069        const values = {};
9070
9071        rows.forEach(function (row) {
9072            values[row.label] = row.value;
9073        });
9074
9075        /* ---------------------------------------
9076           Kompakte Hauptinformationen
9077           --------------------------------------- */
9078        const summaryRows = [];
9079
9080        if (values['Ausführung']) {
9081            summaryRows.push({
9082                label: 'Ausführung',
9083                value: values['Ausführung']
9084            });
9085        }
9086
9087        /* Maße eindeutig und kundenfreundlich zusammenfassen */
9088        if (values['Breite'] || values['Höhe links'] || values['Höhe rechts']) {
9089            const dimensions = [];
9090
9091            if (values['Breite']) {
9092                dimensions.push('Breite ' + values['Breite']);
9093            }
9094
9095            if (values['Höhe links']) {
9096                dimensions.push('Höhe links ' + values['Höhe links']);
9097            }
9098
9099            if (values['Höhe rechts']) {
9100                dimensions.push('Höhe rechts ' + values['Höhe rechts']);
9101            }
9102
9103            summaryRows.push({
9104                label: 'Maße',
9105                value: dimensions.join(' · ')
9106            });
9107        }
9108
9109        if (values['Material']) {
9110            summaryRows.push({
9111                label: 'Material',
9112                value: values['Material']
9113            });
9114        }
9115
9116        if (values['Farbe']) {
9117            summaryRows.push({
9118                label: 'Farbe',
9119                value: values['Farbe']
9120            });
9121        }
9122
9123        if (values['Saum & Ösen']) {
9124            summaryRows.push({
9125                label: 'Saum & Ösen',
9126                value: values['Saum & Ösen']
9127            });
9128        }
9129
9130        const summaryHtml = summaryRows.map(function (row) {
9131            return '<div class="msis-k3-config-main-row">' +
9132                '<span class="msis-k3-config-main-label">' + escapeHtml(row.label) + '</span>' +
9133                '<strong class="msis-k3-config-main-value">' + escapeHtml(row.value) + '</strong>' +
9134                '</div>';
9135        }).join('');
9136
9137        /* Bereits oben gezeigte Werte aus dem Detailbereich herausnehmen */
9138        const hiddenInDetails = [
9139            'Ausführung',
9140            'Breite',
9141            'Höhe links',
9142            'Höhe rechts',
9143            'Material',
9144            'Farbe',
9145            'Saum & Ösen'
9146        ];
9147
9148        const detailRows = rows.filter(function (row) {
9149            return !hiddenInDetails.includes(row.label);
9150        });
9151
9152        const detailsHtml = detailRows.map(function (row) {
9153            return '<div class="msis-k3-config-detail-row">' +
9154                '<span class="msis-k3-config-detail-label">' + escapeHtml(row.label) + '</span>' +
9155                '<strong class="msis-k3-config-detail-value">' + escapeHtml(row.value) + '</strong>' +
9156                '</div>';
9157        }).join('');
9158
9159        return '<div class="msis-k3-config-card">' +
9160            '<div class="msis-k3-configuration-title">Ihre Konfiguration</div>' +
9161            '<div class="msis-k3-config-main">' + summaryHtml + '</div>' +
9162            (detailRows.length
9163                ? '<details class="msis-k3-config-details">' +
9164                    '<summary>Weitere Konfigurationsdetails anzeigen</summary>' +
9165                    '<div class="msis-k3-config-detail-grid">' + detailsHtml + '</div>' +
9166                  '</details>'
9167                : '') +
9168            '</div>';
9169    }
9170
9171    function escapeHtml(value) {
9172        const div = document.createElement('div');
9173        div.textContent = value;
9174        return div.innerHTML;
9175    }
9176
9177    async function addConfigurations() {
9178        const items = getK3LineItems();
9179
9180        for (const item of items) {
9181            if (item.dataset.msisK3ConfigurationLoading === '1' ||
9182                item.querySelector('.msis-k3-configuration')) {
9183                continue;
9184            }
9185
9186            const link = getK3ProductLink(item);
9187            if (!link) {
9188                console.warn('K3-Konfiguration: kein Produktlink im Warenkorb gefunden', item);
9189                continue;
9190            }
9191
9192            item.dataset.msisK3ConfigurationLoading = '1';
9193
9194            try {
9195                const rows = await fetchK3Configuration(link.href);
9196                if (!rows.length) {
9197                    continue;
9198                }
9199
9200                const details = item.querySelector('.line-item-details') ||
9201                    item.querySelector('.line-item-info') ||
9202                    item;
9203
9204                const wrapper = document.createElement('div');
9205                wrapper.className = 'msis-k3-configuration';
9206                wrapper.innerHTML = renderConfiguration(rows, !!item.closest('.offcanvas'));
9207                details.appendChild(wrapper);
9208            } finally {
9209                item.dataset.msisK3ConfigurationLoading = '0';
9210            }
9211        }
9212    }
9213
9214    function run() {
9215        fixK3ProductRows();
9216        fixK3DeliveryNotice();
9217        addConfigurations();
9218    }
9219
9220    let timer = null;
9221    function schedule() {
9222        if (timer !== null) {
9223            return;
9224        }
9225        timer = setTimeout(function () {
9226            timer = null;
9227            run();
9228        }, 120);
9229    }
9230
9231    if (document.readyState === 'loading') {
9232        document.addEventListener('DOMContentLoaded', schedule);
9233    } else {
9234        schedule();
9235    }
9236
9237    const observer = new MutationObserver(schedule);
9238    observer.observe(document.body, {
9239        childList: true,
9240        subtree: true
9241    });
9242})();
9243</script>
9243
9244
9245<!-- msisdesign. Warenkorb CRO Feinschliff 2026-08 -->
9246<script>
9247(function () {
9248    'use strict';
9249
9250    function cleanText(el) {
9251        return (el && el.textContent ? el.textContent : '')
9252            .replace(/\u00a0/g, ' ')
9253            .replace(/\s+/g, ' ')
9254            .trim();
9255    }
9256
9257    function pushCartEvent(eventName, extra) {
9258        window.dataLayer = window.dataLayer || [];
9259        window.dataLayer.push(Object.assign({ event: eventName }, extra || {}));
9260    }
9261
9262    function scopeHasFreeShipping(scope) {
9263        const root = scope || document;
9264        const text = cleanText(root);
9265        return /Versandkosten[\s\S]{0,100}(?:✓\s*)?Kostenlos/i.test(text) ||
9266               /Versandkosten[\s\S]{0,100}\+?\s*0,00\s*€/i.test(text);
9267    }
9268
9269    /* -------------------------------------------------
9270       1. Gutscheincode einklappen
9271       ------------------------------------------------- */
9272    function initCouponToggles(root) {
9273        (root || document).querySelectorAll('form.cart-add-promotion').forEach(function (form) {
9274            if (form.dataset.msisCouponReady === '1') {
9275                return;
9276            }
9277
9278            form.dataset.msisCouponReady = '1';
9279            form.classList.add('msis-cart-coupon');
9280
9281            const label = form.querySelector('label[for="addPromotionInput"], label');
9282            const input = form.querySelector('#addPromotionInput, input[name="code"]');
9283            const inputGroup = form.querySelector('.checkout-aside-add-code, .input-group');
9284
9285            if (!input || !inputGroup) {
9286                return;
9287            }
9288
9289            if (label) {
9290                label.classList.add('msis-cart-coupon-label');
9291            }
9292            inputGroup.classList.add('msis-cart-coupon-fields');
9293
9294            const toggle = document.createElement('button');
9295            toggle.type = 'button';
9296            toggle.className = 'msis-cart-coupon-toggle';
9297            toggle.setAttribute('aria-expanded', 'false');
9298            toggle.textContent = '+ Gutscheincode einlösen';
9299
9300            form.insertBefore(toggle, label || inputGroup);
9301
9302            const mustOpen = !!cleanText(input) ||
9303                input.classList.contains('is-invalid') ||
9304                !!form.querySelector('.invalid-feedback:not(:empty), .alert-danger');
9305
9306            function setOpen(open, track) {
9307                form.classList.toggle('is-open', open);
9308                toggle.setAttribute('aria-expanded', open ? 'true' : 'false');
9309                toggle.textContent = open
9310                    ? '− Gutscheincode schließen'
9311                    : '+ Gutscheincode einlösen';
9312
9313                if (open) {
9314                    inputGroup.removeAttribute('aria-hidden');
9315                    if (track) {
9316                        pushCartEvent('msis_cart_coupon_open');
9317                    }
9318                } else {
9319                    inputGroup.setAttribute('aria-hidden', 'true');
9320                }
9321            }
9322
9323            setOpen(mustOpen, false);
9324
9325            toggle.addEventListener('click', function () {
9326                const open = !form.classList.contains('is-open');
9327                setOpen(open, open);
9328                if (open) {
9329                    window.setTimeout(function () { input.focus(); }, 50);
9330                }
9331            });
9332        });
9333    }
9334
9335    /* -------------------------------------------------
9336       2. K3-Zusatzdetails beim ersten Rendern schließen
9337       ------------------------------------------------- */
9338    function closeK3DetailsInitially(root) {
9339        (root || document).querySelectorAll('.msis-k3-config-details').forEach(function (details) {
9340            if (details.dataset.msisInitialStateSet === '1') {
9341                return;
9342            }
9343
9344            details.dataset.msisInitialStateSet = '1';
9345            details.removeAttribute('open');
9346
9347            details.addEventListener('toggle', function () {
9348                if (details.open) {
9349                    pushCartEvent('msis_cart_config_details_open', {
9350                        product_type: 'K3'
9351                    });
9352                }
9353            });
9354        });
9355    }
9356
9357    /* -------------------------------------------------
9358       3. Servicebox im großen Warenkorb kompakter
9359       ------------------------------------------------- */
9360    function compactCartService() {
9361        if (!document.body.classList.contains('is-act-cartpage')) {
9362            return;
9363        }
9364
9365        const sections = Array.from(document.querySelectorAll('section'));
9366        const section = sections.find(function (el) {
9367            return /Probleme beim Bestellen|Fragen zum Produkt/i.test(cleanText(el));
9368        });
9369
9370        if (!section || section.dataset.msisCartCompact === '1') {
9371            return;
9372        }
9373
9374        section.dataset.msisCartCompact = '1';
9375        section.classList.add('msis-cart-service-compact');
9376
9377        const title = Array.from(section.querySelectorAll('h1,h2,h3,h4,div')).find(function (el) {
9378            return el.children.length === 0 && /Probleme beim Bestellen|Fragen zum Produkt/i.test(cleanText(el));
9379        });
9380        if (title) {
9381            title.textContent = 'Fragen zur Bestellung? Wir helfen sofort.';
9382            title.classList.add('msis-cart-service-title');
9383        }
9384
9385        const intro = Array.from(section.querySelectorAll('p')).find(function (el) {
9386            return /Kundenservice unterstützt|Fragen zum Produkt|Ihrer Bestellung/i.test(cleanText(el));
9387        });
9388        if (intro) {
9389            intro.classList.add('msis-cart-service-hide');
9390        }
9391
9392        const items = Array.from(section.querySelectorAll('div')).filter(function (el) {
9393            return el.children.length > 0;
9394        });
9395
9396        items.forEach(function (item) {
9397            const text = cleanText(item);
9398            if (/^Servicezeiten\b/i.test(text) || /Senden Sie uns eine E-Mail/i.test(text)) {
9399                const candidate = item.closest('[class*="__item"]') || item;
9400                candidate.classList.add('msis-cart-service-hide');
9401            }
9402        });
9403
9404        section.querySelectorAll('a[href^="mailto:"]').forEach(function (link) {
9405            const item = link.closest('[class*="__item"]');
9406            if (item) {
9407                item.classList.add('msis-cart-service-hide');
9408            }
9409        });
9410
9411        section.querySelectorAll('a').forEach(function (link) {
9412            if (/Individuelles Angebot anfordern/i.test(cleanText(link))) {
9413                const cell = link.closest('[class*="__offer-cell"]') || link;
9414                cell.classList.add('msis-cart-service-hide');
9415            }
9416        });
9417
9418        const portrait = section.querySelector('img[alt="Kundenservice"], img');
9419        if (portrait) {
9420            portrait.classList.add('msis-cart-service-portrait');
9421        }
9422
9423        const phone = section.querySelector('a[href^="tel:"]');
9424        if (phone) {
9425            const phoneItem = phone.closest('[class*="__item"]') || phone.parentElement;
9426            if (phoneItem) {
9427                phoneItem.classList.add('msis-cart-service-phone');
9428            }
9429        }
9430    }
9431
9432    /* -------------------------------------------------
9433       4. Vorteile direkt unter "Zur Kasse"
9434       ------------------------------------------------- */
9435    function addCheckoutBenefits(root) {
9436        (root || document).querySelectorAll('.begin-checkout-btn').forEach(function (button) {
9437            const action = button.parentElement;
9438            if (!action) {
9439                return;
9440            }
9441
9442            let benefits = action.nextElementSibling;
9443            if (!benefits || !benefits.classList.contains('msis-checkout-benefits')) {
9444                benefits = document.createElement('div');
9445                benefits.className = 'msis-checkout-benefits';
9446                action.insertAdjacentElement('afterend', benefits);
9447            }
9448
9449            const context = button.closest('.checkout-aside-container, .offcanvas, .cart-offcanvas') || document;
9450            const parts = [
9451                '<span>✓ Gastbestellung möglich</span>'
9452            ];
9453
9454            if (scopeHasFreeShipping(context)) {
9455                parts.push('<span>✓ Kostenloser Versand</span>');
9456            }
9457
9458            parts.push('<span>✓ Sichere Zahlung</span>');
9459            const benefitsHtml = parts.join('<span class="msis-benefit-separator">·</span>');
9460            if (benefits.innerHTML !== benefitsHtml) {
9461                benefits.innerHTML = benefitsHtml;
9462            }
9463
9464            if (button.dataset.msisCheckoutTracked !== '1') {
9465                button.dataset.msisCheckoutTracked = '1';
9466                button.addEventListener('click', function () {
9467                    pushCartEvent('msis_cart_checkout_click');
9468                });
9469            }
9470        });
9471    }
9472
9473    function runCartCro() {
9474        initCouponToggles(document);
9475        closeK3DetailsInitially(document);
9476        compactCartService();
9477        addCheckoutBenefits(document);
9478    }
9479
9480    let timer = null;
9481    function scheduleCartCro() {
9482        if (timer !== null) {
9483            return;
9484        }
9485        timer = window.setTimeout(function () {
9486            timer = null;
9487            runCartCro();
9488        }, 100);
9489    }
9490
9491    if (document.readyState === 'loading') {
9492        document.addEventListener('DOMContentLoaded', scheduleCartCro);
9493    } else {
9494        scheduleCartCro();
9495    }
9496
9497    const observer = new MutationObserver(scheduleCartCro);
9498    observer.observe(document.body, {
9499        childList: true,
9500        subtree: true
9501    });
9502})();
9503</script>
9503
9504
9505
9506<!-- msisdesign. Warenkorb Stabilisierung V3 -->
9507<script>
9508(function () {
9509    'use strict';
9510
9511    function cleanText(el) {
9512        return (el && el.textContent ? el.textContent : '')
9513            .replace(/\u00a0/g, ' ')
9514            .replace(/\s+/g, ' ')
9515            .trim();
9516    }
9517
9518    function reconcileCartPage() {
9519        if (!document.body || !document.body.classList.contains('is-act-cartpage')) {
9520            return;
9521        }
9522
9523        const productTable = document.querySelector('.checkout-product-table');
9524
9525        /* 1. Nur echte Produktpositionen zaehlen */
9526        if (productTable) {
9527            const productCount = productTable.querySelectorAll('.line-item-product').length;
9528            const counter = document.querySelector('.cart-main-header-item-counter');
9529            if (counter && productCount > 0) {
9530                const desired = '(' + productCount + ' Artikel)';
9531                if (cleanText(counter) !== desired) {
9532                    counter.textContent = desired;
9533                }
9534            }
9535
9536            /* 2. Automatischen Rabatt kompakt markieren */
9537            productTable.querySelectorAll('.line-item-promotion').forEach(function (item) {
9538                const label = item.querySelector('.line-item-label');
9539                if (label && /5\s*%\s*Rabatt/i.test(cleanText(label))) {
9540                    item.classList.add('msis-fixed-promotion');
9541                }
9542            });
9543
9544            /* 3. Grossen PayPal-Ratenbanner links ausblenden */
9545            productTable.querySelectorAll('[data-swag-paypal-installment-banner="true"]').forEach(function (banner) {
9546                const row = banner.closest('.form-row') || banner.parentElement;
9547                if (row) {
9548                    row.classList.add('msis-hide-cart-paypal-banner');
9549                }
9550            });
9551        }
9552
9553        /* 4. Produktnummer-Eingabe einklappen */
9554        const addProductContainer = document.querySelector('.cart-add-product-container');
9555        if (addProductContainer) {
9556            const form = addProductContainer.querySelector('form');
9557            if (form) {
9558                form.classList.add('msis-cart-add-product-form');
9559
9560                let toggle = addProductContainer.querySelector('.msis-cart-add-toggle');
9561                if (!toggle) {
9562                    toggle = document.createElement('button');
9563                    toggle.type = 'button';
9564                    toggle.className = 'msis-cart-add-toggle';
9565                    toggle.setAttribute('aria-expanded', 'false');
9566                    toggle.textContent = '+ Artikel per Produktnummer hinzufügen';
9567                    addProductContainer.insertBefore(toggle, form);
9568
9569                    toggle.addEventListener('click', function () {
9570                        const isOpen = form.classList.toggle('is-open');
9571                        toggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
9572                        toggle.textContent = isOpen
9573                            ? '− Produktnummer-Eingabe schließen'
9574                            : '+ Artikel per Produktnummer hinzufügen';
9575
9576                        if (isOpen) {
9577                            const input = form.querySelector('#addProductInput, input');
9578                            if (input) {
9579                                window.setTimeout(function () { input.focus(); }, 50);
9580                            }
9581                        }
9582                    });
9583                }
9584            }
9585        }
9586
9587        /* 5. Versandkosten 0,00 EUR -> Kostenlos */
9588        const aside = document.querySelector('.checkout-aside, .cart-aside');
9589        if (aside) {
9590            Array.from(aside.querySelectorAll('*')).forEach(function (label) {
9591                if (label.children.length !== 0 || cleanText(label) !== 'Versandkosten') {
9592                    return;
9593                }
9594
9595                const row = label.parentElement;
9596                if (!row) {
9597                    return;
9598                }
9599
9600                Array.from(row.querySelectorAll('*')).forEach(function (valueEl) {
9601                    if (valueEl.children.length !== 0) {
9602                        return;
9603                    }
9604                    const value = cleanText(valueEl).replace(/\s/g, '');
9605                    if (/^\+?0,00€$/i.test(value) || /^\+?0\.00€$/i.test(value)) {
9606                        valueEl.textContent = 'Kostenlos';
9607                        valueEl.classList.add('msis-free-shipping');
9608                    }
9609                });
9610            });
9611
9612            /* 6. Lieferbox immer mit kleiner Ueberschrift versehen */
9613            aside.querySelectorAll('.netzhirsch-order-countdown').forEach(function (countdown) {
9614                const prev = countdown.previousElementSibling;
9615                if (!prev || !prev.classList.contains('msis-cart-delivery-headline')) {
9616                    const headline = document.createElement('div');
9617                    headline.className = 'msis-cart-delivery-headline';
9618                    headline.textContent = 'Schnell geliefert';
9619                    countdown.insertAdjacentElement('beforebegin', headline);
9620                }
9621            });
9622        }
9623    }
9624
9625    let scheduled = false;
9626    function scheduleReconcile() {
9627        if (scheduled) {
9628            return;
9629        }
9630        scheduled = true;
9631        window.setTimeout(function () {
9632            scheduled = false;
9633            reconcileCartPage();
9634        }, 80);
9635    }
9636
9637    if (document.readyState === 'loading') {
9638        document.addEventListener('DOMContentLoaded', scheduleReconcile);
9639    } else {
9640        scheduleReconcile();
9641    }
9642
9643    document.addEventListener('click', scheduleReconcile, true);
9644
9645    const observer = new MutationObserver(scheduleReconcile);
9646    observer.observe(document.documentElement, {
9647        childList: true,
9648        subtree: true
9649    });
9650})();
9651</script>
9651
9652
9653<!-- ==========================================
9654     TEKOPLAN Checkout CRO V6 - 24.08.2026
9655     Bundesland bleibt bewusst unveraendert.
9656     ========================================== -->
9657<script>
9658(function () {
9659    'use strict';
9660
9661    const TEKOPLAN_PHONE_TEXT = '+49 (0)6681 9678446';
9662    const TEKOPLAN_PHONE_HREF = 'tel:+4966819678446';
9663
9664    function cleanText(el) {
9665        return (el && el.textContent ? el.textContent : '')
9666            .replace(/\u00a0/g, ' ')
9667            .replace(/\s+/g, ' ')
9668            .trim();
9669    }
9670
9671    function isCheckoutRegister() {
9672        return window.activeRoute === 'frontend.checkout.register.page' ||
9673            /\/checkout\/register(?:[/?#]|$)/i.test(window.location.pathname + window.location.search + window.location.hash);
9674    }
9675
9676    function fixTelephoneNumbers(root) {
9677        (root || document).querySelectorAll('a[href^="tel:"]').forEach(function (link) {
9678            link.setAttribute('href', TEKOPLAN_PHONE_HREF);
9679
9680            const walker = document.createTreeWalker(
9681                link,
9682                NodeFilter.SHOW_TEXT,
9683                null
9684            );
9685
9686            const nodes = [];
9687            while (walker.nextNode()) {
9688                nodes.push(walker.currentNode);
9689            }
9690
9691            let changed = false;
9692            nodes.forEach(function (node) {
9693                const original = node.nodeValue || '';
9694                const replaced = original.replace(
9695                    /(?:\+49\s*\(?0?\)?\s*|0)[0-9()\s\/-]{7,}/g,
9696                    TEKOPLAN_PHONE_TEXT
9697                );
9698
9699                if (replaced !== original) {
9700                    node.nodeValue = replaced;
9701                    changed = true;
9702                }
9703            });
9704
9705            if (!changed && link.children.length === 0) {
9706                link.textContent = TEKOPLAN_PHONE_TEXT;
9707            }
9708        });
9709    }
9710
9711    function optimizeLoginBlock() {
9712        const heading = document.querySelector('.twt-checkout-header-login');
9713        if (heading) {
9714            heading.textContent = 'Schon Kunde?';
9715            heading.classList.add('msis-checkout-login-title');
9716        }
9717
9718        const toggle = document.querySelector('.register-login-collapse-toogle');
9719        if (!toggle) {
9720            return;
9721        }
9722
9723        toggle.classList.add('msis-checkout-login-toggle');
9724
9725        const action = toggle.querySelector('.login-collapse-toggle, a, button, [role="button"]');
9726        if (action) {
9727            /* Link selbst erhalten, damit Shopwares Collapse weiter funktioniert. */
9728            if (cleanText(action) !== 'Einloggen') {
9729                action.innerHTML = '<strong>Einloggen</strong>';
9730            }
9731            action.setAttribute('aria-label', 'Als bestehender Kunde einloggen');
9732        }
9733    }
9734
9735    function optimizePaypalHeading() {
9736        const checkoutMain = document.querySelector('.checkout-main') || document;
9737
9738        /* PayPal rendert den eigentlichen Button spaeter/intern. Deshalb am
9739           stabilen Shopware-PayPal-Container ansetzen und nicht am Buttontext. */
9740        const expressContainer = checkoutMain.querySelector(
9741            '[data-swag-paypal-express-button="true"]'
9742        );
9743
9744        if (!expressContainer) {
9745            return;
9746        }
9747
9748        const paypalRow = expressContainer.closest('.row') || expressContainer;
9749
9750        let headline = document.getElementById('msis-paypal-guest-headline');
9751        if (!headline) {
9752            headline = document.createElement('div');
9753            headline.id = 'msis-paypal-guest-headline';
9754            headline.className = 'msis-paypal-guest-headline';
9755            paypalRow.insertAdjacentElement('beforebegin', headline);
9756        }
9757
9758        headline.classList.add('msis-checkout-paypal-headline');
9759        headline.innerHTML =
9760            '<div class="msis-paypal-guest-headline__title">Schnell mit PayPal bestellen</div>' +
9761            '<div class="msis-paypal-guest-headline__text">Ohne Kundenkonto und ohne erneute Eingabe Ihrer Daten.</div>';
9762
9763        /* Ratenhinweis bewusst behalten, aber unter BEIDE PayPal-Buttons
9764           verschieben. So wirkt er wie eine Zusatzinfo und nicht wie ein
9765           dritter Zahlungsweg. */
9766        const installment = paypalRow.querySelector(
9767            '[data-swag-paypal-installment-banner="true"]'
9768        ) || checkoutMain.querySelector(
9769            '[data-swag-paypal-installment-banner="true"]'
9770        );
9771
9772        if (installment) {
9773            installment.classList.add('msis-checkout-paypal-installment-bottom');
9774
9775            if (installment.parentElement !== paypalRow || paypalRow.lastElementChild !== installment) {
9776                paypalRow.appendChild(installment);
9777            }
9778        }
9779    }
9780
9781    function compactCheckoutService() {
9782        if (!isCheckoutRegister()) {
9783            return;
9784        }
9785
9786        const checkoutMain = document.querySelector('.checkout-main') || document;
9787        let section = checkoutMain.querySelector('.msisdesign-configurator-support-v127');
9788
9789        if (!section) {
9790            section = Array.from(checkoutMain.querySelectorAll('section, div')).find(function (el) {
9791                const text = cleanText(el);
9792                return /Probleme beim Bestellen|Fragen zum Produkt|Fragen zur Bestellung/i.test(text) &&
9793                    el.querySelector && el.querySelector('a[href^="tel:"]');
9794            });
9795        }
9796
9797        if (!section) {
9798            return;
9799        }
9800
9801        section.classList.add('msis-checkout-service-compact');
9802
9803        const title = Array.from(section.querySelectorAll('h1,h2,h3,h4,div')).find(function (el) {
9804            return el.children.length === 0 &&
9805                /Probleme beim Bestellen|Fragen zum Produkt|Fragen zur Bestellung/i.test(cleanText(el));
9806        });
9807        if (title) {
9808            title.textContent = 'Fragen beim Bestellen? Wir helfen sofort.';
9809            title.classList.add('msis-checkout-service-title');
9810        }
9811
9812        Array.from(section.querySelectorAll('p')).forEach(function (p) {
9813            if (/Kundenservice unterstuetzt|Kundenservice unterstützt|Fragen zum Produkt|Ihrer Bestellung/i.test(cleanText(p))) {
9814                p.classList.add('msis-checkout-service-hide');
9815            }
9816        });
9817
9818        section.querySelectorAll('a[href^="mailto:"]').forEach(function (link) {
9819            const item = link.closest('[class*="__item"]') || link.parentElement;
9820            if (item) {
9821                item.classList.add('msis-checkout-service-hide');
9822            }
9823        });
9824
9825        Array.from(section.querySelectorAll('a')).forEach(function (link) {
9826            if (/Individuelles Angebot anfordern/i.test(cleanText(link))) {
9827                const item = link.closest('[class*="__offer-cell"], [class*="__item"]') || link;
9828                item.classList.add('msis-checkout-service-hide');
9829            }
9830        });
9831
9832        Array.from(section.querySelectorAll('[class*="__item"], div')).forEach(function (item) {
9833            if (/^Servicezeiten\b/i.test(cleanText(item))) {
9834                const host = item.closest('[class*="__item"]') || item;
9835                host.classList.add('msis-checkout-service-hide');
9836            }
9837        });
9838
9839        const phone = section.querySelector('a[href^="tel:"]');
9840        if (phone) {
9841            phone.setAttribute('href', TEKOPLAN_PHONE_HREF);
9842            phone.textContent = TEKOPLAN_PHONE_TEXT;
9843            const phoneItem = phone.closest('[class*="__item"]') || phone.parentElement;
9844            if (phoneItem) {
9845                phoneItem.classList.add('msis-checkout-service-phone');
9846            }
9847        }
9848    }
9849
9850    function compactCheckoutAsideProducts() {
9851        const aside = document.querySelector('.checkout-aside');
9852        if (!aside) {
9853            return;
9854        }
9855
9856        /* Im Checkout bestaetigt die rechte Spalte nur noch die Bestellung. */
9857        const cartHeadline = Array.from(
9858            aside.querySelectorAll('h1, h2, h3, h4')
9859        ).find(function (el) {
9860            return /^Warenkorb$/i.test(cleanText(el));
9861        });
9862
9863        if (cartHeadline) {
9864            cartHeadline.textContent = 'Ihre Bestellung';
9865            cartHeadline.classList.add('msis-checkout-order-title');
9866        }
9867
9868        aside.querySelectorAll('.line-item-product').forEach(function (item) {
9869            item.classList.add('msis-checkout-product-compact');
9870
9871            const details = item.querySelector('.line-item-details-container') ||
9872                item.querySelector('.line-item-details');
9873
9874            if (!details) {
9875                return;
9876            }
9877
9878            let priceLine = details.querySelector('.msis-checkout-line-price');
9879            if (!priceLine) {
9880                priceLine = document.createElement('div');
9881                priceLine.className = 'msis-checkout-line-price';
9882
9883                const config = details.querySelector('.msis-k3-configuration');
9884                if (config) {
9885                    details.insertBefore(priceLine, config);
9886                } else {
9887                    details.appendChild(priceLine);
9888                }
9889            }
9890
9891            const quantity = cleanText(
9892                item.querySelector('.line-item-quantity-select-wrapper')
9893            ) || '1';
9894
9895            const totalPrice = cleanText(
9896                item.querySelector('.line-item-total-price-value')
9897            ) || cleanText(
9898                item.querySelector('.line-item-unit-price-value')
9899            );
9900
9901            const expected = quantity + ' × ' + totalPrice;
9902            if (cleanText(priceLine) !== expected) {
9903                priceLine.textContent = '';
9904
9905                const qty = document.createElement('span');
9906                qty.className = 'msis-checkout-line-qty';
9907                qty.textContent = quantity + ' ×';
9908
9909                const price = document.createElement('strong');
9910                price.className = 'msis-checkout-line-total';
9911                price.textContent = totalPrice;
9912
9913                priceLine.appendChild(qty);
9914                priceLine.appendChild(price);
9915            }
9916        });
9917    }
9918
9919    function optimizePersonalTopRow() {
9920        const account = document.getElementById('-accountType');
9921        const salutation = document.getElementById('personalSalutation');
9922
9923        if (!account || !salutation) {
9924            return;
9925        }
9926
9927        const accountGroup = account.closest('.form-group');
9928        const salutationGroup = salutation.closest('.form-group');
9929
9930        if (!accountGroup || !salutationGroup) {
9931            return;
9932        }
9933
9934        let row = document.querySelector('.msis-checkout-personal-top-row');
9935        if (!row) {
9936            row = document.createElement('div');
9937            row.className = 'row g-2 msis-checkout-personal-top-row';
9938            accountGroup.parentElement.insertAdjacentElement('beforebegin', row);
9939        }
9940
9941        [accountGroup, salutationGroup].forEach(function (group) {
9942            group.classList.remove('col-md-3', 'col-md-6', 'col-sm-6');
9943            group.classList.add('col-md-6', 'col-sm-6');
9944            if (group.parentElement !== row) {
9945                row.appendChild(group);
9946            }
9947        });
9948
9949        document.querySelectorAll('.register-personal > .row.g-2').forEach(function (oldRow) {
9950            if (oldRow !== row && oldRow.children.length === 0) {
9951                oldRow.remove();
9952            }
9953        });
9954    }
9955
9956    function optimizePhoneFields() {
9957        document.querySelectorAll(
9958            '#billingAddressAddressPhoneNumber, #shippingAddressAddressPhoneNumber'
9959        ).forEach(function (input) {
9960            const group = input.closest('.form-group');
9961            if (!group) {
9962                return;
9963            }
9964
9965            const label = group.querySelector('label[for="' + input.id + '"]');
9966            if (label) {
9967                label.textContent = 'Telefonnummer (optional)';
9968            }
9969
9970            let hint = group.querySelector('.msis-checkout-phone-hint');
9971            if (!hint) {
9972                hint = document.createElement('div');
9973                hint.className = 'msis-checkout-phone-hint';
9974                hint.id = input.id + '-msis-hint';
9975
9976                const feedback = group.querySelector('.form-field-feedback');
9977                if (feedback) {
9978                    feedback.insertAdjacentElement('afterend', hint);
9979                } else {
9980                    input.insertAdjacentElement('afterend', hint);
9981                }
9982            }
9983
9984            hint.textContent = 'Gerne angeben – bei Speditionslieferungen kann die Zustellung besser mit Ihnen abgestimmt werden.';
9985
9986            const describedBy = (input.getAttribute('aria-describedby') || '')
9987                .split(/\s+/)
9988                .filter(Boolean);
9989            if (!describedBy.includes(hint.id)) {
9990                describedBy.push(hint.id);
9991                input.setAttribute('aria-describedby', describedBy.join(' '));
9992            }
9993        });
9994    }
9995
9996    function makeCheckoutAsideSticky() {
9997        const aside = document.querySelector('.checkout-aside');
9998        if (aside) {
9999            aside.classList.add('msis-checkout-aside-sticky');
10000        }
10001    }
10002
10003    function optimizeGuestAccountOption() {
10004        const control = document.querySelector('.register-guest-control');
10005        if (!control) {
10006            return;
10007        }
10008
10009        control.classList.add('msis-checkout-account-option');
10010
10011        const input = control.querySelector('#personalGuest, input[type="checkbox"]');
10012        if (input) {
10013            input.classList.add('msis-checkout-account-checkbox');
10014        }
10015
10016        const label = control.querySelector('label');
10017        if (label) {
10018            label.classList.add('msis-checkout-account-label');
10019            label.innerHTML =
10020                '<span class="msis-checkout-account-badge">Optional</span>' +
10021                '<span class="msis-checkout-account-text">Kostenloses Kundenkonto anlegen</span>';
10022        }
10023
10024        const billing = document.querySelector('.register-billing');
10025        if (billing && control.previousElementSibling !== billing) {
10026            billing.insertAdjacentElement('afterend', control);
10027        }
10028    }
10029
10030    function optimizeCheckoutDiscount() {
10031        document.querySelectorAll('.checkout-aside .line-item-promotion').forEach(function (item) {
10032            const label = item.querySelector('.line-item-label');
10033            if (!label || !/5\s*%\s*Rabatt/i.test(cleanText(label))) {
10034                return;
10035            }
10036
10037            item.classList.add('msis-checkout-promotion-compact');
10038            label.textContent = '✓ 5 % Rabatt';
10039
10040            const valueElement = item.querySelector('.line-item-total-price-value');
10041            const valueText = cleanText(valueElement);
10042
10043            let compactRow = item.querySelector('.msis-checkout-discount-row');
10044            if (!compactRow) {
10045                compactRow = document.createElement('div');
10046                compactRow.className = 'msis-checkout-discount-row';
10047                item.appendChild(compactRow);
10048            }
10049
10050            compactRow.textContent = '';
10051
10052            const compactLabel = document.createElement('span');
10053            compactLabel.className = 'msis-checkout-discount-label';
10054            compactLabel.textContent = '✓ 5 % Rabatt';
10055
10056            const compactValue = document.createElement('strong');
10057            compactValue.className = 'msis-checkout-discount-value';
10058            compactValue.textContent = valueText;
10059
10060            compactRow.appendChild(compactLabel);
10061            compactRow.appendChild(compactValue);
10062        });
10063    }
10064
10065    function optimizeSubmitButton() {
10066        let button = document.querySelector('.register-submit button, .register-submit .btn');
10067
10068        if (!button) {
10069            const form = document.querySelector('form.register-form');
10070            if (form) {
10071                button = Array.from(form.querySelectorAll('button[type="submit"], input[type="submit"]')).find(function (el) {
10072                    return /^Weiter$/i.test(cleanText(el) || el.value || '');
10073                });
10074            }
10075        }
10076
10077        if (!button) {
10078            return;
10079        }
10080
10081        if (button.tagName === 'INPUT') {
10082            button.value = 'Weiter zur Bestellübersicht →';
10083        } else {
10084            button.textContent = 'Weiter zur Bestellübersicht →';
10085        }
10086        button.classList.add('msis-checkout-continue-btn');
10087
10088        const host = button.closest('.register-submit') || button.parentElement;
10089        if (host) {
10090            host.classList.remove('offset-md-6');
10091            host.classList.add('msis-checkout-submit-left');
10092        }
10093
10094        const existingNote = host ? host.querySelector('.msis-checkout-continue-note') : null;
10095        if (existingNote) {
10096            existingNote.textContent = '✓ Noch keine Bestellung – im nächsten Schritt prüfen Sie alle Angaben und Zahlungsarten.';
10097        }
10098        if (host && !existingNote) {
10099            const note = document.createElement('div');
10100            note.className = 'msis-checkout-continue-note';
10101            note.textContent = '✓ Noch keine Bestellung – im nächsten Schritt prüfen Sie alle Angaben und Zahlungsarten.';
10102            host.appendChild(note);
10103        }
10104    }
10105
10106    function markCheckout() {
10107        if (!isCheckoutRegister()) {
10108            return;
10109        }
10110
10111        document.body.classList.add('msis-checkout-register-cro');
10112        fixTelephoneNumbers(document);
10113        optimizeLoginBlock();
10114        optimizePaypalHeading();
10115        compactCheckoutService();
10116        compactCheckoutAsideProducts();
10117        optimizePersonalTopRow();
10118        optimizePhoneFields();
10119        optimizeGuestAccountOption();
10120        optimizeCheckoutDiscount();
10121        makeCheckoutAsideSticky();
10122        optimizeSubmitButton();
10123
10124        /* Bundesland bleibt absichtlich unveraendert. */
10125    }
10126
10127    let scheduled = false;
10128    function schedule() {
10129        if (scheduled) {
10130            return;
10131        }
10132        scheduled = true;
10133        window.setTimeout(function () {
10134            scheduled = false;
10135            markCheckout();
10136        }, 80);
10137    }
10138
10139    if (document.readyState === 'loading') {
10140        document.addEventListener('DOMContentLoaded', schedule);
10141    } else {
10142        schedule();
10143    }
10144
10145    const observer = new MutationObserver(schedule);
10146    observer.observe(document.documentElement, {
10147        childList: true,
10148        subtree: true
10149    });
10150})();
10151</script>
vendor: 1 bytes, line 10151
10151
10152<script>
10153(function () {
10154    'use strict';
10155
10156    function optimizeCookieButtons() {
10157        document.querySelectorAll(
10158            '.cookie-permission-container .js-cookie-accept-all-button .btn'
10159        ).forEach(function (button) {
10160            if (button.textContent.trim() !== 'Alle akzeptieren') {
10161                button.textContent = 'Alle akzeptieren';
10162            }
10163
10164            button.setAttribute(
10165                'aria-label',
10166                'Alle Cookies akzeptieren'
10167            );
10168        });
10169    }
10170
10171    if (document.readyState === 'loading') {
10172        document.addEventListener(
10173            'DOMContentLoaded',
10174            optimizeCookieButtons
10175        );
10176    } else {
10177        optimizeCookieButtons();
10178    }
10179
10180    const observer = new MutationObserver(
10181        optimizeCookieButtons
10182    );
10183
10184    observer.observe(document.documentElement, {
10185        childList: true,
10186        subtree: true
10187    });
10188})();
10189</script>
10189
10190	
10191		
10192
10193                    
10194                    <div data-swag-paypal-funding-eligibility="true"
10195                 data-swag-paypal-funding-eligibility-options="{&quot;extensions&quot;:[],&quot;clientId&quot;:&quot;AXOOioYuVgdRSTEEMAB_MBC7t6VALOJxEHmGR9cpTAl2ERdmgm6j4ur7QBkT2LxAO4Yh8Y_wa1znfika&quot;,&quot;merchantPayerId&quot;:&quot;ZY6B65EHBJGGJ&quot;,&quot;partnerAttributionId&quot;:&quot;shopwareAG_Cart_Shopware6_PPCP&quot;,&quot;languageIso&quot;:&quot;de_DE&quot;,&quot;currency&quot;:&quot;EUR&quot;,&quot;intent&quot;:&quot;capture&quot;,&quot;filteredPaymentMethods&quot;:[],&quot;methodEligibilityUrl&quot;:&quot;\/paypal\/payment-method-eligibility&quot;}">
10196            </div>
10197            
10198    
10198<script>
10199    (() => {
10200        'use strict';
10201        const endpoint = '/msis-tracking/event';
10202        const now = () => Date.now();
10203        const randomId = () => (window.crypto && crypto.randomUUID ? crypto.randomUUID().replaceAll('-', '') : Math.random().toString(36).slice(2) + now().toString(36));
10204        const getCookie = name => document.cookie.split('; ').find(v => v.startsWith(name + '='))?.split('=')[1] || '';
10205        let sid = getCookie('tct_sid');
10206        if (!sid) {
10207            sid = randomId();
10208            document.cookie = `tct_sid=${sid}; Path=/; Max-Age=2592000; SameSite=Lax`;
10209        }
10210
10211        const params = new URLSearchParams(location.search);
10212        const decodeTrackingValue = value => {
10213            let out = String(value || '').trim();
10214            for (let i = 0; i < 2; i++) {
10215                const before = out;
10216                try { out = decodeURIComponent(out.replace(/\+/g, ' ')); } catch (_) { out = out.replace(/\+/g, ' '); }
10217                if (out === before) break;
10218            }
10219            return out.trim();
10220        };
10221        const storedUtm = (() => {
10222            try { return JSON.parse(localStorage.getItem('tct_utm') || '{}'); } catch (_) { return {}; }
10223        })();
10224        ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'].forEach(k => {
10225            if (params.get(k)) storedUtm[k] = decodeTrackingValue(params.get(k));
10226        });
10227        // Matomo-Kampagnenparameter (mtm_*) werden bei Bedarf in die vorhandenen UTM-Felder gespiegelt.
10228        // Wir spiegeln sie in die vorhandenen UTM-Felder, damit die Herkunft ohne Schema-Änderung erhalten bleibt.
10229        if (!storedUtm.utm_source && params.get('mtm_source')) storedUtm.utm_source = decodeTrackingValue(params.get('mtm_source'));
10230        if (!storedUtm.utm_medium && params.get('mtm_medium')) storedUtm.utm_medium = decodeTrackingValue(params.get('mtm_medium'));
10231        if (!storedUtm.utm_campaign && params.get('mtm_campaign')) storedUtm.utm_campaign = decodeTrackingValue(params.get('mtm_campaign'));
10232        if (!storedUtm.utm_content && params.get('mtm_content')) storedUtm.utm_content = decodeTrackingValue(params.get('mtm_content'));
10233        if (!storedUtm.utm_term && params.get('mtm_kwd')) storedUtm.utm_term = decodeTrackingValue(params.get('mtm_kwd'));
10234        try { localStorage.setItem('tct_utm', JSON.stringify(storedUtm)); } catch (_) {}
10235
10236        // Google-Ads-Detailzuordnung (ValueTrack + lesbare msisdesign-Tags).
10237        // First-touch innerhalb der Browser-Speicherung: vorhandene Werte werden nicht von spaeteren Seitenaufrufen ueberschrieben.
10238        const storedAds = (() => {
10239            try { return JSON.parse(localStorage.getItem('tct_ads') || '{}'); } catch (_) { return {}; }
10240        })();
10241        const adsParamMap = {
10242            msis_campaign: 'msisCampaign', msis_adgroup: 'msisAdgroup', msis_adgroup_id: 'msisAdgroupId',
10243            msis_keyword: 'msisKeyword', msis_match: 'msisMatchtype', msis_matchtype: 'msisMatchtype', msis_device: 'msisDevice'
10244        };
10245        Object.entries(adsParamMap).forEach(([queryKey, storageKey]) => {
10246            const value = params.get(queryKey);
10247            if (value && !storedAds[storageKey]) storedAds[storageKey] = decodeTrackingValue(value);
10248        });
10249        try { localStorage.setItem('tct_ads', JSON.stringify(storedAds)); } catch (_) {}
10250
10251        // Meta Ads (Facebook / Instagram): First-touch Kampagnen- und Anzeigenparameter.
10252        // Der automatische fbclid reicht bereits fuer die Erkennung von Meta-Traffic; die
10253        // msis_meta_* Parameter ermoeglichen zusaetzlich eine belastbare Kampagnen-/Creative-Auswertung.
10254        const storedMetaAds = (() => {
10255            try { return JSON.parse(localStorage.getItem('tct_meta_ads') || '{}'); } catch (_) { return {}; }
10256        })();
10257        const metaParamMap = {
10258            msis_meta_campaign: 'metaCampaign', msis_meta_campaign_name: 'metaCampaignName',
10259            msis_meta_adset: 'metaAdset', msis_meta_adset_name: 'metaAdsetName',
10260            msis_meta_ad: 'metaAd', msis_meta_ad_name: 'metaAdName',
10261            msis_meta_placement: 'metaPlacement', msis_meta_platform: 'metaPlatform'
10262        };
10263        Object.entries(metaParamMap).forEach(([queryKey, storageKey]) => {
10264            const value = params.get(queryKey);
10265            if (value && !storedMetaAds[storageKey]) storedMetaAds[storageKey] = decodeTrackingValue(value).slice(0, 255);
10266        });
10267        if (params.get('fbclid') && !storedMetaAds.metaClickId) storedMetaAds.metaClickId = params.get('fbclid').slice(0, 255);
10268        const metaSource = (params.get('utm_source') || storedUtm.utm_source || '').toLowerCase();
10269        if (!storedMetaAds.metaPlatform) {
10270            if (['ig','instagram'].includes(metaSource)) storedMetaAds.metaPlatform = 'Instagram';
10271            else if (['fb','facebook'].includes(metaSource)) storedMetaAds.metaPlatform = 'Facebook';
10272            else if (['msg','messenger'].includes(metaSource)) storedMetaAds.metaPlatform = 'Messenger';
10273            else if (metaSource === 'an') storedMetaAds.metaPlatform = 'Audience Network';
10274            else if (['meta','meta_ads','meta-ads'].includes(metaSource)) storedMetaAds.metaPlatform = 'Meta';
10275        }
10276        try { localStorage.setItem('tct_meta_ads', JSON.stringify(storedMetaAds)); } catch (_) {}
10277
10278        // Eigene externe Landingpages: explizite msis_* Parameter bleiben fuer die gesamte Journey erhalten.
10279        // Dadurch ist die Zuordnung auch dann belastbar, wenn der Browser spaeter keinen Referrer mehr mitsendet.
10280        const storedLanding = (() => {
10281            try { return JSON.parse(localStorage.getItem('tct_landing') || '{}'); } catch (_) { return {}; }
10282        })();
10283        const landingParamMap = {
10284            msis_source: 'landingSource', msis_landing: 'landingId', msis_target: 'landingTarget', msis_cta: 'landingCta'
10285        };
10286        Object.entries(landingParamMap).forEach(([queryKey, storageKey]) => {
10287            const value = params.get(queryKey);
10288            if (value && !storedLanding[storageKey]) storedLanding[storageKey] = decodeTrackingValue(value).slice(0, 255);
10289        });
10290        if ((storedLanding.landingSource || '').toLowerCase() === 'landingpage' && !storedLanding.landingReferrer && document.referrer) {
10291            storedLanding.landingReferrer = document.referrer.slice(0, 1000);
10292        }
10293        try { localStorage.setItem('tct_landing', JSON.stringify(storedLanding)); } catch (_) {}
10294
10295        const text = sel => document.querySelector(sel)?.textContent?.trim() || null;
10296        const currentPathLower = location.pathname.toLowerCase();
10297        const isK3ConfiguratorPage = currentPathLower.includes('/planenkonfigurator');
10298        const isProductPage = document.body.classList.contains('is-ctl-product') || !!document.querySelector('.product-detail, .product-detail-buy');
10299        const productNumber = isProductPage ? (text('.product-detail-ordernumber, .product-detail-ordernumber-container, [itemprop="sku"]')?.replace(/^.*?:\s*/, '') || null) : null;
10300        const productName = isProductPage ? (text('h1.product-detail-name, h1') || document.title) : null;
10301        const productId = isProductPage ? (document.querySelector('input[name^="lineItems"][name$="[referencedId]"]')?.value || null) : null;
10302
10303        function visible(el) {
10304            return !!el && el.offsetParent !== null;
10305        }
10306
10307        const isK3Product = !!productNumber && productNumber.toUpperCase().startsWith('K3');
10308
10309        function hasOldConfiguratorMarkers() {
10310            if (!isProductPage || !productNumber || isK3Product || isK3ConfiguratorPage) return false;
10311
10312            const root = document.querySelector('.product-detail-buy, .product-detail, main') || document.body;
10313            const bodyText = (root.innerText || '').toLowerCase();
10314            const markers = ['breite', 'höhe', 'konfektionsart', 'sonderausführung', 'zwischensumme', 'gesamtpreis', 'endpreis'];
10315            const markerCount = markers.filter(m => bodyText.includes(m)).length;
10316            const controls = root.querySelectorAll('input:not([type="hidden"]):not([type="submit"]), select, textarea').length;
10317
10318            // Pixeleys/alter Konfigurator: mehrere echte Konfigurationsfelder plus typische Kalkulationsbegriffe.
10319            // So werden normale Produkt-, Kategorie- und CMS-Seiten nicht mehr als "old" markiert.
10320            return markerCount >= 4 && controls >= 3;
10321        }
10322
10323        const oldConfigurator = hasOldConfiguratorMarkers();
10324        // K3 ist shopuebergreifend der neue Konfigurator. Zusaetzlich gilt die kanonische
10325        // CMS-/Konfiguratorroute /Planenkonfigurator/ als neuer Konfigurator, auch wenn auf
10326        // der Einstiegsseite noch keine Produktnummer im DOM vorhanden ist.
10327        const configuratorType = (isK3Product || isK3ConfiguratorPage) ? 'new' : (oldConfigurator ? 'old' : null);
10328        const startedAt = now();
10329        let configStarted = false;
10330        let interactionCount = 0;
10331        let cartIntent = false;
10332        let lastPrice = null;
10333        let lastPriceText = null;
10334
10335        function parsePrice(raw) {
10336            if (!raw || !raw.includes('€')) return null;
10337            const cleaned = raw.replace(/\u00a0/g, ' ');
10338            const matches = cleaned.match(/(?:\d{1,3}(?:\.\d{3})*|\d+),\d{2}\s*€|(?:\d{1,3}(?:,\d{3})*|\d+)\.\d{2}\s*€/g);
10339            if (!matches || !matches.length) return null;
10340
10341            const values = matches.map(m => {
10342                const s = m.replace(/\s*€/, '').replace(/\s/g, '');
10343                const normalized = s.includes(',') && s.lastIndexOf(',') > s.lastIndexOf('.')
10344                    ? s.replace(/\./g, '').replace(',', '.')
10345                    : s.replace(/,/g, '');
10346                const n = Number(normalized);
10347                return Number.isFinite(n) && n > 0 ? n : null;
10348            }).filter(v => v !== null);
10349
10350            return values.length ? Math.max(...values) : null;
10351        }
10352
10353        function oldConfiguratorPrice() {
10354            if (!oldConfigurator) return null;
10355            const root = document.querySelector('.product-detail-buy, .product-detail, main') || document.body;
10356            const candidates = [];
10357
10358            root.querySelectorAll('div, span, p, td, th, strong, b, label').forEach(el => {
10359                if (!visible(el)) return;
10360                const own = (el.textContent || '').trim();
10361                if (!/endpreis|gesamtpreis/i.test(own)) return;
10362
10363                const containers = [el, el.parentElement, el.closest('tr'), el.closest('.row'), el.nextElementSibling].filter(Boolean);
10364                containers.forEach(c => {
10365                    const t = (c.textContent || '').trim();
10366                    // Nur Kandidaten mit echtem Euro-Zeichen akzeptieren. KG, Maße, Prozentwerte etc. sind damit ausgeschlossen.
10367                    if (t && t.includes('€') && t.length < 800) candidates.push(t);
10368                });
10369            });
10370
10371            for (const raw of candidates) {
10372                const p = parsePrice(raw);
10373                if (p !== null) {
10374                    lastPriceText = raw.slice(0, 300);
10375                    return p;
10376                }
10377            }
10378            return null;
10379        }
10380
10381        function standardProductPrice() {
10382            const selectors = ['.product-detail-price', '[itemprop="price"]', '.product-detail-price-container'];
10383            for (const sel of selectors) {
10384                for (const el of document.querySelectorAll(sel)) {
10385                    if (!visible(el)) continue;
10386                    const p = parsePrice(el.textContent || el.getAttribute('content') || '');
10387                    if (p !== null) {
10388                        lastPriceText = (el.textContent || '').trim().slice(0, 300);
10389                        return p;
10390                    }
10391                }
10392            }
10393            return null;
10394        }
10395
10396        // 2.0.51: K3/neue Konfiguratoren zeigen den berechneten Preis nicht zwingend
10397        // in Shopwares .product-detail-price. Deshalb zuerst typische Ergebnis-/Summenfelder
10398        // des gerenderten Konfigurators pruefen und erst danach auf den Produktpreis fallen.
10399        function dynamicConfiguratorPrice() {
10400            if (configuratorType !== 'new') return null;
10401            const root = document.querySelector('[class*="configurator"], [class*="konfigurator"], .product-detail-buy, .product-detail, main') || document.body;
10402            const directSelectors = [
10403                '[class*="total-price"]','[class*="totalPrice"]','[class*="gesamtpreis"]','[class*="endpreis"]',
10404                '[data-total-price]','[data-configurator-price]','[data-price]'
10405            ];
10406            for (const sel of directSelectors) {
10407                for (const el of root.querySelectorAll(sel)) {
10408                    if (!visible(el)) continue;
10409                    const raw = (el.textContent || el.getAttribute('data-total-price') || el.getAttribute('data-configurator-price') || el.getAttribute('data-price') || '').trim();
10410                    const p = raw.includes('€') ? parsePrice(raw) : (Number(String(raw).replace(',', '.')) || null);
10411                    if (p !== null && Number.isFinite(Number(p)) && Number(p) > 0) {
10412                        lastPriceText = raw.slice(0,300);
10413                        return Number(p);
10414                    }
10415                }
10416            }
10417            const candidates = [];
10418            root.querySelectorAll('div,span,p,td,th,strong,b,label').forEach(el => {
10419                if (!visible(el)) return;
10420                const own=(el.textContent||'').replace(/\s+/g,' ').trim();
10421                if (!/(gesamtpreis|endpreis|gesamtsumme|gesamtbetrag|konfigurationspreis)/i.test(own)) return;
10422                [el,el.parentElement,el.closest('tr'),el.closest('.row'),el.nextElementSibling].filter(
10422Boolean).forEach(c=>{
10423                    const t=(c.textContent||'').replace(/\s+/g,' ').trim();
10424                    if(t.includes('€') && t.length<900) candidates.push(t);
10425                });
10426            });
10427            for (const raw of candidates) {
10428                const p=parsePrice(raw);
10429                if(p!==null){ lastPriceText=raw.slice(0,300); return p; }
10430            }
10431            return null;
10432        }
10433
10434        function currentPrice() {
10435            if (configuratorType === 'old') return oldConfiguratorPrice();
10436            if (configuratorType === 'new') return dynamicConfiguratorPrice() ?? standardProductPrice();
10437            return null;
10438        }
10439
10440        function configurationFieldSnapshot() {
10441            if (!configuratorType) return [];
10442            const root = document.querySelector('.product-detail-buy, .product-detail, main') || document.body;
10443            const allowedLabel = /(breite|width|hoehe|höhe|height|laenge|länge|length|mass|maß|groesse|größe|farbe|color|material|qualität|qualitaet|gewicht|gramm|ösen|oesen|saum|rand|konfektion|ausführung|ausfuehrung|art|typ|type|variante|option|ausstattung|befestigung|form|seil|abstand|tür|tuer|fenster|seite|menge|quantity|stück|stueck)/i;
10444            const blocked = /(name|email|e-mail|mail|telefon|phone|adresse|address|strasse|straße|ort|city|plz|postal|nachricht|message|firma|company|passwort|password)/i;
10445            const rows = [];
10446            const seen = new Set();
10447
10448            function labelFor(el) {
10449                const id = el.id || '';
10450                let label = id ? document.querySelector(`label[for="${CSS.escape(id)}"]`)?.textContent?.trim() : '';
10451                if (!label) label = el.closest('.form-group, .form-row, .row, .configurator, [class*="config"]')?.querySelector('label')?.textContent?.trim() || '';
10452                if (!label) label = el.getAttribute('aria-label') || el.getAttribute('data-label') || el.getAttribute('name') || '';
10453                return label.replace(/\s+/g, ' ').replace(/[:*]+\s*$/, '').trim().slice(0, 100);
10454            }
10455            function valueFor(el) {
10456                if (el instanceof HTMLSelectElement) return el.selectedOptions[0]?.textContent?.trim() || el.value || '';
10457                if (el instanceof HTMLInputElement && (el.type === 'checkbox' || el.type === 'radio')) {
10458                    if (!el.checked) return '';
10459                    const ownLabel = labelFor(el);
10460                    return ownLabel || el.value || 'Ja';
10461                }
10462                return (el.value || '').trim();
10463            }
10464
10465            root.querySelectorAll('input, select, textarea').forEach(el => {
10466                if (!visible(el)) return;
10467                if (el instanceof HTMLInputElement && ['hidden','submit','button','reset','file','email','tel','password'].includes(el.type)) return;
10468                const label = labelFor(el);
10469                const name = (el.getAttribute('name') || '').trim();
10470                if (!label || blocked.test(label) || blocked.test(name)) return;
10471                if (!allowedLabel.test(label) && !allowedLabel.test(name)) return;
10472                const value = valueFor(el).replace(/\s+/g, ' ').trim().slice(0, 160);
10473                if (!value || value === '0' || value === '-') return;
10474                const key = `${label.toLowerCase()}|${value.toLowerCase()}`;
10475                if (seen.has(key)) return;
10476                seen.add(key);
10477                rows.push({label, value});
10478            });
10479            return rows.slice(0, 30);
10480        }
10481
10482        function serializedConfiguration() {
10483            try {
10484                const rows = configurationFieldSnapshot();
10485                return rows.length ? JSON.stringify(rows) : null;
10486            } catch (_) { return null; }
10487        }
10488
10489        function saveLastConfiguration(configurationSnapshot = null, priceSnapshot = null) {
10490            if (!configuratorType || !productNumber) return;
10491            try {
10492                localStorage.setItem('tct_last_config', JSON.stringify({
10493                    productId, productNumber, productName, configuratorType,
10494                    price: priceSnapshot ?? lastPrice,
10495                    configuration: configurationSnapshot ?? serializedConfiguration(),
10496                    timestamp: now()
10497                }));
10498            } catch (_) {}
10499        }
10500
10501        function getLastConfiguration() {
10502            try {
10503                const c = JSON.parse(localStorage.getItem('tct_last_config') || 'null');
10504                if (!c || !c.timestamp || now() - c.timestamp > 86400000) return null;
10505                return c;
10506            } catch (_) { return null; }
10507        }
10508
10509        function payload(event, metadata = {}) {
10510            const configurationSnapshot = configuratorType ? serializedConfiguration() : null;
10511            const p = currentPrice();
10512            if (p !== null) lastPrice = p;
10513            if (configStarted) saveLastConfiguration(configurationSnapshot, lastPrice);
10514            const contextualEvent = ['offer_form_view','offer_form_submit_attempt','offer_form_validation_error','offer_form_submit_success','offer_form_submit_error','email_click','phone_click','service_phone_click','checkout_click','paypal_express_click','coupon_open','coupon_submit','config_details_open','product_remove','quantity_change','checkout_start','checkout_submit_attempt','checkout_error','order_success','payment_method_snapshot','payment_method_changed'].includes(event);
10515            const prior = contextualEvent ? getLastConfiguration() : null;
10516            return {
10517                event, sessionId: sid,
10518                productId: productId || prior?.productId || null,
10519                productNumber: productNumber || prior?.productNumber || null,
10520                productName: productName || prior?.productName || null,
10521                configuratorType: configuratorType || prior?.configuratorType || null,
10522                price: event === 'order_success' && Number.isFinite(Number(metadata.orderTotal))
10523                    ? Number(metadata.orderTotal)
10524                    : (lastPrice ?? prior?.price ?? null),
10525                pageUrl: location.href, referrer: document.referrer || null,
10526                utmSource: storedUtm.utm_source || null, utmMedium: storedUtm.utm_medium || null,
10527                utmCampaign: storedUtm.utm_campaign || null, utmTerm: storedUtm.utm_term || null,
10528                utmContent: storedUtm.utm_content || null,
10529                metadata: Object.assign({
10530                    durationSeconds: Math.round((now() - startedAt) / 1000),
10531                    interactionCount,
10532                    lastPriceText,
10533                    configuration: configuratorType ? (configurationSnapshot || prior?.configuration || null) : (prior?.configuration || null)
10534                }, storedAds, storedMetaAds, storedLanding, metadata)
10535            };
10536        }
10537
10538        function track(event, metadata = {}, beacon = false) {
10539            const body = JSON.stringify(payload(event, metadata));
10540            if (beacon && navigator.sendBeacon) {
10541                navigator.sendBeacon(endpoint, new Blob([body], {type:'application/json'}));
10542                return;
10543            }
10544            fetch(endpoint, {method:'POST', headers:{'Content-Type':'application/json','X-Requested-With':'XMLHttpRequest'}, body, keepalive:true, credentials:'same-origin'}).catch(() => {});
10545        }
10546
10547        // 2.0.87: Shopware-Consent gezielt und datensparsam als Journey-Ereignis erfassen.
10548        // Es werden keine Cookie-Inhalte gespeichert, nur Entscheidung, Quelle und Zeitpunkt.
10549        const consentKey = 'tct_consent_state';
10550        const consentBannerSelector = '.cookie-permission-container[data-cookie-permission], .cookie-permission-container, .cookie-permission, [data-cookie-permission]';
10551        function visibleConsentBanner() {
10552            const banner = document.querySelector(consentBannerSelector);
10553            return !!(banner && banner.getClientRects().length && getComputedStyle(banner).display !== 'none');
10554        }
10555        function detectConsentState() {
10556            const cookie = document.cookie || '';
10557            // Cookie-Werte werden nur lokal ausgewertet und niemals an den Tracker uebertragen.
10558            if (/(cookie[-_]?preferences|cookie[-_]?consent|consent[-_]?status|cookie[-_]?allowed)/i.test(cookie)) {
10559                if (/(deny|denied|reject|rejected|essential|necessary|technically|required|false|=0)/i.test(cookie)) return 'rejected';
10560                return 'accepted';
10561            }
10562            return visibleConsentBanner() ? 'pending' : 'unknown';
10563        }
10564        function consentSource(el) {
10565            if (!el) return 'auto';
10566            // Shopware Standard: "Nur technisch notwendige". Der Wrapper ist stabiler als der Buttontext.
10567            if (el.closest && el.closest('.js-cookie-permission-button')) return 'shopware-essential-button';
10568            if (el.closest && el.closest('.js-cookie-configuration-button')) return 'shopware-configure-button';
10569            const classes = String(el.className || '').toLowerCase();
10570            const text = String(el.textContent || el.value || el.getAttribute('aria-label') || '').toLowerCase().replace(/\s+/g, ' ').trim();
10571            if (/cookie.*(accept.*all|all.*accept)|accept.*all/.test(classes)) return 'accept-button';
10572            if (/cookie.*(save|confirm)/.test(classes)) return 'configuration-save';
10573            if (/(nur\s+(technisch\s+)?notwendige|technisch\s+notwendige|nur\s+erforderliche|ablehnen|reject|deny|essential\s+only|necessary\s+only)/.test(text)) return 'shopware-essential-button';
10574            if (/(alle\s+(cookies\s+)?akzeptieren|alle\s+akzeptieren|akzeptieren|accept\s+all|allow\s+all|zustimmen)/.test(text)) return 'accept-button';
10575            if (/(konfigurieren|einstellungen|preferences|settings)/.test(text)) return 'shopware-configure-button';
10576            if (/(auswahl\s+speichern|einstellungen\s+speichern|speichern|save\s+selection|save\s+preferences)/.test(text)) return 'configuration-save';
10577            return 'consent-control';
10578        }
10579        function emitConsent(state, source, changed) {
10580            if (!['accepted','rejected','pending'].includes(state)) return;
10581            let previous = ''; try { previous = sessionStorage.getItem(consentKey) || ''; } catch (_) {}
10582            if (previous === state && !changed) return;
10583            const eventName = state === 'accepted' ? 'consent_accepted' : (state === 'rejected' ? 'consent_rejected' : 'consent_banner_seen');
10584            track(eventName, {consentState:state, consentSource:source || 'auto'});
10585            if (changed && previous && previous !== state) track('consent_changed', {consentState:state, consentSource:source || 'control'});
10586            try { sessionStorage.setItem(consentKey, state); } catch (_) {}
10587        }
10588        function inspectConsentBanner(source) {
10589            if (visibleConsentBanner()) emitConsent('pending', source || 'shopware-banner', false);
10590        }
10591        const initialConsent = detectConsentState();
10592        if (initialConsent === 'pending') emitConsent('pending', 'shopware-banner', false);
10593        else if (initialConsent === 'accepted' || initialConsent === 'rejected') emitConsent(initialConsent, 'existing-consent', false);
10594        // Shopware setzt/blendet den Banner teils erst nach Initialisierung des Storefront-JS ein.
10595        if (document.documentElement && typeof MutationObserver !== 'undefined') {
10596            const consentObserver = new MutationObserver(() => inspectConsentBanner('shopware-banner'));
10597            consentObserver.observe(document.documentElement, {childList:true, subtree:true, attributes:true, attributeFilter:['style','class']});
10598            window.setTimeout(() => consentObserver.disconnect(), 10000);
10599        }
10600        document.addEventListener('click', ev => {
10601            const el = ev.target && ev.target.closest ? ev.target.closest('button,a,[role=button],input[type=button],input[type=submit]') : null;
10602            if (!el) return;
10603            const src = consentSource(el);
10604            if (src === 'consent-control') return;
10605            if (src === 'shopware-configure-button') {
10606                track('consent_config_opened', {consentState:'pending', consentSource:src});
10607                return;
10608            }
10609            if (src === 'shopware-essential-button') {
10610                // Dieser Shopware-Button bedeutet bewusst: nur technisch notwendige Cookies.
10611                emitConsent('rejected', src, true);
10612                return;
10613            }
10614            window.setTimeout(() => {
10615                let state = detectConsentState();
10616                if (state === 'unknown' || state === 'pending') state = src === 'accept-button' ? 'accepted' : 'rejected';
10617                emitConsent(state, src, true);
10618            }, 120);
10619        }, true);
10620
10621        // 2.0.85: Checkout-Fortschritt datensparsam erfassen. Keine Feldinhalte, nur der erreichte Bereich.
10622        if (location.pathname.toLowerCase().includes('/checkout/')) {
10623            const checkoutStepSeen = new Set();
10624            function emitCheckoutStep(step, source) {
10625                if (!step || checkoutStepSeen.has(step)) return;
10626                checkoutStepSeen.add(step);
10627                track('checkout_step', {checkoutStep:step, reason:source || 'dom'});
10628            }
10629            const checkoutPath = location.pathname.toLowerCase();
10630            if (checkoutPath.includes('/checkout/cart')) emitCheckoutStep('cart', 'route');
10631            else if (checkoutPath.includes('/checkout/confirm')) emitCheckoutStep('confirm', 'route');
10632            else if (checkoutPath.includes('/checkout/finish')) emitCheckoutStep('finish', 'route');
10633            document.addEventListener('focusin', ev => {
10634                const el = ev.target;
10635                if (!el || !el.matches || !el.matches('input,select,textarea')) return;
10636                const key = String((el.name || '') + ' ' + (el.id || '')).toLowerCase();
10637                if (/(street|zipcode|city|country|address|billing|shippingaddress)/.test(key)) emitCheckoutStep('address', 'field');
10638                else if (/(shipping|delivery)/.test(key)) emitCheckoutStep('shipping', 'field');
10639                else if (/(payment)/.test(key)) emitCheckoutStep('payment', 'field');
10640            }, true);
10641        }
10642
10643        track('page_view');
10644        if (isProductPage) track('product_view');
10645        if (isK3ConfiguratorPage && configuratorType === 'new') {
10646            // K3 laeuft in einem fremden iframe. Ein Seitenaufruf ist nur ein Einstieg und
10647            // darf nicht als gestartete/abgeschlossene Konfiguration gewertet werden.
10648            // Die erste belastbare K3-Konfiguration wird serverseitig beim /k3/cart-Handoff erfasst.
10649            track('k3_entry', {entryRoute:'planenkonfigurator', measurementModel:'iframe_entry_only'});
10650        }
10651
10652        // msisdesign.-Banner/Support-Plugin: gesonderte Wirksamkeitsmessung.
10653        // Die Erkennung erfolgt ausschliesslich ueber die vom Banner-Plugin ausgegebenen
10654        // DOM-Klassen. Ist das Plugin nicht aktiv/gerendert, entstehen keine Events.
10655        const msisBanner = document.querySelector('[class*="msisdesign-configurator-banner-v"]');
10656        const msisSupport = document.querySelector('[class*="msisdesign-configurator-support-v"]');
10657        function msisComponentVersion(el) {
10658            if (!el) return null;
10659            const cls = String(el.className || '');
10660            const m = cls.match(/msisdesign-configurator-(?:banner|support)-v(\d+)/i);
10661            return m ? m[1] : null;
10662        }
10663        function trackMsisImpression(el, eventName, component) {
10664            if (!el || typeof IntersectionObserver === 'undefined') return;
10665            const key = 'tct_' + eventName + '_' + location.pathname;
10666            try { if (sessionStorage.getItem(key) === '1') return; } catch (_) {}
10667            let timer = null;
10668            const io = new IntersectionObserver(entries => {
10669                const entry = entries[0];
10670                if (entry && entry.isIntersecting && entry.intersectionRatio >= 0.5) {
10671                    if (!timer) timer = setTimeout(() => {
10672                        track(eventName, {
10673                            component,
10674                            componentVersion: msisComponentVersion(el),
10675                            visibilityThreshold: 0.5,
10676                            visibleMilliseconds: 600
10677                        });
10678                        try { sessionStorage.setItem(key, '1'); } catch (_) {}
10679                        io.disconnect();
10680                        timer = null;
10681                    }, 600);
10682                } else if (timer) {
10683                    clearTimeout(timer);
10684                    timer = null;
10685                }
10686            }, {threshold:[0,0.5,1]});
10687            io.observe(el);
10688        }
10689        trackMsisImpression(msisBanner, 'msis_banner_impression', 'configurator_switch_banner');
10690        trackMsisImpression(msisSupport, 'msis_support_impression', 'configurator_support');
10691
10692        // msisdesign.-Rescue-Popups in Warenkorb und Checkout. Nur wenn das separate
10693        // Banner/Conversion-Plugin die Komponente wirklich ausgibt, entstehen Events.
10694        const msisCartRescue = document.querySelector('[class*="msisdesign-cart-rescue-v"]');
10695        const msisCheckoutRescue = document.querySelector('[class*="msisdesign-checkout-rescue-v"]');
10696        function msisRescueVersion(el, kind) {
10697            if (!el) return null;
10698            const cls = String(el.className || '');
10699            const re = kind === 'checkout' ? /msisdesign-checkout-rescue-v(\d+)/i : /msisdesign-cart-rescue-v(\d+)/i;
10700            const m = cls.match(re);
10701            return m ? m[1] : null;
10702        }
10703        function rescueVisible(el) {
10704            if (!el) return false;
10705            return el.classList.contains('is-visible') && el.getAttribute('aria-hidden') !== 'true';
10706        }
10707        function watchRescuePopup(el, kind) {
10708            if (!el) return;
10709            const storageKey = 'tct_msis_' + kind + '_rescue_seen_' + location.pathname;
10710            let wasVisible = false;
10711            const evaluate = () => {
10712                const isVisibleNow = rescueVisible(el);
10713                if (isVisibleNow && !wasVisible) {
10714                    let already = false;
10715                    try { already = sessionStorage.getItem(storageKey) === '1'; } catch (_) {}
10716                    if (!already) {
10717                        track(kind === 'checkout' ? 'msis_checkout_rescue_impression' : 'msis_cart_rescue_impression', {
10718                            component: kind + '_rescue_popup',
10719                            componentVersion: msisRescueVersion(el, kind)
10720                        });
10721                        try { sessionStorage.setItem(storageKey, '1'); } catch (_) {}
10722                    }
10723                }
10724                wasVisible = isVisibleNow;
10725            };
10726            evaluate();
10727            new MutationObserver(evaluate).observe(el, {attributes:true, attributeFilter:['class','aria-hidden']});
10728        }
10729        watchRescuePopup(msisCartRescue, 'cart');
10730        watchRescuePopup(msisCheckoutRescue, 'checkout');
10731
10732        const pathLower = currentPathLower;
10733        const contactPathPatterns = ['/contact', '/kontakt', '/kontaktformular', '/nuetzliche-links/kontaktformular', '/form/contact', '/angebotsformular'];
10734        const isOfferPage = contactPathPatterns.some(p => pathLower.includes(p));
10735        const isCheckoutCart = pathLower.includes('/checkout/cart');
10736        const isCheckoutRegister = pathLower.includes('/checkout/register');
10737        const isCheckoutConfirm = pathLower.includes('/checkout/confirm');
10738        const isCheckoutFinish = pathLower.includes('/checkout/finish');
10739        // Shopware fuehrt Gast-/nicht eingeloggte Besucher zunaechst ueber /checkout/register.
10740        // Erst danach folgt /checkout/confirm. Beide Seiten gehoeren zum echten Checkout-Einstieg;
10741        // /checkout/cart ist dagegen weiterhin nur Warenkorb und darf nicht als Checkout-Start zaehlen.
10742        const isCheckoutEntry = isCheckoutRegister || isCheckoutConfirm;
10743        const serverPaymentSnapshot = {
10744            paymentMethodId: "c2c55d8740024632aedc065ac99f548e",
10745            paymentMethodName: "PayPal"
10746        };
10747
10748        function paymentMethodSnapshot() {
10749            let id = String(serverPaymentSnapshot?.paymentMethodId || '').trim();
10750            let name = String(serverPaymentSnapshot?.paymentMethodName || '').trim();
10751            const candidates = Array.from(document.querySelectorAll('input[type="radio"], input[type="checkbox"], select')).filter(el => {
10752                const n = (el.getAttribute('name') || '').toLowerCase();
10753                const i = (el.id || '').toLowerCase();
10754                return n.includes('payment') || n.includes('zahl') || i.includes('payment') || i.includes('zahl');
10755            });
10756            for (const el of candidates) {
10757                let selected = false;
10758                let value = '';
10759                if (el instanceof HTMLSelectElement) { selected = true; value = el.value || ''; }
10760                else if (el instanceof HTMLInputElement) { selected = el.checked; value = el.value || ''; }
10761                if (!selected) continue;
10762                if (value) id = value.slice(0, 80);
10763                const label = (el.id ? document.querySelector(`label[for="${CSS.escape(el.id)}"]`) : null)
10764                    || el.closest('.payment-method, .payment-method-input, .form-check, .confirm-payment')?.querySelector('label, .payment-method-label, .form-check-label');
10765                const labelText = (label?.textContent || '').replace(/\s+/g, ' ').trim();
10766                if (labelText) name = labelText.slice(0, 160);
10767                break;
10768            }
10769            return {paymentMethodId: id || null, paymentMethodName: name || null};
10770        }
10771
10772        function withPayment(metadata = {}) {
10773            return Object.assign({}, paymentMethodSnapshot(), metadata);
10774        }
10775
10776        const finishOrder = null;
10777        if (isOfferPage) track('offer_form_view');
10778
10779        function pendingGet(key) {
10780            try { return JSON.parse(sessionStorage.getItem(key) || 'null'); } catch (_) { return null; }
10781        }
10782        function pendingSet(key, value) {
10783            try { sessionStorage.setItem(key, JSON.stringify(value)); } catch (_) {}
10784        }
10785        function pendingRemove(key) {
10786            try { sessionStorage.removeItem(key); } catch (_) {}
10787        }
10788        function invalidFieldNames(form) {
10789            return Array.from(form.querySelectorAll(':invalid'))
10790                .map(el => el.getAttribute('name') || el.getAttribute('id') || el.tagName.toLowerCase())
10791                .filter(Boolean).slice(0, 12).join(',');
10792        }
10793        function hasVisible(selector) {
10794            return Array.from(document.querySelectorAll(selector)).some(visible);
10795        }
10796        function evaluatePendingResponses() {
10797            const offerPending = pendingGet('tct_offer_pending');
10798            if (offerPending && offerPending.at) {
10799                const age = Math.round((now() - offerPending.at) / 1000);
10800                if (isOfferPage) {
10801                    if (hasVisible('.alert-success, .flashbags .alert-success, .form-success')) {
10802                        track('offer_form_submit_success', {pendingAgeSeconds: age, reason:'success_message'});
10803                        pendingRemove('tct_offer_pending');
10804                    } else if (hasVisible('.alert-danger, .alert-error, .flashbags .alert-danger, .form-error-message')) {
10805                        track('offer_form_submit_error', {errorType:'server_response', pendingAgeSeconds: age});
10806                        pendingRemove('tct_offer_pending');
10807                    }
10808                } else {
10809                    const referrerLower = (document.referrer || '').toLowerCase();
10810                    const cameFromOfferForm = contactPathPatterns.some(p => referrerLower.includes(p));
10811                    // Ein direkter Same-Origin-Redirect nach einem zuvor markierten Kontaktformular-Submit
10812                    // gilt als Erfolgssignal. Es werden dabei keine Formulardaten gespeichert.
10813                    if (age >= 0 && age <= 180 && cameFromOfferForm) {
10814                        track('offer_form_submit_success', {pendingAgeSeconds: age, reason:'post_submit_redirect'});
10815                        pendingRemove('tct_offer_pending');
10816                    } else if (age > 600) {
10817                        pendingRemove('tct_offer_pending');
10818                    }
10819                }
10820            }
10821
10822            const checkoutPending = pendingGet('tct_checkout_pending');
10823            if (isCheckoutFinish) {
10824                track('order_success', withPayment(Object.assign({checkoutStep:'finish'}, finishOrder || {})));
10825                pendingRemove('tct_checkout_pending');
10826                try { sessionStorage.removeItem('tct_checkout_started'); } catch (_) {}
10827            } else if (isCheckoutConfirm && checkoutPending && checkoutPending.at) {
10828                const age = Math.round((now() - checkoutPending.at) / 1000);
10829                if (hasVisible('.alert-danger, .alert-error, .flashbags .alert-danger, .checkout-error, .payment-error')) {
10830                    track('checkout_error', withPayment({errorType:'server_response', checkoutStep:'confirm', pendingAgeSeconds: age}));
10831                    pendingRemove('tct_checkout_pending');
10832                }
10833            }
10834        }
10835
10836        document.addEventListener('click', e => {
10837            const target = e.target instanceof Element ? e.target : null;
10838            if (!target) return;
10839
10840            const cartRescueRoot = target.closest('[class*="msisdesign-cart-rescue-v"]');
10841            const checkoutRescueRoot = target.closest('[class*="msisdesign-checkout-rescue-v"]');
10842            const rescueRoot = checkoutRescueRoot || cartRescueRoot;
10843            if (rescueRoot) {
10844                const kind = checkoutRescueRoot ? 'checkout' : 'cart';
10845                const eventPrefix = kind === 'checkout' ? 'msis_checkout_rescue_' : 'msis_cart_rescue_';
10846                const clickable = target.closest('a,button,[data-msis-checkout-rescue-close],[data-msis-cart-rescue-close]') || target;
10847                const cls = String(clickable.className || '');
10848                const text = (clickable.textContent || clickable.getAttribute?.('aria-label') || '').replace(/\s+/g, ' ').trim();
10849                const hrefRescue = clickable.getAttribute?.('href') || '';
10850                const normalizedRescue = hrefRescue.toLowerCase().replace(/[\s()-]/g, '');
10851                const meta = {component:kind + '_rescue_popup', componentVersion:msisRescueVersion(rescueRoot, kind)};
10852
10853                if (kind === 'checkout' && clickable.closest('[class*="__reasons"]')) {
10854                    let reason = 'other';
10855                    const low = text.toLowerCase();
10856                    if (low.includes('produkt')) reason = 'product';
10857                    else if (low.includes('versand') || low.includes('liefer')) reason = 'shipping_delivery';
10858                    else if (low.includes('zahlung')) reason = 'payment';
10859                    track(eventPrefix + 'reason', Object.assign({}, meta, {reason, label:text.slice(0,120)}), true);
10860                } else if (normalizedRescue.startsWith('tel:')) {
10861                    track(eventPrefix + 'phone_click', Object.assign({}, meta, {link:hrefRescue}), true);
10862                } else if (hrefRescue.toLowerCase().startsWith('mailto:')) {
10863                    track(eventPrefix + 'email_click', Object.assign({}, meta, {link:hrefRescue}), true);
10864                } else if (cls.includes('__offer') || clickable.closest('[class*="__offer"]')) {
10865                    track(eventPrefix + 'offer_click', meta, true);
10866                } else if (cls.includes('__checkout') || (kind === 'checkout' && cls.includes('__continue'))) {
10867                    track(eventPrefix + 'continue', meta, true);
10868                }
10868 else if (cls.includes('__dismiss')) {
10869                    track(eventPrefix + 'dismiss', meta, true);
10870                } else if (clickable.hasAttribute?.('data-msis-checkout-rescue-close') || clickable.hasAttribute?.('data-msis-cart-rescue-close') || cls.includes('__close')) {
10871                    track(eventPrefix + 'close', meta, true);
10872                }
10873            }
10874
10875            // 2.1.6: Warenkorb-Mikrointeraktionen messen, damit der Abbruch zwischen
10876            // Warenkorb und Checkout nicht mehr nur als pauschaler Funnel-Verlust sichtbar ist.
10877            const clickableControl = target.closest('a,button,[role="button"],summary');
10878            const controlText = (clickableControl?.textContent || clickableControl?.getAttribute?.('aria-label') || clickableControl?.getAttribute?.('title') || '').replace(/\s+/g,' ').trim();
10879            const controlClass = String(clickableControl?.className || '').toLowerCase();
10880            const controlHref = String(clickableControl?.getAttribute?.('href') || '').toLowerCase();
10881            const onCart = pathLower.includes('/checkout/cart');
10882
10883            if (onCart && clickableControl) {
10884                const checkoutLike = /zur\s*kasse|checkout|kasse/.test(controlText.toLowerCase()) || /checkout/.test(controlClass + ' ' + controlHref);
10885                const paypalLike = /paypal/.test((controlText + ' ' + controlClass + ' ' + controlHref).toLowerCase()) && /(express|paypal)/.test((controlText + ' ' + controlClass).toLowerCase());
10886                const couponLike = /gutschein|coupon|voucher|promotion/.test((controlText + ' ' + controlClass).toLowerCase());
10887                const detailsLike = /versanddetails|konfigurationsdetails|konfiguration|details\s*(öffnen|anzeigen)|config.*details/.test((controlText + ' ' + controlClass).toLowerCase());
10888                const removeLike = /entfernen|löschen|remove|delete/.test((controlText + ' ' + controlClass).toLowerCase()) || !!target.closest('.line-item-remove-button, [class*="line-item-remove"], [data-line-item-remove]');
10889                if (paypalLike) track('paypal_express_click', {label:controlText.slice(0,160), cartContext:true}, true);
10890                else if (checkoutLike) track('checkout_click', {label:controlText.slice(0,160), cartContext:true}, true);
10891                if (couponLike) track('coupon_open', {label:controlText.slice(0,160)}, true);
10892                if (detailsLike) track('config_details_open', {label:controlText.slice(0,160)}, true);
10893                if (removeLike) track('product_remove', {label:controlText.slice(0,160), action:'remove'}, true);
10894            }
10895
10896            const a = target.closest('a[href]');
10897            if (!a) return;
10898            const href = a.getAttribute('href') || '';
10899            const normalized = href.toLowerCase().replace(/[\s()-]/g, '');
10900            if (normalized.startsWith('tel:')) { track('phone_click', {link: href}); if (onCart || isCheckoutConfirm) track('service_phone_click', {link:href, context:onCart?'cart':'checkout'}, true); }
10901            if (href.toLowerCase().startsWith('mailto:')) track('email_click', {link: href});
10902
10903            const bannerRoot = a.closest('[class*="msisdesign-configurator-banner-v"]');
10904            if (bannerRoot) {
10905                const label = (a.textContent || a.getAttribute('title') || a.getAttribute('aria-label') || '').trim();
10906                track('msis_banner_click', {
10907                    component:'configurator_switch_banner',
10908                    componentVersion:msisComponentVersion(bannerRoot),
10909                    link:href,
10910                    title:label.slice(0,300)
10911                }, true);
10912            }
10913
10914            const supportRoot = a.closest('[class*="msisdesign-configurator-support-v"]');
10915            if (supportRoot) {
10916                const supportMeta = {component:'configurator_support', componentVersion:msisComponentVersion(supportRoot), link:href};
10917                if (normalized.startsWith('tel:')) track('msis_support_phone_click', supportMeta, true);
10918                else if (href.toLowerCase().startsWith('mailto:')) track('msis_support_email_click', supportMeta, true);
10919                else if (String(a.className || '').includes('__offer') || a.closest('[class*="__offer"]')) {
10920                    track('msis_support_offer_click', supportMeta, true);
10921                }
10922            }
10923
10924            // Wechsel von einem erkannten alten Konfigurator zu einem neuen/anderen Konfigurator.
10925            // Nur Inhaltslinks/Banner zaehlen, nicht die globale Navigation.
10926            if (oldConfigurator && /(konfigurator|configurator)/i.test(href) && !a.closest('header, nav, .header-main, .main-navigation, .navigation-main')) {
10927                const label = (a.textContent || a.getAttribute('title') || a.getAttribute('aria-label') || a.querySelector('img')?.getAttribute('alt') || '').trim();
10928                track('switch_to_new_configurator', {link: href, title: label.slice(0, 300)});
10929            }
10930        }, true);
10931
10932        // Warenkorb-Mengen und Gutschein-Eingaben separat erfassen. Keine Gutschein-Codes oder
10933        // sonstigen Feldwerte werden gespeichert; nur die Interaktionsart und bei Mengen numerische Alt/Neu-Werte.
10934        const qtyPrevious = new WeakMap();
10935        document.addEventListener('focusin', e => {
10936            const el=e.target;
10937            if (!(el instanceof HTMLInputElement)) return;
10938            if (pathLower.includes('/checkout/cart') && /quantity|qty|anzahl/.test((el.name+' '+el.className).toLowerCase())) qtyPrevious.set(el, el.value);
10939        }, true);
10940        document.addEventListener('change', e => {
10941            const el=e.target;
10942            if (!(el instanceof HTMLInputElement || el instanceof HTMLSelectElement)) return;
10943            if (!pathLower.includes('/checkout/cart')) return;
10944            const marker=(String(el.name||'')+' '+String(el.className||'')+' '+String(el.id||'')).toLowerCase();
10945            if (/quantity|qty|anzahl/.test(marker)) {
10946                const oldValue=Number(qtyPrevious.get(el)); const newValue=Number(el.value);
10947                track('quantity_change', {oldQuantity:Number.isFinite(oldValue)?oldValue:null,newQuantity:Number.isFinite(newValue)?newValue:null}, true);
10948                qtyPrevious.set(el, el.value);
10949            }
10950        }, true);
10951        document.addEventListener('submit', e => {
10952            const form=e.target;
10953            if (!(form instanceof HTMLFormElement) || !pathLower.includes('/checkout/cart')) return;
10954            const marker=(String(form.className||'')+' '+String(form.action||'')+' '+String(form.id||'')).toLowerCase();
10955            if (/gutschein|coupon|voucher|promotion/.test(marker) || form.querySelector('input[name*="promotion"],input[name*="coupon"],input[name*="voucher"]')) {
10956                track('coupon_submit', {action:'submit'}, true);
10957            }
10958        }, true);
10959
10960        // Kontaktformular wirklich begonnen: erst bei einer echten Eingabe/Auswahl, nicht schon beim Fokus.
10961        // Es werden keine Feldwerte gespeichert. Pro Session wird dieses Signal nur einmal gesendet.
10962        let offerStarted = false;
10963        try { offerStarted = sessionStorage.getItem('tct_offer_started') === '1'; } catch (_) {}
10964        function markOfferStarted(e) {
10965            if (!isOfferPage || offerStarted) return;
10966            const el = e.target;
10967            if (!(el instanceof HTMLInputElement || el instanceof HTMLSelectElement || el instanceof HTMLTextAreaElement)) return;
10968            if (el instanceof HTMLInputElement && ['hidden','submit','button','reset','file'].includes(el.type)) return;
10969            const form = el.closest('form');
10970            if (!(form instanceof HTMLFormElement)) return;
10971            if (e.type === 'input') {
10972                const value = typeof el.value === 'string' ? el.value.trim() : '';
10973                if (!value && !(el instanceof HTMLInputElement && ['checkbox','radio'].includes(el.type) && el.checked)) return;
10974            }
10975            offerStarted = true;
10976            try { sessionStorage.setItem('tct_offer_started', '1'); } catch (_) {}
10977            track('offer_form_started', {reason:'first_field_interaction'});
10978        }
10979        document.addEventListener('input', markOfferStarted, true);
10980        document.addEventListener('change', markOfferStarted, true);
10981
10982        let lastValidationErrorAt = 0;
10983        document.addEventListener('invalid', e => {
10984            if (!isOfferPage) return;
10985            const form = e.target instanceof Element ? e.target.closest('form') : null;
10986            if (!(form instanceof HTMLFormElement)) return;
10987            if (now() - lastValidationErrorAt < 1200) return;
10988            lastValidationErrorAt = now();
10989            setTimeout(() => track('offer_form_validation_error', {
10990                errorType:'browser_validation',
10991                fields: invalidFieldNames(form)
10992            }), 0);
10993        }, true);
10994
10995        document.addEventListener('submit', e => {
10996            const form = e.target;
10997            if (!(form instanceof HTMLFormElement)) return;
10998            const action = (form.getAttribute('action') || '').toLowerCase();
10999            if (action.includes('line-item/add') || form.querySelector('button[name="redirectTo"][value*="cart"]') || form.closest('.product-detail-buy')) {
11000                cartIntent = true;
11001                saveLastConfiguration();
11002                track('add_to_cart_intent');
11003            }
11004            if (isOfferPage) {
11005                track('offer_form_submit_attempt');
11006                pendingSet('tct_offer_pending', {at: now()});
11007            }
11008            if (isCheckoutConfirm && (action.includes('/checkout/order') || action.includes('checkout.finish.order') || form.closest('.checkout-confirm-page, .confirm-main-header, .checkout'))) {
11009                track('checkout_submit_attempt', withPayment({checkoutStep:'confirm'}));
11010                pendingSet('tct_checkout_pending', {at: now()});
11011            }
11012        }, true);
11013
11014        // Zahlungsart-Wechsel als eigenes Conversion-Signal. Es werden nur Shopware-ID und Anzeigename gespeichert.
11015        // Ein vorselektierter Context-Wert gilt nicht automatisch als aktive Nutzerentscheidung.
11016        let paymentInitialized = false;
11017        function rememberPaymentMethod(snapshot) {
11018            try {
11019                if (snapshot.paymentMethodId) sessionStorage.setItem('tct_payment_method_id', snapshot.paymentMethodId);
11020                if (snapshot.paymentMethodName) sessionStorage.setItem('tct_payment_method_name', snapshot.paymentMethodName);
11021            } catch (_) {}
11022        }
11023        if (isCheckoutConfirm) {
11024            const initialPayment = paymentMethodSnapshot();
11025            try {
11026                const previousId = sessionStorage.getItem('tct_payment_method_id') || '';
11027                const previousName = sessionStorage.getItem('tct_payment_method_name') || '';
11028                if (previousId && initialPayment.paymentMethodId && previousId !== initialPayment.paymentMethodId) {
11029                    track('payment_method_changed', Object.assign({}, initialPayment, {
11030                        previousPaymentMethodId: previousId, previousPaymentMethodName: previousName || null, reason:'checkout_reload_or_context_change'
11031                    }));
11032                }
11033            } catch (_) {}
11034            rememberPaymentMethod(initialPayment);
11035            paymentInitialized = true;
11036            track('payment_method_snapshot', Object.assign({checkoutStep:'confirm'}, initialPayment));
11037        }
11038        document.addEventListener('change', e => {
11039            if (!isCheckoutConfirm) return;
11040            const el = e.target;
11041            if (!(el instanceof HTMLInputElement || el instanceof HTMLSelectElement)) return;
11042            const marker = ((el.getAttribute('name') || '') + ' ' + (el.id || '')).toLowerCase();
11043            if (!marker.includes('payment') && !marker.includes('zahl')) return;
11044            const current = paymentMethodSnapshot();
11045            let previousId = '', previousName = '';
11046            try { previousId = sessionStorage.getItem('tct_payment_method_id') || ''; previousName = sessionStorage.getItem('tct_payment_method_name') || ''; } catch (_) {}
11047            if (paymentInitialized && previousId && current.paymentMethodId && previousId !== current.paymentMethodId) {
11048                track('payment_method_changed', Object.assign({}, current, {
11049                    previousPaymentMethodId: previousId, previousPaymentMethodName: previousName || null, reason:'user_change'
11050                }));
11051            }
11052            rememberPaymentMethod(current);
11053            paymentInitialized = true;
11054        }, true);
11055
11056        const ignoredTypes = new Set(['hidden','submit','button','reset','file']);
11057        const configuratorNumericState = new Map();
11058
11059        function parseConfiguratorNumber(value) {
11060            let raw = String(value || '').trim().replace(/\s+/g, '');
11061            if (!raw) return null;
11062            raw = raw.replace(/[^0-9,.-]/g, '');
11063            if (!raw || raw === '-' || raw === ',' || raw === '.') return null;
11064            if (raw.includes(',') && raw.includes('.')) {
11065                raw = raw.lastIndexOf(',') > raw.lastIndexOf('.') ? raw.replace(/\./g, '').replace(',', '.') : raw.replace(/,/g, '');
11066            } else if (raw.includes(',')) {
11067                raw = raw.replace(',', '.');
11068            }
11069            const n = Number(raw);
11070            return Number.isFinite(n) ? n : null;
11071        }
11072
11073        function configuratorFieldIdentity(el) {
11074            const id = el.id || '';
11075            let label = id ? document.querySelector(`label[for="${CSS.escape(id)}"]`)?.textContent?.trim() : '';
11076            if (!label) label = el.getAttribute('aria-label') || el.getAttribute('data-label') || el.getAttribute('name') || '';
11077            label = String(label || '').replace(/\s+/g, ' ').replace(/[:*]+\s*$/, '').trim().slice(0, 100);
11078            const name = String(el.getAttribute('name') || '').trim().slice(0, 100);
11079            return {label, name, key:(name || label || id || 'field').toLowerCase()};
11080        }
11081
11082        function maybeTrackConfiguratorAnomaly(el) {
11083            const ident = configuratorFieldIdentity(el);
11084            const dimensionLike = /(breite|width|hoehe|höhe|height|laenge|länge|length|mass|maß|durchmesser|diameter|radius|tiefe|depth|pool|anhaenger|anhänger)/i.test(`${ident.label} ${ident.name}`);
11085            if (!dimensionLike) return;
11086            const current = parseConfiguratorNumber(el.value);
11087            if (current === null || current <= 0) return;
11088            const previous = configuratorNumericState.get(ident.key);
11089            configuratorNumericState.set(ident.key, current);
11090
11091            let anomalyType = null;
11092            let severity = 'warning';
11093            let ratio = null;
11094            if (previous !== undefined && previous > 0) {
11095                ratio = Math.max(current / previous, previous / current);
11096                if (ratio >= 8 && ratio <= 120 && Math.max(current, previous) >= 1000) anomalyType = 'dimension_jump';
11097            }
11098            if (!anomalyType && current >= 10000) {
11099                anomalyType = 'extreme_dimension';
11100                severity = current >= 50000 ? 'high' : 'warning';
11101            }
11102            if (!anomalyType) return;
11103
11104            const priceBefore = lastPrice;
11105            window.setTimeout(() => {
11106                const priceAfter = currentPrice();
11107                if (priceAfter !== null) lastPrice = priceAfter;
11108                track('configurator_input_anomaly', {
11109                    anomalyType, anomalySeverity: severity,
11110                    fieldLabel: ident.label || null, fieldName: ident.name || null,
11111                    previousValue: previous ?? null, currentValue: current,
11112                    valueRatio: ratio !== null ? Math.round(ratio * 100) / 100 : null,
11113                    unitHint: /cm|zentimeter/i.test(`${ident.label} ${ident.name}`) ? 'cm' : null,
11114                    priceBefore: priceBefore ?? null, priceAfter: priceAfter ?? null
11115                });
11116            }, 700);
11117        }
11118
11119        let priceSnapshotTimer = null;
11120        function scheduleConfiguratorPriceSnapshot(reason = 'field_change') {
11121            if (!configuratorType) return;
11122            if (priceSnapshotTimer) clearTimeout(priceSnapshotTimer);
11123            const attempts=[300,800,1600];
11124            let idx=0;
11125            const run=()=>{
11126                const p=currentPrice();
11127                if(p!==null && p>0){
11128                    const changed=lastPrice===null || Math.abs(Number(lastPrice)-Number(p))>0.009;
11129                    lastPrice=p;
11130                    saveLastConfiguration(serializedConfiguration(), p);
11131                    if(changed || idx===attempts.length-1) track('configurator_price_snapshot',{reason,priceSource:configuratorType==='new'?'dynamic_or_shopware':'old_total'});
11132                    return;
11133                }
11134                idx++;
11135                if(idx<attempts.length) priceSnapshotTimer=setTimeout(run,attempts[idx]);
11136            };
11137            priceSnapshotTimer=setTimeout(run,attempts[0]);
11138        }
11139
11140        document.addEventListener('change', e => {
11141            if (!configuratorType) return;
11142            const el = e.target;
11143            if (!(el instanceof HTMLInputElement || el instanceof HTMLSelectElement || el instanceof HTMLTextAreaElement)) return;
11144            if (el instanceof HTMLInputElement && ignoredTypes.has(el.type)) return;
11145            const inProductArea = !!el.closest('.product-detail, .product-detail-buy, .buy-widget, form[action*="line-item"]');
11146            const inK3ConfiguratorArea = isK3ConfiguratorPage && !!el.closest('main, form, [class*="configurator"], [class*="konfigurator"]');
11147            if (!inProductArea && !inK3ConfiguratorArea) return;
11148            maybeTrackConfiguratorAnomaly(el);
11149            interactionCount++;
11150            if (!configStarted) {
11151                configStarted = true;
11152                track('configurator_start');
11153            }
11154            if (interactionCount === 1 || interactionCount % 5 === 0) track('configurator_interaction');
11155            saveLastConfiguration();
11156            scheduleConfiguratorPriceSnapshot('field_change');
11157        }, true);
11158
11159        let mutationTimer;
11160        const observer = new MutationObserver(() => {
11161            if (!configStarted || !configuratorType) return;
11162            clearTimeout(mutationTimer);
11163            mutationTimer = setTimeout(() => {
11164                const p = currentPrice();
11165                if (p !== null && p !== lastPrice) {
11166                    lastPrice = p;
11167                    saveLastConfiguration();
11168                    track('configurator_interaction');
11169                }
11170            }, 500);
11171        });
11172        observer.observe(document.body, {subtree:true, childList:true, characterData:true});
11173
11174        const serverCartSnapshot = null;
11175
11176        function trackCartHealth() {
11177            if (!pathLower.includes('/checkout/cart') && !isCheckoutConfirm) return;
11178            const positionTotal = Number(serverCartSnapshot?.positionTotal ?? 0);
11179            const totalPrice = Number(serverCartSnapshot?.totalPrice ?? 0);
11180            const shippingTotal = Number.isFinite(positionTotal) && Number.isFinite(totalPrice)
11181                ? Math.max(0, totalPrice - positionTotal) : 0;
11182            const shippingRatio = positionTotal > 0 ? shippingTotal / positionTotal : 0;
11183            const shippingRatioPercent = Math.round(shippingRatio * 1000) / 10;
11184            const shippingMethodId = String(serverCartSnapshot?.shippingMethodId || '').trim();
11185            const shippingMethodName = String(serverCartSnapshot?.shippingMethodName || '').trim();
11186            const shippingCountry = String(serverCartSnapshot?.shippingCountry || '').trim();
11187            const shippingCountryIso = String(serverCartSnapshot?.shippingCountryIso || '').trim();
11188            const deliveryCount = Number(serverCartSnapshot?.deliveryCount || 0);
11189            const activeRuleIds = String(serverCartSnapshot?.activeRuleIds || '').trim();
11190            const checkoutStep = pathLower.includes('/checkout/cart') ? 'cart' : 'confirm';
11191            const shippingRatioBand = shippingRatio < 0.10 ? '<10%'
11192                : shippingRatio < 0.20 ? '10-20%'
11193                : shippingRatio < 0.30 ? '20-30%'
11194                : shippingRatio < 0.50 ? '30-50%'
11195                : shippingRatio < 0.70 ? '50-70%'
11196                : '>=70%';
11197            const signature = [positionTotal.toFixed(2), shippingTotal.toFixed(2), shippingMethodId, checkoutStep].join('|');
11198            const freeShippingExperimentStart = '2026-08-20T14:00:00+02:00';
11199            const freeShippingExperiment = Date.now() >= Date.parse(freeShippingExperimentStart);
11200            const shippingMeta = {
11201                cartValue: positionTotal,
11202                shippingTotal,
11203                shippingRatio: Math.round(shippingRatio * 10000) / 10000,
11204                shippingRatioPercent,
11205                shippingRatioBand,
11206                shippingMethodId: shippingMethodId || null,
11207                shippingMethodName: shippingMethodName || null,
11208                shippingCountry: shippingCountry || null,
11209                shippingCountryIso: shippingCountryIso || null,
11210                deliveryCount,
11211                activeRuleIds: activeRuleIds || null,
11212                checkoutStep,
11213                freeShippingExperiment,
11214                freeShippingExperimentStart
11215            };
11216
11217            try {
11218                if (sessionStorage.getItem('tct_cart_health_signature') !== signature) {
11219                    track('cart_shipping_snapshot', shippingMeta);
11220                    sessionStorage.setItem('tct_cart_health_signature', signature);
11221                }
11222                if (freeShippingExperiment && positionTotal > 0 && shippingTotal <= 0.01) {
11223                    const freeKey = 'tct_free_shipping_' + signature;
11224                    if (!sessionStorage.getItem(freeKey)) {
11225                        track('free_shipping_seen', shippingMeta);
11226                        sessionStorage.setItem(freeKey, '1');
11227                    }
11228                }
11229
11230                const persistedRaw = localStorage.getItem('tct_cart_persistence');
11231                let persisted = null;
11232                try { persisted = persistedRaw ? JSON.parse(persistedRaw) : null; } catch (_) {}
11233                if (positionTotal > 0) {
11234                    if (persisted && Number(persisted.value || 0) > 0 && Number(persisted.at || 0) > 0 && (Date.now() - Number(persisted.at)) >= 30 * 60 * 1000) {
11235                        const restoreKey = 'tct_cart_restored_' + String(persisted.at);
11236                        if (!sessionStorage.getItem(restoreKey)) {
11237                            track('cart_restored', Object.assign({}, shippingMeta, {previousCartValue:Number(persisted.value), previousCartSeenAt:String(persisted.at), cartAgeHours:Math.round((Date.now()-Number(persisted.at))/360000)/10}));
11238                            sessionStorage.setItem(restoreKey, '1');
11239                        }
11240                    }
11241                    localStorage.setItem('tct_cart_persistence', JSON.stringify({value:positionTotal, at:Date.now()}));
11242                } else if (pathLower.includes('/checkout/cart') && persisted && Number(persisted.value || 0) > 0 && Number(persisted.at || 0) > 0 && (Date.now() - Number(persisted.at)) >= 30 * 60 * 1000) {
11243                    const missingKey = 'tct_cart_missing_' + String(persisted.at);
11244                    if (!sessionStorage.getItem(missingKey)) {
11245                        track('cart_missing_on_return', Object.assign({}, shippingMeta, {previousCartValue:Number(persisted.value), previousCartSeenAt:String(persisted.at), cartAgeHours:Math.round((Date.now()-Number(persisted.at))/360000)/10}));
11246                        sessionStorage.setItem(missingKey, '1');
11247                    }
11248                }
11249
11250                const previousMethodId = sessionStorage.getItem('tct_shipping_method_id') || '';
11251                const previousMethodName = sessionStorage.getItem('tct_shipping_method_name') || '';
11252                if (shippingMethodId && previousMethodId && previousMethodId !== shippingMethodId) {
11253                    track('shipping_method_changed', Object.assign({}, shippingMeta, {
11254                        previousShippingMethodId: previousMethodId,
11255                        previousShippingMethodName: previousMethodName || null
11256                    }));
11257                }
11258                if (shippingMethodId) {
11259                    sessionStorage.setItem('tct_shipping_method_id', shippingMethodId);
11260                    sessionStorage.setItem('tct_shipping_method_name', shippingMethodName);
11261                }
11262            } catch (_) {}
11263
11264            // Kein technischer Fehler: Preis-/UX-Signal. Bereits 20 % koennen auffaellig sein.
11265            if (positionTotal > 0 && shippingTotal >= 10 && shippingRatio >= 0.20) {
11266                try {
11267                    const highKey = 'tct_shipping_high_' + signature;
11268                    if (!sessionStorage.getItem(highKey)) {
11269                        track('shipping_cost_high', shippingMeta);
11270                        sessionStorage.setItem(highKey, '1');
11271                    }
11272                } catch (_) {}
11273            }
11274
11275            // Ab 50 % des Warenwertes behandeln wir Versandkosten als starkes Abbruchrisiko.
11276            // 70 %+ wird in der Agenturanalyse separat ausgewiesen.
11277            if (positionTotal > 0 && shippingTotal >= 10 && shippingRatio >= 0.50) {
11278                try {
11279                    const extremeKey = 'tct_shipping_extreme_' + signature;
11280                    if (!sessionStorage.getItem(extremeKey)) {
11281                        track('shipping_cost_extreme', shippingMeta);
11282                        sessionStorage.setItem(extremeKey, '1');
11283                    }
11284                } catch (_) {}
11285            }
11286
11287            const errorText = Array.from(document.querySelectorAll('.alert-danger, .alert-error, .flashbags .alert-danger, .cart-error, .checkout-error'))
11288                .filter(visible).map(el => (el.textContent || '').toLowerCase()).join(' ');
11289            const shippingError = /(versand|versandart|lieferung|lieferart|shipping|delivery)/.test(errorText)
11290                && /(nicht verfuegbar|nicht verfügbar|nicht moeglich|nicht möglich|keine|cannot|unavailable|not available|no shipping|no delivery)/.test(errorText);
11291            if (shippingError) {
11292                try {
11293                    const errorKey = 'tct_shipping_unavailable_' + checkoutStep + '_' + (shippingMethodId || 'none');
11294                    if (!sessionStorage.getItem(errorKey)) {
11295                        track('shipping_unavailable', Object.assign({}, shippingMeta, {errorType:'shipping_rule_or_method_unavailable'}));
11296                        sessionStorage.setItem(errorKey, '1');
11297                    }
11298                } catch (_) {}
11299            }
11300        }
11301
11302        if (isCheckoutCart) track('cart_view');
11303        trackCartHealth();
11304        if (isCheckoutEntry) {
11305            const checkoutStep = isCheckoutConfirm ? 'confirm' : 'register';
11306            track('checkout_start', isCheckoutConfirm ? withPayment({checkoutStep}) : {checkoutStep});
11307            pendingSet('tct_checkout_started', {at: now(), step: checkoutStep});
11308        }
11309
11310        // Antworten können serverseitig nach Reload oder dynamisch im DOM erscheinen.
11311        evaluatePendingResponses();
11312        let responseTimer;
11313        const responseObserver = new MutationObserver(() => {
11314            if (!isOfferPage && !isCheckoutConfirm && !pathLower.includes('/checkout/cart')) return;
11315            clearTimeout(responseTimer);
11316            responseTimer = setTimeout(() => {
11317                evaluatePendingResponses();
11318                trackCartHealth();
11319            }, 250);
11320        });
11321        responseObserver.observe(document.body, {subtree:true, childList:true});
11322
11323        window.addEventListener('pagehide', () => {
11324            if (configStarted && !cartIntent) {
11325                saveLastConfiguration();
11326                track('configurator_abandoned', {reason:'pagehide'}, true);
11327            }
11328        });
11329    })();
11330    </script>
11330
11331
11332
11333            
11334                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
11335    <!-- added by Trusted Shops app: Start -->
11336    
11336<script async data-desktop-y-offset="-5" data-mobile-y-offset="-5" data-desktop-disable-reviews="false" data-desktop-enable-custom="false" data-desktop-position="right" data-desktop-custom-width="156" data-desktop-enable-fadeout="false" data-disable-mobile="false" data-disable-trustbadge="false" data-mobile-custom-width="156" data-mobile-disable-reviews="false" data-mobile-enable-custom="false" data-mobile-position="right" charset="UTF-8" src="//widgets.trustedshops.com/js/X06C512A9B986093C625E5D8C6C782354.js"></script>
11336
11337    <!-- End -->
11338        </body>
11339</html>

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