An error occurred while processing the template.
Denied access to model object as it does not belong to current company 14306307

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #list attachmentFiles as attachmentFile  [in template "14306307#14306335#null" at line 690, column 33]
----
1<#include  "${templatesPath}/10241186"> 
2<#assign finanzautoPhone = 901130013 /> 
3<#assign maxRelationships = 20 /> 
4<#assign objectDefinitionId = 14695654> 
5<#assign cpAttachmentFileEntryService = serviceLocator.findService("com.liferay.commerce.product.service.CPAttachmentFileEntryService")> 
6<#assign objectDefinitionService = serviceLocator.findService("com.liferay.object.service.ObjectDefinitionService")> 
7<#assign objectEntryLocalService = serviceLocator.findService("com.liferay.object.service.ObjectEntryLocalService")> 
8<#assign objectRelationshipService = serviceLocator.findService("com.liferay.object.service.ObjectRelationshipService")> 
9<#assign classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService")> 
10<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
11<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
12<#assign assetCategoryPropertyService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyService")> 
13<#assign friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService")> 
14<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
15<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
16 
17<#assign groupId = themeDisplay.getScopeGroupId()> 
18<#assign companyId = themeDisplay.getCompanyId()> 
19<#assign portalURL = themeDisplay.getPortalURL()> 
20 
21<#assign assetCategoryClassName = "com.liferay.asset.kernel.model.AssetCategory" /> 
22<#assign assetCategoryClassNameId = classNameLocalService.getClassNameId(assetCategoryClassName) /> 
23<#-- -------------------------------------------------------------------- BUSQUEDA OBJETO -------------------------------------------------------------------- --> 
24 
25<#if request.getAttribute("productId")??> 
26    <#assign objectEntryId = request.getAttribute("productId")> 
27    <#assign values = objectEntryLocalService.getValues(objectEntryId)> 
28    <#attempt> 
29 
30        ${request.setAttribute('productDetail', true)} 
31        <#assign hostname = layout.getGroup().getDisplayURL(themeDisplay,false)?replace('/es','')?replace('/en','') /> 
32        <link rel="alternate" href="${hostname}/productos/${values.productUrlEs}" hreflang="x-default"/> 
33        <link rel="alternate" href="${hostname}/productos/${values.productUrlEs}" hreflang="es-ES"/> 
34        ${request.setAttribute('productES', '${hostname}/productos/${values.productUrlEs}')} 
35        <#if locale == "es_ES"> 
36            <link rel="canonical" href="${hostname}/productos/${values.productUrlEs}"/> 
37        </#if> 
38 
39        <#if values.productUrlEn??> 
40            <link rel="alternate" href="${hostname}/en/products/${values.productUrlEn}" hreflang="en-GB"/> 
41            ${request.setAttribute('productEN', '${hostname}/en/products/${values.productUrlEn}')} 
42            <#if locale == "en_GB"> 
43                <link rel="canonical" href="${hostname}/en/products/${values.productUrlEn}"/> 
44            </#if> 
45 
46        <#else> 
47            <link rel="alternate" href="${hostname}/en/products/${values.productUrlEs}" hreflang="en-GB"/> 
48            ${request.setAttribute('productEN', '${hostname}/en/products/${values.productUrlEs}')} 
49            <#if locale == "en_GB"> 
50                <link rel="canonical" href="${hostname}/en/products/${values.productUrlEs}"/> 
51            </#if> 
52        </#if> 
53 
54 
55 
56 
57 
58        <#recover> 
59 
60    </#attempt> 
61 
62 
63<#-- -------------------------------------------------------------------- FIN BUSQUEDA OBJETO -------------------------------------------------------------------- --> 
64<#-- -------------------------------------------------------------------- BUSQUEDA CATEGORIA -------------------------------------------------------------------- --> 
65    <#assign className = objectDefinitionService.getObjectDefinition(objectDefinitionId).getClassName() /> 
66    <#assign classNameId = classNameLocalService.getClassNameId(className) /> 
67    <#assign categories = assetCategoryLocalService.getCategories(classNameId, objectEntryId)/> 
68    <#assign urlcyclica=""/> 
69    <#assign categoryName = ""/> 
70    <#assign urlCyclicaEnglish=""/> 
71    <#assign useParentLink = false/> 
72    <#assign implement = false/> 
73    <#assign showSisterCategories = true/> 
74    <#assign buy = true/> 
75    <#assign principalCategoryName = "" /> 
76    <#if ((categories??) && (categories?size>0)) > 
77        <#assign category = categories[0]/> 
78        <#assign parentCategoryId = category.getParentCategoryId()/> 
79        <#assign categoryProperties = assetCategoryPropertyService.getCategoryProperties(category.getCategoryId())/> 
80        <p style="display:none;" id="categoryId"> 
81            ${category.getCategoryId()} 
82        </p> 
83        <#assign principalCategoryName = category.getTitle(locale) /> 
84        <p style="display:none;" id="principalCategoryName"> 
85            ${principalCategoryName} 
86        </p> 
87        <#list categoryProperties as categoryProperty> 
88            <#assign key=categoryProperty["key"]/> 
89            <#if (key == "URL_CYCLICA") > 
90                <#assign urlcyclica=categoryProperty["value"]/> 
91            </#if> 
92            <#if (key == "URL_CYCLICA_ENGLISH")> 
93                <#assign urlCyclicaEnglish = categoryProperty["value"]/> 
94            </#if> 
95            <#if (key == "DONT_SHOW_CHILDS")> 
96                <#assign useParentLink = true/> 
97            </#if> 
98            <#if (key == "DONT_BUY")> 
99                <#assign buy = false/> 
100            </#if> 
101            <#if (key == "IMPLEMENT")> 
102                <#assign implement = true/> 
103            </#if> 
104            <#if (key == "DONT_SHOW_SISTERS")> 
105                <#assign showSisterCategories = false/> 
106            </#if> 
107        </#list> 
108    </#if> 
109    <@liferay_util["html-top"]> 
110        <title>${principalCategoryName} ${values.brand} ${getLanguage(values.names)}</title> 
111    </@> 
112<#-- -------------------------------------------------------------------- FIN BUSQUEDA CATEGORIA -------------------------------------------------------------------- --> 
113<#-- -------------------------------------------------------------------- MIGAS DE PAN -------------------------------------------------------------------- --> 
114    <#macro renderBreadcrumb(layout)> 
115        <#if layout??> 
116            <#attempt> 
117            <#-- Llamada recursiva para el layout padre--> 
118                <#if layout.getParentLayoutId() != 0> 
119                    <#assign parentLayout = layoutLocalService.getLayout(groupId, false, layout.getParentLayoutId())> 
120                    <@renderBreadcrumb parentLayout /> 
121                </#if> 
122 
123            <#-- Renderizar el breadcrumb para el layout actual --> 
124                <li class="dfc pb-10"> 
125                    <#assign url_bc = ""> 
126                    <#if locale == "en_GB"> 
127                        <#assign url_bc = "/en" > 
128                    </#if> 
129                    <a class="dfc" href="${portalURL}${url_bc}${layout.getFriendlyURL(locale)}"> 
130                        <span class="bold font-14 underline">${layout.getName(locale)}</span> 
131                    </a> 
132                    <i class="bi bi-slash-lg ml-5 mr-5" style="transform: rotate(-25deg);"></i> 
133                </li> 
134                <#recover> 
135            </#attempt> 
136        </#if> 
137    </#macro> 
138    <#assign lastUrl="" /> 
139    <#assign name = getLanguage(values.longnames)/> 
140    <#attempt> 
141 
142 
143        <#if useParentLink> 
144            <#assign categoryHreflist = friendlyURLEntryLocalService.getFriendlyURLEntries(groupId,assetCategoryClassNameId, category.parentCategoryId)/> 
145        <#else> 
146            <#assign categoryHreflist = friendlyURLEntryLocalService.getFriendlyURLEntries(groupId,assetCategoryClassNameId, category.categoryId)/> 
147        </#if> 
148        <#assign categoryHrefLocale = friendlyURLEntryLocalService.getFriendlyURLEntryLocalization(categoryHreflist[categoryHreflist?size - 1].getFriendlyURLEntryId(), locale)/> 
149        <#assign targetLayout = layoutLocalService.fetchLayoutByFriendlyURL(groupId, false, "/"+categoryHrefLocale.urlTitle) /> 
150        <#assign lastUrl=portalURL+targetLayout.getFriendlyURL(locale) /> 
151 
152        <div class=" portlet-breadcrumb cc pt-10"> 
153            <ul class="dfc m-difc "> 
154                <li class="dfc pb-10"> 
155                    <a id="lastUrl"><i 
156                                class="bi bi-arrow-left-short font-24 mr-20"></i></a> 
157                </li> 
158                <@renderBreadcrumb targetLayout /> 
159                <#if (values.longnames)?? && (name!="")> 
160                    <li class="dfc pb-10"> 
161                        <span class="active font-14">${name}</span> 
162 
163                    </li> 
164                </#if> 
165            </ul> 
166        </div> 
167    <#-- Función recursiva para construir las migas de pan --> 
168 
169 
170        <#recover> 
171    </#attempt> 
172<#-- -------------------------------------------------------------------- FIN MIGAS DE PAN -------------------------------------------------------------------- --> 
173 
174 
175    <#assign productImage="" /> 
176    <section class="produc-detail"> 
177        <div class="cc pb-40"> 
178            <div class="col"> 
179 
180                <p style="display:none;" id="productId"> 
181                    ${objectEntryId} 
182                </p> 
183                <#-- -------------------------------------------------------------------- MOSTRAR NOMBRE -------------------------------------------------------------------- --> 
184 
185                <div class="pt-header mb-40 pb-40 bb-gray2"> 
186                    <div class="pr-title"> 
187                        <#if (values.longnames)?? && (name!="")> 
188                            <h1 class="font-36 bold mb-20 m-font-24">${name}</h1> 
189 
190                        </#if> 
191                    </div> 
192                    <#-- -------------------------------------------------------------------- FIN MOSTRAR NOMBRE -------------------------------------------------------------------- --> 
193                    <#assign description = getLanguage(values.description)/> 
194                    <div class="pr-desc"> 
195 
196                        <div class="img-marca mb-20 pb-20 bb-gray2 df aic sb"> 
197                            <#if (values.brand)?? && (values.brand?length > 0)> 
198 
199                                <p style="display:none;" id="productBrand"> 
200                                    ${values.brand} 
201                                </p> 
202															<p style="display:none;" id="productUrl"> 
203                									${hostname}/productos/${values.productUrlEs} 
204            										</p> 
205                            <#-- <h3 class="pt-2">Marca: </h3> --> 
206                                <img src="/o/finanzauto-theme/images/marca/${values.brand?lower_case}.svg"/> 
207                            </#if> 
208 
209                            <div class="toggle-sys mb-0 tar df aic jce p-20" id="metric-imperial-button"> 
210                                <label class="font-12 bold mr-10"><@liferay.language key="finanzauto.products.unidades.medida" /> 
211                                    : </label> 
212                                <div class="dfc mt-0 mb-0"> 
213                                    <p onclick="toggleElements('metric')" id="metric" 
214                                       class="cp mt-0 btn-master  bg-primary h-40 "><@liferay.language key="finanzauto.products.metrico" /></p> 
215                                    <p onclick="toggleElements('imperial')" id="imperial" 
216                                       class="cp mt-0 btn-master ml-10 h-40"><@liferay.language key="finanzauto.products.imperial" /></p> 
217                                </div> 
218                            </div> 
219                        </div> 
220 
221                        <#if (values.featuredSpecifications)?? && (values.featuredSpecifications?length > 0)> 
222                            <div id="featuredSpecifications">${getLanguageSection(values.featuredSpecifications)}</div> 
223                        </#if> 
224                        <#-- TO:DO --> 
225                        <#if buy> 
226                            <p class="mt-40 font-18 bold mb-20"> 
227                                <@liferay.language key="finanzauto.products.disponibilidad" /> 
228                            </p> 
229                            <div class="grid-3 gap-20 pb-20 mb-20 bb-gray2"> 
230                                <a class="btn-master w-100 border-neutral300 normal" style="pointer-events: none" 
231                                   href="javascript:void(0)"><@liferay.language key="finanzauto.products.compra" /></a> 
232                                <a class="btn-master w-100 border-neutral300 normal" style="pointer-events: none" 
233                                   href="javascript:void(0)"><@liferay.language key="finanzauto.products.alquiler" /></a> 
234 
235                                <#if locale=="es_ES" && urlcyclica!="#" && urlcyclica!=""  > 
236                                    <a class="btn-master w-100 border-neutral300 underline usada" target="_blank" 
237                                       href="${urlcyclica}"><@liferay.language key="finanzauto.products.usada" /></a> 
238                                <#elseif locale=="en_GB" && urlCyclicaEnglish!="#" && urlCyclicaEnglish!="" > 
239                                    <a class="btn-master w-100 border-neutral300 underline usada" target="_blank" 
240                                       href="${urlCyclicaEnglish}"><@liferay.language key="finanzauto.products.usada" /></a> 
241                                <#else> 
242                                    <a class="btn-master w-100 border-neutral300 normal" style="display: none" 
243                                       href="javascript:void(0)"><@liferay.language key="finanzauto.products.usada" /></a> 
244                                </#if> 
245 
246                            </div> 
247                        </#if> 
248                        <div class="grid-2 gap-20 mb-40"> 
249                            <button id="btn-llamanos" class="cp btn-master bg-n c-white h-50 b-0" 
250                                    onclick="callFinanzauto()"><i 
251                                        class="bi bi-telephone mr-10 font-18"></i><@liferay.language key="finanzauto.products.llamanos" /> 
252                            </button> 
253                            <button id="btn-interesa" onclick="showModalProductAndPushAnalytics()" 
254                                    class="cp btn-master bg-primary h-50 c-white b-0"><@liferay.language key="finanzauto.products.me.interesa" /> 
255                                <i class="ml-5 bi bi-arrow-right-short font-24"></i></button> 
256                        </div> 
257                        <div id="scroll-point-of-no-return" class="h-1 w-100"></div> 
258                        <#if (values.description)?? && (description!="")> 
259                            <p class="font-16 c-neutral800">${description}</p> 
260                        </#if> 
261 
262 
263                    </div> 
264                    <#-- -------------------------------------------------------------------- AGRUPAR ARCHIVOS -------------------------------------------------------------------- --> 
265                    <#assign imageList = [] /> 
266                    <#assign featuresImageList = [] /> 
267                    <#assign pdfList = [] /> 
268                    <#assign attachmentFiles = cpAttachmentFileEntryService.getCPAttachmentFileEntries(classNameId, objectEntryId, 0, 0, -1, -1)  /> 
269                    <#-- Fotos por defecto (API Caterpillar) --> 
270                    <div class="pr-images gap-10 pr h-530"> 
271                        <#list attachmentFiles as attachmentFile> 
272                            <#attempt> 
273                                <#assign file = dlFileEntryLocalService.getFileEntry(attachmentFile.getFileEntryId())> 
274 
275                                <#if file.extension=="jpg"|| file.extension=="jpeg"||file.extension=="png"> 
276                                    <#if file.fileName?contains("features")> 
277                                        <#assign featuresImageList = featuresImageList + [file] /> 
278                                    <#elseif !file.fileName?contains("no2dimage2davailable") && !file.fileName?contains("no-image-available")> 
279                                        <#assign imageList = imageList + [file] /> 
280                                    </#if> 
281                                <#elseif file.extension=="pdf"> 
282                                    <#assign pdfList = pdfList + [file]> 
283                                <#else> 
284                                </#if> 
285                                <#recover> 
286                            </#attempt> 
287 
288                        </#list> 
289                        <#assign imageList = imageList?sort_by("fileName")> 
290 
291 
292                        <#-- -------------------------------------------------------------------- FIN AGRUPAR ARCHIVOS -------------------------------------------------------------------- --> 
293 
294                        <#-- -------------------------------------------------------------------- FOTOS -------------------------------------------------------------------- --> 
295                        <#-- Fotos personalizadas --> 
296                        <#assign imagesRelationshipId = objectRelationshipService.getObjectRelationship(objectDefinitionId, "images").getObjectRelationshipId() > 
297                        <#assign images=objectEntryLocalService.getOneToManyObjectEntries(groupId, imagesRelationshipId, objectEntryId, true, -1, -1)> 
298                        <#list images as image> 
299 
300                            <#attempt> 
301                                <#assign fileId = image.getValues()["image"]> 
302                                <#assign file = dlFileEntryLocalService.getFileEntry(fileId)> 
303 
304                                <#if file.fileName?contains("features")> 
305                                    <#assign featuresImageList = featuresImageList + [file] /> 
306                                <#else> 
307                                    <#assign imageList = imageList + [file] /> 
308                                </#if> 
309                                <#recover> 
310                            </#attempt> 
311                        </#list> 
312 
313                        <#if (imageList?size > 0)> 
314                        <#-- <h3 class="pt-2">Imágenes</h3> --> 
315 
316                        <#-- mobile --> 
317                            <div class="image-selector-mobile" style="display:none;"> 
318                                <#assign activeImage="active" /> 
319                                <ul class="mobile-carousel"> 
320 
321                                    <#assign counter=0 /> 
322                                    <#assign visibleElem ="" /> 
323                                    <#list imageList as image> 
324 
325                                        <li data-id="mobiole-${counter}" class="pr cp ${activeImage}"> 
326                                            <img class="pa w-100 h-100 ofc bg-white" loading="lazy" 
327                                                 src="${portalURL}/o/adaptive-media/image/${image.getFileEntryId()}/Preview-1000x0/${image.fileName}"/> 
328                                        </li> 
329                                        <#assign activeImage="" /> 
330                                        <#assign counter=counter + 1 /> 
331 
332 
333                                    </#list> 
334 
335                                    <#if (values.videosUrls)??> 
336                                        <#assign videos = values.videosUrls?split("\n")> 
337                                        <#list videos as video> 
338                                            <#if video != "" > 
339                                                <li data-id="${counter}" 
340                                                    class="pr cp ${activeImage} video-yt" ${visibleElem}> 
341                                                    <div class="overlay c-video"></div> 
342                                                    <div class="btn-play c-video"><i class="bi bi-play-circle-fill"></i> 
343                                                    </div> 
344                                                    <img data-url="${video}" class="pa w-100 h-100 ofc bg-white" 
345                                                         loading="lazy" 
346                                                         src="${video?replace('https://www.youtube.com/embed/','https://i.ytimg.com/vi_webp/')}/default.webp"/> 
347 
348                                                    <#assign counter=counter + 1 /> 
349 
350                                                </li> 
351                                            </#if> 
352                                        </#list> 
353                                    </#if> 
354 
355                                </ul> 
356                            </div> <#-- fin mobile --> 
357 
358 
359                        <#-- Mostramos todas las fotos --> 
360                            <div class="image-selector"> 
361                                <#assign activeImage="active" /> 
362                                <ul class="principal-carousel"> 
363 
364                                    <#assign counter=0 /> 
365                                    <#assign visibleElem ="" /> 
366                                    <#list imageList as image> 
367                                    <#-- <div class="w-80 h-80 pr mb-10 cp ${activeImage}"><i class="bi bi-x" style="display:none;"></i> 
368                                       <span><img class="pa w-100 h-100 ofc bg-white" src="${portalURL}/documents/${image.repositoryId}/${image.folderId}/${image.fileName}"/></span> 
369                                       <#assign activeImage="" /> 
370                                    </div> --> 
371 
372                                        <li data-id="${counter}" class="w-80 h-90 pr cp ${activeImage}"> 
373                                            <img class="pa w-100 h-80 ofc bg-white" loading="lazy" 
374                                                 src="${portalURL}/o/adaptive-media/image/${image.getFileEntryId()}/Preview-1000x0/${image.fileName}"/> 
375                                        </li> 
376                                        <#assign activeImage="" /> 
377                                        <#assign counter=counter + 1 /> 
378 
379 
380                                    </#list> 
381 
382                                    <#if (values.videosUrls)??> 
383                                        <#assign videos = values.videosUrls?split("\n")> 
384                                        <#list videos as video> 
385                                            <#if video != "" > 
386                                                <li data-id="${counter}" 
387                                                    class="w-80 h-90 pr cp ${activeImage} video-yt" ${visibleElem}> 
388                                                    <div class="overlay c-video"></div> 
389                                                    <div class="btn-play c-video"><i class="bi bi-play-circle-fill"></i> 
390                                                    </div> 
391                                                    <img data-url="${video}" class="pa w-100 h-80 ofc bg-white" 
392                                                         loading="lazy" 
393                                                         src="${video?replace('https://www.youtube.com/embed/','https://i.ytimg.com/vi_webp/')}/default.webp"/> 
394                                                    <#-- <iframe style="display:none;" width="100" height="80" src="${video}" frameborder="0" allowfullscreen></iframe> --> 
395                                                    <#assign counter=counter + 1 /> 
396 
397                                                </li> 
398                                            </#if> 
399                                        </#list> 
400                                    </#if> 
401 
402                                </ul> 
403                            </div> 
404                            <div class="image-principal pr h-530 bg-white" data-size="${imageList?size - 1}"> 
405                                <#list imageList as image> 
406                                    <span><span class="arrow-prev disabled" style="display: none;"><i 
407                                                    class="bi bi-chevron-left"></i></span><span class="arrow-next" 
408                                                                                                style="display: none;"><i 
409                                                    class="bi bi-chevron-right"></i></span><i class="bi bi-x" 
410                                                                                              style="display:none;"></i> 
411                                        <img class="pa w-100 h-100 ofc bg-white" loading="lazy" 
412                                             src="${portalURL}/o/adaptive-media/image/${image.getFileEntryId()}/Preview-1000x0/${image.fileName}"/></span> 
413                                    <span class="w-28 h-28 db bg-n br-50 pa b-20 r-20 c-white cp zoom-it z-2"><i 
414                                                class="bi bi-zoom-in"></i></span> 
415                                    <#assign productImage> 
416                                        ${portalURL}/o/adaptive-media/image/${image.getFileEntryId()}/Preview-1000x0/${image.fileName} 
417                                    </#assign> 
418 
419 
420                                    <#break> 
421                                </#list> 
422                            </div> 
423                        <#else> 
424                            <div> 
425 
426                            </div> 
427                            <div class="image-principal pr h-530 bg-white" data-size="${1}"> 
428                                <img class="pa w-100 h-100 ofc bg-white" loading="lazy" 
429                                     src="/o/finanzauto-theme/images/no-photo.jpg"/></span> 
430                            </div> 
431                        </#if> 
432 
433 
434                    </div> 
435                </div> 
436                <#-- -------------------------------------------------------------------- FIN FOTOS-------------------------------------------------------------------- --> 
437                <#-- -------------------------------------------------------------------- PDFS -------------------------------------------------------------------- --> 
438 
439                <#-- <#if (pdfList?size > 0)> 
440                    <div class="mb-40 pb-40 bb-gray2 w-100"> 
441                    <h2 class="pb-40 font-32 c-neutral950"><@liferay.language key="documents" /></h2> 
442                    <div class="pdf-container grid-4 gap-20"> 
443                  <#list pdfList as pdf> 
444                       <a class="bg-white p-20 br-5 font-14 df" href="${portalURL}/documents/${pdf.repositoryId}/${pdf.folderId}/${pdf.fileName}" download> 
445                             <i class="bi bi-file-earmark-pdf"></i> 
446                             ${pdf.fileName} 
447                        </a> 
448                  </#list> 
449                        </div> 
450                    </div> 
451                </#if> 
452                --> 
453                <#-- -------------------------------------------------------------------- FIN PDFS -------------------------------------------------------------------- --> 
454                <#-- -------------------------------------------------------------------- VENTAJAS -------------------------------------------------------------------- --> 
455 
456                <#assign activeElements=0/> 
457 
458 
459                <#assign getType=""/> 
460                <#assign advantages = getLanguageSection(values.advantages)/> 
461                <#if (values.advantages)?? && (advantages!="")> 
462                    <#assign activeElements=1/> 
463                    <#assign getType>${getType} <a href="javascript:void(0)" 
464                                                   class="active btn-master bg-g font-15 mr-5 br-30 bold bg-primary h-50" 
465                                                   data-rel="ventajas"> 
466                        <p class="pl-10 pr-10"><@liferay.language key="finanzauto.products.ventajas" /></p> 
467                        </a></#assign> 
468                </#if> 
469 
470                <#if (values.features)?? && (values.features?length > 0)> 
471                    <#if activeElements==0> 
472                        <#assign activeElements=2/> 
473                        <#assign getType>${getType} <a href="javascript:void(0)" 
474                                                       class="active btn-master bg-primary bold font-15 mr-5 br-30 pl-30 pr-30 h-50" 
475                                                       data-rel="caracteristicas"> 
476                            <p class="pl-10 pr-10"><@liferay.language key="finanzauto.products.caracteristicas" /></p> 
477                            </a></#assign> 
478                    <#else> 
479                        <#assign getType>${getType} <a href="javascript:void(0)" 
480                                                       class="btn-master bg-g normal font-15 mr-5 br-30 pl-30 pr-30 h-50" 
481                                                       data-rel="caracteristicas"> 
482                            <p class="pl-10 pr-10"><@liferay.language key="finanzauto.products.caracteristicas" /></p> 
483                            </a></#assign> 
484                    </#if> 
485                </#if> 
486 
487                <#if (values.specifications)?? && (values.specifications?length > 0)> 
488                    <#if activeElements==0> 
489                        <#assign activeElements=3/> 
490                        <#assign getType>${getType} <a href="javascript:void(0)" 
491                                                       class="active btn-master mr-5 bg-primary bold font-15 br-30 pl-30 pr-30 h-50" 
492                                                       data-rel="especificaciones"> 
493                            <p class="pl-10 pr-10"><@liferay.language key="finanzauto.products.especificaciones" /></p> 
494                            </a></#assign> 
495                    <#else> 
496                        <#assign getType>${getType} <a href="javascript:void(0)" 
497                                                       class="btn-master mr-5 bg-g normal font-15 br-30 pl-30 pr-30 h-50" 
498                                                       data-rel="especificaciones"> 
499                            <p class="pl-10 pr-10"><@liferay.language key="finanzauto.products.especificaciones" /></p> 
500                            </a></#assign> 
501                    </#if> 
502 
503                </#if> 
504 
505                <#-- Pdfs personalizadas --> 
506                <#assign documentsRelationshipId = objectRelationshipService.getObjectRelationship(objectDefinitionId, "documents").getObjectRelationshipId() > 
507                <#assign documents=objectEntryLocalService.getOneToManyObjectEntries(groupId, documentsRelationshipId, objectEntryId, true, -1, -1)> 
508                <#list documents as document> 
509                    <#assign fileId = document.getValues()["document"]> 
510 
511                    <#attempt> 
512                        <#assign file = dlFileEntryLocalService.getFileEntry(fileId)> 
513                        <#assign pdfList = pdfList + [file]> 
514                        <#recover> 
515                    </#attempt> 
516                </#list> 
517                <#if (pdfList?size > 0)> 
518 
519                    <#if activeElements==0> 
520                        <#assign activeElements=4/> 
521                        <#assign getType>${getType} <a href="javascript:void(0)" 
522                                                       class="active btn-master bg-primary bold font-15 br-30 pl-30 pr-30 h-50" 
523                                                       data-rel="documentos"> 
524                            <p class="pl-10 pr-10"><@liferay.language key="finanzauto.products.documentos" /></p> 
525                            </a></#assign> 
526                    <#else> 
527                        <#assign getType>${getType} <a href="javascript:void(0)" 
528                                                       class="btn-master bg-g normal font-15 br-30 pl-30 pr-30 h-50" 
529                                                       data-rel="documentos"> 
530                            <p class="pl-10 pr-10"><@liferay.language key="finanzauto.products.documentos" /></p> 
531                            </a></#assign> 
532                    </#if> 
533 
534                </#if> 
535 
536                <div class="tag-navigation mb-20"> 
537                    ${getType} 
538                </div> 
539 
540 
541                <#if (values.advantages)?? && (advantages!="")> 
542 
543                    <#assign style> 
544                        style="display:none;" 
545                    </#assign> 
546                    <#if activeElements == 1> 
547                        <#assign style="" /> 
548                    </#if> 
549                    <div class="tag-content" id="ventajas" ${style}>${advantages}</div> 
550                </#if> 
551 
552                <#-- -------------------------------------------------------------------- FIN VENTAJAS -------------------------------------------------------------------- --> 
553                <#-- -------------------------------------------------------------------- CARACTERÍSTICAS -------------------------------------------------------------------- --> 
554 
555 
556                <#if (values.features)?? && (values.features?length > 0)> 
557 
558                <#-- <h3 class="pt-4">Características</h3> --> 
559                    <#assign counter = 0> 
560                    <#assign features = getLanguageSection(values.features)> 
561                    <#assign featuresImageList = featuresImageList?sort_by("fileName")> 
562 
563 
564 
565                    <#if (featuresImageList?size > 0)> 
566                        <#list 0..(featuresImageList?size-1) as i> 
567                            <#if features?contains("FEATURE_IMAGE")> 
568                                <#assign image = featuresImageList[counter]> 
569                                <#assign imageText = "<img loading='lazy' style='height:400px;width:auto'src='${portalURL}/o/adaptive-media/image/${image.getFileEntryId()}/Preview-1000x0/${image.fileName}'"/> 
570                                <#assign features = features?replace("<p>FEATURE_IMAGE</p>", imageText,"f")> 
571                                <#assign counter = counter + 1> 
572                            </#if> 
573                        </#list> 
574                    </#if> 
575										<#assign features = features?replace("<p>FEATURE_IMAGE</p>", ' <img class="height:400px;width:auto" loading="lazy" 
576                                     src="/o/finanzauto-theme/images/no-photo.jpg"/>',"a")> 
577 
578 
579                    <#assign style> 
580                        style="display:none;" 
581                    </#assign> 
582                    <#if activeElements == 2> 
583                        <#assign style="" /> 
584                    </#if> 
585                    <div class="tag-content" id="caracteristicas" ${style}>${features}</div> 
586                </#if> 
587 
588                <#if (pdfList?size > 0)> 
589                    <#assign style> 
590                        style="display:none;" 
591                    </#assign> 
592                    <#if activeElements == 3> 
593                        <#assign style="" /> 
594                    </#if> 
595                    <div class="tag-content" id="documentos" ${style}> 
596                        <div class="pdf-container grid-4 gap-20"> 
597                            <#list pdfList as pdf> 
598                                <a class="bg-white p-20 br-5 font-14 df" 
599                                   href="${portalURL}/documents/${pdf.repositoryId}/${pdf.folderId}/${pdf.fileName}" 
600                                   download> 
601                                    <i class="bi bi-file-earmark-pdf"></i> 
602                                    ${pdf.fileName} 
603                                </a> 
604                            </#list> 
605                        </div> 
606                    </div> 
607 
608                </#if> 
609                <#-- -------------------------------------------------------------------- FIN CARACTERÍSTICAS-------------------------------------------------------------------- --> 
610                <#-- -------------------------------------------------------------------- ESPECIFICACIONES -------------------------------------------------------------------- --> 
611                <#if (values.specifications)?? && (values.specifications?length > 0)> 
612                    <#assign getType>${getType} Especificaciones</#assign> 
613                <#-- <h3 class="pt-4">Especificaciones</h3> --> 
614                    <#assign style> 
615                        style="display:none;" 
616                    </#assign> 
617                    <#if activeElements == 3> 
618                        <#assign style="" /> 
619                    </#if> 
620                    <div class="tag-content" 
621                         id="especificaciones" ${style}>${getLanguageSection(values.specifications)}</div> 
622                </#if> 
623 
624 
625            </div> 
626        </div> 
627        <div class="bg-neutral100 pt-40"> 
628 
629            <div class="cc"> 
630                <#-- -------------------------------------------------------------------- FIN ESPECIFICACIONES-------------------------------------------------------------------- --> 
631                <#-- -------------------------------------------------------------------- RELACIONADOS -------------------------------------------------------------------- --> 
632 
633 
634                <#if (category??) > 
635                    <#assign allObjectsValues =[] /> 
636                    <#assign allBrothersObjectsValues =[] /> 
637                <#--Productos hermanos --> 
638                    <#assign hits = assetEntryLocalService.search(companyId,[groupId],0,className,"","","",category.getCategoryId()+"","",0,true,0,99).getDocs()> 
639                    <#list hits as hit> 
640                        <#assign objectId = hit.entryClassPK?number  /> 
641                        <#if (objectId!= objectEntryId) > 
642                        <#-- ------------- Valores del producto -------------  --> 
643                            <#assign valuesR = objectEntryLocalService.getValues(objectId)  /> 
644                            <#assign valuesR = valuesR + {"objectEntryId": objectId}> 
645                            <#assign allBrothersObjectsValues = allBrothersObjectsValues + [valuesR]  /> 
646                        </#if> 
647                    </#list> 
648                </#if> 
649                <#--Productos relacionados --> 
650                <#if (values.relationships)?? && (values.relationships?length > 0)> 
651                    <#list values.relationships?split("\n") as relationship> 
652                        <#assign objectSearchBaseModels = objectEntryLocalService.searchObjectEntries(groupId,objectDefinitionId,relationship, 1, 1)> 
653                        <#if (objectSearchBaseModels.baseModels?size>0) > 
654                            <#assign addToAllObjects = true /> 
655                            <#assign objectSearch = objectSearchBaseModels.baseModels[0]> 
656                            <#assign objectId = objectSearch.objectEntryId> 
657                        </#if> 
658                        <#-- Verificar si objectId ya está en allObjectsValues --> 
659													<#attempt> 
660                            <#list allBrothersObjectsValues as objectValues> 
661                                <#if objectValues.objectEntryId == objectId > 
662                                    <#assign addToAllObjects = false /> 
663                                </#if> 
664                            </#list> 
665                            <#if addToAllObjects > 
666                                <#assign valuesR = objectEntryLocalService.getValues(objectId)> 
667                                <#assign valuesR = valuesR + {"objectEntryId": objectId}> 
668                                <#assign allObjectsValues = allObjectsValues + [valuesR] /> 
669                            </#if><#recover></#attempt> 
670                    </#list> 
671															 
672                </#if> 
673                <#-- ------------- Tambien te puede interesar: -------------  --> 
674                <#if (allBrothersObjectsValues)?? &&(allBrothersObjectsValues?size > 0) > 
675                    <h2 class="font-20 c-neutral900 mb-20 dfc"><@liferay.language key="finanzauto.products.products.related"/></h2> 
676 
677 
678                    <div class="mb-40 p-relacionados"> 
679                        <ul class="pb-20 product-carousel"> 
680                            <#assign hideLoadCarousel = "" /> 
681 
682                            <#assign allBrothersObjectsValues = allBrothersObjectsValues?sort_by("names")> 
683                            <#assign count=0 > 
684                            <#list allBrothersObjectsValues as valuesR> 
685                                <#assign count=count+1 > 
686                                <#assign imageList = [] /> 
687 
688                            <#-- ------------- Imagen del producto -------------  --> 
689                                <#assign attachmentFiles = cpAttachmentFileEntryService.getCPAttachmentFileEntries(classNameId, valuesR.objectEntryId, 0, 0, -1, -1)  /> 
690                                <#list attachmentFiles as attachmentFile> 
691 
692                                    <#attempt> 
693                                        <#assign image = dlFileEntryLocalService.getFileEntry(attachmentFile.getFileEntryId())/> 
694                                        <#if (image.extension=="jpg"|| image.extension=="jpeg"||image.extension=="png") && !image.fileName?contains("features") && !image.fileName?contains("no2dimage2davailable")> 
695                                            <#assign imageList = imageList + [image] /> 
696                                        </#if> 
697                                        <#recover> 
698                                    </#attempt> 
699                                </#list> 
700                                <#assign image = -1> 
701                                <#assign imageList = imageList?sort_by("fileName")> 
702                                <#if (imageList?size>0)> 
703                                    <#assign image = imageList[0]> 
704                                <#else><#-- Fotos personalizadas --> 
705                                    <#assign imagesRelationshipId = objectRelationshipService.getObjectRelationship(objectDefinitionId, "images").getObjectRelationshipId() > 
706                                    <#assign images=objectEntryLocalService.getOneToManyObjectEntries(groupId, imagesRelationshipId, valuesR.objectEntryId, true, -1, -1)> 
707                                    <#list images as image> 
708                                        <#assign fileId = image.getValues()["image"]> 
709                                        <#attempt> 
710                                            <#assign file = dlFileEntryLocalService.getFileEntry(fileId)> 
711                                            <#assign imageList = imageList + [file]> 
712                                            <#recover> 
713                                        </#attempt> 
714                                    </#list> 
715 
716                                    <#assign imageList = imageList?sort_by("fileName")> 
717                                    <#if (imageList?size>0)> 
718                                        <#assign image = imageList[0]> 
719                                    </#if> 
720                                </#if> 
721                                <li ${hideLoadCarousel}> 
722                                    <#if locale=="es_ES" > 
723                                    <a href="/productos/${valuesR.productUrlEs}" class="w-card product w-100 br-10 oh"> 
724                                        <#else> 
725                                        <a href="/en/products/${valuesR.productUrlEn}" 
726                                           class="w-card product w-100 br-10 oh"> 
727                                            </#if> 
728                                            <span class="image"> 
729                                            <#if (image?? && (!image?is_number)) > 
730 
731                                                <img class="ofc" loading="lazy" 
732                                                     src="${portalURL}/o/adaptive-media/image/${image.getFileEntryId()}/Thumbnail-300x300/${image.fileName}"/> 
733                                                 <#else> 
734                                                <img class="ofc" src="/o/finanzauto-theme/images/no-photo.jpg"/> 
735                                            </#if> 
736                                        </span> 
737                                            <span class="container"> 
738                                            <span class="c-title bb-gray pt-10 pb-10 mb-10 dfc sb"> 
739                                                <h3 class="underline bold font-15"> 
740                                                    ${getLanguage(valuesR.names)} 
741                                                </h3> 
742                                                <span class="card-chevron dfcc w-28 h-28 border-white br-50 circle-white"><i 
743                                                            class="bi bi-chevron-right bold"></i></span> 
744                                            </span> 
745                                            <span class="c-info font-14 c-neutral900"> 
746                                                ${getLanguageSection(valuesR.featuredSpecifications)} 
747                                            </span> 
748											                      <p style="display:none;" 
749                                                                     class="product-brand">${valuesR.brand}</p> 
750											                      <p style="display:none;" 
751                                                                     class="product-id">${valuesR.objectEntryId}</p> 
752                                        </span> 
753 
754                                        </a> 
755 
756                                </li> 
757                                <#if count == 4 > 
758                                    <#assign hideLoadCarousel>style="display:none"</#assign> 
759                                </#if> 
760                                <#if count == maxRelationships > 
761                                    <#break> 
762                                </#if> 
763                            </#list> 
764                        </ul> 
765                    </div> 
766                </#if> 
767                <#-- ------------- Implementos compatibles: -------------  --> 
768                <#if (allObjectsValues??)&&(allObjectsValues?size > 0) > 
769 
770                    <#if implement> 
771                        <h2 class="font-20 c-neutral900 mb-20 dfc"><@liferay.language key="finanzauto.products.products.maquinas"/></h2> 
772                    <#else> 
773                        <h2 class="font-20 c-neutral900 mb-20 dfc"><@liferay.language key="finanzauto.products.products.implementos"/></h2> 
774                    </#if> 
775 
776 
777                    <div class="mb-40 p-relacionados"> 
778                        <ul class="pb-20 product-implements-carousel"> 
779                            <#assign hideLoadCarousel = "" /> 
780 
781                            <#assign allObjectsValues = allObjectsValues?sort_by("names")> 
782                            <#assign count=0 > 
783                            <#list allObjectsValues as valuesR> 
784                                <#assign count=count+1 > 
785                                <#assign imageList = [] /> 
786 
787                            <#-- ------------- Imagen del producto -------------  --> 
788                                <#assign attachmentFiles = cpAttachmentFileEntryService.getCPAttachmentFileEntries(classNameId, valuesR.objectEntryId, 0, 0, -1, -1)  /> 
789                                <#list attachmentFiles as attachmentFile> 
790                                    <#attempt> 
791                                        <#assign image = dlFileEntryLocalService.getFileEntry(attachmentFile.getFileEntryId())/> 
792                                        <#if (image.extension=="jpg"|| image.extension=="jpeg"||image.extension=="png") && !image.fileName?contains("features") && !image.fileName?contains("no2dimage2davailable")> 
793                                            <#assign imageList = imageList + [image] /> 
794                                        </#if> 
795                                        <#recover> 
796                                    </#attempt> 
797                                </#list> 
798                                <#assign image = -1> 
799                                <#assign imageList = imageList?sort_by("fileName")> 
800                                <#if (imageList?size>0)> 
801                                    <#assign image = imageList[0]> 
802                                <#else><#-- Fotos personalizadas --> 
803                                    <#assign imagesRelationshipId = objectRelationshipService.getObjectRelationship(objectDefinitionId, "images").getObjectRelationshipId() > 
804                                    <#assign images=objectEntryLocalService.getOneToManyObjectEntries(groupId, imagesRelationshipId, valuesR.objectEntryId, true, -1, -1)> 
805                                    <#list images as image> 
806                                        <#attempt> 
807                                            <#assign fileId = image.getValues()["image"]> 
808                                            <#assign file = dlFileEntryLocalService.getFileEntry(fileId)> 
809                                            <#assign imageList = imageList + [file]> 
810 
811                                            <#recover> 
812                                        </#attempt> 
813                                    </#list> 
814 
815                                    <#assign imageList = imageList?sort_by("fileName")> 
816                                    <#if (imageList?size>0)> 
817                                        <#assign image = imageList[0]> 
818                                    </#if> 
819                                </#if> 
820                                <li ${hideLoadCarousel}> 
821                                    <#if locale=="es_ES" > 
822                                    <a href="/productos/${valuesR.productUrlEs}" class="w-card product w-100 br-10 oh"> 
823                                        <#else> 
824                                        <a href="/en/products/${valuesR.productUrlEn}" 
825                                           class="w-card product w-100 br-10 oh"> 
826                                            </#if> 
827                                            <span class="image"> 
828                                            <#if (image?? && (!image?is_number)) > 
829                                                <img class="ofc" loading="lazy" 
830                                                     src="${portalURL}/o/adaptive-media/image/${image.getFileEntryId()}/Thumbnail-300x300/${image.fileName}"/> 
831                                                 <#else> 
832                                                <img class="ofc" src="/o/finanzauto-theme/images/no-photo.jpg"/> 
833                                            </#if> 
834                                        </span> 
835                                            <#assign sectionLength = 1 /> 
836                                            <#attempt> 
837                                                <#if getLanguageSection(valuesR.featuredSpecifications)?length == 0> 
838                                                    <#assign sectionLength = 0 /> 
839                                                </#if> 
840                                                <#recover> 
841 
842                                            </#attempt> 
843                                            <span class="container container-${sectionLength}"> 
844                                            <span class="c-title bb-gray pt-10 pb-10 mb-10 dfc sb"> 
845                                                <h3 class="underline bold font-15"> 
846                                                    ${getLanguage(valuesR.names)} 
847                                                </h3> 
848                                                <span class="card-chevron dfcc w-28 h-28 border-white br-50 circle-white"><i 
849                                                            class="bi bi-chevron-right bold"></i></span> 
850                                            </span> 
851                                            <span class="c-info font-14 c-neutral900"> 
852                                                ${getLanguageSection(valuesR.featuredSpecifications)} 
853                                                 
854                                            </span> 
855											                      <p style="display:none;" 
856                                                                     class="product-brand">${valuesR.brand}</p> 
857											                      <p style="display:none;" 
858                                                                     class="product-id">${valuesR.objectEntryId}</p> 
859                                        </span> 
860 
861                                        </a> 
862 
863                                </li> 
864                                <#if count == 4 > 
865                                    <#assign hideLoadCarousel>style="display:none"</#assign> 
866                                </#if> 
867                                <#if count == maxRelationships > 
868                                    <#break> 
869                                </#if> 
870                            </#list> 
871                        </ul> 
872                    </div> 
873                </#if> 
874 
875 
876                <#-- -------------------------------------------------------------------- FIN RELACIONADOS -------------------------------------------------------------------- --> 
877 
878                <#-- -------------------------------------------------------------------- CATEGORIAS RELACIONADAS -------------------------------------------------------------------- --> 
879 
880                <#assign count=0 > 
881                <#if ((categories??) && (categories?size>0)) > 
882                    <#assign sisterCategories = assetCategoryLocalService.getSubcategoryIds(parentCategoryId)/> 
883                    <#assign parentCategory = category.getParentCategory()/> 
884                    <#assign parentCategoryName = parentCategory.getName() /> 
885 
886                    <#assign hideLoadCarousel = "" /> 
887 
888                    <#assign categories = [] /> 
889                    <#list sisterCategories as categoryId> 
890                        <#assign showCategory = true/> 
891                        <#if categoryId!= parentCategoryId  && categoryId!=category.getCategoryId()> 
892                            <#assign sisterCategory = assetCategoryLocalService.getAssetCategory(categoryId)/> 
893                            <#assign categoryProperties = assetCategoryPropertyService.getCategoryProperties(categoryId)/> 
894                            ${sisterCategory.setName("99")} 
895                            <#list categoryProperties as categoryProperty> 
896                                <#assign key=categoryProperty["key"]/> 
897                                <#if (key == "SORT") > 
898                                    ${sisterCategory.setName(categoryProperty["value"])} 
899                                </#if> 
900                                <#if (key == "DONT_SHOW_CHILDS") > 
901                                    <#assign showCategory = false/> 
902                                </#if> 
903                            </#list> 
904 
905                            <#if showCategory > 
906                                <#assign categories = categories+[sisterCategory] /> 
907                            </#if> 
908                        </#if> 
909                    </#list> 
910                    <#if ((categories??) && (categories?size>0)) && showSisterCategories > 
911                        <h2 class="font-20 c-neutral900 mb-20 dfc"><@liferay.language key="finanzauto.products.other.categories"/> 
912                            ${parentCategoryName}:</h2> 
913                        <div class="mb-40 p-relacionados"> 
914                            <ul class="pb-20 categories-carousel"> 
915                                <#assign categories = categories?sort_by("name")> 
916 
917                                <#list categories as category> 
918                                    <#attempt> 
919                                        <#assign count=count+1 > 
920                                        <#assign categoryId = category.getCategoryId() /> 
921 
922                                        <#assign attachmentFile = cpAttachmentFileEntryService.getCPAttachmentFileEntries(assetCategoryClassNameId, categoryId, 0, 0, -1, -1)  /> 
923                                        <#assign image=-1> 
924                                        <#if ((attachmentFile??) && (attachmentFile?size>0))> 
925                                            <#assign image = dlFileEntryLocalService.getFileEntry(attachmentFile[0].getFileEntryId())> 
926                                        </#if> 
927                                        <#assign categoryName = category.getTitle(locale) /> 
928                                        <#assign categoryHreflist = friendlyURLEntryLocalService.getFriendlyURLEntries(groupId,assetCategoryClassNameId, categoryId)/> 
929 
930                                        <#list categoryHreflist as categoryHref> 
931                                            <#assign categoryHrefLocale = friendlyURLEntryLocalService.getFriendlyURLEntryLocalization(categoryHref.getFriendlyURLEntryId(),locale)/> 
932                                        </#list> 
933                                        <li ${hideLoadCarousel}> 
934                                            <#assign url_bc = ""> 
935                                            <#if locale == "en_GB"> 
936                                                <#assign url_bc = "/en" > 
937                                            </#if> 
938 
939                                            <a href="${url_bc}/${categoryHrefLocale.getUrlTitle()?replace('/g/','/')}" 
940                                               class="w-card w-100 product fleet"> 
941                                <span class="image p-15"> 
942                                    <#if image?? && (!image?is_number) > 
943                                        <img class="ofc" loading="lazy" 
944                                             src="${portalURL}/o/adaptive-media/image/${image.getFileEntryId()}/Thumbnail-300x300/${image.fileName}"/> 
945                                     <#else> 
946                                        <img class="ofc" src="/o/finanzauto-theme/images/no-photo.jpg"/> 
947                                    </#if> 
948                                </span> 
949                                                <span class="container"> 
950                                    <span class="card-title"> 
951                                        <h3 class="underline m-font-14 font-16"> 
952                                            ${categoryName} 
953                                        </h3> 
954                                        <span class="card-chevron dfcc w-32 h-32 border-white br-50"><i 
955                                                    class="bi bi-chevron-right"></i></span> 
956                                    </span> 
957                                </span> 
958                                            </a> 
959                                        </li> 
960                                        <#if count == 4 > 
961                                            <#assign hideLoadCarousel>style="display:none"</#assign> 
962                                        </#if> 
963                                        <#recover> 
964                                    </#attempt> 
965                                </#list> 
966                            </ul> 
967                        </div> 
968                    </#if> 
969                </#if> 
970 
971 
972 
973                <#-- -------------------------------------------------------------------- FIN CATEGORIAS RELACIONADAS-------------------------------------------------------------------- --> 
974 
975            </div> 
976 
977            <#if ((values.url360Inside)?? && (values.url360Inside?has_content)) || (values.url360Outside)?? &&(values.url360Outside?has_content) || ((values.urlVirtualShowroom)?? &&(values.urlVirtualShowroom?has_content)) > 
978                <div class="bg-white pt-60 pb-60"> 
979                    <div class="cc"> 
980                        <#-- -------------------------------------------------------------------- 360 -------------------------------------------------------------------- --> 
981 
982                        <#assign getIframe=""/> 
983 
984                        <#assign selectedTab="selected" /> 
985                        <#assign styleTab=""/> 
986 
987 
988                        <ul class="df jcc pb-5 mb-20 bb-gray"> 
989                            <#if (values.url360Inside)?? && (values.url360Inside?has_content) > 
990                                <#assign secure360InsideUrl = values.url360Inside?replace("http:", "https:")> 
991                                <li class="pl-10 pr-10 pr"><h3 data-tab="1" 
992                                                               class="nav-tab ${selectedTab} font-16 cp"><@liferay.language key="finanzauto.products.360.interior" /></h3> 
993                                </li> 
994                                <#assign getIframe>${getIframe} 
995                                <div id="data-tab-1" ${styleTab} class="content-tab df jcc"> 
996                                    <iframe class="border-0" width="750" height="750" src="${secure360InsideUrl}" 
997                                            scrolling="no"></iframe> 
998                                    </div></#assign> 
999                                <#assign selectedTab="normal" /> 
1000                                <#assign styleTab>style="display:none;"</#assign> 
1001                            </#if> 
1002 
1003                            <#if  (values.url360Outside)?? &&(values.url360Outside?has_content) > 
1004                                <#assign secure360OutsideUrl = values.url360Outside?replace("http:", "https:")> 
1005                                <li class="pl-10 pr-10 pr"><h3 data-tab="2" 
1006                                                               class="nav-tab ${selectedTab} font-16 cp"><@liferay.language key="finanzauto.products.360.exterior" /></h3> 
1007                                </li> 
1008                                <#assign getIframe>${getIframe} 
1009                                <div id="data-tab-2" ${styleTab} class="content-tab df jcc"> 
1010                                    <iframe class="border-0" width="750" height="750" 
1011                                            src="${secure360OutsideUrl}" scrolling="no"></iframe> 
1012                                    </div></#assign> 
1013                                <#assign selectedTab="normal" /> 
1014                                <#assign styleTab>style="display:none;"</#assign> 
1015                            </#if> 
1016                            <#-- -------------------------------------------------------------------- FIN 360-------------------------------------------------------------------- --> 
1017                            <#-- -------------------------------------------------------------------- TOUR VIRTUAL -------------------------------------------------------------------- --> 
1018                            <#if (values.urlVirtualShowroom)?? &&(values.urlVirtualShowroom?has_content) > 
1019                                <#assign secureVirtualShowroomUrl = values.urlVirtualShowroom?replace("http:", "https:")> 
1020                                <li class="pl-10 pr-10 pr"><h3 data-tab="3" 
1021                                                               class="nav-tab ${selectedTab} font-16 cp"><@liferay.language key="finanzauto.products.tour.virtual" /></h3> 
1022                                </li> 
1023                                <#assign getIframe>${getIframe} 
1024                                <div id="data-tab-3" ${styleTab} class="content-tab df jcc"> 
1025                                    <iframe class="border-0" width="750" height="750" 
1026                                            src="${secureVirtualShowroomUrl}" scrolling="no"></iframe></div></#assign> 
1027                                <#assign selectedTab="normal" /> 
1028                                <#assign styleTab>style="display:none;"</#assign> 
1029                            </#if> 
1030                        </ul> 
1031                        <div class="tabs-container"> 
1032                            ${getIframe} 
1033                        </div> 
1034                        <#-- -------------------------------------------------------------------- FIN TOUR VIRTUAL-------------------------------------------------------------------- --> 
1035                    </div> 
1036                </div> 
1037            </#if> 
1038        </div> 
1039        </div> 
1040 
1041        <div id="fixed-info" class="bb-gray2"> 
1042            <div class="cc dfc sb h-85 gap-20"> 
1043            <span class="dfc m-dn"><span class="db w-70 h-70 pr mr-20"><img class="pa w-100 h-100 l-0 t-0" 
1044                                                                            loading="lazy" 
1045                                                                            src="${productImage}"/></span><p 
1046                        class="mw-550 font-18 bold c-neutral900">${name}</p></span> 
1047                <div class="grid-2 gap-20 w-100 mw-350 m-mw-i"> 
1048                    <button 
1049                            class="btn-master bg-n c-white h-50 cp b-0" onclick="callFinanzauto()"><i 
1050                                class="bi bi-telephone mr-10 font-18 btn-llamanos"></i><@liferay.language key="finanzauto.products.llamanos" /> 
1051                    </button> 
1052                    <button onclick="showModalProductAndPushAnalytics()" 
1053                            class="btn-interes btn-master bg-primary h-50 c-white b-0 cp"><@liferay.language key="finanzauto.products.me.interesa" /> 
1054                        <i class="ml-5 bi bi-arrow-right-short font-24"></i></button> 
1055                </div> 
1056            </div> 
1057        </div> 
1058 
1059 
1060    </section> 
1061    <div class="modal fade" id="modalPhone" tabindex="-1" role="dialog" aria-labelledby="modalNoResultsLabel" 
1062         aria-hidden="true" style="display:none;"> 
1063        <div class="modal-dialog" role="document"> 
1064            <div class="modal-content"> 
1065                <div class="modal-header"> 
1066                    <div class="panel-header tac pb-10 mb-30"> 
1067                        <h2 class="h2 font-32 bold mt-40"><@liferay.language key="finanzauto.products.llamanos" /></h2> 
1068                        <button type="button" class="close-popup close" data-dismiss="modal" aria-label="Close"> 
1069                            <span aria-hidden="true"><i class="bi bi-x"></i></span> 
1070                        </button> 
1071                    </div> 
1072                </div> 
1073                <div class="modal-body"> 
1074                    <div class="panel cc pt-40 pb-40 maxw-900"> 
1075                        <div class="panel-body"> 
1076                            <div class="call-us"> 
1077                                <a href="tel:+34${finanzautoPhone}"><span><i 
1078                                                class="bi bi-telephone-outbound"></i></span></a> 
1079                                <p> 
1080                                    <a href="tel:+34${finanzautoPhone}">+34 ${finanzautoPhone}</a> 
1081                                </p> 
1082                            </div> 
1083                        </div> 
1084                    </div> 
1085                </div> 
1086            </div> 
1087        </div> 
1088    </div> 
1089    <style> 
1090        .controls-visible.has-control-menu.scrolled-product div#fixed-info { 
1091            margin-top: 0px !important; 
1092
1093 
1094        body.modal-open header#banner { 
1095            z-index: 1; 
1096
1097 
1098        HTML body header#banner { 
1099            transform: inherit !important; 
1100
1101 
1102        .w-card span.container.container-0 span.c-title { 
1103            border: 0px; 
1104            margin-bottom: 0px; 
1105            padding-bottom: 0px; 
1106            align-items: center; 
1107            justify-content: center; 
1108
1109 
1110        @media (max-width: 990px) { 
1111 
1112            .active-video-ytb { 
1113                position: fixed; 
1114                top: 0px; 
1115                left: 0px; 
1116                z-index: 999; 
1117                width: 100%; 
1118                height: 100%; 
1119                background-color: #fffffff5; 
1120                display: flex; 
1121                align-items: center; 
1122                justify-content: center; 
1123                padding-left: 20px; 
1124                padding-right: 20px; 
1125
1126 
1127            .active-video-ytb iframe { 
1128                width: 100%; 
1129                max-height: calc(100% - 100px); 
1130                height: 350px; 
1131                border: 0px; 
1132                max-width: 700px; 
1133
1134 
1135            .close-video-mobile { 
1136                position: absolute; 
1137                top: 10px; 
1138                right: 15px; 
1139                font-size: 29px; 
1140                cursor: pointer; 
1141
1142 
1143            .youtube-mobile-video { 
1144                overflow: hidden; 
1145
1146 
1147            .youtube-mobile-video #smartsupp-widget-container { 
1148                visibility: hidden; 
1149
1150
1151 
1152 
1153        @media (min-width: 770px) { 
1154            body header#banner { 
1155                position: relative !important; 
1156                top: 0px; 
1157                width: 100%; 
1158                transform: translateY(0px) !important; 
1159 
1160
1161 
1162            body.languagePopup header#banner { 
1163                transform: inherit !important; 
1164
1165
1166 
1167        /*.portlet-breadcrumb ul li a, .portlet-breadcrumb ul li span { 
1168            max-width: 350px; 
1169            white-space: nowrap; 
1170            overflow: hidden; 
1171            text-overflow: ellipsis; 
1172        }*/ 
1173 
1174        .portlet-breadcrumb > ul > li { 
1175            float: left; 
1176
1177 
1178        .portlet-breadcrumb > ul > li:first-child { 
1179            position: absolute; 
1180            left: 0px; 
1181
1182 
1183        .portlet-breadcrumb > ul { 
1184            display: inline-block !important; 
1185            width: 100%; 
1186            padding-left: 44px; 
1187            position: relative; 
1188            box-sizing: border-box; 
1189
1190 
1191 
1192        .b-0 { 
1193            border: 0; 
1194
1195 
1196        .caterpillar #metric, .caterpillar #imperial { 
1197            border: 1px solid #fc0; 
1198
1199 
1200        #metric, #imperial { 
1201            margin-left: 0px; 
1202            max-height: 30px; 
1203            border: 1px solid #e4032e; 
1204
1205 
1206        #metric:not(.bg-primary) { 
1207            font-weight: normal !important; 
1208
1209 
1210        #imperial:not(.bg-primary) { 
1211            font-weight: normal !important; 
1212
1213 
1214        .image-selector { 
1215            height: 530px; 
1216
1217 
1218        .principal-carousel:not(.tns-carousel) { 
1219 
1220            position: relative; 
1221            max-height: 530px; 
1222            overflow: hidden; 
1223
1224 
1225        .principal-carousel .btn-play i { 
1226            color: #fff; 
1227            font-size: 25px; 
1228
1229 
1230        .principal-carousel .btn-play { 
1231            position: absolute; 
1232            z-index: 3; 
1233            width: 100%; 
1234            height: 100%; 
1235            display: flex; 
1236            align-items: center; 
1237            justify-content: center; 
1238
1239 
1240        body .principal-carousel .overlay { 
1241            opacity: 0.6 !important; 
1242            background-color: #242424 !important; 
1243            z-index: 2 !important; 
1244            height: 80px !important; 
1245            width: 100%; 
1246            position: absolute; 
1247            top: 0px !important; 
1248
1249 
1250        .accordion-content { 
1251            padding-top: 20px; 
1252
1253 
1254        div#especificaciones .tar { 
1255            text-align: left; 
1256            margin-top: 5px; 
1257            margin-bottom: 5px; 
1258
1259 
1260        .pt-header { 
1261            display: grid; 
1262 
1263            column-gap: 40px; 
1264            grid: "a b""a c" 1fr; 
1265            grid-template-columns: 60% 1fr; 
1266
1267 
1268        .pr-title { 
1269            grid-area: b; 
1270
1271 
1272        .pr-desc { 
1273            grid-area: c; 
1274
1275 
1276        .pr-images { 
1277            grid-area: a; 
1278
1279 
1280        .pr-images { 
1281            display: grid; 
1282            grid-template-columns: 100px 1fr; 
1283            width: 100%; 
1284
1285 
1286        .caterpillar .image-selector .active img { 
1287            outline: 2px solid #FFCC00; 
1288            outline-offset: -2px; 
1289
1290 
1291        .image-selector .active { 
1292            outline: 2px solid #000; 
1293
1294 
1295        .image-selector > div:not(.active):hover { 
1296            outline: 2px solid #9d9d9d; 
1297
1298 
1299        .product-carousel .tns-item { 
1300            padding-right: 10px; 
1301
1302 
1303        .product-implements-carousel .tns-item { 
1304            padding-right: 10px; 
1305
1306 
1307        .categories-carousel .tns-item { 
1308            padding-right: 10px; 
1309
1310 
1311        .p-relacionados .tns-outer { 
1312            display: grid; 
1313            grid-template: 
1314        "a a" 
1315        "b c"; 
1316
1317 
1318        .p-relacionados .tns-controls { 
1319            grid-area: c; 
1320            display: flex; 
1321            justify-content: flex-end; 
1322            padding-right: 10px; 
1323
1324 
1325        .p-relacionados .tns-nav { 
1326            grid-area: b; 
1327
1328 
1329        .p-relacionados .tns-ovh { 
1330            grid-area: a; 
1331
1332 
1333        .tns-controls button { 
1334            width: 32px; 
1335            height: 32px; 
1336            border-radius: 50%; 
1337            border: 0px; 
1338            background-color: #030712; 
1339            color: #fff; 
1340            overflow: hidden; 
1341            white-space: nowrap; 
1342            text-indent: 100px; 
1343            position: relative; 
1344
1345 
1346        .tns-controls button + button { 
1347            margin-left: 10px; 
1348
1349 
1350        .tns-controls button + button::after { 
1351            content: "\F285"; 
1352            font-size: 14px; 
1353            color: #fff; 
1354            text-indent: 0px; 
1355            left: 10px; 
1356            top: 9px; 
1357            position: absolute; 
1358            z-index: 1; 
1359            font-family: 'bootstrap-icons'; 
1360            font-weight: bold; 
1361
1362 
1363        .tns-controls button:first-child::after { 
1364            content: "\F284"; 
1365            font-size: 14px; 
1366            color: #fff; 
1367            text-indent: 0px; 
1368            left: 9px; 
1369            top: 9px; 
1370            position: absolute; 
1371            z-index: 1; 
1372            font-family: 'bootstrap-icons'; 
1373            font-weight: bold; 
1374
1375 
1376        .tns-controls button[disabled] { 
1377            background-color: #d4d6d8; 
1378            color: #404953; 
1379
1380 
1381        .tns-controls button[disabled]::after { 
1382            color: #404953; 
1383
1384 
1385        .tns-nav button { 
1386            width: 50px; 
1387            margin-right: 20px; 
1388            border-radius: 6px; 
1389            border: 0px; 
1390            background-color: #bfc2c6; 
1391            height: 4px; 
1392
1393 
1394        .tns-nav button.tns-nav-active { 
1395            background-color: #030712; 
1396
1397 
1398        .tns-item { 
1399            opacity: 0; 
1400            transition: all 0.25s linear; 
1401
1402 
1403        .tns-item.tns-slide-active { 
1404            opacity: 1; 
1405
1406 
1407        #especificaciones table tr { 
1408            display: grid; 
1409            width: 100%; 
1410            grid-template-columns: 1fr 1fr; 
1411            padding-top: 20px; 
1412            padding-bottom: 20px; 
1413            border-top: 1px solid #adb1b6; 
1414
1415 
1416        table tr:nth-child(even) { 
1417            background-color: #d4d6d8; 
1418
1419 
1420        div#especificaciones table tr td { 
1421            padding-left: 20px; 
1422            font-size: 16px; 
1423            letter-spacing: 0.5px; 
1424            color: #1A2431; 
1425
1426 
1427        #especificaciones table { 
1428 
1429            width: 100%; 
1430
1431 
1432        #especificaciones h4, #ventajas h4, #caracteristicas h4 { 
1433            font-size: 18px; 
1434            margin-top: 20px; 
1435            width: 100%; 
1436            display: inline-block; 
1437            margin-bottom: 10px; 
1438
1439 
1440        #caracteristicas ul { 
1441            list-style: disc; 
1442            margin-top: 10px; 
1443            margin-bottom: 10px; 
1444            padding-left: 20px; 
1445
1446 
1447        #caracteristicas ul li { 
1448            margin-bottom: 10px; 
1449
1450 
1451        .produc-detail, .portlet-boundary_com_liferay_site_navigation_breadcrumb_web_portlet_SiteNavigationBreadcrumbPortlet_ { 
1452            background-color: #f7f8f8; 
1453
1454 
1455        i.bi.bi-file-earmark-pdf { 
1456            margin-right: 10px; 
1457            font-size: 20px; 
1458            height: 100%; 
1459
1460 
1461        div#fixed-info { 
1462            position: fixed; 
1463            top: 0px; 
1464            left: 0px; 
1465            width: 100%; 
1466            z-index: -1; 
1467            background-color: #fff; 
1468            opacity: 0; 
1469            transition: opacity 0.2s linear; 
1470
1471 
1472        .scrolled-product div#fixed-info { 
1473            z-index: 1; 
1474            opacity: 1; 
1475
1476 
1477        .controls-visible.has-control-menu.scrolled-product div#fixed-info { 
1478            margin-top: 56px; 
1479
1480 
1481        i.bi.bi-zoom-in { 
1482            left: 7px; 
1483            font-size: 14px; 
1484            position: relative; 
1485            top: 4px; 
1486
1487 
1488        .zoom-image { 
1489            overflow: hidden; 
1490
1491 
1492        body.zoom-image .image-principal { 
1493            position: fixed; 
1494            background-color: #030712; 
1495            width: 100%; 
1496            height: 100%; 
1497            top: 0px; 
1498            left: 0; 
1499            z-index: 2; 
1500            display: flex; 
1501            align-items: center; 
1502            justify-content: center; 
1503
1504 
1505        body.zoom-image .zoom-it { 
1506            display: none; 
1507
1508 
1509        body.zoom-image .image-principal > span:first-child { 
1510            position: absolute; 
1511            top: 0px; 
1512            left: 0px; 
1513            width: 100%; 
1514            height: 100%; 
1515            display: block; 
1516            padding: 50px; 
1517
1518 
1519        body.zoom-image .image-principal > span:first-child img { 
1520            width: 100%; 
1521            height: 100%; 
1522            position: relative; 
1523            object-fit: contain; 
1524            background-color: transparent; 
1525
1526 
1527        body.zoom-image header#banner { 
1528            z-index: 0; 
1529
1530 
1531        body.zoom-image .image-selector .active > span { 
1532            display: block; 
1533            width: 80%; 
1534            height: 80%; 
1535            position: relative; 
1536
1537 
1538        body.zoom-image i.bi.bi-x { 
1539            display: block !important; 
1540            color: #fff; 
1541            font-size: 32px; 
1542            position: absolute; 
1543            top: 20px; 
1544            right: 20px; 
1545            cursor: pointer; 
1546
1547 
1548        body.zoom-image .image-selector .active { 
1549            cursor: default !important; 
1550
1551 
1552        body.zoom-image .cadmin.control-menu-container { 
1553            display: none; 
1554
1555 
1556        h3.nav-tab.selected::after { 
1557            content: ""; 
1558            width: 100%; 
1559            height: 1px; 
1560            background-color: black; 
1561            position: absolute; 
1562            bottom: -6px; 
1563            left: 0px; 
1564
1565 
1566        h3.nav-tab:hover:not(.selected)::after { 
1567            content: ""; 
1568            width: 100%; 
1569            height: 1px; 
1570            background-color: rgb(204, 204, 204); 
1571            position: absolute; 
1572            bottom: -6px; 
1573            left: 0px; 
1574
1575 
1576        #especificaciones table tr:first-child { 
1577            border-top: 0px; 
1578
1579 
1580        .accordion i { 
1581            transform: rotate(0deg); 
1582            transition: all 0.25s linear; 
1583            position: relative; 
1584            top: 0px; 
1585
1586 
1587        .accordion.show-ac i { 
1588            transform: rotate(180deg); 
1589            top: 9px; 
1590
1591 
1592        .accordion table, .accordion table tbody { 
1593            display: block; 
1594            width: 100%; 
1595
1596 
1597        .accordion table { 
1598            margin-bottom: 40px; 
1599
1600 
1601        .feature-nav { 
1602            display: flex; 
1603            font-size: 14px; 
1604            border-bottom: 1px solid #b5b5b5; 
1605            gap: 10px; 
1606            margin-bottom: 40px; 
1607
1608 
1609        .feature-nav > div { 
1610            position: relative; 
1611            display: flex; 
1612            align-items: center; 
1613
1614 
1615        .feature-nav > div.selected::after { 
1616            content: ""; 
1617            width: 100%; 
1618            height: 3px; 
1619            background-color: black; 
1620            position: absolute; 
1621            bottom: -2px; 
1622            left: 0px; 
1623
1624 
1625        #caracteristicas .feature-nav h4 { 
1626            font-size: 12px !important; 
1627            font-weight: normal; 
1628            cursor: pointer; 
1629
1630 
1631        #caracteristicas .feature-nav > .selected h4 { 
1632            text-shadow: 0px 0px 1px; 
1633
1634 
1635        .features-container { 
1636            display: grid; 
1637            grid-template-columns: 40% 1fr; 
1638            gap: 20px; 
1639
1640 
1641        .features-container > div img { 
1642            max-width: 100%; 
1643            object-fit: cover; 
1644
1645 
1646        .features-container .img-content { 
1647            display: flex; 
1648            background-color: #fff; 
1649            justify-content: center; 
1650
1651 
1652        ul.product-carousel:not(.tns-carousel) { 
1653            display: grid; 
1654            grid-template-columns: 1fr 1fr 1fr 1fr 1fr; 
1655            gap: 10px; 
1656
1657 
1658        .product-carousel.tns-carousel > li { 
1659            display: inline-block !important; 
1660
1661 
1662        ul.product-implements-carousel:not(.tns-carousel) { 
1663            display: grid; 
1664            grid-template-columns: 1fr 1fr 1fr 1fr 1fr; 
1665            gap: 10px; 
1666
1667 
1668        .product-implements-carousel.tns-carousel > li { 
1669            display: inline-block !important; 
1670
1671 
1672        ul.categories-carousel:not(.tns-carousel) { 
1673            display: grid; 
1674            grid-template-columns: 1fr 1fr 1fr 1fr 1fr; 
1675            gap: 10px; 
1676
1677 
1678        .categories-carousel.tns-carousel > li { 
1679            display: inline-block !important; 
1680
1681 
1682        .image-selector .tns-nav button { 
1683            width: 10px; 
1684            height: 10px; 
1685            padding: 0px; 
1686            margin: 0px; 
1687
1688 
1689        .image-selector .tns-nav { 
1690            display: flex; 
1691            align-items: center; 
1692            justify-content: center; 
1693            gap: 10px; 
1694            position: absolute; 
1695            z-index: 1; 
1696            width: 100%; 
1697            padding-left: 110px; 
1698            bottom: -30px; 
1699
1700 
1701        .image-selector .tns-controls { 
1702            display: none; 
1703
1704 
1705        .h-90 { 
1706            height: 90px; 
1707
1708 
1709        .image-selector > div:not(.active):hover, .image-selector .active { 
1710            outline: 0; 
1711
1712 
1713        .principal-carousel.tns-carousel .tns-item { 
1714            opacity: 1; 
1715
1716 
1717        span.arrow-prev { 
1718            background-color: #2c2c2c; 
1719            width: 32px; 
1720            height: 32px; 
1721            border-radius: 50%; 
1722            top: 50%; 
1723            position: absolute; 
1724            left: 25px; 
1725            align-items: center; 
1726            justify-content: center; 
1727            color: #fff; 
1728            cursor: pointer; 
1729
1730 
1731        span.arrow-next { 
1732            background-color: #2c2c2c; 
1733            width: 32px; 
1734            height: 32px; 
1735            border-radius: 50%; 
1736            top: 50%; 
1737            position: absolute; 
1738            right: 25px; 
1739            align-items: center; 
1740            justify-content: center; 
1741            color: #fff; 
1742            cursor: pointer; 
1743
1744 
1745        .zoom-image .image-principal:not(.no-c) span.arrow-next, .zoom-image .image-principal:not(.no-c) span.arrow-prev { 
1746            display: flex !important; 
1747
1748 
1749        span.arrow-next.disabled, span.arrow-prev.disabled { 
1750            opacity: 0.5; 
1751
1752 
1753        .p-relacionados .tns-nav { 
1754            display: none; 
1755
1756 
1757        #featuredSpecifications span span p, #featuredSpecifications div div p { 
1758            text-align: left !important; 
1759            margin-right: 1rem; 
1760 
1761
1762 
1763        #featuredSpecifications span span.grid-2, #featuredSpecifications div div.grid-2 { 
1764            grid-template-columns: 1fr !important; 
1765 
1766
1767 
1768        #featuredSpecifications span.c-info, #featuredSpecifications div.c-info { 
1769            display: flex !important; 
1770 
1771
1772 
1773        div.featuredspecifications { 
1774            margin-bottom: 20px; 
1775            gap: 20px; 
1776            display: grid; 
1777            grid-template-columns: 1fr 1fr 1fr; 
1778
1779 
1780        div.featuredspecifications div p.name { 
1781            color: #333D48; 
1782            font-size: 0.88rem; 
1783            line-height: 1.13rem; 
1784
1785 
1786        div.featuredspecifications div p.value { 
1787            font-weight: bold; 
1788            margin-top: 0px; 
1789            font-size: 1rem; 
1790            line-height: 1.5rem; 
1791            letter-spacing: 0.5px 
1792
1793 
1794 
1795        .zoom-image .image-principal iframe { 
1796            width: calc(100% - 200px); 
1797            margin-left: 100px; 
1798            height: calc(100% - 100px); 
1799            margin-top: 50px; 
1800
1801 
1802 
1803        /* 
1804        div.pr-desc span.grid-2{ 
1805           display: flex; 
1806           flex-direction: column; 
1807                 text-align:left; 
1808
1809         #featuredSpecifications span{ 
1810           display:flex; 
1811         justify-content: start; 
1812         align-items: start; 
1813        }*/ 
1814 
1815        .product-carousel.tns-slider { 
1816            display: flex; 
1817
1818 
1819        .product-carousel > .tns-item { 
1820            display: flex !important; 
1821            height: auto; 
1822
1823 
1824        .product-carousel a.product { 
1825            height: 100%; 
1826
1827 
1828        .product-carousel a.product span.image { 
1829            overflow: hidden; 
1830            height: 175px; 
1831
1832 
1833        .product-carousel a.product span.image img { 
1834            position: absolute; 
1835            top: 0px; 
1836            left: 0px; 
1837
1838 
1839        .p-relacionados .product-carousel:not(.tns-carousel) li + li + li + li + li ~ li { 
1840            position: absolute; 
1841            z-index: -1; 
1842            opacity: 0; 
1843
1844 
1845        .product-implements-carousel.tns-slider { 
1846            display: flex; 
1847
1848 
1849        .product-implements-carousel > .tns-item { 
1850            display: flex !important; 
1851            height: auto; 
1852
1853 
1854 
1855        .product-implements-carousel a.product { 
1856            height: 100%; 
1857
1858 
1859        .product-implements-carousel a.product span.image { 
1860            overflow: hidden; 
1861            height: 175px; 
1862
1863 
1864        .product-implements-carousel a.product span.image img { 
1865            position: absolute; 
1866            top: 0px; 
1867            left: 0px; 
1868
1869 
1870        .p-relacionados .product-implements-carousel:not(.tns-carousel) li + li + li + li + li ~ li { 
1871            position: absolute; 
1872            z-index: -1; 
1873            opacity: 0; 
1874
1875 
1876        .p-relacionados .categories-carousel:not(.tns-carousel) li + li + li + li + li ~ li { 
1877            position: absolute; 
1878            z-index: -1; 
1879            opacity: 0; 
1880
1881 
1882        .w-card.product span.image { 
1883            overflow: hidden; 
1884
1885 
1886        body.modal-open { 
1887            overflow: hidden; 
1888
1889 
1890        div#modalProduct { 
1891            border: 0px; 
1892            width: 100%; 
1893            height: 100%; 
1894            padding: 0px; 
1895            top: 0px; 
1896            left: 0px; 
1897            background-color: transparent; 
1898            animation: none !important; 
1899
1900 
1901        div#modalProduct.modal.show { 
1902            display: flex !important; 
1903            flex-direction: column; 
1904            justify-content: center; 
1905            align-items: center; 
1906
1907 
1908        div#modalProduct.modal.show::after { 
1909            content: ""; 
1910            width: 100%; 
1911            left: 0px; 
1912            top: 0px; 
1913            height: 100%; 
1914            background-color: #000; 
1915            position: absolute; 
1916            opacity: 0.5; 
1917            z-index: 1; 
1918
1919 
1920        div#modalProduct .modal-dialog { 
1921            position: relative; 
1922            z-index: 2; 
1923            background-color: #fff; 
1924            width: 100%; 
1925            height: 100%; 
1926            max-width: 800px; 
1927            max-height: 70dvh; 
1928            border-radius: 10px; 
1929            display: flex !important; 
1930            flex-direction: column; 
1931            justify-content: center; 
1932            align-items: center; 
1933            overflow: hidden; 
1934
1935 
1936        div#modalPhone .modal-dialog { 
1937            position: relative; 
1938            z-index: 2; 
1939            background-color: #fff; 
1940            width: 100%; 
1941            height: 100%; 
1942            max-width: 300px; 
1943            max-height: 40dvh; 
1944            border-radius: 10px; 
1945            display: flex !important; 
1946            flex-direction: column; 
1947            justify-content: center; 
1948            align-items: center; 
1949            overflow: hidden; 
1950
1951 
1952        .modal-dialog .modal-content { 
1953            width: 100%; 
1954            height: 100%; 
1955            overflow-y: auto; 
1956            padding: 40px; 
1957
1958 
1959        div#modalProduct .modal-header .panel-header { 
1960 
1961
1962 
1963        div#modalProduct .modal-header .panel-header .close { 
1964            top: -20px; 
1965            right: 0px; 
1966
1967 
1968 
1969        div#modalProduct .btn-primary:hover { 
1970            color: #fff; 
1971
1972 
1973 
1974        div#modalProduct .modal-dialog { 
1975            animation: none !important; 
1976
1977 
1978        div#modalProduct .panel.cc.pt-40.pb-40.maxw-900 { 
1979            padding-top: 0px; 
1980
1981 
1982        div#modalPhone .modal-header .panel-header { 
1983 
1984
1985 
1986        div#modalPhone .modal-header .panel-header .close { 
1987            top: 15px; 
1988            right: 15px; 
1989
1990 
1991        div#modalPhone .modal-header .panel-header .close { 
1992            font-size: 30px; 
1993
1994 
1995 
1996        div#modalPhone .btn-primary:hover { 
1997            color: #fff; 
1998
1999 
2000 
2001        div#modalPhone .modal-dialog { 
2002            animation: none !important; 
2003
2004 
2005        div#modalPhone .panel.cc.pt-40.pb-40.maxw-900 { 
2006            padding-top: 0px; 
2007
2008 
2009        #modalPhone { 
2010            position: fixed; 
2011
2012 
2013        .modal-open.show-phone-popup #modalPhone { 
2014            background-color: #000000eb; 
2015            width: 100%; 
2016            height: 100%; 
2017            top: 0px; 
2018            left: 0px; 
2019            z-index: 99; 
2020            justify-content: center; 
2021            align-items: center; 
2022            display: flex !important; 
2023
2024 
2025 
2026        .modal-open.show-phone-popup #modalPhone .modal-dialog { 
2027            max-width: 400px; 
2028            max-height: 350px; 
2029            border-radius: 10px !important; 
2030
2031 
2032        .modal-open.show-phone-popup #modalPhone .modal-dialog .modal-content { 
2033            width: 100%; 
2034            height: 100%; 
2035            overflow-y: auto; 
2036            padding: 20px; 
2037
2038 
2039        #modalPhone .call-us { 
2040            display: flex; 
2041            flex-direction: column; 
2042            align-items: center; 
2043            justify-content: center; 
2044
2045 
2046        .call-us a > span { 
2047            width: 100px; 
2048            height: 100px; 
2049            background-color: #f2f2f2; 
2050            display: inline-flex; 
2051            justify-content: center; 
2052            align-items: center; 
2053            border-radius: 50%; 
2054            font-size: 33px; 
2055            margin-bottom: 20px; 
2056
2057 
2058        .call-us a { 
2059            letter-spacing: 3px; 
2060
2061 
2062        .product-implements-carousel span.c-title > p { 
2063            padding-right: 10px; 
2064
2065 
2066        @media (max-width: 900px) { 
2067 
2068            div#modalProduct.modal.show { 
2069                justify-content: flex-end; 
2070
2071 
2072            #modalProduct .modal-dialog { 
2073                position: relative; 
2074                z-index: 2; 
2075                background-color: #fff; 
2076                width: 96%; 
2077                max-width: 100%; 
2078                max-height: 100%; 
2079                border-radius: 10px; 
2080                overflow-x: hidden; 
2081                height: 80dvh; 
2082                border-radius: 10px 10px 0px 0px !important; 
2083
2084 
2085 
2086            #modalPhone .modal-dialog { 
2087                position: relative; 
2088                z-index: 2; 
2089                background-color: #fff; 
2090                width: 96%; 
2091                max-width: 100%; 
2092                max-height: 100%; 
2093                border-radius: 10px; 
2094                overflow-x: hidden; 
2095                height: 80dvh; 
2096                border-radius: 10px 10px 0px 0px !important; 
2097
2098
2099 
2100        /**/ 
2101 
2102        @media (max-width: 975px) { 
2103 
2104            .img-marca { 
2105                margin-top: 40px; 
2106
2107 
2108            .pt-header { 
2109                grid: 
2110        "b" 
2111        "a" 
2112        "c"; 
2113 
2114
2115 
2116            .feature-nav { 
2117                width: 100%; 
2118                white-space: nowrap; 
2119                overflow-y: hidden; 
2120                overflow-x: scroll; 
2121                padding-bottom: 10px; 
2122                border-bottom: 0px; 
2123                gap: 0; 
2124
2125 
2126            .feature-nav > div { 
2127                padding-left: 10px; 
2128                padding-right: 10px; 
2129                border-bottom: 1px solid #b5b5b5; 
2130
2131 
2132            .features-container { 
2133                grid-template-columns: 1fr; 
2134                gap: 20px; 
2135
2136 
2137            .tag-navigation { 
2138                white-space: nowrap; 
2139                overflow-y: auto; 
2140                padding-bottom: 10px; 
2141
2142 
2143
2144 
2145        @media (max-width: 769px) { 
2146            div#modalProduct form textarea { 
2147                min-height: 100px; 
2148                max-height: 100px; 
2149
2150 
2151            div#modalProduct .modal-header .panel-header .close { 
2152                top: 12px; 
2153                right: 8px; 
2154
2155 
2156            .modal-open header#banner { 
2157                z-index: 1; 
2158
2159 
2160            body div#modalProduct .modal-dialog { 
2161                max-height: 98dvh; 
2162
2163 
2164            .image-selector-mobile .video-yt iframe { 
2165                width: 100%; 
2166                height: 100%; 
2167                border: 0px; 
2168                position: absolute; 
2169                z-index: 99; 
2170                max-width: 700px; 
2171
2172 
2173            .image-selector-mobile .btn-play.c-video { 
2174                color: #fff; 
2175                z-index: 99; 
2176                position: absolute; 
2177                font-size: 40px; 
2178                top: 50%; 
2179                left: 50%; 
2180                margin-left: -20px; 
2181                margin-top: -25px; 
2182
2183 
2184            body section#content .image-selector-mobile .overlay.c-video { 
2185                opacity: 0.5; 
2186                width: 100%; 
2187                height: 100%; 
2188                position: absolute; 
2189                top: 0px; 
2190                left: 0px; 
2191                background-color: #565656; 
2192                z-index: 99; 
2193
2194 
2195            .produc-detail .image-selector-mobile .tns-nav button.tns-nav-active { 
2196                background-color: #030712; 
2197
2198 
2199            body .produc-detail .pr-images.h-530 { 
2200                min-height: 400px; 
2201
2202 
2203            .image-selector-mobile .tns-ovh { 
2204                order: 1; 
2205
2206 
2207            .image-selector-mobile .tns-nav { 
2208                order: 2; 
2209                text-align: center; 
2210                margin-top: 20px; 
2211
2212 
2213            .image-selector-mobile .tns-outer { 
2214                display: flex; 
2215                flex-direction: column; 
2216
2217 
2218            .image-selector-mobile .tns-nav button { 
2219                width: 10px; 
2220                margin-right: 8px; 
2221                border-radius: 50%; 
2222                border: 0px; 
2223                background-color: #bfc2c6; 
2224                height: 10px; 
2225                padding: 0px; 
2226
2227 
2228            .image-selector-mobile .tns-controls { 
2229                display: none; 
2230
2231 
2232            .image-selector-mobile .tns-item { 
2233                opacity: 1; 
2234
2235 
2236            .image-selector-mobile .tns-outer, .image-selector-mobile .tns-outer, .image-selector-mobile .tns-ovh, .image-selector-mobile .tns-inner, 
2237            .image-selector-mobile ul.mobile-carousel, .image-selector-mobile .mobile-carousel > li { 
2238                height: 100%; 
2239
2240 
2241            .image-selector-mobile { 
2242                display: block !important; 
2243                width: 100%; 
2244
2245 
2246            .image-selector-mobile ~ div { 
2247                display: none; 
2248
2249 
2250 
2251            #widgetMessengerFrame { 
2252                position: fixed !important; 
2253                top: 0px !important; 
2254                left: 0px !important; 
2255                width: 100% !important; 
2256                height: 100% !important; 
2257
2258 
2259            .scrolled-product #smartsupp-widget-container > div { 
2260                bottom: 100px !important; 
2261
2262 
2263            body #footer { 
2264                padding-bottom: 100px; 
2265
2266 
2267            body div#fixed-info { 
2268                top: inherit; 
2269                bottom: 0px; 
2270
2271 
2272            .subcategory.mb-20 h2 + a { 
2273                margin-top: 20px; 
2274                text-align: right; 
2275
2276 
2277            .subcategory.mb-20 { 
2278                flex-direction: column; 
2279
2280 
2281            .subcategory.mb-20 h2 { 
2282                width: 100%; 
2283
2284 
2285            .subcategory.mb-20 h2 a { 
2286                width: 100%; 
2287
2288 
2289            html body .m-difc { 
2290                flex-wrap: wrap !important; 
2291
2292 
2293            .features-container .img-content img { 
2294                width: 100% !important; 
2295                height: auto !important; 
2296
2297 
2298            .pr-images { 
2299                grid-template-columns: 1fr; 
2300                width: 100%; 
2301
2302 
2303            .image-principal { 
2304                max-height: 400px; 
2305                width: 100%; 
2306
2307 
2308            .image-principal img { 
2309                position: relative; 
2310                width: 100%; 
2311                height: 100%; 
2312
2313 
2314            .image-selector .tns-ovh { 
2315                height: auto !important; 
2316
2317 
2318            ul.principal-carousel li { 
2319                width: 10px; 
2320                height: 10px; 
2321                overflow: hidden; 
2322                border-radius: 50%; 
2323                transition: none; 
2324
2325 
2326            .image-selector { 
2327                position: absolute; 
2328                z-index: 1; 
2329                width: 100%; 
2330                bottom: 10%; 
2331
2332 
2333            ul.principal-carousel { 
2334                display: flex; 
2335                align-items: center; 
2336                justify-content: center; 
2337                gap: 10px; 
2338
2339 
2340            .principal-carousel.tns-carousel .tns-item { 
2341                opacity: 0.5; 
2342                filter: brightness(0) invert(1); 
2343
2344 
2345            .principal-carousel.tns-carousel .tns-item.active { 
2346                opacity: 1; 
2347
2348 
2349            .img-marca { 
2350                padding-top: 20px; 
2351
2352 
2353            body.zoom-image .image-principal { 
2354                height: 100dvh; 
2355                max-height: 100dvh; 
2356
2357 
2358
2359 
2360    </style> 
2361 
2362 
2363    <script> 
2364        var productItem; 
2365        var pushed = false; 
2366        let startX; 
2367        $("document").ready(function () { 
2368            $('a[href*="/es/"]').attr('href', function(i, href) { 
2369                return href.replace('/es/', '/'); 
2370            }); 
2371            $(".image-selector-mobile .btn-play.c-video .bi.bi-play-circle-fill").click(function () { 
2372 
2373                let url = $(this).parent().next().data("url"); 
2374                $("#wrapper").append('<div class="active-video-ytb"><div class="close-video-mobile"><i class="bi bi-x"></i></div><iframe src="' + url + '?autoplay=1&mute=1" ></iframe></div>'); 
2375                $("body").addClass("youtube-mobile-video") 
2376 
2377            }) 
2378 
2379            $("html").on("click", ".close-video-mobile", function () { 
2380 
2381                $("#wrapper .active-video-ytb").remove(); 
2382                $("body").removeClass("youtube-mobile-video") 
2383 
2384            }) 
2385 
2386            $("#lastUrl").attr("href", '${lastUrl}') 
2387            loadAnalyticsItem(); 
2388            pushAnalytics(); 
2389            let lastScrollY = 0; 
2390            let ticking = false; 
2391 
2392            function onScroll() { 
2393                lastScrollY = window.scrollY; 
2394 
2395                if (!ticking) { 
2396                    window.requestAnimationFrame(() => { 
2397                        checkScrollPosition(lastScrollY); 
2398                        ticking = false; 
2399                    }); 
2400 
2401                    ticking = true; 
2402
2403
2404 
2405            function checkScrollPosition(scrollY) { 
2406                const targetPosition = $("#scroll-point-of-no-return").offset().top; // Cambia este valor a la posición deseada 
2407 
2408                if (scrollY >= targetPosition) { 
2409                    // Aquí va el código que deseas ejecutar 
2410                    $("body").addClass("scrolled-product"); 
2411                } else { 
2412                    $("body").removeClass("scrolled-product"); 
2413
2414
2415 
2416            window.addEventListener('scroll', onScroll); 
2417 
2418 
2419            $(".tag-navigation a").click(function () { 
2420 
2421                let el = $(this); 
2422                let id = el.data("rel"); 
2423 
2424                $(".tag-navigation a.active").removeClass("bg-primary bold"); 
2425                $(".tag-navigation a.active").addClass("bg-g normal"); 
2426                $(".tag-navigation a.active").removeClass("active"); 
2427 
2428                el.addClass("active bg-primary bold"); 
2429                el.removeClass("bg-g normal"); 
2430 
2431                $(".tag-content").hide(); 
2432                $("#" + id).show(); 
2433 
2434            }); 
2435 
2436 
2437            $(".image-selector .principal-carousel .c-video").click(function () { 
2438                let el = $(this).parent().find("img"); 
2439                $(".image-principal iframe").remove(); 
2440                $(this).parent().find("img").trigger("click"); 
2441                let url = el.data("url"); 
2442 
2443                $(".image-principal img").parent().append('<iframe class="pa z-2 t-0 l-0" width="100%" height="100%" src="' + url + '" frameborder="0" allowfullscreen></iframe>'); 
2444 
2445            }); 
2446 
2447            $(".image-selector .principal-carousel img").click(function () { 
2448 
2449                let imgUrl = $(this).attr("src"); 
2450                $(".image-principal iframe").remove(); 
2451                $(".image-selector .principal-carousel .active").removeClass("active"); 
2452 
2453                $(this).parent().addClass("active"); 
2454                $(".image-principal img").attr("src", imgUrl); 
2455 
2456            }); 
2457 
2458            $(".nav-tab").click(function () { 
2459 
2460                let dataTab = $(this).data("tab"); 
2461                $(".nav-tab.selected").addClass("normal"); 
2462                $(".nav-tab.selected").removeClass("selected"); 
2463 
2464                $(".tabs-container .content-tab").hide(); 
2465                $(this).addClass("selected"); 
2466                $(this).removeClass("normal"); 
2467                $("#data-tab-" + dataTab).show(); 
2468 
2469            }); 
2470 
2471 
2472            $(".tag-content .accordion .accordion-title").click(function () { 
2473 
2474                let elem = $(this); 
2475                let parentElem = elem.closest(".accordion"); 
2476                if (parentElem.hasClass("show-ac")) { 
2477                    parentElem.addClass("hide-ac"); 
2478                    parentElem.removeClass("show-ac"); 
2479                    elem.next().slideUp("fast", function () { 
2480                        // Animation complete. 
2481                    }); 
2482 
2483                } else { 
2484                    parentElem.addClass("show-ac"); 
2485                    parentElem.removeClass("hide-ac"); 
2486                    elem.next().slideDown("fast", function () { 
2487                        // Animation complete. 
2488                    }); 
2489 
2490
2491 
2492            }); 
2493            try { 
2494                // Verificar si el contenedor .principal-carousel existe 
2495                if ($('.principal-carousel').length) { 
2496                    var slider2 = tns({ 
2497                        container: '.principal-carousel', 
2498                        items: 6, 
2499                        axis: "vertical", 
2500                        slideBy: 'page', 
2501                        autoplay: false, 
2502                        loop: false, 
2503                        mouseDrag: true 
2504                    }); 
2505
2506 
2507                if ($('.mobile-carousel').length) { 
2508                    var slider3 = tns({ 
2509                        container: '.mobile-carousel', 
2510                        items: 1, 
2511                        slideBy: 'page', 
2512                        autoplay: false, 
2513                        loop: false, 
2514                        mouseDrag: true 
2515                    }); 
2516
2517 
2518            } catch 
2519                (error) { 
2520
2521 
2522            try { 
2523                // Verificar si el contenedor .product-carousel existe 
2524                if ($('.product-carousel').length) { 
2525                    var slider = tns({ 
2526                        container: '.product-carousel', 
2527                        items: 5, 
2528                        slideBy: 'page', 
2529                        autoplay: false, 
2530                        loop: false, 
2531                        responsive: { 
2532                            950: { 
2533                                items: 5 
2534                            }, 
2535                            769: { 
2536                                items: 4 
2537                            }, 
2538                            550: { 
2539                                items: 3 
2540                            }, 
2541                            450: { 
2542                                items: 2 
2543                            }, 
2544                            0: { 
2545                                items: 1 
2546
2547
2548                    }); 
2549
2550 
2551            } catch 
2552                (error) { 
2553
2554 
2555            try { 
2556                // Verificar si el contenedor .product-implements-carousel existe 
2557                if ($('.product-implements-carousel').length) { 
2558                    var slider = tns({ 
2559                        container: '.product-implements-carousel', 
2560                        items: 5, 
2561                        slideBy: 'page', 
2562                        autoplay: false, 
2563                        loop: false, 
2564                        responsive: { 
2565                            950: { 
2566                                items: 5 
2567                            }, 
2568                            769: { 
2569                                items: 4 
2570                            }, 
2571                            550: { 
2572                                items: 3 
2573                            }, 
2574                            450: { 
2575                                items: 2 
2576                            }, 
2577                            0: { 
2578                                items: 1 
2579
2580
2581                    }); 
2582
2583 
2584            } catch 
2585                (error) { 
2586
2587            try { 
2588                // Verificar si el contenedor .categories-carousel existe 
2589                if ($('.categories-carousel').length) { 
2590                    var slider = tns({ 
2591                        container: '.categories-carousel', 
2592                        items: 5, 
2593                        slideBy: 'page', 
2594                        autoplay: false, 
2595                        loop: false, 
2596                        responsive: { 
2597                            950: { 
2598                                items: 5 
2599                            }, 
2600                            769: { 
2601                                items: 4 
2602                            }, 
2603                            550: { 
2604                                items: 3 
2605                            }, 
2606                            450: { 
2607                                items: 2 
2608                            }, 
2609                            0: { 
2610                                items: 1 
2611
2612
2613                    }); 
2614
2615 
2616            } catch 
2617                (error) { 
2618
2619            $(".feature-nav > div").click(function () { 
2620                let elem = $(this); 
2621                let id = elem.attr("id"); // Obtener el ID del elemento clicado 
2622                let content = id.replace("data-feature-", ""); // Eliminar "data-feature-" del ID 
2623                $(".feature-nav > .selected").removeClass("selected"); 
2624                elem.addClass("selected"); 
2625                $(".feature-content .feature").hide(); 
2626                $(".feature-content #feature-" + content).show(); 
2627 
2628            }); 
2629 
2630 
2631            $(".image-principal .zoom-it").click(function () { 
2632 
2633                $("body").addClass("zoom-image"); 
2634                let elem = $(".image-principal").data("size"); 
2635                if (elem < 2) { 
2636                    $(".image-principal").addClass("no-c"); 
2637                } else { 
2638                    let elem = $(".principal-carousel .active"); 
2639                    if (elem.next(".tns-item").length == 0) { 
2640                        $(".arrow-next").addClass("disabled"); 
2641
2642                    if (elem.prev(".tns-item").length == 0) { 
2643                        $(".arrow-prev").addClass("disabled"); 
2644
2645
2646 
2647            }); 
2648 
2649            $("i.bi.bi-x").click(function () { 
2650 
2651                $("body").removeClass("zoom-image"); 
2652 
2653            }); 
2654 
2655 
2656            $(".arrow-next").click(function () { 
2657 
2658                let elem = $(".principal-carousel .active"); 
2659                let totalElements = parseInt($(".principal-carousel li").length) - 1; 
2660 
2661                console.log((parseInt(elem.data("id")) + 1)); 
2662 
2663                disableArrows(); 
2664 
2665                if ((parseInt(elem.data("id")) + 1) <= totalElements) { 
2666 
2667                    elem.next().find("img").trigger("click"); 
2668                    console.log("selected next:" + parseInt(elem.data("id") + 1)); 
2669 
2670                    if ($("#tns1-item" + parseInt(elem.data("id") + 1)).find("img").data("url") !== undefined) { 
2671                        let url = $("#tns1-item" + parseInt(elem.data("id") + 1)).find("img").data("url"); 
2672                        $(".image-principal > span:first-child").append('<iframe class="pa t-0 l-0 w-100 h-100 z-2" frameBorder="0" src="' + url + '"></iframe>'); 
2673
2674
2675 
2676 
2677            }) 
2678 
2679            $(".arrow-prev").click(function () { 
2680 
2681                let elem = $(".principal-carousel .active"); 
2682                let totalElements = parseInt($(".principal-carousel li").length) - 1; 
2683 
2684                console.log("total" + totalElements + "-" + (parseInt(elem.data("id")) - 1)); 
2685 
2686                disableArrows(); 
2687 
2688                if ((parseInt(elem.data("id")) - 1) >= 0) { 
2689 
2690                    console.log("selected prev:" + parseInt(elem.data("id") - 1)) 
2691                    elem.prev().find("img").trigger("click"); 
2692 
2693                    if ($("#tns1-item" + parseInt(elem.data("id") - 1)).find("img").data("url") !== undefined) { 
2694                        let url = $("#tns1-item" + parseInt(elem.data("id") - 1)).find("img").data("url"); 
2695                        $(".image-principal > span:first-child").append('<iframe class="pa t-0 l-0 w-100 h-100 z-2" frameBorder="0" src="' + url + '"></iframe>'); 
2696
2697
2698 
2699 
2700            }) 
2701 
2702            function disableArrows() { 
2703                setTimeout(function () { 
2704 
2705                    let actualItem = $(".principal-carousel .active").data("id"); 
2706                    let totalItems = parseInt($(".principal-carousel li").length) - 1; 
2707 
2708 
2709                    if (actualItem <= 0) { 
2710                        $(".arrow-prev").addClass("disabled"); 
2711                    } else { 
2712                        $(".arrow-prev").removeClass("disabled"); 
2713
2714 
2715                    if (actualItem >= totalItems) { 
2716                        $(".arrow-next").addClass("disabled"); 
2717                    } else { 
2718                        $(".arrow-next").removeClass("disabled"); 
2719
2720 
2721                }, 150); 
2722 
2723
2724 
2725 
2726            $('a[title="idioma español"]').attr('href', '/productos/${values.productUrlEs}'); 
2727            $('a[title="idioma english"]').attr('href', '/en/products/${values.productUrlEn}'); 
2728 
2729			$("#cifdiv").remove(); 
2730            /* 
2731            $(".image-selector").on("touchstart", function(event) { 
2732                startX = event.originalEvent.touches[0].clientX; 
2733            }); 
2734 
2735            $(".image-selector").on("touchend", function(event) { 
2736                let endX = event.originalEvent.changedTouches[0].clientX; 
2737                let diffX = startX - endX; 
2738 
2739 
2740                let swipeThreshold = 30; 
2741 
2742                if (diffX > swipeThreshold) { 
2743 
2744                    $(".arrow-next").trigger("click"); 
2745                } else if (diffX < -swipeThreshold) { 
2746 
2747                    $(".arrow-prev").trigger("click"); 
2748
2749            });*/ 
2750 
2751 
2752        }); 
2753 
2754        function loadAnalyticsItem() { 
2755            var productbrand = '${values.brand}'; 
2756            if (productbrand === "Cat") { 
2757                productbrand = "Caterpillar"; 
2758
2759            var variant = 'compra,alquiler' 
2760            if ($('.usada').length > 0) { 
2761                variant += ",usada"; 
2762
2763            productItem = { 
2764                item_id: '${objectEntryId}', 
2765                item_name: '${getLanguage(values.names)}', 
2766                currency: 'EUR', 
2767                coupon: '', 
2768                item_brand: productbrand, 
2769                item_category: '${principalCategoryName}', 
2770                item_category2: '',//TODO 
2771                item_category3: '',//TODO 
2772                item_category4: '',//TODO 
2773                item_category5: '',//TODO 
2774                item_list_id: localStorage.getItem("itemListId"), 
2775                item_list_name: localStorage.getItem("itemListName"), 
2776                item_variant: variant, 
2777                location_id: localStorage.getItem("location_id"), 
2778                price: 1, 
2779                quantity: 1 
2780
2781            localStorage.setItem("location_id", ""); 
2782            localStorage.setItem("itemListName", ""); 
2783            localStorage.setItem("itemListId", ""); 
2784
2785 
2786        function pushAnalytics() { 
2787            if (!pushed) { 
2788                pushed = true 
2789                var dataLayerObj = { 
2790                    event: 'view_item', 
2791                    ecommerce: { 
2792                        items: [ 
2793                            productItem 
2794
2795
2796
2797 
2798 
2799                console.debug(dataLayerObj); 
2800                dataLayer.push(dataLayerObj); 
2801
2802
2803 
2804        $(".close-popup.close").click(function () { 
2805            $("body").removeClass("show-phone-popup"); 
2806        }) 
2807 
2808        $("#modalPhone").click(function () { 
2809            setTimeout(function () { 
2810 
2811                if (!$("body").hasClass("modal-open")) { 
2812                    $("body").removeClass("show-phone-popup"); 
2813
2814 
2815            }, 150); 
2816        }) 
2817 
2818 
2819        function callFinanzauto() { 
2820            var dataLayerObj = { 
2821                event: 'add_to_cart', 
2822                ecommerce: { 
2823                    items: [ 
2824                        productItem 
2825
2826
2827
2828            console.debug(dataLayerObj); 
2829            dataLayer.push(dataLayerObj); 
2830 
2831            if (isMobile()) { 
2832                // Si es un dispositivo móvil, redirige para hacer una llamada 
2833                window.location.href = 'tel:+34${finanzautoPhone}'; 
2834            } else { 
2835                $('#modalPhone').modal('show'); 
2836                $('body').addClass('show-phone-popup'); 
2837
2838
2839 
2840        function isMobile() { 
2841            // Verifica si el dispositivo es móvil 
2842            return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); 
2843
2844 
2845        function showModalProductAndPushAnalytics() { 
2846 
2847            var dataLayerObj = { 
2848                event: 'begin_checkout', 
2849                ecommerce: { 
2850                    items: [ 
2851                        productItem 
2852
2853
2854
2855            console.debug(dataLayerObj); 
2856            dataLayer.push(dataLayerObj); 
2857            showModalProduct(); 
2858
2859 
2860        function pushFullAnalytic() { 
2861 
2862            var dataLayerObj = { 
2863                event: "purchase", 
2864                ecommerce: { 
2865                    transaction_id: $("#transactionId").val(), 
2866                    value: "1", 
2867                    tax: "0", 
2868                    shipping: "0", 
2869                    currency: 'EUR', 
2870                    coupon: '', 
2871                    payment_type: 'detalle_producto', 
2872                    items: [ 
2873                        productItem 
2874
2875
2876
2877            console.debug(dataLayerObj); 
2878            dataLayer.push(dataLayerObj); 
2879 
2880
2881    </script> 
2882<#else> 
2883   <div class="pag-404 df fdc jcc aic"> 
2884 
2885	<img src="/documents/14306333/0/pag-404.jpg/c00959e2-e88d-4b06-1cba-d282b57f006a?t=1737040420259" /> 
2886 
2887 
2888	<p class="title-404"><@liferay.language key="product.not.found.title" /></p> 
2889	<p class="content-404"><@liferay.language key="product.not.found.text" /></p> 
2890 
2891	<a class="btn btn-secondary" href="/"><@liferay.language key="product.not.found.button" /></a> 
2892 
2893 
2894 
2895</div> 
2896 
2897<style> 
2898.pag-404 { 
2899    min-height: 600px; 
2900
2901body #wrapper { 
2902    background-color: #fff; 
2903
2904p.title-404 { 
2905    font-size: 20px; 
2906    font-weight: bold; 
2907    margin-top: 20px; 
2908    max-width: 500px; 
2909    text-align: center; 
2910
2911p.content-404 { 
2912    margin-bottom: 20px; 
2913    color: #787878;    max-width: 600px; 
2914    text-align: center; 
2915
2916 
2917</style> 
2918</#if>