Index: /changelog
===================================================================
--- /changelog	(revision 8195)
+++ /changelog	(revision 8196)
@@ -553,4 +553,5 @@
 #4.4.3
 - Feature: Bilder kÃ¶nnen an Produktgruppen angehÃ€ngt werden
+- Feature: standard3.phtml (Slider und Zoom)
 - Bugfix: ProduktgruppenÃŒbersichtsseite funktioniert ohne Lagerbestand
 - Bugfix: user_views Templates werden aus dem Child-Theme geladen
Index: /controller/wpsg_ShopController.class.php
===================================================================
--- /controller/wpsg_ShopController.class.php	(revision 8195)
+++ /controller/wpsg_ShopController.class.php	(revision 8196)
@@ -2430,8 +2430,7 @@
 		 * wenn mehrere Produkte auf einer Seite sind. Wird von renderProdukt hochgezâÂ§hlt
 		 */
-		public function getTemplateIndex()
-		{
-
-			return $GLOBALS['wpsg_produkt_index'];
+		public function getTemplateIndex() {
+
+			return intval($GLOBALS['wpsg_produkt_index']);
 
 		} // public function getTemplateIndex()
Index: /views/js/dsimagezoom.min.js
===================================================================
--- /views/js/dsimagezoom.min.js	(revision 8196)
+++ /views/js/dsimagezoom.min.js	(revision 8196)
@@ -0,0 +1,1 @@
+class DsImageZoom{static destroy(t){void 0===t&&(t=document.getElementsByClassName("ds_image_zoom"));for(const e of t){const t=e.getElementsByTagName("img")[0];e.classList.remove("attached"),e.setAttribute("style",""),t.setAttribute("style","")}}static init(t){void 0===t&&(t=document.getElementsByClassName("ds_image_zoom"));for(const e of t){const t=e.getElementsByTagName("img")[0];t.onload=()=>{const s=t.getBoundingClientRect().width,i=t.getBoundingClientRect().height,a=.5*s;e.setAttribute("data-image-width",s),e.setAttribute("data-image-height",i),e.setAttribute("data-factor",a),e.style.width=s+"px",e.style.height=i+"px",t.style.width=s+"px",t.style.height=i+"px",e.classList.add("attached"),e.addEventListener("mousemove",(o=>{t.style.width=s+a+"px",t.style.height=i+a+"px";const n=(o.x-e.getBoundingClientRect().x)/s,d=(o.y-e.getBoundingClientRect().y)/s;t.style.left=-1*a*n+"px",t.style.top=-1*a*d+"px"})),e.addEventListener("mousein",(t=>{})),e.addEventListener("mouseout",(e=>{t.style.width=s+"px",t.style.height=i+"px",t.style.left="0px",t.style.top="0px"}))},t.setAttribute("src",t.getAttribute("data-src"))}}}
Index: /views/produkttemplates/standard3.phtml
===================================================================
--- /views/produkttemplates/standard3.phtml	(revision 8195)
+++ /views/produkttemplates/standard3.phtml	(revision 8196)
@@ -49,25 +49,380 @@
         </div>
         <div>
-            TODO
+
+            <?php if (!$this->titleDisplayed) { ?>
+                <h1 itemprop="name" class="wpsg_producttitle"><?php echo $this->getProductName($this->view['data']['id']); ?></h1>
+                <h2 itemprop="detailname" class="wpsg_productdetailtitle"><?php echo $this->view['data']['detailname']; ?></h2>
+            <?php } ?>
+
+            <?php $this->callMods('product_top_afterheadline', array(&$this->view['data']['id'], $this->getTemplateIndex())); ?>
+
+            <?php $this->callMods('product_top', array(&$this->view['data']['id'], $this->getTemplateIndex())); ?>
+
+            <div itemscope itemtype="http://schema.org/Product" class="wpsg_produkt wpsg_produkt_<?php echo $this->view['data']['id']; ?>">
+
+                <?php if ($this->get_option('wpsg_showArticelnumber') == '1') { ?>
+                    <div class="wpsg_artikelnummer">
+                        <?php echo __('Artikelnummer', 'wpsg'); ?>: <span class="wpsg_anr"><?php echo wpsg_hspc($this->view['data']['anr']); ?></span><br />
+                        <?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_ean'))) {?>
+                            <?php echo __('EAN','wpsg');?>:<span class="wpsg_ean"><?php echo wpsg_hspc($this->view['data']['ean']); ?></span><br />
+                        <?php } ?>
+                        <?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_gtin'))) {?>
+                            <?php echo __('GTIN','wpsg');?>:<span class="wpsg_gtin"><?php echo wpsg_hspc($this->view['data']['gtin']); ?></span><br />
+                        <?php }?>
+                    </div>
+                <?php } ?>
+
+                <?php /* Abfrage Preisanzeige nur fÃŒr eingeloggte User aktiv und User eingeloggt START*/ ?>
+                <?php if ($this->view['oProduct']->canDisplayPrice()) { ?>
+
+                    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="wpsg_produkt_preis">
+
+                        <meta itemprop="priceCurrency" content="<?php echo $this->get_option('wpsg_currency'); ?>" />
+
+                        <?php echo __('StÃŒckpreis:', 'wpsg'); ?>
+
+                        <?php $oldPrice = $this->view['oProduct']->getOldPrice();  ?>
+
+                        <?php if ($oldPrice !== false && $oldPrice != $this->view['oProduct']->getPrice($this->view['data']['product_key'])) { ?>
+                            <span class="wpsg_mod_productview_price wpsg_mod_productview_current"><?php echo wpsg_ff($this->view['oProduct']->getPrice($this->view['data']['product_key']), $this->get_option('wpsg_currency')); ?></span>
+                            <span class="wpsg_mod_productview_oldprice"><?php echo wpsg_ff($oldPrice, $this->get_option('wpsg_currency')); ?></span>
+                        <?php } else { ?>
+                            <span class="wpsg_mod_productview_price"><?php echo wpsg_ff($this->view['oProduct']->getPrice($this->view['data']['product_key']), $this->get_option('wpsg_currency')); ?></span>
+                        <?php } ?>
+
+                    </div>
+
+                    <?php if ($this->get_option('wpsg_kleinunternehmer')) { /* Kleinunternehmerregelung aktiviert START */ ?>
+
+                        <div class="wpsg_produkt_preishinweis">
+                            <?php echo wpsg_translate(__('#2# zzgl. #1#', 'wpsg'), '<a href="'.$this->getURL(wpsg_ShopController::URL_VERSANDKOSTEN).'">'.__('Versandkosten', 'wpsg').'</a>', '<a href="#kkhint" title="'.wpsg_hspc($this->get_option('wpsg_kleinunternehmer_text')).'">Endpreis</a>'); ?>
+                        </div>
+
+                    <?php } else { /* Kleinunternehmerregelung aktiviert ENDE */ ?>
+
+                        <div class="wpsg_produkt_preishinweis">
+                            <?php if ($this->getFrontendTaxview() == WPSG_NETTO) { /* Frontend = NETTO Preise */ ?>
+                                <?php if ($this->hasMod('wpsg_mod_freeshipping') && $this->get_option('wpsg_mod_freeshipping_aktiv') == '1') { /* Versandkostenfrei aktiv */?>
+
+                                    <?php if ($this->get_option('wpsg_mod_freeshipping_minvalue') > 0) { ?>
+                                        <?php echo wpsg_translate(__('(zzgl. #1#% MwSt. und <a href="#3#">ab #2# â¬ versandkostenfrei</a>)', 'wpsg'),
+                                            wpsg_ff($this->view['data']['mwst_value']),
+                                            wpsg_ff($this->get_option('wpsg_mod_freeshipping_minvalue')),
+                                            $this->getUrl(wpsg_ShopController::URL_VERSANDKOSTEN)
+                                        ); ?>
+                                    <?php } else { ?>
+                                        <?php echo wpsg_translate(__('(zzgl. #1#% MwSt. und versandkostenfrei)', 'wpsg'), wpsg_ff($this->view['data']['mwst_value'])); ?>
+                                    <?php } ?>
+
+                                <?php } else { ?>
+                                    <?php echo wpsg_translate(__('(zzgl. #1#% MwSt. und zzgl. #2#)', 'wpsg'), wpsg_ff($this->view['data']['mwst_value']), '<a href="'.$this->getURL(wpsg_ShopController::URL_VERSANDKOSTEN).'">'.__('Versandkosten', 'wpsg').'</a>'); ?>
+                                <?php }?>
+                            <?php } else { /* Frontend = BRUTTO Preise */ ?>
+                                <?php if ($this->hasMod('wpsg_mod_freeshipping') && $this->get_option('wpsg_mod_freeshipping_aktiv') == '1') { /* Versandkostenfrei aktiv */ ?>
+
+                                    <?php if ($this->get_option('wpsg_mod_freeshipping_minvalue') > 0) { ?>
+                                        <?php echo wpsg_translate(__('(inkl. #1#% MwSt. und <a href="#3#">ab #2# â¬ versandkostenfrei</a>)', 'wpsg'),
+                                            wpsg_ff($this->view['data']['mwst_value']),
+                                            wpsg_ff($this->get_option('wpsg_mod_freeshipping_minvalue')),
+                                            $this->getUrl(wpsg_ShopController::URL_VERSANDKOSTEN)
+                                        ); ?>
+                                    <?php } else { ?>
+                                        <?php echo wpsg_translate(__('(inkl. #1#% MwSt. und versandkostenfrei)', 'wpsg'), wpsg_ff($this->view['data']['mwst_value'])); ?>
+                                    <?php } ?>
+
+                                <?php } else { ?>
+                                    <?php echo wpsg_translate(__('(inkl. #1#% MwSt. und zzgl. #2#)', 'wpsg'), wpsg_ff($this->view['data']['mwst_value']), '<a href="'.$this->getURL(wpsg_ShopController::URL_VERSANDKOSTEN).'">'.__('Versandkosten', 'wpsg').'</a>'); ?>
+                                <?php }?>
+                            <?php } ?>
+                        </div>
+
+                    <?php } ?>
+
+                <?php } else {?>
+
+                    <?php echo wpsg_translate(__('Die Produktpreise werden nur eingeloggten Benutzern angezeigt. Loggen Sie sich <a href="'.$this->getURL(wpsg_ShopController::URL_PROFIL).'">hier</a> bitte ein, um zu bestellen.')); ?>
+
+                <?php }?>
+                <?php /* Abfrage Preisanzeige nur fÃŒr eingeloggte User aktiv und User eingeloggt ENDE */ ?>
+
+                <div class="wpsg_clear"></div>
+
+                <div itemprop="description" class="wpsg_produkt_shortdescription">
+
+                    <span><?php echo $this->view['data']['shortdesc']; ?></span>
+
+                </div>
+
+                <?php /* Lagerbestand START*/?>
+                <?php if ($this->hasMod('wpsg_mod_stock') && $this->get_option('wpsg_mod_stock_showProduct') == '1') { ?>
+
+                <div class="wpsg_mod_produktindex_stock">
+
+                    <?php if (($this->view['data']['stock']) > '0') {?>
+
+                        <label><?php echo __('Lagerbestand', 'wpsg'); ?></label>
+                        <?php echo wpsg_translate(__('#1# Artikel auf Lager','wpsg'), $this->view['data']['stock']);  ?>
+
+                    <?php } else { ?>
+
+                        <label><?php echo wpsg_translate(__('', 'wpsg')); ?></label>
+
+                    <?php } ?>
+
+                </div>
+                <?php } ?>
+                <?php /* Lagerbestand ENDE*/?>
+
+                <?php /* FÃŒllmengenanzeige START */ ?>
+                <?php echo $this->callMod('wpsg_mod_fuellmenge', 'renderPriceInfo', [$oProduct->getPrice($this->view['data']['product_key']), $this->view['data']['fmenge'], $oProduct->getId()]); ?>
+                <?php /* FÃŒllmengenanzeige ENDE */ ?>
+
+                <?php /* Gewichtsanzeige START */ ?>
+                <?php if ($this->hasMod('wpsg_mod_weight') && $this->get_option('wpsg_mod_weight_showProduct') === '1') { ?>
+                <div class="wpsg_mod_weight_produkt">
+
+                    <?php if (($this->view['data']['weight']) > '0') { ?>
+                        <span class="label label_weight"><?php echo wpsg_translate(__('Gewicht:', 'wpsg')); ?></span>
+                        <?php echo wpsg_translate(__('#1# #2#', 'wpsg'), '<span class="wpsg_weight" id="weight_'.$this->view['data']['id'].'">'.wpsg_ff($this->view['data']['weight']).'</span>', $this->get_option('wpsg_mod_weight_unit')); ?>
+                    <?php } else { ?>
+                        <label><?php wpsg_translate(__('', 'wpsg'))?></label>
+                    <?php } ?>
+                </div>
+                <?php } ?>
+                <?php /* Gewichtsanzeige ENDE */ ?>
+
+                <?php /* Lieferzeit Anzeige START */ ?>
+                <?php if ($this->hasMod('wpsg_mod_deliverytime') && $this->get_option('wpsg_mod_deliverytime_show_product') == '1') { ?>
+
+                    <?php /* Produkt nur im Store, nicht im Onlineshop vorhanden */ ?>
+                    <?php if ($this->callMod('wpsg_mod_deliverytime', 'isStoreProduct', array($this->view['data']['product_key']))) { ?>
+
+                        <div class="wpsg_product_only_store"><?php echo __($this->callMod('wpsg_mod_deliverytime', 'displayStoreText', array($this->view['data']['product_key']))); ?></div>
+
+                        <?php $stl = 0; $stl = $this->callMod('wpsg_mod_deliverytime', 'displayStoreLink', array($this->view['data']['product_key'])) ?>
+                        <?php if (wpsg_isSizedInt($stl)) { ?>
+
+                            &nbsp;<a href="<?php echo get_permalink($stl); ?>"><?php echo __('So erreichen Sie uns.'); ?></a>
+
+                        <?php } ?>
+
+                    <?php } else { ?>
+
+                        <?php $strDelayNote = $this->callMod('wpsg_mod_deliverytime', 'displayDelayTime', array($this->view['data']['product_key'])); ?>
+                        <?php if (wpsg_isSizedString($strDelayNote)) { ?>
+
+                            <div class="wpsg_mod_deliverytime_offline">
+
+                                <div class="wpsg_mod_deliverytime_delay"><?php echo wpsg_hspc($strDelayNote); ?></div>
+
+                            </div>
+
+                        <?php } else { ?>
+
+                        <div class="wpsg_mod_deliverytime">
+                            <span class="label label_deliverytime"><?php echo wpsg_translate(__('Lieferzeit:', 'wpsg')); ?></span>
+                            <?php echo $this->callMod('wpsg_mod_deliverytime', 'displayDeliveryTime', array($this->view['data']['product_key'])); ?>
+                        </div>
+
+                        <?php } ?>
+
+                    <?php } ?>
+
+                <?php } ?>
+                <?php /* Lieferzeit Anzeige ENDE */ ?>
+
+                <?php /* Produktkurzbeschreibung START */ ?>
+                <div class="wpsg_product_informationarea">
+
+                    <?php if (strlen(trim($this->view['data']['beschreibung'])) > 0) { ?>
+                    <div class="wpsg_product_information_short">
+                        <div class="wpsg_produkt_additional_information">
+                            <div itemprop="description" class="wpsg_produkt_shortdescription">
+                                <span><?php echo $this->view['data']['beschreibung']; ?></span>
+                            </div>
+                        </div>
+                    </div>
+                    <?php } ?>
+
+                </div>
+                <?php /* Produktkurzbeschreibung ENDE */ ?>
+
+                <?php /* Varianten START */ ?>
+                <div class="wpsg_produkt_varianten">
+                    <?php echo $this->callMod('wpsg_mod_productvariants', 'renderTemplate', array($this->view['data']['product_key'])); ?>
+                </div>
+                <?php /* Varianten ENDE */ ?>
+
+                <?php $this->callMods('product_bottom', array(&$this->view['data']['product_key'], $this->getTemplateIndex())); ?>
+
+
+                <div class="wpsg_product_buttonarea">
+                    <div class="wpsg_product_buttons_add_basket">
+                        <?php if ($this->view['oProduct']->canOrder()) { ?>
+                        <div class="wpsg_produkt_add_basket_wrapper">
+
+                            <label class="wpsg_amount_label" for="wpsg_menge_<?php echo $this->getTemplateIndex(); ?>"><?php echo __('Anzahl', 'wpsg'); ?></label>
+
+                            <input type="text" value="<?php echo ((wpsg_isSizedInt($this->view['data']['menge']))?$this->view['data']['menge']:'1'); ?>" name="wpsg[menge]" class="wpsg_menge" id="wpsg_menge_<?php echo $this->getTemplateIndex(); ?>" <?php echo (($this->view['data']['basket_multiple'] == 4)?' readonly="readonly" ':''); ?> />
+
+                            <?php /* Urlaubsmodus aktiv */ ?>
+                            <?php if ($this->hasMod('wpsg_mod_deliverytime') && ($this->get_option('wpsg_mod_deliverytime_holiday') == '1')) { ?>
+
+                                <?php if ($this->callMod('wpsg_mod_deliverytime', 'holiday', array($this->view['data']['product_key']))) { ?>
+
+                                    <div class="wpsg_product_deliverytime_holiday" style="height:50px; padding:10px; width:50%; float:right; border:1px solid #ff0000;">
+
+                                        <?php echo __($this->callMod('wpsg_mod_deliverytime', 'displayHolidaytext', array($this->view['data']['product_key']))); ?>
+
+                                    </div>
+
+                                <?php } ?>
+
+                            <?php } else {?>
+
+                                <input class="wpsg_button wpsg_add_basket wpsg_add_basket_<?php echo $this->getTemplateIndex(); ?>" type="submit" value="<?php echo __('In den Warenkorb', 'wpsg'); ?>" name="wpsg[submit]" />
+
+                            <?php } ?>
+
+                            <?php if (in_array($this->get_option('wpsg_afterinsert'), array('2', '3'))) { ?>
+                            <script type="text/javascript">
+
+                                jQuery(document).ready(function() {
+
+                                    jQuery('.wpsg_add_basket_<?php echo $this->getTemplateIndex(); ?>').bind('click', function() {
+
+                                        wpsg_blockProductTemplate(<?php echo $this->getTemplateIndex(); ?>);
+
+                                        jQuery.ajax( {
+                                            url: '<?php echo $this->getURL(wpsg_ShopController::URL_BASKET); ?>',
+                                            data:
+                                            {
+                                                'wpsg_form_data': jQuery('#wpsg_produktform_<?php echo $this->getTemplateIndex(); ?>').serialize(),
+                                                'wpsg[ajax]': '1',
+                                                'wpsg[submit]': '1'
+                                            },
+                                            success: function(data)
+                                            {
+
+                                                wpsg_refreshBasketWidget();
+
+                                                <?php if ($this->get_option('wpsg_afterinsert') == '2') { ?>
+                                                tb_show('<?php echo __('Ihr Warenkorb', 'wpsg'); ?>', '<?php echo $this->getURL(wpsg_ShopController::URL_BASKET_AJAX); ?>&height=500');
+                                                <?php } else { ?>
+
+                                                wpsg_unblockProductTemplate(<?php echo $this->getTemplateIndex(); ?>);
+                                                jQuery('body').append(data);
+
+                                                <?php } ?>
+
+                                            }
+                                        } );
+
+                                        return false;
+
+                                    } );
+
+                                } );
+
+                            </script>
+                            <?php } ?>
+
+                        </div>
+                        <?php } ?>
+                    </div>
+                </div>
+
+                <div class="wpsg_clear"></div>
+
+                <?php if ($this->hasMod('wpsg_mod_request') && $this->callMod('wpsg_mod_request', 'isRequestProduct', array($this->view['data']['id']))) { ?>
+                    <label class="wpsg_amount_label" for="wpsg_menge_<?php echo $this->getTemplateIndex(); ?>"><?php echo __('Anzahl', 'wpsg'); ?></label>
+                    <input type="text" value="<?php echo ((wpsg_isSizedInt($this->view['data']['menge']))?$this->view['data']['menge']:'1'); ?>" name="wpsg[menge]" class="wpsg_menge" id="wpsg_menge_<?php echo $this->getTemplateIndex(); ?>" <?php echo (($this->view['data']['basket_multiple'] == 4)?' readonly="readonly" ':''); ?> />
+
+                    <input class="wpsg_button wpsg_add_requestlist" id="wpsg_add_requestlist_<?php echo $this->getTemplateIndex(); ?>" type="submit" value="<?php echo __('Auf die Anfrageliste', 'wpsg'); ?>" name="wpsg[submit_request]" />
+                <?php } ?>
+
+                <?php /* Produktlangbeschreibung START */ ?>
+                <div class="wpsg_product_informationarea">
+
+                    <?php if (strlen(trim($this->view['data']['longdescription'])) > 0) { ?>
+                    <div class="wpsg_product_information_large">
+                        <div class="wpsg_produkt_additional_information">
+                            <div itemprop="description" class="wpsg_produkt_longdescription">
+                                <span><?php echo $this->view['data']['longdescription']; ?></span>
+                            </div>
+                        </div>
+                    </div>
+                    <?php } ?>
+
+                </div>
+                <?php /* Produktlangbeschreibung ENDE */ ?>
+
+                <?php /* zusÃ€tzliche Informationen START */ ?>
+                <div class="wpsg_product_informationarea">
+
+                    <?php if (strlen(trim($this->view['data']['moreinfos'])) > 0) { ?>
+                    <div class="wpsg_product_information_large">
+                        <div class="wpsg_produkt_additional_information">
+                            <div itemprop="description" class="wpsg_produkt_moreinfos">
+                                <span><?php echo $this->view['data']['moreinfos']; ?></span>
+                            </div>
+                        </div>
+                    </div>
+                    <?php } ?>
+
+                </div>
+                <?php /* zusÃ€tzliche Informationen ENDE */ ?>
+
+                <?php /* zusÃ€tzliche Lieferumfang START */ ?>
+                <div class="wpsg_product_informationarea">
+
+                    <?php if (strlen(trim($this->view['data']['moreinfos2'])) > 0) { ?>
+                    <div class="wpsg_product_information_large">
+                        <div class="wpsg_produkt_additional_information">
+                            <div itemprop="description" class="wpsg_produkt_moreinfos2">
+                                <span><?php echo $this->view['data']['moreinfos2']; ?></span>
+                            </div>
+                        </div>
+                    </div>
+                    <?php } ?>
+
+                </div>
+                <?php /* zusÃ€tzliche Lieferumfang ENDE */ ?>
+
+                <div class="wpsg_clear"></div>
+
+                <?php /* Social Media Integration */ ?>
+                <div class="wpsg_product_social_media">
+                    <?php if (is_plugin_active('plugin-directory/shariff.php')) {?>
+                        <?php echo do_shortcode('[shariff]')?>
+                    <?php } ?>
+                </div>
+
+            </div>
+
         </div>
     </div>
 
