Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> allBrothersObjectsValues  [in template "14306307#14306335#null" at line 650, column 36]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

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