-    <style>
-
-        .wpsg_produkt_wrapper.layout3 .col_wrap { display:flex; width:100%; justify-content:stretch; gap:1rem; }
-        .wpsg_produkt_wrapper.layout3 .col_wrap > * { flex-grow:1; flex-shrink:0; width:0; }
-        .wpsg_produkt_wrapper.layout3 .col_wrap > .col.image { display:flex; justify-content:stretch; gap:0.5rem; }
-        .wpsg_produkt_wrapper.layout3 .col_wrap > .col.image .thumbnails { width:20%; flex-shrink:0; }
-        .wpsg_produkt_wrapper.layout3 .col_wrap > .col.image .thumbnails img { aspect-ratio: 1 / 1; object-fit:cover; object-position:50% 50%; }
-        .wpsg_produkt_wrapper img { max-width:100%; height:auto; }
-
-        .ds_image_zoom.attached { position:relative; overflow:hidden; cursor:-webkit-zoom-in; cursor:zoom-in; }
-        .ds_image_zoom.attached img { all:initial; position:absolute; left:0; top:0; /* transition:width 0.3s, height 0.3s, left 0.3s, top 0.3s; */ }
-
-    </style>
-
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.4/tiny-slider.css">
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.2/min/tiny-slider.js"></script>
-    <script src="http://127.0.0.1:8080/dsimagezoom.js"></script>
+    <?php if ($this->getTemplateIndex() === 1) { ?>
+
+        <style>
+
+            .wpsg_produkt_wrapper.layout3 .col_wrap { display:flex; width:100%; justify-content:stretch; gap:1rem; }
+            .wpsg_produkt_wrapper.layout3 .col_wrap > * { flex-grow:1; flex-shrink:0; width:0; }
+            .wpsg_produkt_wrapper.layout3 .col_wrap > .col.image { display:flex; justify-content:stretch; gap:0.5rem; }
+            .wpsg_produkt_wrapper.layout3 .col_wrap > .col.image .thumbnails { width:20%; flex-shrink:0; }
+            .wpsg_produkt_wrapper.layout3 .col_wrap > .col.image .thumbnails img { aspect-ratio: 1 / 1; object-fit:cover; object-position:50% 50%; }
+            .wpsg_produkt_wrapper img { max-width:100%; height:auto; }
+
+            .ds_image_zoom.attached { position:relative; overflow:hidden; cursor:-webkit-zoom-in; cursor:zoom-in; }
+            .ds_image_zoom.attached img { all:initial; position:absolute; left:0; top:0; /* transition:width 0.3s, height 0.3s, left 0.3s, top 0.3s; */ }
+
+        </style>
+
+        <link rel="stylesheet" href="<?php echo $this->getRessourceURL('css/tiny-slider.-2.9.4.min.css'); ?>">
+        <script src="<?php echo $this->getRessourceURL('js/tiny-slider-2.9.2.min.js'); ?>"></script>
+        <script src="<?php echo $this->getRessourceURL('js/dsimagezoom.min.js'); ?>"></script>
+
+    <?php } ?>
 
     <script>
