Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#212453427" at line 1, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#212453427" at line 1, column 1]
----
1<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
2<#assign isPhone = zurichService.getPhone()> 
3 
4<#assign count = entries?size> 
5 
6<#assign firstPart = ""> 
7 
8<#if entries?has_content>  
9 
10    <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/>     
11    <#assign content = ""/> 
12    <#assign title_content = ""/> 
13 
14    <#list entries as curEntry>  
15        <#assign renderer = curEntry.getAssetRenderer()> 
16        <#assign className = renderer.getClassName()> 
17        <#if className == "com.liferay.journal.model.JournalArticle"> 
18            <#assign journalArticle = renderer.getArticle() /> 
19            <#assign model = objectUtil("com.liferay.portal.kernel.portlet.PortletRequestModel", renderRequest, renderResponse) />       
20            <#assign xml = journalArticle.getContentByLocale(locale.toString()) /> 
21            <#assign doc = saxReaderUtil.read(xml) /> 
22             
23            <#assign backgroundColor = "white"/> 
24            <#assign backgroundColor = doc.selectSingleNode('/root/dynamic-element[@name="background_color"]/dynamic-content').getText()/> 
25             
26            <!---------------->    
27            <#-- Register content --> 
28             
29            <#assign journalArticleId = journalArticle.getArticleId()/> 
30             
31            <#if journalArticleLocalService.fetchArticle(groupId, journalArticleId) ??> 
32                <#assign register = journalArticleLocalService.getArticle(groupId, journalArticleId)/> 
33                <#if register?? && register != ""> 
34                    <#assign registerContent = journalArticleLocalService.getArticleContent(register, register.DDMTemplateKey, "VIEW", themeDisplay.getLocale(), model, themeDisplay) /> 
35                </#if> 
36            </#if>       
37            <#assign languageId = themeDisplay.getLanguageId() /> 
38            <#assign registerContent = journalArticleLocalService.getArticleContent(register, register.DDMTemplateKey, "VIEW", themeDisplay.getLocale(), model, themeDisplay) /> 
39            <#assign content = content + '<div class="cell" >' + registerContent + '</div>' /> 
40            <#-- End register content --> 
41 
42        </#if> 
43    </#list>       
44        <div class="mod mod-Slick_slider real hero-banner hero-carousel" id="content-desktop-hero"> 
45            <div class="main-slider-wrapper skin-1"> 
46                 
47                   
48                    <div class="main-slick-slider"> 
49                 ${content}     
50                 </div> 
51                  
52                                      
53                         
54            </div> 
55        </div> 
56		<div id="content-mobile-hero"> 
57			<div class="slickHero"> 
58				${content} 
59			</div> 
60         
61		</div> 
62 
63</#if> 
64 
65<!-- PL-1009 HeroBanner controls --> 
66<#if isPhone == "mobile"> 
67    <li class="play-hero-banner-li"> 
68        <div class="controls-hero-banner"> 
69            <div class="play-hero-banner"> 
70                <a class="icon-monospaced list-unstyled portlet-icon-back text-default"> 
71                    <@liferay_ui["icon"] 
72                        icon="pause" 
73                        markupView="lexicon" 
74                    /> 
75                </a> 
76            </div> 
77            <div class="pause-hero-banner"> 
78                <a class="icon-monospaced list-unstyled portlet-icon-back text-default"> 
79                    <@liferay_ui["icon"] 
80                        icon="play" 
81                        markupView="lexicon" 
82                    /> 
83                </a> 
84            </div> 
85        </div> 
86    </li> 
87</#if> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#877428" at line 5, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#877428" at line 5, column 1]
----
1<#-- Importar la plantilla con las MACROS comunes para utilizar --> 
2<#-- Se debe modificar por SITE y por Entorno (Local, PRE y PROD) --> 
3<#include "${templatesPath}/337115551" /> 
4 
5<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
6 
7<#assign fondo = ""> 
8<#if background.getData() == "mist"> 
9    <#assign fondo = "bruma"> 
10<#elseif background.getData() == "mist2"> 
11    <#assign fondo = "bruma2"> 
12<#elseif background.getData() == "lightblue"> 
13    <#assign fondo = "lightblue"> 
14<#elseif background.getData() == "midblue"> 
15    <#assign fondo = "midblue"> 
16<#elseif background.getData() == "darkblue"> 
17    <#assign fondo = "darkblue"> 
18<#elseif background.getData() == "sandstone"> 
19    <#assign fondo = "sandstone"> 
20<#elseif background.getData() == "lightblue40"> 
21    <#assign fondo = "light-blue-40"> 
22</#if> 
23 
24<#assign popupSF=false/> 
25<#assign chatZai=false/> 
26 
27<#assign colortexto = "textBlue"> 
28<#if textcolor?has_content> 
29    <#if textcolor.getData() == "white"> 
30        <#assign colortexto = "textWhite"> 
31    <#elseif textcolor.getData() == "blue"> 
32        <#assign colortexto = "textBlue"> 
33    </#if> 
34</#if> 
35<#if custom_top_margin?? && custom_top_margin.getData() != ""> 
36    <#assign custom_top_margin = custom_top_margin.getData() /> 
37    <#if !custom_top_margin?ends_with("px")> 
38        <#assign custom_top_margin = custom_top_margin + "px" /> 
39    </#if> 
40<#else> 
41    <#assign custom_top_margin = "" /> 
42</#if> 
43 
44<#if custom_bottom_margin?? && custom_bottom_margin.getData() != ""> 
45    <#assign custom_bottom_margin = custom_bottom_margin.getData() /> 
46    <#if !custom_bottom_margin?ends_with("px")> 
47        <#assign custom_bottom_margin = custom_bottom_margin + "px" /> 
48    </#if> 
49<#else> 
50    <#assign custom_bottom_margin = "" /> 
51</#if> 
52 
53<#if title_align?? && title_align.getData() != ""> 
54    <#assign titleAlign = title_align.getData() /> 
55    <#assign titleAlign = title_align.getData() /> 
56<#else> 
57    <#assign titleAlign = "" /> 
58</#if> 
59 
60<#if subtitle_align?? && subtitle_align.getData() != ""> 
61    <#assign subtitleAlign = subtitle_align.getData() /> 
62<#else> 
63    <#assign subtitleAlign = "" /> 
64</#if> 
65 
66<#if desc_align?? && desc_align.getData() != ""> 
67    <#assign descAlign = desc_align.getData() /> 
68<#else> 
69    <#assign descAlign = "" /> 
70</#if> 
71 
72<#if is_text_aligned?? && is_text_aligned.getData() != ""> 
73    <#assign isTextAligned = getterUtil.getBoolean(is_text_aligned.getData()) /> 
74<#else> 
75    <#assign isTextAligned = true /> 
76</#if> 
77 
78<#assign justifyContent = "center" /> 
79<#assign maxWidth = "" /> 
80<#assign flexBasis = "" /> 
81<#assign margin = ""/> 
82<#if desc_align?? && desc_align.getData() != "" && subtitle_align?? && subtitle_align.getData() != "" && desc_align?? && desc_align.getData() != ""> 
83    <#if title_align.getData() == "left" || subtitle_align.getData() == "left" || desc_align.getData() == "left"  > 
84        <#assign justifyContent = "left" /> 
85				<#if isTextAligned> 
86				   <#assign margin = "unset"/> 
87					 <#assign maxWidth = "none" /> 
88				<#else> 
89				   <#assign maxWidth = "none" /> 
90           <#assign flexBasis = "auto" /> 
91				</#if> 
92    </#if> 
93</#if> 
94 
95<div id="${html_id.getData()}" class="mod mod-Services ${fondo}" style="padding-bottom:${custom_bottom_margin}; padding-top:${custom_top_margin};"> 
96    <div class="container"> 
97        <div class="row" style="justify-content: ${justifyContent};"> 
98            <div class="col-md-6 intCol" style="max-width: ${maxWidth}; flex-basis: ${flexBasis}; margin:${margin}"> 
99                <div class="product-title intTitle"> 
100                    <#if title.getData()?? && title.getData() != ""> 
101                    <#assign htmlTag = "h1"/> 
102                    <#if title.title_level?has_content && title.title_level.getData() != ""> 
103                        <#assign htmlTag = title.title_level.getData()/> 
104                    </#if> 
105                    <div class="title" style="text-align: ${titleAlign};"> 
106                        <${htmlTag} class="h1-copycat ${colortexto}"> 
107                        ${htmlUtil.unescape(title.getData())} 
108                    </${htmlTag}> 
109                </div> 
110                </#if> 
111            </div> 
112            <div class="product-subtitle ${colortexto}" style="text-align: ${subtitleAlign};"> 
113                <#if subtitle.getData()?? && subtitle.getData() != ""> 
114                    ${htmlUtil.unescape(subtitle.getData())} 
115                </#if> 
116            </div> 
117            <div class="product-text ${colortexto}" style="text-align: ${descAlign};"> 
118                <#if description.getData()?? && description.getData() != ""> 
119                    ${description.getData()} 
120                </#if> 
121            </div> 
122            <#if link_text.getSiblings()?has_content && (link_text.getData()?? && link_text.getData() != "")> 
123            <div class="row cta"> 
124                <#if links_align.getData()?? && links_align.getData() != ""> 
125                <div class="align-${links_align.getData()}"> 
126                    <#else> 
127                    <div class="align-middle"> 
128                        </#if> 
129                        <#list link_text.getSiblings() as cur_link_text> 
130                            <#if cur_link_text.modalSF??> 
131                                <#assign popupSF=getterUtil.getBoolean(cur_link_text.modalSF.getData())/> 
132                            </#if> 
133														<#if cur_link_text.zai??> 
134                                <#assign chatZai=getterUtil.getBoolean(cur_link_text.zai.getData())/> 
135                            </#if> 
136                            <#if cur_link_text.link_attr_key.getSiblings()?has_content> 
137                                <#list cur_link_text.link_attr_key.getSiblings() as cur_extra_attribute_key> 
138                                    <#if cur_extra_attribute_key.getData()?? && cur_extra_attribute_key.getData()!=""> 
139                                        <#if cur_extra_attribute_key?is_first> 
140                                            <#assign extraAttr="${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_value.getData()}"/> 
141                                        <#else> 
142                                            <#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_value.getData()}"/> 
143                                        </#if> 
144                                    </#if> 
145                                </#list> 
146                            </#if> 
147                            <#assign linkClass="link- btn btn-lg ${aparienciaCTA(cur_link_text.link_skin.getData(),'btn-primary')} adjustment-size"/> 
148														<#assign nofollow=cur_link_text.hasNofollow?? && getterUtil.getBoolean(cur_link_text.hasNofollow.getData())/> 
149                            <#assign seoLink = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,cur_link_text.link_title.getData(), cur_link_text.link_page_link.getFriendlyUrl(),cur_link_text.link_file_link.getData(), cur_link_text.link_free_link.getData(),getterUtil.getBoolean(cur_link_text.link_new_tab.getData()), linkClass, cur_link_text.link_id_prefix.getData(), cur_link_text.link_id.getData(),extraAttr, nofollow)/> 
150                             
151                            <#if cur_link_text.modalRCP?? && cur_link_text.modalRCP.getData() != ""> 
152                                 <div class="button-link col-md-5 sfModalButton" onclick="openModalRCP${cur_link_text.modalRCP.getData()}()"> 
153																    ${seoLink} 
154                                    ${htmlUtil.unescape(cur_link_text.getData())} 
155                                    </a> 
156																 </div> 
157                            <#elseif chatZai==true> 
158                                 <div class="preventSPA" onclick="openZai()"> 
159                                     ${seoLink} 
160                                     ${htmlUtil.unescape(cur_link_text.getData())} 
161                                     </a> 
162                                 </div> 
163														<#elseif popupSF==true> 
164                                <#if cur_link_text.productSelectModal?? && cur_link_text.productSelectModal.getData() != ""> 
165                                    <#assign linkProduct="${cur_link_text.productSelectModal.getData()}"/> 
166                                <#else> 
167                                    <#assign linkProduct="nada"/> 
168                                </#if> 
169                                <div class="button-link col-md-5 sfModalButton" onclick="openSfModal('${linkProduct}')"> 
170                                    ${seoLink} 
171                                    ${htmlUtil.unescape(cur_link_text.getData())} 
172                                    </a> 
173                                </div> 
174                            <#else> 
175                                <div class="button-link col-md-5"> 
176                                    ${seoLink} 
177                                    ${htmlUtil.unescape(cur_link_text.getData())} 
178                                    </a> 
179                                </div> 
180                            </#if> 
181                        </#list> 
182                    </div> 
183                    </#if> 
184                    <#if getterUtil.getBoolean(separator.getData())> 
185                        <div class="col-md-6 button-link middle line"></div> 
186                    </#if> 
187                </div> 
188            </div> 
189        </div> 
190    </div> 
191 
192    <script> 
193        $(".sfModalButton a").on( "click", function(event) { 
194            event.preventDefault(); 
195        } ); 
196    </script> 
197		 
198<style> 
199		 
200		@media(max-width: 767px) { 
201		 
202		  .mod.mod-Services{ 
203			    padding-bottom:${custom_bottom_margin?has_content?then(custom_bottom_margin, "18px")}!important 
204				padding-top:${custom_top_margin}!important; 
205
206
207		 
208		.mod.mod-Services .product-text, .mod.mod-Services .product-text p{ 
209		   margin-bottom:0px; 
210
211		 
212		@media (min-width: 767px) { 
213		    .mod.mod-Services .intCol { 
214            max-width: 780px; 
215
216				 
217				.mod.mod-Services .intTitle { 
218            width: 780px; 
219
220
221		 
222</style> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#1098991" at line 1, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#1098991" at line 1, column 1]
----
1<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
2<#assign isPhone = zurichService.getPhone()> 
3 
4<#assign userAgent = request.getHeader("User-Agent")> 
5<#if userAgent?contains("MSIE") || userAgent?contains("Trident")> 
6    <#assign isExplorer = true/> 
7<#else> 
8    <#assign isExplorer = false/> 
9</#if> 
10<#if custom_top_margin?? && custom_top_margin.getData() != ""> 
11    <#assign custom_top_margin = custom_top_margin.getData() /> 
12<#else> 
13    <#assign custom_top_margin = "" /> 
14</#if> 
15 
16<#if custom_bottom_margin?? && custom_bottom_margin.getData() != ""> 
17    <#assign custom_bottom_margin = custom_bottom_margin.getData() /> 
18<#else> 
19    <#assign custom_bottom_margin = "" /> 
20</#if> 
21<div id="${html_id.getData()}" class="row" style="padding-bottom:${custom_bottom_margin}; padding-top:${custom_top_margin};"> 
22    <#if getterUtil.getBoolean(line_top.getData())> 
23    	<div class="col-sm-9"> 
24            <div class="content-container"> 
25                <hr class="mod mod-Separator_line line-thin grey top"> 
26            </div> 
27        </div> 
28    </#if> 
29    <div class="video-container col-sm-9"> 
30    <#if title.getData()?? && title.getData()?has_content> 
31		<h2 class="text-center"> 
32			${htmlUtil.unescape(title.getData())} 
33		</h2> 
34    </#if> 
35        <div class="mod mod-Media_video link-bar-bottom-aligned"> 
36            <div class="media-container flexembed flexembed-16by9 videoSmall"> 
37                <#if isExplorer> 
38                     <#if brightcove_section.video_id.getData()?has_content> 
39                        <iframe src="//players.brightcove.net/4053905828001/H1QKJNybxl_default/index.html?videoId=${brightcove_section.video_id.getData()}" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe> 
40                     <#elseif youtube_section.y_video_id.getData()?has_content> 
41                        <iframe src="https://www.youtube.com/embed/${youtube_section.y_video_id.getData()}?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> 
42                    </#if> 
43                <#else> 
44                    <#if playfilm_section.playfilm_video_id.getData()?has_content> 
45                        <div id="playfilm_content_${playfilm_section.playfilm_video_id.getData()}" class="playfilm_content"></div> 
46                        <script async src="https://d1qr95rey7gro4.cloudfront.net/media/3/published/${playfilm_section.playfilm_video_id.getData()}/playfilm_embed.js?autoplay=false&embed_type=1" charset="utf-8"></script>  
47                    <#elseif brightcove_section.video_id.getData()?has_content>                         
48						<iframe src="//players.brightcove.net/4053905828001/H1QKJNybxl_default/index.html?videoId=${brightcove_section.video_id.getData()}" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe> 
49					<#elseif youtube_section.y_video_id.getData()?has_content> 
50						<iframe src="https://www.youtube.com/embed/${youtube_section.y_video_id.getData()}?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> 
51					</#if> 
52                </#if> 
53            </div> 
54        </div> 
55				<#if isPhone != "mobile" || description?? && description.getData() != ""> 
56				    <div class="text-center"> 
57			         <br /> 
58			         ${description.getData()} 
59		         </div> 
60				</#if> 
61    </div> 
62    <#if getterUtil.getBoolean(line_bottom.getData())> 
63    	<div class="col-sm-9"> 
64            <div class="content-container"> 
65                <hr class="mod mod-Separator_line line-thin grey"> 
66            </div> 
67        </div> 
68    </#if> 
69</div> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#877440" at line 5, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#877440" at line 5, column 1]
----
1<#-- Importar la plantilla con las MACROS comunes para utilizar --> 
2<#-- Se debe modificar por SITE y por Entorno (Local, PRE y PROD) --> 
3<#include "${templatesPath}/337115551" /> 
4 
5<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
6 
7<#assign fondo = ""> 
8<#if background.getData() == "mist"> 
9    <#assign fondo = "bruma"> 
10<#elseif background.getData() == "mist2"> 
11    <#assign fondo = "bruma2"> 
12<#elseif background.getData() == "lightblue"> 
13    <#assign fondo = "lightblue"> 
14<#elseif background.getData() == "midblue"> 
15    <#assign fondo = "midblue"> 
16<#elseif background.getData() == "darkblue"> 
17    <#assign fondo = "darkblue"> 
18<#elseif background.getData() == "sandstone"> 
19    <#assign fondo = "sandstone"> 
20</#if> 
21 
22<#assign popupSF=false/> 
23<#assign popupSF_new=false/> 
24 
25<#assign colortexto = "texBlue"> 
26<#if textcolor?has_content> 
27    <#if textcolor.getData() == "white"> 
28        <#assign colortexto = "textWhite"> 
29    <#elseif textcolor.getData() == "blue"> 
30        <#assign colortexto = "textBlue"> 
31    </#if> 
32</#if> 
33<#if custom_top_margin?? && custom_top_margin.getData() != ""> 
34    <#assign custom_top_margin = custom_top_margin.getData() /> 
35<#else> 
36    <#assign custom_top_margin = "" /> 
37</#if> 
38 
39<#if custom_bottom_margin?? && custom_bottom_margin.getData() != ""> 
40    <#assign custom_bottom_margin = custom_bottom_margin.getData() /> 
41<#else> 
42    <#assign custom_bottom_margin = "" /> 
43</#if> 
44 
45<#if title_align?? && title_align.getData() != ""> 
46    <#assign titleAlign = title_align.getData() /> 
47<#else> 
48    <#assign titleAlign = "" /> 
49</#if> 
50 
51<#if subtitle_align?? && subtitle_align.getData() != ""> 
52    <#assign subtitleAlign = subtitle_align.getData() /> 
53<#else> 
54    <#assign subtitleAlign = "" /> 
55</#if> 
56 
57<div class="mod mod-Specifications ${fondo}" style="padding-bottom:${custom_bottom_margin}; padding-top:${custom_top_margin};"> 
58    <div class="container"> 
59        <div class="row"> 
60            <div class="col-md-12"> 
61                <#if title.getData()?? && title.getData() != ""> 
62                <#assign htmlTag = "h2"/> 
63                <#if title.title_level?has_content> 
64                    <#assign htmlTag = title.title_level.getData()/> 
65                </#if> 
66                <div class="product-title" style="text-align: ${titleAlign};"> 
67                    <${htmlTag} class="h1-copycat ${colortexto}">${htmlUtil.unescape(title.getData())}</${htmlTag}> 
68            </div> 
69            </#if> 
70            <div class="product-subtitle ${colortexto}" style="text-align: ${subtitleAlign};"> 
71                <#if subtitle.getData()?? && subtitle.getData() != ""> 
72                    ${htmlUtil.unescape(subtitle.getData())} 
73                </#if> 
74            </div> 
75            <#assign specStyle = ""/> 
76            <#if num_columns.getData() == "2"> 
77                <style> 
78                    @media (min-width: 668px){ 
79                        .container.specifications{ 
80                            max-width: 778px; 
81
82
83                </style> 
84            </#if> 
85            <div class="container specifications" ${specStyle}> 
86                <#if spec_title.getSiblings()?has_content> 
87                <#assign numCols = 5 /> 
88                <#if num_columns.getData() != ""> 
89                    <#assign numCols = num_columns.getData()/> 
90                </#if> 
91                <div class="slick-specifications row row-cols-${numCols}"> 
92 
93                    <#list spec_titleFieldSet.getSiblings() as cur_spec_title> 
94										 
95                    <!-- Variables Url icono --> 
96                    <#assign icon_seoLink = "<a style='cursor:default!important'>" /> 
97                    <#assign icon_seoLink2 = "</a>" /> 
98                    <#assign extraAttr= "" /> 
99                    <!--ESTABLECER SI PAGE, FILE O FREELINK HAS CONTENT--> 
100                    <#assign specIconFieldSetFieldSet = cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_iconFieldSetFieldSet /> 
101 
102                    <#if specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_link?has_content || 
103                    specIconFieldSetFieldSet.icon_link_file_link?has_content || 
104                    specIconFieldSetFieldSet.icon_link_free_link?has_content> 
105                        <#if (specIconFieldSetFieldSet.icon_link_free_link.getData()?? && specIconFieldSetFieldSet.icon_link_free_link.getData() != "") || 
106                        (specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_link.getData()?? && specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_link.getData() != "") || 
107                        (specIconFieldSetFieldSet.icon_link_file_link.getData()?? && specIconFieldSetFieldSet.icon_link_file_link.getData() != "")> 
108                            <!--ASIGNAMOS EXTRA ATTR--> 
109 
110 
111                            <#list specIconFieldSetFieldSet.icon_link_attr_keyFieldSet.getSiblings() as cur_extra_attribute_key> 
112														 
113                                <#if cur_extra_attribute_key.icon_link_attr_key.getData()?? && cur_extra_attribute_key.icon_link_attr_key.getData()!=""> 
114                                    <#if cur_extra_attribute_key?is_first> 
115                                        <#assign extraAttr="${cur_extra_attribute_key.icon_link_attr_key.getData()} / ${cur_extra_attribute_key.icon_link_attr_keyFieldSetFieldSet.icon_link_attr_valuegetData()}"/> 
116                                    <#else> 
117                                        <#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.icon_link_attr_key.getData()} / ${cur_extra_attribute_key.icon_link_attr_keyFieldSetFieldSet.icon_link_attr_value.getData()}"/> 
118                                    </#if> 
119                                </#if> 
120                            </#list> 
121                            <!--FIN ASIGNAMOS EXTRA ATTR--> 
122                            <#assign linkClass= "" /> 
123														<#assign nofollow1=specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.hasNofollow1?? && getterUtil.getBoolean(specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.hasNofollow1.getData())/> 
124														 
125														 
126														 
127                            <#assign icon_seoLink = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data, specIconFieldSetFieldSet.spec_alt_icon.getData(), specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_link.getFriendlyUrl(), specIconFieldSetFieldSet.icon_link_file_link.getData(), specIconFieldSetFieldSet.icon_link_free_link.getData(), getterUtil.getBoolean(specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.icon_link_new_tab.getData()), linkClass, specIconFieldSetFieldSet.icon_link_id_prefix.getData(), specIconFieldSetFieldSet.icon_link_id.getData(), extraAttr, nofollow1)/> 
128                            <#assign icon_seoLink2 = "</a>" /> 
129 
130                            <#if specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalSF??> 
131                                <#assign popupSF=getterUtil.getBoolean(specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalSF.getData())/> 
132                            </#if> 
133                            <#if popupSF==true> 
134                                <#if specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.productSelectModal?? && specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.productSelectModal.getData() != ""> 
135                                    <#assign linkProduct="${specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.productSelectModal.getData()}"/> 
136                                <#else> 
137                                    <#assign linkProduct="nada"/> 
138                                </#if> 
139                            </#if> 
140                        </#if> 
141                    </#if> 
142                    <!--Fin Variables Url icono --> 
143                    <div class="slick-specifications-col col change-height"> 
144                        <#assign line = ""> 
145                        <#if getterUtil.getBoolean(separator.getData()) > 
146                            <#assign line = "line"> 
147                        </#if> 
148                        <div class="product-description ${line}"> 
149                            <#if specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalRCP?? && specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalRCP.getData() != ""> 
150                                     <div class="row sfModalButton" onclick="openModalRCP${specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalRCP.getData()}()"> 
151                             <#elseif popupSF==true > 
152                            <div class="row sfModalButton" onclick="openSfModal('${linkProduct}')"> 
153                                <#else> 
154                                <div class="row"> 
155                                    </#if> 
156                                    <#if specIconFieldSetFieldSet.spec_src_icon.getData()?? && specIconFieldSetFieldSet.spec_src_icon.getData() != ""> 
157                                        ${icon_seoLink} 
158                                        <img width="54" height="55" role="presentation" 
159                                             alt="${specIconFieldSetFieldSet.spec_alt_icon.getData()}" 
160                                             src="${specIconFieldSetFieldSet.spec_src_icon.getData()}"  loading="lazy"/> 
161                                        ${icon_seoLink2} 
162                                    <#elseif cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getData()?? && cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getData() != ""> 
163                                        ${icon_seoLink} 
164                                        <img width="80" height="80" role="presentation" 
165                                             alt="${cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getAttribute('alt')}" 
166                                             data-fileentryid="${cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getAttribute('fileEntryId')}" 
167                                             src="${cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getData()}" loading="lazy"/> 
168                                        ${icon_seoLink2} 
169                                    </#if> 
170                            </div> 
171 
172                            <div class="product-title ${colortexto}"> 
173                                <#if cur_spec_title.spec_title.getData()?? && cur_spec_title.spec_title.getData() != "" > 
174                                    ${htmlUtil.unescape(cur_spec_title.spec_title.getData())} 
175                                </#if> 
176                            </div> 
177                                <#if cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData()?? && cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData() != ""> 
178                            <div class="product-text ${colortexto}"> 
179                                            ${cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData()} 
180                                                <style> 
181                                            .slick-specifications-col.col.change-height { 
182                                                height: auto!important; 
183
184                                            </style> 
185                                        <#else> 
186                                            <style> 
187                                            .slick-specifications-col.col.change-height { 
188                                                height: auto!important; 
189
190                                            </style> 
191                                        </#if> 
192                                            <#if cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData()?? && cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData() != ""> 
193                                                </div> 
194                                            </#if> 
195 
196                                <#assign specLinkFieldSetFieldSet=cur_spec_title.spec_titleFieldSetFieldSet.spec_linkFieldSet.spec_linkFieldSetFieldSet/> 
197                                <#assign extraAttr_link = ""/> 
198                                        <#if cur_spec_title.spec_titleFieldSetFieldSet.spec_linkFieldSet.spec_link.getData()?? && cur_spec_title.spec_titleFieldSetFieldSet.spec_linkFieldSet.spec_link.getData() != ""> 
199                                            <#if specLinkFieldSetFieldSet.spec_link_attr_keyFieldSet.getSiblings()?has_content> 
200                                                <#list specLinkFieldSetFieldSet.spec_link_attr_keyFieldSet.getSiblings() as cur_extra_attribute_key> 
201																								 
202                                                    <#if cur_extra_attribute_key.spec_link_attr_key.getData()?? && cur_extra_attribute_key.spec_link_attr_key.getData()!=""> 
203                                                        <#if cur_extra_attribute_key?is_first> 
204                                                            <#assign extraAttr_link="${cur_extra_attribute_key.spec_link_attr_key.getData()} / ${cur_extra_attribute_key.spec_link_attr_keyFieldSetFieldSet.link_attr_value.getData()}"/> 
205                                                        <#else> 
206                                                            <#assign extraAttr_link="${extraAttr} | ${cur_extra_attribute_key.spec_link_attr_key.getData()} / ${cur_extra_attribute_key.spec_link_attr_keyFieldSetFieldSet.link_attr_value.getData()}"/> 
207                                                        </#if> 
208                                                    </#if> 
209                                                </#list> 
210                                            </#if> 
211																					<#assign linkClass="btn btn-lg ${aparienciaCTA(specLinkFieldSetFieldSet.spec_link_skin.getData(),'btn-primary')}" />	 
212																					 
213                                        <#if specLinkFieldSetFieldSet.modalSF_new??> 
214                                            <#assign popupSF_new=getterUtil.getBoolean(specLinkFieldSetFieldSet.modalSF_new.getData())/> 
215                                        </#if> 
216                                        <#if popupSF_new==true> 
217                                            <#if specLinkFieldSetFieldSet.productSelectModal_new?? && specLinkFieldSetFieldSet.productSelectModal_new.getData() != ""> 
218                                                <#assign linkProduct_new="${specLinkFieldSetFieldSet.productSelectModal_new.getData()}"/> 
219                                            <#else> 
220                                                <#assign linkProduct_new="nada"/> 
221                                            </#if> 
222                                        </#if> 
223																				 
224																				 
225																				 
226																				<#assign nofollow3=specLinkFieldSetFieldSet.hasNofollow3?? && getterUtil.getBoolean(specLinkFieldSetFieldSet.hasNofollow3.getData())/> 
227																				 
228                                        <#assign seoLink_link = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,specLinkFieldSetFieldSet.spec_link_title.getData(), specLinkFieldSetFieldSet.spec_link_page_link.getFriendlyUrl(),specLinkFieldSetFieldSet.spec_link_file_link.getData(), specLinkFieldSetFieldSet.spec_link_free_link.getData(),getterUtil.getBoolean(specLinkFieldSetFieldSet.spec_link_new_tab.getData()), linkClass, specLinkFieldSetFieldSet.spec_link_id_prefix.getData(), specLinkFieldSetFieldSet.spec_link_id.getData(),extraAttr_link, nofollow3)/> 
229                                                <div class="row cta" style="margin-bottom:30px;"> 
230                                            <#if specLinkFieldSetFieldSet.spec_link_skin.getData() == "default" || specLinkFieldSetFieldSet.spec_link_skin.getData() == "download"> 
231                                                <div class="button-link"> 
232                                            <#else> 
233                                                <div class="button-link col-md-12"> 
234                                            </#if> 
235                                            <#if specLinkFieldSetFieldSet.modalRCP_new?? && specLinkFieldSetFieldSet.modalRCP_new.getData() != ""> 
236                                            <div class="sfModalButton" onclick="openModalRCP${specLinkFieldSetFieldSet.modalRCP_new.getData()}()"> 
237                                            <#elseif popupSF_new==true> 
238                                            <div class="sfModalButton" onclick="openSfModal('${linkProduct_new}')"> 
239                                                <#else> 
240                                                <div> 
241                                            </#if> 
242																						 
243                                                ${seoLink_link} 
244                                                ${htmlUtil.unescape(cur_spec_title.spec_titleFieldSetFieldSet.spec_linkFieldSet.spec_link.getData())} 
245                                                </a> 
246                                            </div> 
247                                            </div> 
248                                        </div> 
249                                        </#if> 
250                                    </div> 
251                                </div> 
252 
253                                </#list> 
254                            </div> 
255                            </#if> 
256                        </div> 
257                    </div> 
258                </div> 
259            </div> 
260        </div> 
261        <style> 
262            .mod.mod-Specifications .specifications .product-description.line{ 
263                height:270px; 
264
265            @media(max-width:768px){ 
266                .mod.mod-Specifications .specifications .product-description.line{ 
267                    height:400px; 
268
269
270            @media(min-width:768px){ 
271                .mod.mod-Specifications .specifications .product-description .ctaSpecifications a{ 
272                    min-height:48px!important; 
273                    padding:0 12px!important; 
274                    margin-top:10px; 
275                    font-size:14px; 
276
277                .mod.mod-Specifications .specifications .product-description .ctaSpecifications .button-link{ 
278                    margin-top:-1px!important; 
279
280                .mod.mod-Specifications .specifications .product-description .ctaSpecifications .button-link{ 
281                    margin-top:-1px!important; 
282
283
284            @media(min-width:768px){ 
285                .container.specifications .slick-specifications.row.row-cols-3{ 
286                    margin-top:15px; 
287
288
289						 
290						@media(min-width:769px){ 
291						    .container.specifications .button-link.col-md-12{ 
292								   margin-top:10px; 
293
294
295 
296 
297        </style> 
298        <script> 
299            $(".sfModalButton a").on( "click", function(event) { 
300                event.preventDefault(); 
301            } ); 
302        </script> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#877440" at line 5, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#877440" at line 5, column 1]
----
1<#-- Importar la plantilla con las MACROS comunes para utilizar --> 
2<#-- Se debe modificar por SITE y por Entorno (Local, PRE y PROD) --> 
3<#include "${templatesPath}/337115551" /> 
4 
5<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
6 
7<#assign fondo = ""> 
8<#if background.getData() == "mist"> 
9    <#assign fondo = "bruma"> 
10<#elseif background.getData() == "mist2"> 
11    <#assign fondo = "bruma2"> 
12<#elseif background.getData() == "lightblue"> 
13    <#assign fondo = "lightblue"> 
14<#elseif background.getData() == "midblue"> 
15    <#assign fondo = "midblue"> 
16<#elseif background.getData() == "darkblue"> 
17    <#assign fondo = "darkblue"> 
18<#elseif background.getData() == "sandstone"> 
19    <#assign fondo = "sandstone"> 
20</#if> 
21 
22<#assign popupSF=false/> 
23<#assign popupSF_new=false/> 
24 
25<#assign colortexto = "texBlue"> 
26<#if textcolor?has_content> 
27    <#if textcolor.getData() == "white"> 
28        <#assign colortexto = "textWhite"> 
29    <#elseif textcolor.getData() == "blue"> 
30        <#assign colortexto = "textBlue"> 
31    </#if> 
32</#if> 
33<#if custom_top_margin?? && custom_top_margin.getData() != ""> 
34    <#assign custom_top_margin = custom_top_margin.getData() /> 
35<#else> 
36    <#assign custom_top_margin = "" /> 
37</#if> 
38 
39<#if custom_bottom_margin?? && custom_bottom_margin.getData() != ""> 
40    <#assign custom_bottom_margin = custom_bottom_margin.getData() /> 
41<#else> 
42    <#assign custom_bottom_margin = "" /> 
43</#if> 
44 
45<#if title_align?? && title_align.getData() != ""> 
46    <#assign titleAlign = title_align.getData() /> 
47<#else> 
48    <#assign titleAlign = "" /> 
49</#if> 
50 
51<#if subtitle_align?? && subtitle_align.getData() != ""> 
52    <#assign subtitleAlign = subtitle_align.getData() /> 
53<#else> 
54    <#assign subtitleAlign = "" /> 
55</#if> 
56 
57<div class="mod mod-Specifications ${fondo}" style="padding-bottom:${custom_bottom_margin}; padding-top:${custom_top_margin};"> 
58    <div class="container"> 
59        <div class="row"> 
60            <div class="col-md-12"> 
61                <#if title.getData()?? && title.getData() != ""> 
62                <#assign htmlTag = "h2"/> 
63                <#if title.title_level?has_content> 
64                    <#assign htmlTag = title.title_level.getData()/> 
65                </#if> 
66                <div class="product-title" style="text-align: ${titleAlign};"> 
67                    <${htmlTag} class="h1-copycat ${colortexto}">${htmlUtil.unescape(title.getData())}</${htmlTag}> 
68            </div> 
69            </#if> 
70            <div class="product-subtitle ${colortexto}" style="text-align: ${subtitleAlign};"> 
71                <#if subtitle.getData()?? && subtitle.getData() != ""> 
72                    ${htmlUtil.unescape(subtitle.getData())} 
73                </#if> 
74            </div> 
75            <#assign specStyle = ""/> 
76            <#if num_columns.getData() == "2"> 
77                <style> 
78                    @media (min-width: 668px){ 
79                        .container.specifications{ 
80                            max-width: 778px; 
81
82
83                </style> 
84            </#if> 
85            <div class="container specifications" ${specStyle}> 
86                <#if spec_title.getSiblings()?has_content> 
87                <#assign numCols = 5 /> 
88                <#if num_columns.getData() != ""> 
89                    <#assign numCols = num_columns.getData()/> 
90                </#if> 
91                <div class="slick-specifications row row-cols-${numCols}"> 
92 
93                    <#list spec_titleFieldSet.getSiblings() as cur_spec_title> 
94										 
95                    <!-- Variables Url icono --> 
96                    <#assign icon_seoLink = "<a style='cursor:default!important'>" /> 
97                    <#assign icon_seoLink2 = "</a>" /> 
98                    <#assign extraAttr= "" /> 
99                    <!--ESTABLECER SI PAGE, FILE O FREELINK HAS CONTENT--> 
100                    <#assign specIconFieldSetFieldSet = cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_iconFieldSetFieldSet /> 
101 
102                    <#if specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_link?has_content || 
103                    specIconFieldSetFieldSet.icon_link_file_link?has_content || 
104                    specIconFieldSetFieldSet.icon_link_free_link?has_content> 
105                        <#if (specIconFieldSetFieldSet.icon_link_free_link.getData()?? && specIconFieldSetFieldSet.icon_link_free_link.getData() != "") || 
106                        (specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_link.getData()?? && specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_link.getData() != "") || 
107                        (specIconFieldSetFieldSet.icon_link_file_link.getData()?? && specIconFieldSetFieldSet.icon_link_file_link.getData() != "")> 
108                            <!--ASIGNAMOS EXTRA ATTR--> 
109 
110 
111                            <#list specIconFieldSetFieldSet.icon_link_attr_keyFieldSet.getSiblings() as cur_extra_attribute_key> 
112														 
113                                <#if cur_extra_attribute_key.icon_link_attr_key.getData()?? && cur_extra_attribute_key.icon_link_attr_key.getData()!=""> 
114                                    <#if cur_extra_attribute_key?is_first> 
115                                        <#assign extraAttr="${cur_extra_attribute_key.icon_link_attr_key.getData()} / ${cur_extra_attribute_key.icon_link_attr_keyFieldSetFieldSet.icon_link_attr_valuegetData()}"/> 
116                                    <#else> 
117                                        <#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.icon_link_attr_key.getData()} / ${cur_extra_attribute_key.icon_link_attr_keyFieldSetFieldSet.icon_link_attr_value.getData()}"/> 
118                                    </#if> 
119                                </#if> 
120                            </#list> 
121                            <!--FIN ASIGNAMOS EXTRA ATTR--> 
122                            <#assign linkClass= "" /> 
123														<#assign nofollow1=specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.hasNofollow1?? && getterUtil.getBoolean(specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.hasNofollow1.getData())/> 
124														 
125														 
126														 
127                            <#assign icon_seoLink = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data, specIconFieldSetFieldSet.spec_alt_icon.getData(), specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_link.getFriendlyUrl(), specIconFieldSetFieldSet.icon_link_file_link.getData(), specIconFieldSetFieldSet.icon_link_free_link.getData(), getterUtil.getBoolean(specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.icon_link_new_tab.getData()), linkClass, specIconFieldSetFieldSet.icon_link_id_prefix.getData(), specIconFieldSetFieldSet.icon_link_id.getData(), extraAttr, nofollow1)/> 
128                            <#assign icon_seoLink2 = "</a>" /> 
129 
130                            <#if specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalSF??> 
131                                <#assign popupSF=getterUtil.getBoolean(specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalSF.getData())/> 
132                            </#if> 
133                            <#if popupSF==true> 
134                                <#if specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.productSelectModal?? && specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.productSelectModal.getData() != ""> 
135                                    <#assign linkProduct="${specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.productSelectModal.getData()}"/> 
136                                <#else> 
137                                    <#assign linkProduct="nada"/> 
138                                </#if> 
139                            </#if> 
140                        </#if> 
141                    </#if> 
142                    <!--Fin Variables Url icono --> 
143                    <div class="slick-specifications-col col change-height"> 
144                        <#assign line = ""> 
145                        <#if getterUtil.getBoolean(separator.getData()) > 
146                            <#assign line = "line"> 
147                        </#if> 
148                        <div class="product-description ${line}"> 
149                            <#if specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalRCP?? && specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalRCP.getData() != ""> 
150                                     <div class="row sfModalButton" onclick="openModalRCP${specIconFieldSetFieldSet.icon_link_page_linkFieldSet.icon_link_page_linkFieldSetFieldSet.modalRCP.getData()}()"> 
151                             <#elseif popupSF==true > 
152                            <div class="row sfModalButton" onclick="openSfModal('${linkProduct}')"> 
153                                <#else> 
154                                <div class="row"> 
155                                    </#if> 
156                                    <#if specIconFieldSetFieldSet.spec_src_icon.getData()?? && specIconFieldSetFieldSet.spec_src_icon.getData() != ""> 
157                                        ${icon_seoLink} 
158                                        <img width="54" height="55" role="presentation" 
159                                             alt="${specIconFieldSetFieldSet.spec_alt_icon.getData()}" 
160                                             src="${specIconFieldSetFieldSet.spec_src_icon.getData()}"  loading="lazy"/> 
161                                        ${icon_seoLink2} 
162                                    <#elseif cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getData()?? && cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getData() != ""> 
163                                        ${icon_seoLink} 
164                                        <img width="80" height="80" role="presentation" 
165                                             alt="${cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getAttribute('alt')}" 
166                                             data-fileentryid="${cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getAttribute('fileEntryId')}" 
167                                             src="${cur_spec_title.spec_titleFieldSetFieldSet.spec_iconFieldSet.spec_icon.getData()}" loading="lazy"/> 
168                                        ${icon_seoLink2} 
169                                    </#if> 
170                            </div> 
171 
172                            <div class="product-title ${colortexto}"> 
173                                <#if cur_spec_title.spec_title.getData()?? && cur_spec_title.spec_title.getData() != "" > 
174                                    ${htmlUtil.unescape(cur_spec_title.spec_title.getData())} 
175                                </#if> 
176                            </div> 
177                                <#if cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData()?? && cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData() != ""> 
178                            <div class="product-text ${colortexto}"> 
179                                            ${cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData()} 
180                                                <style> 
181                                            .slick-specifications-col.col.change-height { 
182                                                height: auto!important; 
183
184                                            </style> 
185                                        <#else> 
186                                            <style> 
187                                            .slick-specifications-col.col.change-height { 
188                                                height: auto!important; 
189
190                                            </style> 
191                                        </#if> 
192                                            <#if cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData()?? && cur_spec_title.spec_titleFieldSetFieldSet.spec_description.getData() != ""> 
193                                                </div> 
194                                            </#if> 
195 
196                                <#assign specLinkFieldSetFieldSet=cur_spec_title.spec_titleFieldSetFieldSet.spec_linkFieldSet.spec_linkFieldSetFieldSet/> 
197                                <#assign extraAttr_link = ""/> 
198                                        <#if cur_spec_title.spec_titleFieldSetFieldSet.spec_linkFieldSet.spec_link.getData()?? && cur_spec_title.spec_titleFieldSetFieldSet.spec_linkFieldSet.spec_link.getData() != ""> 
199                                            <#if specLinkFieldSetFieldSet.spec_link_attr_keyFieldSet.getSiblings()?has_content> 
200                                                <#list specLinkFieldSetFieldSet.spec_link_attr_keyFieldSet.getSiblings() as cur_extra_attribute_key> 
201																								 
202                                                    <#if cur_extra_attribute_key.spec_link_attr_key.getData()?? && cur_extra_attribute_key.spec_link_attr_key.getData()!=""> 
203                                                        <#if cur_extra_attribute_key?is_first> 
204                                                            <#assign extraAttr_link="${cur_extra_attribute_key.spec_link_attr_key.getData()} / ${cur_extra_attribute_key.spec_link_attr_keyFieldSetFieldSet.link_attr_value.getData()}"/> 
205                                                        <#else> 
206                                                            <#assign extraAttr_link="${extraAttr} | ${cur_extra_attribute_key.spec_link_attr_key.getData()} / ${cur_extra_attribute_key.spec_link_attr_keyFieldSetFieldSet.link_attr_value.getData()}"/> 
207                                                        </#if> 
208                                                    </#if> 
209                                                </#list> 
210                                            </#if> 
211																					<#assign linkClass="btn btn-lg ${aparienciaCTA(specLinkFieldSetFieldSet.spec_link_skin.getData(),'btn-primary')}" />	 
212																					 
213                                        <#if specLinkFieldSetFieldSet.modalSF_new??> 
214                                            <#assign popupSF_new=getterUtil.getBoolean(specLinkFieldSetFieldSet.modalSF_new.getData())/> 
215                                        </#if> 
216                                        <#if popupSF_new==true> 
217                                            <#if specLinkFieldSetFieldSet.productSelectModal_new?? && specLinkFieldSetFieldSet.productSelectModal_new.getData() != ""> 
218                                                <#assign linkProduct_new="${specLinkFieldSetFieldSet.productSelectModal_new.getData()}"/> 
219                                            <#else> 
220                                                <#assign linkProduct_new="nada"/> 
221                                            </#if> 
222                                        </#if> 
223																				 
224																				 
225																				 
226																				<#assign nofollow3=specLinkFieldSetFieldSet.hasNofollow3?? && getterUtil.getBoolean(specLinkFieldSetFieldSet.hasNofollow3.getData())/> 
227																				 
228                                        <#assign seoLink_link = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,specLinkFieldSetFieldSet.spec_link_title.getData(), specLinkFieldSetFieldSet.spec_link_page_link.getFriendlyUrl(),specLinkFieldSetFieldSet.spec_link_file_link.getData(), specLinkFieldSetFieldSet.spec_link_free_link.getData(),getterUtil.getBoolean(specLinkFieldSetFieldSet.spec_link_new_tab.getData()), linkClass, specLinkFieldSetFieldSet.spec_link_id_prefix.getData(), specLinkFieldSetFieldSet.spec_link_id.getData(),extraAttr_link, nofollow3)/> 
229                                                <div class="row cta" style="margin-bottom:30px;"> 
230                                            <#if specLinkFieldSetFieldSet.spec_link_skin.getData() == "default" || specLinkFieldSetFieldSet.spec_link_skin.getData() == "download"> 
231                                                <div class="button-link"> 
232                                            <#else> 
233                                                <div class="button-link col-md-12"> 
234                                            </#if> 
235                                            <#if specLinkFieldSetFieldSet.modalRCP_new?? && specLinkFieldSetFieldSet.modalRCP_new.getData() != ""> 
236                                            <div class="sfModalButton" onclick="openModalRCP${specLinkFieldSetFieldSet.modalRCP_new.getData()}()"> 
237                                            <#elseif popupSF_new==true> 
238                                            <div class="sfModalButton" onclick="openSfModal('${linkProduct_new}')"> 
239                                                <#else> 
240                                                <div> 
241                                            </#if> 
242																						 
243                                                ${seoLink_link} 
244                                                ${htmlUtil.unescape(cur_spec_title.spec_titleFieldSetFieldSet.spec_linkFieldSet.spec_link.getData())} 
245                                                </a> 
246                                            </div> 
247                                            </div> 
248                                        </div> 
249                                        </#if> 
250                                    </div> 
251                                </div> 
252 
253                                </#list> 
254                            </div> 
255                            </#if> 
256                        </div> 
257                    </div> 
258                </div> 
259            </div> 
260        </div> 
261        <style> 
262            .mod.mod-Specifications .specifications .product-description.line{ 
263                height:270px; 
264
265            @media(max-width:768px){ 
266                .mod.mod-Specifications .specifications .product-description.line{ 
267                    height:400px; 
268
269
270            @media(min-width:768px){ 
271                .mod.mod-Specifications .specifications .product-description .ctaSpecifications a{ 
272                    min-height:48px!important; 
273                    padding:0 12px!important; 
274                    margin-top:10px; 
275                    font-size:14px; 
276
277                .mod.mod-Specifications .specifications .product-description .ctaSpecifications .button-link{ 
278                    margin-top:-1px!important; 
279
280                .mod.mod-Specifications .specifications .product-description .ctaSpecifications .button-link{ 
281                    margin-top:-1px!important; 
282
283
284            @media(min-width:768px){ 
285                .container.specifications .slick-specifications.row.row-cols-3{ 
286                    margin-top:15px; 
287
288
289						 
290						@media(min-width:769px){ 
291						    .container.specifications .button-link.col-md-12{ 
292								   margin-top:10px; 
293
294
295 
296 
297        </style> 
298        <script> 
299            $(".sfModalButton a").on( "click", function(event) { 
300                event.preventDefault(); 
301            } ); 
302        </script> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#305921909" at line 5, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#305921909" at line 5, column 1]
----
1<#-- Importar la plantilla con las MACROS comunes para utilizar --> 
2<#-- Se debe modificar por SITE y por Entorno (Local, PRE y PROD) --> 
3<#include "${templatesPath}/337115551" /> 
4 
5<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
6<#assign isPhone = zurichService.getPhone()> 
7 
8<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
9 
10<#assign fondo = "#ffffff"> 
11<#if background?? && background.getData()!=""> 
12    <#assign fondo = background.getData()> 
13</#if> 
14 
15<#assign popupSF=false/> 
16 
17<#assign textColor = "dark-blue"> 
18<#if text_color?? && text_color.getData()!=""> 
19    <#assign textColor = text_color.getData()> 
20</#if> 
21<#if custom_top_margin?? && custom_top_margin.getData() != ""> 
22    <#assign custom_top_margin = custom_top_margin.getData() /> 
23<#else> 
24    <#assign custom_top_margin = "" /> 
25</#if> 
26 
27<#if custom_bottom_margin?? && custom_bottom_margin.getData() != ""> 
28    <#assign custom_bottom_margin = custom_bottom_margin.getData() /> 
29<#else> 
30    <#assign custom_bottom_margin = "" /> 
31</#if> 
32<div class="mod mod-Product highlight-figure" style="background-color:${fondo}; padding-bottom:${custom_bottom_margin}; padding-top:${custom_top_margin};"> 
33    <div class="container"> 
34        <#if image_float.getData()?? && image_float.getData()?has_content> 
35            <#if image_float.getData() == "right"> 
36                <div class="row right"> 
37            <#else> 
38                <div class="row"> 
39            </#if> 
40        <#else> 
41            <div class="row"> 
42        </#if> 
43            <div class="elements-block"> 
44                <div class="element-block"> 
45                    <div class="row"> 
46                        <div class="col-md-4 image"> 
47                            <#if image.getData()?? && image.getData() != ""> 
48                                <div class="image-border"> 
49                                    <img role="presentation" alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute('fileEntryId')}" src="${image.getData()}" class="img-responsive" width="100%" height="100%" loading="lazy"/> 
50                                </div> 
51                            </#if> 
52                        </div> 
53                        <#-- PL-1023 hide text when is empty --> 
54                        <#assign isEmpty = "" /> 
55                        <#assign textMargin = "" /> 
56                        <#if isPhone == "mobile"> 
57                            <#if title.getData() == "" && description.getData() == "" && link_text.getData() == ""> 
58                                <#assign isEmpty = "hide" /> 
59                            <#elseif title.getData() == "" || description.getData() == ""> 
60                                <#assign textMargin = 'style="margin-bottom:0px;margin-top:0px"' /> 
61                            </#if> 
62                        </#if> 
63                        <#-- --> 
64                        <div class="col-md-8 text text-color__${textColor} ${isEmpty}" ${textMargin}> 
65                            <div class="element-description"> 
66 
67    							<#if title.getData()?? && title.getData() != ""> 
68                                <div class="title"> 
69                                    <${title.title_level.getData()} class="h1-copycat">${htmlUtil.unescape(title.getData())}</${title.title_level.getData()}> 
70                                </div> 
71    							</#if> 
72                                <div class="description"> 
73    							<#if description.getData()?? && description.getData() != ""> 
74                                    ${description.getData()} 
75    							</#if> 
76                                </div> 
77                                <#if link_text.getSiblings()?has_content && (link_text.getData()?? && link_text.getData() != "")> 
78                                    <div class="row cta"> 
79                                    <#if links_align.getData()?? && links_align.getData()?has_content> 
80                                        <div class="${links_align.getData()}"> 
81                                    <#else> 
82                                        <div class="middle"> 
83                                    </#if> 
84                                    <#list link_text.getSiblings() as cur_link> 
85                                        <#if cur_link.modalSF??> 
86	                                        <#assign popupSF=getterUtil.getBoolean(cur_link.modalSF.getData())/> 
87                                        </#if> 
88                                        <#if cur_link.link_attr_key.getSiblings()?has_content> 
89                                        	<#list cur_link.link_attr_key.getSiblings() as cur_extra_attribute_key> 
90                                        		<#if cur_extra_attribute_key.getData()?? && cur_extra_attribute_key.getData()!=""> 
91                                        			<#if cur_extra_attribute_key?is_first> 
92                                        				<#assign extraAttr="${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.spec_link_attr_value.getData()}"/> 
93                                        			<#else> 
94                                        				<#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_key.getData()}"/> 
95                                        			</#if> 
96                                        		</#if> 
97                                        	</#list> 
98                                        </#if> 
99                                        <#assign linkClass="btn btn-lg ${aparienciaCTA(cur_link.link_skin.getData(),'btn-primary')}"/> 
100 
101 
102    									<#if cur_link.EnlaceModal??> 
103    										<#assign link_modalElementoRepetible = cur_link.EnlaceModal.getData() /> 
104    									</#if> 
105                                        <#assign modalElementoRepetible = ""> 
106                                        <#assign modalPanelElementoRepetible = ""> 
107                                        <#assign articleIdModalElementoRepetible = ""> 
108                                        <#if link_modalElementoRepetible?? && link_modalElementoRepetible!="" > 
109    										<#assign journalArticleModalElementoRepetible = link_modalElementoRepetible?eval/> 
110    										<#assign articleModalElementoRepetible = journalArticleLocalService.fetchLatestArticle(journalArticleModalElementoRepetible.classPK?number)/> 
111    										<#assign modalElementoRepetible = journalArticleLocalService.getArticleContent(articleModalElementoRepetible, articleModalElementoRepetible.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), themeDisplay)> 
112    										<#assign articleIdModalElementoRepetible = articleModalElementoRepetible.getArticleId()> 
113    										<#assign modalPanelElementoRepetible = zurichService.getModal(modalElementoRepetible,.vars['reserved-article-id'].data, articleIdModalElementoRepetible)> 
114    										<#assign modalesRepetibles = modalesRepetibles + modalPanelElementoRepetible> 
115                    					</#if> 
116 
117                                        <#assign nofollow=cur_link.hasNofollow?? && getterUtil.getBoolean(cur_link.hasNofollow.getData())/> 
118                                        <#assign seoLink = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,cur_link.link_title.getData(), cur_link.link_page_link.getFriendlyUrl(),cur_link.link_file_link.getData(), cur_link.link_free_link.getData(),getterUtil.getBoolean(cur_link.link_new_tab.getData()), linkClass, cur_link.link_id_prefix.getData(), cur_link.link_id.getData(),extraAttr, modalElementoRepetible, articleIdModalElementoRepetible, nofollow)/> 
119 
120                                         
121                                        <#if cur_link.modalRCP?? && cur_link.modalRCP.getData() != ""> 
122                                            <div class="button-link sfModalButton" onclick="openModalRCP${cur_link.modalRCP.getData()}()"> 
123																						    ${seoLink} 
124                                                ${htmlUtil.unescape(cur_link.getData())} 
125        	                                      </a> 
126	                                           </div> 
127                                        <#elseif popupSF==true> 
128                                        <#if cur_link.productSelectModal?? && cur_link.productSelectModal.getData() != ""> 
129                                            <#assign linkProduct="${cur_link.productSelectModal.getData()}"/> 
130                                        <#else> 
131                                            <#assign linkProduct="nada"/> 
132                                        </#if> 
133                                            <div class="button-link sfModalButton" onclick="openSfModal('${linkProduct}')"> 
134                                                ${seoLink} 
135                                                ${htmlUtil.unescape(cur_link.getData())} 
136        	                                    </a> 
137	                                        </div> 
138                                        <#else> 
139                                        <div class="button-link"> 
140                                            ${seoLink} 
141                                            ${htmlUtil.unescape(cur_link.getData())} 
142                                            </a> 
143                                        </div> 
144                                        </#if> 
145                                    </#list> 
146                                    </div> 
147    								</div> 
148                                </#if> 
149                            </div> 
150                        </div> 
151                    </div> 
152                </div> 
153            </div> 
154        </div> 
155    </div> 
156</div> 
157 
158<style> 
159 
160.text-color__dark-blue{ 
161    color: #23366F; 
162
163 
164.text-color__white{ 
165    color: white; 
166
167 
168a.link-white{ 
169    text-decoration: none; 
170    color: #23366F; 
171    border-color: #23366F; 
172    min-width: 110px; 
173    text-align: center; 
174    border-radius:28px; 
175    background-color:white; 
176
177 
178.link-white{ 
179    height: inherit; 
180    padding: 8px; 
181    display: flex; 
182    justify-content: center; 
183    flex-direction: row; 
184    border: 1px solid #000066; 
185    color: #000066; 
186
187 
188.button-link.small .link-white { 
189    padding: 0 24px; 
190    max-width: none; 
191    min-height: 56px; 
192    font-size: 18px; 
193    align-items: center; 
194    justify-content: center; 
195    margin-top: -20px; 
196    text-align: center; 
197    border-radius: 28px; 
198
199a.link-white:hover { 
200    text-decoration: none; 
201	background-color: #edeef0; 
202	color:#91bfe3; 
203
204</style> 
205 
206<script> 
207$(".sfModalButton a").on( "click", function(event) { 
208  event.preventDefault(); 
209} ); 
210</script> 
211 
212<style> 
213@media(max-width:768px){ 
214    .mod.mod-Product.highlight-figure .elements-block .element-description .button-link:not(:last-of-type){ 
215    margin-right:0px; 
216
217.mod.mod-Product.highlight-figure .elements-block .element-block .text{ 
218    margin-top:15px!important; 
219    padding-top:15px; 
220
221.mod.mod-Product.highlight-figure .elements-block .element-block .image{ 
222    margin-top:30px; 
223
224.mod.mod-Product.highlight-figure .elements-block .element-description .button-link{ 
225    margin-bottom:10px; 
226
227
228.mod.mod-Product.highlight-figure .elements-block .element-description .description h2{ 
229    font-weight: 700; 
230
231 
232</style> 
233 
234<style> 
235@media (max-width: 767px) { 
236    .mod.mod-Product .elements-block .element-block .row .button-link { 
237        justify-content: center; 
238
239
240</style> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#877400" at line 5, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#877400" at line 5, column 1]
----
1<#-- Importar la plantilla con las MACROS comunes para utilizar --> 
2<#-- Se debe modificar por SITE y por Entorno (Local, PRE y PROD) --> 
3<#include "${templatesPath}/337115551" /> 
4 
5<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
7<#assign hasVideo = false> 
8 
9<#assign popupSF=false/> 
10 
11<#assign modalesRepetibles = ""> 
12<#assign isPhone = zurichService.getPhone()> 
13<#assign fondo = ""> 
14<#if background.getData() == "mist"> 
15    <#assign fondo = "bruma"> 
16<#elseif background.getData() == "mist2"> 
17    <#assign fondo = "bruma2"> 
18<#elseif background.getData() == "lightblue"> 
19    <#assign fondo = "lightblue"> 
20<#elseif background.getData() == "sandstone"> 
21    <#assign fondo = "sandstone"> 
22</#if> 
23<#assign fondoStyle = ""> 
24<#if fondohex?? && fondohex.getData() != ""> 
25    <#assign fondo = ""> 
26    <#assign fondoStyle = "background-color:${fondohex.getData()};"> 
27</#if> 
28<#assign textStyleColor = ""> 
29<#if textColor?? && textColor.getData() != ""> 
30    <#if textColor.getData() == "blanco"> 
31        <#assign textStyleColor = "color:white;"> 
32    <#elseif textColor.getData() == "azul"> 
33        <#assign textStyleColor = "color:#23366f;"> 
34    </#if> 
35</#if> 
36<#assign fondoTexto = ""> 
37<#if text_background_color?? && text_background_color.getData() != "" && fondohex.getData() == ""> 
38    <#if text_background_color.getData() == "dove"> 
39        <#assign fondoTexto = "TextBruma"> 
40    <#elseif text_background_color.getData() == "white"> 
41        <#assign fondoTexto = "TextBlanco"> 
42    <#elseif text_background_color.getData() == "mist2"> 
43        <#assign fondoTexto = "Textbruma2"> 
44    <#elseif text_background_color.getData() == "lightblue"> 
45        <#assign fondoTexto = "Textlightblue"> 
46    <#elseif text_background_color.getData() == "sandstone"> 
47        <#assign fondoTexto = "Textsandstone"> 
48    </#if> 
49</#if> 
50<#if custom_top_margin?? && custom_top_margin.getData() != ""> 
51    <#assign custom_top_margin = custom_top_margin.getData() /> 
52<#else> 
53    <#assign custom_top_margin = "15px" /> 
54</#if> 
55<#if custom_bottom_margin?? && custom_bottom_margin.getData() != ""> 
56    <#assign custom_bottom_margin = custom_bottom_margin.getData() /> 
57<#else> 
58    <#assign custom_bottom_margin = "15px" /> 
59</#if> 
60<#if image_float.getData()?? && image_float.getData()?has_content> 
61    <#if image_float.getData() == "right"> 
62        <#assign fondo = ""> 
63        <#if text_background_color?? && text_background_color.getData() != "" && fondohex.getData() == ""> 
64            <#if text_background_color.getData() == "dove"> 
65                <#assign fondo = "text1-background-dove"> 
66            <#elseif text_background_color.getData() == "mist2"> 
67                <#assign fondo = "text1-background-dove2"> 
68            <#elseif text_background_color.getData() == "white"> 
69                <#assign fondo = "text1-background-blanco"> 
70            <#elseif text_background_color.getData() == "sandstone"> 
71                <#assign fondo = "text1-background-sandstone"> 
72            <#elseif text_background_color.getData() == "lightblue"> 
73                <#assign fondo = "text1-background-lightblue"> 
74            </#if> 
75        </#if> 
76        <#assign fondoTexto = ""> 
77        <#if fondehex??> 
78            <#if fondohex.getData()?? && fondohex.getData()?has_content> 
79                <#if fondohex.getData() == ""> 
80                    <#if background.getData() == "mist"> 
81                        <#assign fondoTexto = "bruma"> 
82                    <#elseif background.getData() == "mist2"> 
83                        <#assign fondoTexto = "bruma2"> 
84                    <#elseif background.getData() == "lightblue"> 
85                        <#assign fondoTexto = "lightblue"> 
86                    <#elseif background.getData() == "sandstone"> 
87                        <#assign fondoTexto = "sandstone"> 
88                    </#if> 
89                </#if> 
90            </#if> 
91        <#else> 
92 
93        </#if> 
94    </#if> 
95<#else> 
96</#if> 
97<#assign noShadow=""/> 
98<#if image_skin.getData()?? && image_skin.getData() !=""> 
99    <#if image_skin.getData() == "no-shadow"> 
100        <#assign noShadow="noShadow"/> 
101    </#if> 
102</#if> 
103 
104<#if isPhone=="tablet"> 
105<div class="mod mod-Product ${fondo} ${noShadow}" style="${fondoStyle} padding:0x;"> 
106<#else> 
107<div class="mod mod-Product ${fondo} ${noShadow}" style="padding:0!important; ${fondoStyle}"> 
108</#if> 
109    <div class="container" style="max-width: 100%;"> 
110        <#if image_float.getData()?? && image_float.getData()?has_content> 
111            <#if image_float.getData() == "right"> 
112            <div class="row right"> 
113                <#else> 
114                <div class="row left-image"> 
115                    </#if> 
116                    <#else> 
117                    <div class="row left-image"> 
118                        </#if> 
119                        <div class="elements-block"> 
120                            <div class="element-block"> 
121                                <#if image.VideoImagen??> 
122                                    <#if image.VideoImagen.getData()?? && image.VideoImagen.getData()!="" > 
123                                        <#assign modal = ""> 
124                                        <#assign modalPanel = ""> 
125                                        <#assign articleIdModal = ""> 
126                                        <#assign portletRequestModel = objectUtil("com.liferay.portal.kernel.portlet.PortletRequestModel", renderRequest, renderResponse) /> 
127                                        <#assign journalArticleModal = image.VideoImagen.getData()?eval/> 
128                                        <#assign articleModal = journalArticleLocalService.fetchLatestArticle(journalArticleModal.classPK?number)/> 
129                                        <#if articleModal?? && articleModal !="" && articleModal?has_content> 
130                                            <#assign modal = journalArticleLocalService.getArticleContent(articleModal, articleModal.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), portletRequestModel, themeDisplay)> 
131                                            <#assign articleIdModal = articleModal.getArticleId()> 
132                                            <#assign modalPanelImage = zurichService.getModalImage(.vars['reserved-article-id'].data, articleIdModal)> 
133                                            <#assign modalPanel = zurichService.getModal(modal,.vars['reserved-article-id'].data, articleIdModal)> 
134                                            ${modalPanel} 
135                                            <#assign hasVideo = true> 
136                                        </#if> 
137                                    </#if> 
138                                </#if> 
139                                <div class="row"> 
140                                    <div class="col-md-6 image"> 
141                                        <#if image_skin.getData()?? && image_skin.getData() != ""> 
142                                        <div style="width: 100%;"> 
143                                            </#if> 
144                                            <#if image.src_image.getData()?? && image.src_image.getData() != ""> 
145                                                <#if isPhone=="tablet"> 
146                                                    <img alt="${image.alt_image.getData()}" src="${image.src_image.getData()}" class="img-responsive" style="padding-top:90px" width="100%" height="100%" loading="lazy"/> 
147                                                <#else> 
148                                                    <img alt="${image.alt_image.getData()}" src="${image.src_image.getData()}" class="img-responsive" width="100%" height="100%" loading="lazy"/> 
149                                                </#if> 
150                                            <#elseif image.getData()?? && image.getData() != ""> 
151                                                <#if isPhone=="tablet"> 
152                                                    <img alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute('fileEntryId')}" src="${image.getData()}" class="img-responsive" style="padding-top=90px" width="100%" height="100%" loading="lazy"/> 
153                                                <#else> 
154                                                    <img alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute('fileEntryId')}" src="${image.getData()}" class="img-responsive" width="100%" height="100%" loading="lazy"/> 
155                                                </#if> 
156                                            </#if> 
157                                            <#if hasVideo > 
158                                                <div class="modalVideo"> 
159                                                    ${modalPanelImage} 
160                                                </div> 
161                                            </#if> 
162                                        </div> 
163                                    </div> 
164                                    <div class="col-md-6 text  ${fondoTexto}"> 
165                                        <div class="element-description ${(image_float.getData() == "right")?then('', 'offset-md-1 col-md-10')}"> 
166                                            <#if topic_link_text.getData()?? && topic_link_text.getData() != ""> 
167                                                <#if topic_link_text.topic_link_attr_key.getSiblings()?has_content> 
168                                                    <#list topic_link_text.topic_link_attr_key.getSiblings() as cur_extra_attribute_key> 
169                                                        <#if cur_extra_attribute_key.getData()?? && cur_extra_attribute_key.getData()!=""> 
170                                                            <#if cur_extra_attribute_key?is_first> 
171                                                                <#assign extraAttr="${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_value.getData()}"/> 
172                                                            <#else> 
173                                                                <#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_value.getData()}"/> 
174                                                            </#if> 
175                                                        </#if> 
176                                                    </#list> 
177                                                </#if> 
178                                                <#assign linkClass=""/> 
179                                                <#if topic_link_text.EnlaceModalTopic??> 
180                                                    <#assign link_modalIndiceSuperior = topic_link_text.EnlaceModalTopic.getData() /> 
181                                                </#if> 
182                                                <#assign modalIndiceSuperior = ""> 
183                                                <#assign modalPanelIndiceSuperior = ""> 
184                                                <#assign articleIdModalIndiceSuperior = ""> 
185                                                <#if link_modalIndiceSuperior?? && link_modalIndiceSuperior!="" > 
186                                                    <#assign journalArticleModalIndiceSuperior = link_modalIndiceSuperior?eval/> 
187                                                    <#assign articleModalIndiceSuperior = journalArticleLocalService.fetchLatestArticle(journalArticleModalIndiceSuperior.classPK?number)/> 
188                                                    <#assign modalIndiceSuperior = journalArticleLocalService.getArticleContent(articleModalIndiceSuperior, articleModalIndiceSuperior.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), themeDisplay)> 
189                                                    <#assign articleIdModalIndiceSuperior = articleModalIndiceSuperior.getArticleId()> 
190                                                    <#assign modalPanelIndiceSuperior = zurichService.getModal(modalIndiceSuperior,.vars['reserved-article-id'].data, articleIdModalIndiceSuperior)> 
191                                                </#if> 
192																								<#assign nofollow=topic_link_text.hasNofollow?? && getterUtil.getBoolean(topic_link_text.hasNofollow.getData())/> 
193                                                <#assign seoLink_topic = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,topic_link_text.topic_link_title.getData(), topic_link_text.topic_link_page_link.getFriendlyUrl(),topic_link_text.topic_link_file_link.getData(), topic_link_text.topic_link_free_link.getData(),getterUtil.getBoolean(topic_link_text.topic_link_new_tab.getData()), linkClass, topic_link_text.topic_link_id_prefix.getData(), topic_link_text.topic_link_id.getData() , extraAttr, modalIndiceSuperior, articleIdModalIndiceSuperior, nofollow)/> 
194                                                <div class="element-hashtag"> 
195                                                    <#if seoLink_topic?? > 
196                                                        ${seoLink_topic} 
197                                                        ${topic_link_text.getData()} 
198                                                        </a> 
199                                                    </#if> 
200                                                </div> 
201                                            </#if> 
202                                            <#if title.getData()?? && title.getData() != ""> 
203                                            <#assign title_level = "h2"/> 
204                                            <#if title.title_level??> 
205                                                <#if title.title_level.getData()?? && title.title_level.getData() != ""> 
206                                                    <#assign title_level = title.title_level.getData()/> 
207                                                </#if> 
208                                            <#else> 
209 
210                                            </#if> 
211                                            <div class="title"> 
212                                                <${title_level} class="h1-copycat" style="${textStyleColor}">${htmlUtil.unescape(title.getData())}</${title_level}> 
213                                        </div> 
214                                        </#if> 
215                                        <#if subtitle.getData()?? && subtitle.getData() != ""> 
216                                            <div class="subtitle" style="${textStyleColor}"> 
217                                                ${htmlUtil.unescape(subtitle.getData())} 
218                                            </div> 
219                                        </#if> 
220                                        <div class="description" style="${textStyleColor}"> 
221                                            <#if description.getData()?? && description.getData() != ""> 
222                                                ${description.getData()} 
223                                            </#if> 
224                                        </div> 
225                                        <#if link_text.getSiblings()?has_content && (link_text.getData()?? && link_text.getData() != "")> 
226                                        <div class="row cta"> 
227                                            <#if links_align.getData()?? && links_align.getData()?has_content> 
228                                            <div class="${links_align.getData()}"> 
229                                                <#else> 
230                                                <div class="middle"> 
231                                                    </#if> 
232                                                    <#list link_text.getSiblings() as cur_link> 
233                                                        <#if cur_link.modalSF??> 
234                                                            <#assign popupSF=getterUtil.getBoolean(cur_link.modalSF.getData    ())/> 
235                                                        </#if> 
236                                                        <#if cur_link.link_attr_key.getSiblings()?has_content> 
237                                                            <#list cur_link.link_attr_key.getSiblings() as cur_extra_attribute_key> 
238                                                                <#if cur_extra_attribute_key.getData()?? && cur_extra_attribute_key.getData()!=""> 
239                                                                    <#if cur_extra_attribute_key?is_first> 
240                                                                        <#assign extraAttr="${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.spec_link_attr_value.getData()}"/> 
241                                                                    <#else> 
242                                                                        <#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_key.getData()}"/> 
243                                                                    </#if> 
244                                                                </#if> 
245                                                            </#list> 
246                                                        </#if> 
247                                                        <#assign linkClass="btn btn-lg ${aparienciaCTA(cur_link.link_skin.getData(),'btn-secondary')}"/> 
248 
249                                                        <#if cur_link.EnlaceModal??> 
250                                                            <#assign link_modalElementoRepetible = cur_link.EnlaceModal.getData() /> 
251                                                        </#if> 
252                                                        <#assign modalElementoRepetible = ""> 
253                                                        <#assign modalPanelElementoRepetible = ""> 
254                                                        <#assign articleIdModalElementoRepetible = ""> 
255                                                        <#if link_modalElementoRepetible?? && link_modalElementoRepetible!="" > 
256                                                            <#assign journalArticleModalElementoRepetible = link_modalElementoRepetible?eval/> 
257                                                            <#assign articleModalElementoRepetible = journalArticleLocalService.fetchLatestArticle(journalArticleModalElementoRepetible.classPK?number)/> 
258                                                            <#assign modalElementoRepetible = journalArticleLocalService.getArticleContent(articleModalElementoRepetible, articleModalElementoRepetible.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), themeDisplay)> 
259                                                            <#assign articleIdModalElementoRepetible = articleModalElementoRepetible.getArticleId()> 
260                                                            <#assign modalPanelElementoRepetible = zurichService.getModal(modalElementoRepetible,.vars['reserved-article-id'].data, articleIdModalElementoRepetible)> 
261                                                            <#assign modalesRepetibles = modalesRepetibles + modalPanelElementoRepetible> 
262                                                        </#if> 
263																												<#assign nofollow2=cur_link.hasNofollow2?? && getterUtil.getBoolean(cur_link.hasNofollow2.getData())/> 
264                                                        <#assign seoLink = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,cur_link.link_title.getData(), cur_link.link_page_link.getFriendlyUrl(),cur_link.link_file_link.getData(), cur_link.link_free_link.getData(),getterUtil.getBoolean(cur_link.link_new_tab.getData()), linkClass, cur_link.link_id_prefix.getData(), cur_link.link_id.getData(),extraAttr, modalElementoRepetible, articleIdModalElementoRepetible, nofollow2)/> 
265                                                        <#if cur_link.modalRCP_2?? && cur_link.modalRCP_2.getData() != ""> 
266                                                          <div class="button-link col-6 sfModalButton" onclick="openModalRCP${cur_link.modalRCP_2.getData()}()"> 
267																					                ${seoLink} 
268                                                          ${htmlUtil.unescape(cur_link.getData())} 
269        	                                                </a> 
270	                                                        </div> 
271                                                        <#elseif popupSF==true> 
272                                                            <#if cur_link.productSelectModal?? && cur_link.productSelectModal.getData() != ""> 
273                                                                <#assign linkProduct="${cur_link.productSelectModal.getData()}"/> 
274                                                            <#else> 
275                                                                <#assign linkProduct="nada"/> 
276                                                            </#if> 
277                                                            <div class="button-link col-6 sfModalButton" onclick="openSfModal('${linkProduct}')"> 
278                                                                ${seoLink} 
279                                                                ${htmlUtil.unescape(cur_link.getData())} 
280                                                                </a> 
281                                                            </div> 
282                                                        <#else> 
283                                                            <div class="button-link col-6"> 
284                                                                ${seoLink} 
285                                                                ${htmlUtil.unescape(cur_link.getData())} 
286                                                                </a> 
287                                                            </div> 
288                                                        </#if> 
289                                                    </#list> 
290                                                </div> 
291                                            </div> 
292                                            </#if> 
293                                        </div> 
294                                    </div> 
295                                </div> 
296                            </div> 
297                        </div> 
298                    </div> 
299                </div> 
300                <#assign urlLogo = portalUtil.getPortalURL(request) + '/o/zurich-global-theme/images/logo-header.svg'  > 
301                <#assign urlImage = "" > 
302                <#if image.src_image.getData()?? && image.src_image.getData() != ""> 
303                    <#assign urlImage = image.src_image.getData()> 
304                <#elseif image.getData()?? && image.getData() != ""> 
305                    <#assign urlImage = portalUtil.getPortalURL(request) + image.getData()> 
306                </#if> 
307                <#assign nameSEO = htmlUtil.unescape(title.getData())> 
308                <#assign descriptionSEO = description.getData()?keep_after("<p>")> 
309                <#if (descriptionSEO?length > 139) > 
310                    <#assign descriptionSEO = descriptionSEO?substring(0,139) > 
311                </#if> 
312                <#assign descriptionSEO = zurichService.getParsedString(descriptionSEO)> 
313 
314            </div> 
315            <#if modalPanelIndiceSuperior??>${modalPanelIndiceSuperior}</#if> 
316            ${modalesRepetibles} 
317 
318<script> 
319$(".sfModalButton a").on( "click", function(event) { 
320  event.preventDefault(); 
321} ); 
322</script> 
323<style> 
324.noShadow img{ 
325    box-shadow:none!important; 
326
327 
328@media (max-width: 767px) { 
329    .mod.mod-Product .elements-block .element-description .row .button-link a { 
330        width: 100%!important; 
331
332
333</style> 
334<script> 
335(function () { 
336  let lastActivator = null; // Para devolver el foco al activador 
337  let activeModal = null; 
338 
339  function ensureAccessibleAnchors() { 
340    document.querySelectorAll('a[data-target^="#modal-"]').forEach(function (el) { 
341      if (el.hasAttribute('href')) { 
342        el.setAttribute('role', el.getAttribute('role') || 'button'); 
343        el.setAttribute('tabindex', el.getAttribute('tabindex') || '0'); 
344        const target = el.getAttribute('data-target'); 
345        if (target && document.querySelector(target)) { 
346          el.setAttribute('aria-controls', target.slice(1)); 
347
348
349    }); 
350
351 
352  function trapFocus(modalEl) { 
353    const focusableSelectors = [ 
354      'a[href]', 'button:not([disabled])', 'textarea', 'input[type="text"]', 
355      'input[type="radio"]', 'input[type="checkbox"]', 'select', '[tabindex]:not([tabindex="-1"])' 
356    ]; 
357    const focusableEls = modalEl.querySelectorAll(focusableSelectors.join(',')); 
358    const firstEl = focusableEls[0]; 
359    const lastEl = focusableEls[focusableEls.length - 1]; 
360 
361    modalEl.addEventListener('keydown', function (e) { 
362      if (e.key === 'Tab') { 
363        if (e.shiftKey) { 
364          if (document.activeElement === firstEl) { 
365            e.preventDefault(); 
366            lastEl.focus(); 
367
368        } else { 
369          if (document.activeElement === lastEl) { 
370            e.preventDefault(); 
371            firstEl.focus(); 
372
373
374
375    }); 
376
377 
378  function showModal(selector) { 
379    const modalEl = document.querySelector(selector); 
380    if (!modalEl) return; 
381 
382    lastActivator = document.activeElement; 
383    activeModal = modalEl; 
384 
385    // Fallback accesible 
386    modalEl.style.display = 'block'; 
387    modalEl.removeAttribute('hidden'); 
388    modalEl.setAttribute('aria-hidden', 'false'); 
389    modalEl.setAttribute('aria-modal', 'true'); 
390    document.body.classList.add('modal-open'); 
391 
392    trapFocus(modalEl); 
393 
394    const focusable = modalEl.querySelector('[autofocus]') || modalEl.querySelector('button, [tabindex]:not([tabindex="-1"])'); 
395    if (focusable) focusable.focus(); 
396 
397    modalEl.addEventListener('click', function (e) { 
398      if (e.target === modalEl) closeModal(); 
399    }); 
400 
401    // Cierre con Esc 
402    document.addEventListener('keydown', escHandler); 
403
404 
405  function escHandler(e) { 
406    var isActivationKey = (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape'); 
407    if (isActivationKey && activeModal) { 
408        e.preventDefault(); 
409    closeModal(); 
410
411
412 
413  function closeModal() { 
414    if (!activeModal) return; 
415 
416    activeModal.style.display = 'none'; 
417    activeModal.setAttribute('aria-hidden', 'true'); 
418    document.body.classList.remove('modal-open'); 
419 
420    // Devuelve el foco al activador 
421    if (lastActivator) lastActivator.focus(); 
422 
423    activeModal = null; 
424    document.removeEventListener('keydown', escHandler); 
425
426 
427  // Delegación click 
428  document.addEventListener('click', function (event) { 
429    const anchor = event.target.closest('a[data-target^="#modal-"]'); 
430    if (!anchor) return; 
431    event.preventDefault(); 
432    const targetSelector = anchor.getAttribute('data-target'); 
433    if (!targetSelector) return; 
434    showModal(targetSelector); 
435  }, { passive: false }); 
436 
437  // Delegación teclado 
438  document.addEventListener('keydown', function (event) { 
439    if (event.key !== 'Enter' && event.key !== ' ') return; 
440    const anchor = event.target.closest('a[data-target^="#modal-"]'); 
441    if (!anchor) return; 
442    event.preventDefault(); 
443    const targetSelector = anchor.getAttribute('data-target'); 
444    if (!targetSelector) return; 
445    showModal(targetSelector); 
446  }, { passive: false }); 
447 
448  // ===== CIERRE por botón (fallback): data atributos comunes ===== 
449  document.addEventListener('click', function (event) { 
450    const closeBtn = event.target.closest('[data-close-modal], [data-bs-dismiss="modal"], [data-dismiss="modal"]'); 
451    if (!closeBtn) return; 
452 
453    // Si estamos en fallback, cerramos y restauramos scroll nosotros. 
454    if (activeModal) { 
455      event.preventDefault(); 
456      closeModal(); 
457
458    // Si es Bootstrap, su propio handler cerrará el modal; nosotros restauramos en 'hidden.bs.modal'. 
459  }, { passive: false }); 
460 
461  if (document.readyState === 'loading') { 
462    document.addEventListener('DOMContentLoaded', ensureAccessibleAnchors); 
463  } else { 
464    ensureAccessibleAnchors(); 
465
466})(); 
467</script> 
468<style> 
469@media (max-width: 767px) { 
470    .mod.mod-Product .elements-block .element-block .row .button-link { 
471        justify-content: center; 
472
473
474</style> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#877400" at line 5, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#877400" at line 5, column 1]
----
1<#-- Importar la plantilla con las MACROS comunes para utilizar --> 
2<#-- Se debe modificar por SITE y por Entorno (Local, PRE y PROD) --> 
3<#include "${templatesPath}/337115551" /> 
4 
5<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
7<#assign hasVideo = false> 
8 
9<#assign popupSF=false/> 
10 
11<#assign modalesRepetibles = ""> 
12<#assign isPhone = zurichService.getPhone()> 
13<#assign fondo = ""> 
14<#if background.getData() == "mist"> 
15    <#assign fondo = "bruma"> 
16<#elseif background.getData() == "mist2"> 
17    <#assign fondo = "bruma2"> 
18<#elseif background.getData() == "lightblue"> 
19    <#assign fondo = "lightblue"> 
20<#elseif background.getData() == "sandstone"> 
21    <#assign fondo = "sandstone"> 
22</#if> 
23<#assign fondoStyle = ""> 
24<#if fondohex?? && fondohex.getData() != ""> 
25    <#assign fondo = ""> 
26    <#assign fondoStyle = "background-color:${fondohex.getData()};"> 
27</#if> 
28<#assign textStyleColor = ""> 
29<#if textColor?? && textColor.getData() != ""> 
30    <#if textColor.getData() == "blanco"> 
31        <#assign textStyleColor = "color:white;"> 
32    <#elseif textColor.getData() == "azul"> 
33        <#assign textStyleColor = "color:#23366f;"> 
34    </#if> 
35</#if> 
36<#assign fondoTexto = ""> 
37<#if text_background_color?? && text_background_color.getData() != "" && fondohex.getData() == ""> 
38    <#if text_background_color.getData() == "dove"> 
39        <#assign fondoTexto = "TextBruma"> 
40    <#elseif text_background_color.getData() == "white"> 
41        <#assign fondoTexto = "TextBlanco"> 
42    <#elseif text_background_color.getData() == "mist2"> 
43        <#assign fondoTexto = "Textbruma2"> 
44    <#elseif text_background_color.getData() == "lightblue"> 
45        <#assign fondoTexto = "Textlightblue"> 
46    <#elseif text_background_color.getData() == "sandstone"> 
47        <#assign fondoTexto = "Textsandstone"> 
48    </#if> 
49</#if> 
50<#if custom_top_margin?? && custom_top_margin.getData() != ""> 
51    <#assign custom_top_margin = custom_top_margin.getData() /> 
52<#else> 
53    <#assign custom_top_margin = "15px" /> 
54</#if> 
55<#if custom_bottom_margin?? && custom_bottom_margin.getData() != ""> 
56    <#assign custom_bottom_margin = custom_bottom_margin.getData() /> 
57<#else> 
58    <#assign custom_bottom_margin = "15px" /> 
59</#if> 
60<#if image_float.getData()?? && image_float.getData()?has_content> 
61    <#if image_float.getData() == "right"> 
62        <#assign fondo = ""> 
63        <#if text_background_color?? && text_background_color.getData() != "" && fondohex.getData() == ""> 
64            <#if text_background_color.getData() == "dove"> 
65                <#assign fondo = "text1-background-dove"> 
66            <#elseif text_background_color.getData() == "mist2"> 
67                <#assign fondo = "text1-background-dove2"> 
68            <#elseif text_background_color.getData() == "white"> 
69                <#assign fondo = "text1-background-blanco"> 
70            <#elseif text_background_color.getData() == "sandstone"> 
71                <#assign fondo = "text1-background-sandstone"> 
72            <#elseif text_background_color.getData() == "lightblue"> 
73                <#assign fondo = "text1-background-lightblue"> 
74            </#if> 
75        </#if> 
76        <#assign fondoTexto = ""> 
77        <#if fondehex??> 
78            <#if fondohex.getData()?? && fondohex.getData()?has_content> 
79                <#if fondohex.getData() == ""> 
80                    <#if background.getData() == "mist"> 
81                        <#assign fondoTexto = "bruma"> 
82                    <#elseif background.getData() == "mist2"> 
83                        <#assign fondoTexto = "bruma2"> 
84                    <#elseif background.getData() == "lightblue"> 
85                        <#assign fondoTexto = "lightblue"> 
86                    <#elseif background.getData() == "sandstone"> 
87                        <#assign fondoTexto = "sandstone"> 
88                    </#if> 
89                </#if> 
90            </#if> 
91        <#else> 
92 
93        </#if> 
94    </#if> 
95<#else> 
96</#if> 
97<#assign noShadow=""/> 
98<#if image_skin.getData()?? && image_skin.getData() !=""> 
99    <#if image_skin.getData() == "no-shadow"> 
100        <#assign noShadow="noShadow"/> 
101    </#if> 
102</#if> 
103 
104<#if isPhone=="tablet"> 
105<div class="mod mod-Product ${fondo} ${noShadow}" style="${fondoStyle} padding:0x;"> 
106<#else> 
107<div class="mod mod-Product ${fondo} ${noShadow}" style="padding:0!important; ${fondoStyle}"> 
108</#if> 
109    <div class="container" style="max-width: 100%;"> 
110        <#if image_float.getData()?? && image_float.getData()?has_content> 
111            <#if image_float.getData() == "right"> 
112            <div class="row right"> 
113                <#else> 
114                <div class="row left-image"> 
115                    </#if> 
116                    <#else> 
117                    <div class="row left-image"> 
118                        </#if> 
119                        <div class="elements-block"> 
120                            <div class="element-block"> 
121                                <#if image.VideoImagen??> 
122                                    <#if image.VideoImagen.getData()?? && image.VideoImagen.getData()!="" > 
123                                        <#assign modal = ""> 
124                                        <#assign modalPanel = ""> 
125                                        <#assign articleIdModal = ""> 
126                                        <#assign portletRequestModel = objectUtil("com.liferay.portal.kernel.portlet.PortletRequestModel", renderRequest, renderResponse) /> 
127                                        <#assign journalArticleModal = image.VideoImagen.getData()?eval/> 
128                                        <#assign articleModal = journalArticleLocalService.fetchLatestArticle(journalArticleModal.classPK?number)/> 
129                                        <#if articleModal?? && articleModal !="" && articleModal?has_content> 
130                                            <#assign modal = journalArticleLocalService.getArticleContent(articleModal, articleModal.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), portletRequestModel, themeDisplay)> 
131                                            <#assign articleIdModal = articleModal.getArticleId()> 
132                                            <#assign modalPanelImage = zurichService.getModalImage(.vars['reserved-article-id'].data, articleIdModal)> 
133                                            <#assign modalPanel = zurichService.getModal(modal,.vars['reserved-article-id'].data, articleIdModal)> 
134                                            ${modalPanel} 
135                                            <#assign hasVideo = true> 
136                                        </#if> 
137                                    </#if> 
138                                </#if> 
139                                <div class="row"> 
140                                    <div class="col-md-6 image"> 
141                                        <#if image_skin.getData()?? && image_skin.getData() != ""> 
142                                        <div style="width: 100%;"> 
143                                            </#if> 
144                                            <#if image.src_image.getData()?? && image.src_image.getData() != ""> 
145                                                <#if isPhone=="tablet"> 
146                                                    <img alt="${image.alt_image.getData()}" src="${image.src_image.getData()}" class="img-responsive" style="padding-top:90px" width="100%" height="100%" loading="lazy"/> 
147                                                <#else> 
148                                                    <img alt="${image.alt_image.getData()}" src="${image.src_image.getData()}" class="img-responsive" width="100%" height="100%" loading="lazy"/> 
149                                                </#if> 
150                                            <#elseif image.getData()?? && image.getData() != ""> 
151                                                <#if isPhone=="tablet"> 
152                                                    <img alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute('fileEntryId')}" src="${image.getData()}" class="img-responsive" style="padding-top=90px" width="100%" height="100%" loading="lazy"/> 
153                                                <#else> 
154                                                    <img alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute('fileEntryId')}" src="${image.getData()}" class="img-responsive" width="100%" height="100%" loading="lazy"/> 
155                                                </#if> 
156                                            </#if> 
157                                            <#if hasVideo > 
158                                                <div class="modalVideo"> 
159                                                    ${modalPanelImage} 
160                                                </div> 
161                                            </#if> 
162                                        </div> 
163                                    </div> 
164                                    <div class="col-md-6 text  ${fondoTexto}"> 
165                                        <div class="element-description ${(image_float.getData() == "right")?then('', 'offset-md-1 col-md-10')}"> 
166                                            <#if topic_link_text.getData()?? && topic_link_text.getData() != ""> 
167                                                <#if topic_link_text.topic_link_attr_key.getSiblings()?has_content> 
168                                                    <#list topic_link_text.topic_link_attr_key.getSiblings() as cur_extra_attribute_key> 
169                                                        <#if cur_extra_attribute_key.getData()?? && cur_extra_attribute_key.getData()!=""> 
170                                                            <#if cur_extra_attribute_key?is_first> 
171                                                                <#assign extraAttr="${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_value.getData()}"/> 
172                                                            <#else> 
173                                                                <#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_value.getData()}"/> 
174                                                            </#if> 
175                                                        </#if> 
176                                                    </#list> 
177                                                </#if> 
178                                                <#assign linkClass=""/> 
179                                                <#if topic_link_text.EnlaceModalTopic??> 
180                                                    <#assign link_modalIndiceSuperior = topic_link_text.EnlaceModalTopic.getData() /> 
181                                                </#if> 
182                                                <#assign modalIndiceSuperior = ""> 
183                                                <#assign modalPanelIndiceSuperior = ""> 
184                                                <#assign articleIdModalIndiceSuperior = ""> 
185                                                <#if link_modalIndiceSuperior?? && link_modalIndiceSuperior!="" > 
186                                                    <#assign journalArticleModalIndiceSuperior = link_modalIndiceSuperior?eval/> 
187                                                    <#assign articleModalIndiceSuperior = journalArticleLocalService.fetchLatestArticle(journalArticleModalIndiceSuperior.classPK?number)/> 
188                                                    <#assign modalIndiceSuperior = journalArticleLocalService.getArticleContent(articleModalIndiceSuperior, articleModalIndiceSuperior.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), themeDisplay)> 
189                                                    <#assign articleIdModalIndiceSuperior = articleModalIndiceSuperior.getArticleId()> 
190                                                    <#assign modalPanelIndiceSuperior = zurichService.getModal(modalIndiceSuperior,.vars['reserved-article-id'].data, articleIdModalIndiceSuperior)> 
191                                                </#if> 
192																								<#assign nofollow=topic_link_text.hasNofollow?? && getterUtil.getBoolean(topic_link_text.hasNofollow.getData())/> 
193                                                <#assign seoLink_topic = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,topic_link_text.topic_link_title.getData(), topic_link_text.topic_link_page_link.getFriendlyUrl(),topic_link_text.topic_link_file_link.getData(), topic_link_text.topic_link_free_link.getData(),getterUtil.getBoolean(topic_link_text.topic_link_new_tab.getData()), linkClass, topic_link_text.topic_link_id_prefix.getData(), topic_link_text.topic_link_id.getData() , extraAttr, modalIndiceSuperior, articleIdModalIndiceSuperior, nofollow)/> 
194                                                <div class="element-hashtag"> 
195                                                    <#if seoLink_topic?? > 
196                                                        ${seoLink_topic} 
197                                                        ${topic_link_text.getData()} 
198                                                        </a> 
199                                                    </#if> 
200                                                </div> 
201                                            </#if> 
202                                            <#if title.getData()?? && title.getData() != ""> 
203                                            <#assign title_level = "h2"/> 
204                                            <#if title.title_level??> 
205                                                <#if title.title_level.getData()?? && title.title_level.getData() != ""> 
206                                                    <#assign title_level = title.title_level.getData()/> 
207                                                </#if> 
208                                            <#else> 
209 
210                                            </#if> 
211                                            <div class="title"> 
212                                                <${title_level} class="h1-copycat" style="${textStyleColor}">${htmlUtil.unescape(title.getData())}</${title_level}> 
213                                        </div> 
214                                        </#if> 
215                                        <#if subtitle.getData()?? && subtitle.getData() != ""> 
216                                            <div class="subtitle" style="${textStyleColor}"> 
217                                                ${htmlUtil.unescape(subtitle.getData())} 
218                                            </div> 
219                                        </#if> 
220                                        <div class="description" style="${textStyleColor}"> 
221                                            <#if description.getData()?? && description.getData() != ""> 
222                                                ${description.getData()} 
223                                            </#if> 
224                                        </div> 
225                                        <#if link_text.getSiblings()?has_content && (link_text.getData()?? && link_text.getData() != "")> 
226                                        <div class="row cta"> 
227                                            <#if links_align.getData()?? && links_align.getData()?has_content> 
228                                            <div class="${links_align.getData()}"> 
229                                                <#else> 
230                                                <div class="middle"> 
231                                                    </#if> 
232                                                    <#list link_text.getSiblings() as cur_link> 
233                                                        <#if cur_link.modalSF??> 
234                                                            <#assign popupSF=getterUtil.getBoolean(cur_link.modalSF.getData    ())/> 
235                                                        </#if> 
236                                                        <#if cur_link.link_attr_key.getSiblings()?has_content> 
237                                                            <#list cur_link.link_attr_key.getSiblings() as cur_extra_attribute_key> 
238                                                                <#if cur_extra_attribute_key.getData()?? && cur_extra_attribute_key.getData()!=""> 
239                                                                    <#if cur_extra_attribute_key?is_first> 
240                                                                        <#assign extraAttr="${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.spec_link_attr_value.getData()}"/> 
241                                                                    <#else> 
242                                                                        <#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_key.getData()}"/> 
243                                                                    </#if> 
244                                                                </#if> 
245                                                            </#list> 
246                                                        </#if> 
247                                                        <#assign linkClass="btn btn-lg ${aparienciaCTA(cur_link.link_skin.getData(),'btn-secondary')}"/> 
248 
249                                                        <#if cur_link.EnlaceModal??> 
250                                                            <#assign link_modalElementoRepetible = cur_link.EnlaceModal.getData() /> 
251                                                        </#if> 
252                                                        <#assign modalElementoRepetible = ""> 
253                                                        <#assign modalPanelElementoRepetible = ""> 
254                                                        <#assign articleIdModalElementoRepetible = ""> 
255                                                        <#if link_modalElementoRepetible?? && link_modalElementoRepetible!="" > 
256                                                            <#assign journalArticleModalElementoRepetible = link_modalElementoRepetible?eval/> 
257                                                            <#assign articleModalElementoRepetible = journalArticleLocalService.fetchLatestArticle(journalArticleModalElementoRepetible.classPK?number)/> 
258                                                            <#assign modalElementoRepetible = journalArticleLocalService.getArticleContent(articleModalElementoRepetible, articleModalElementoRepetible.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), themeDisplay)> 
259                                                            <#assign articleIdModalElementoRepetible = articleModalElementoRepetible.getArticleId()> 
260                                                            <#assign modalPanelElementoRepetible = zurichService.getModal(modalElementoRepetible,.vars['reserved-article-id'].data, articleIdModalElementoRepetible)> 
261                                                            <#assign modalesRepetibles = modalesRepetibles + modalPanelElementoRepetible> 
262                                                        </#if> 
263																												<#assign nofollow2=cur_link.hasNofollow2?? && getterUtil.getBoolean(cur_link.hasNofollow2.getData())/> 
264                                                        <#assign seoLink = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,cur_link.link_title.getData(), cur_link.link_page_link.getFriendlyUrl(),cur_link.link_file_link.getData(), cur_link.link_free_link.getData(),getterUtil.getBoolean(cur_link.link_new_tab.getData()), linkClass, cur_link.link_id_prefix.getData(), cur_link.link_id.getData(),extraAttr, modalElementoRepetible, articleIdModalElementoRepetible, nofollow2)/> 
265                                                        <#if cur_link.modalRCP_2?? && cur_link.modalRCP_2.getData() != ""> 
266                                                          <div class="button-link col-6 sfModalButton" onclick="openModalRCP${cur_link.modalRCP_2.getData()}()"> 
267																					                ${seoLink} 
268                                                          ${htmlUtil.unescape(cur_link.getData())} 
269        	                                                </a> 
270	                                                        </div> 
271                                                        <#elseif popupSF==true> 
272                                                            <#if cur_link.productSelectModal?? && cur_link.productSelectModal.getData() != ""> 
273                                                                <#assign linkProduct="${cur_link.productSelectModal.getData()}"/> 
274                                                            <#else> 
275                                                                <#assign linkProduct="nada"/> 
276                                                            </#if> 
277                                                            <div class="button-link col-6 sfModalButton" onclick="openSfModal('${linkProduct}')"> 
278                                                                ${seoLink} 
279                                                                ${htmlUtil.unescape(cur_link.getData())} 
280                                                                </a> 
281                                                            </div> 
282                                                        <#else> 
283                                                            <div class="button-link col-6"> 
284                                                                ${seoLink} 
285                                                                ${htmlUtil.unescape(cur_link.getData())} 
286                                                                </a> 
287                                                            </div> 
288                                                        </#if> 
289                                                    </#list> 
290                                                </div> 
291                                            </div> 
292                                            </#if> 
293                                        </div> 
294                                    </div> 
295                                </div> 
296                            </div> 
297                        </div> 
298                    </div> 
299                </div> 
300                <#assign urlLogo = portalUtil.getPortalURL(request) + '/o/zurich-global-theme/images/logo-header.svg'  > 
301                <#assign urlImage = "" > 
302                <#if image.src_image.getData()?? && image.src_image.getData() != ""> 
303                    <#assign urlImage = image.src_image.getData()> 
304                <#elseif image.getData()?? && image.getData() != ""> 
305                    <#assign urlImage = portalUtil.getPortalURL(request) + image.getData()> 
306                </#if> 
307                <#assign nameSEO = htmlUtil.unescape(title.getData())> 
308                <#assign descriptionSEO = description.getData()?keep_after("<p>")> 
309                <#if (descriptionSEO?length > 139) > 
310                    <#assign descriptionSEO = descriptionSEO?substring(0,139) > 
311                </#if> 
312                <#assign descriptionSEO = zurichService.getParsedString(descriptionSEO)> 
313 
314            </div> 
315            <#if modalPanelIndiceSuperior??>${modalPanelIndiceSuperior}</#if> 
316            ${modalesRepetibles} 
317 
318<script> 
319$(".sfModalButton a").on( "click", function(event) { 
320  event.preventDefault(); 
321} ); 
322</script> 
323<style> 
324.noShadow img{ 
325    box-shadow:none!important; 
326
327 
328@media (max-width: 767px) { 
329    .mod.mod-Product .elements-block .element-description .row .button-link a { 
330        width: 100%!important; 
331
332
333</style> 
334<script> 
335(function () { 
336  let lastActivator = null; // Para devolver el foco al activador 
337  let activeModal = null; 
338 
339  function ensureAccessibleAnchors() { 
340    document.querySelectorAll('a[data-target^="#modal-"]').forEach(function (el) { 
341      if (el.hasAttribute('href')) { 
342        el.setAttribute('role', el.getAttribute('role') || 'button'); 
343        el.setAttribute('tabindex', el.getAttribute('tabindex') || '0'); 
344        const target = el.getAttribute('data-target'); 
345        if (target && document.querySelector(target)) { 
346          el.setAttribute('aria-controls', target.slice(1)); 
347
348
349    }); 
350
351 
352  function trapFocus(modalEl) { 
353    const focusableSelectors = [ 
354      'a[href]', 'button:not([disabled])', 'textarea', 'input[type="text"]', 
355      'input[type="radio"]', 'input[type="checkbox"]', 'select', '[tabindex]:not([tabindex="-1"])' 
356    ]; 
357    const focusableEls = modalEl.querySelectorAll(focusableSelectors.join(',')); 
358    const firstEl = focusableEls[0]; 
359    const lastEl = focusableEls[focusableEls.length - 1]; 
360 
361    modalEl.addEventListener('keydown', function (e) { 
362      if (e.key === 'Tab') { 
363        if (e.shiftKey) { 
364          if (document.activeElement === firstEl) { 
365            e.preventDefault(); 
366            lastEl.focus(); 
367
368        } else { 
369          if (document.activeElement === lastEl) { 
370            e.preventDefault(); 
371            firstEl.focus(); 
372
373
374
375    }); 
376
377 
378  function showModal(selector) { 
379    const modalEl = document.querySelector(selector); 
380    if (!modalEl) return; 
381 
382    lastActivator = document.activeElement; 
383    activeModal = modalEl; 
384 
385    // Fallback accesible 
386    modalEl.style.display = 'block'; 
387    modalEl.removeAttribute('hidden'); 
388    modalEl.setAttribute('aria-hidden', 'false'); 
389    modalEl.setAttribute('aria-modal', 'true'); 
390    document.body.classList.add('modal-open'); 
391 
392    trapFocus(modalEl); 
393 
394    const focusable = modalEl.querySelector('[autofocus]') || modalEl.querySelector('button, [tabindex]:not([tabindex="-1"])'); 
395    if (focusable) focusable.focus(); 
396 
397    modalEl.addEventListener('click', function (e) { 
398      if (e.target === modalEl) closeModal(); 
399    }); 
400 
401    // Cierre con Esc 
402    document.addEventListener('keydown', escHandler); 
403
404 
405  function escHandler(e) { 
406    var isActivationKey = (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape'); 
407    if (isActivationKey && activeModal) { 
408        e.preventDefault(); 
409    closeModal(); 
410
411
412 
413  function closeModal() { 
414    if (!activeModal) return; 
415 
416    activeModal.style.display = 'none'; 
417    activeModal.setAttribute('aria-hidden', 'true'); 
418    document.body.classList.remove('modal-open'); 
419 
420    // Devuelve el foco al activador 
421    if (lastActivator) lastActivator.focus(); 
422 
423    activeModal = null; 
424    document.removeEventListener('keydown', escHandler); 
425
426 
427  // Delegación click 
428  document.addEventListener('click', function (event) { 
429    const anchor = event.target.closest('a[data-target^="#modal-"]'); 
430    if (!anchor) return; 
431    event.preventDefault(); 
432    const targetSelector = anchor.getAttribute('data-target'); 
433    if (!targetSelector) return; 
434    showModal(targetSelector); 
435  }, { passive: false }); 
436 
437  // Delegación teclado 
438  document.addEventListener('keydown', function (event) { 
439    if (event.key !== 'Enter' && event.key !== ' ') return; 
440    const anchor = event.target.closest('a[data-target^="#modal-"]'); 
441    if (!anchor) return; 
442    event.preventDefault(); 
443    const targetSelector = anchor.getAttribute('data-target'); 
444    if (!targetSelector) return; 
445    showModal(targetSelector); 
446  }, { passive: false }); 
447 
448  // ===== CIERRE por botón (fallback): data atributos comunes ===== 
449  document.addEventListener('click', function (event) { 
450    const closeBtn = event.target.closest('[data-close-modal], [data-bs-dismiss="modal"], [data-dismiss="modal"]'); 
451    if (!closeBtn) return; 
452 
453    // Si estamos en fallback, cerramos y restauramos scroll nosotros. 
454    if (activeModal) { 
455      event.preventDefault(); 
456      closeModal(); 
457
458    // Si es Bootstrap, su propio handler cerrará el modal; nosotros restauramos en 'hidden.bs.modal'. 
459  }, { passive: false }); 
460 
461  if (document.readyState === 'loading') { 
462    document.addEventListener('DOMContentLoaded', ensureAccessibleAnchors); 
463  } else { 
464    ensureAccessibleAnchors(); 
465
466})(); 
467</script> 
468<style> 
469@media (max-width: 767px) { 
470    .mod.mod-Product .elements-block .element-block .row .button-link { 
471        justify-content: center; 
472
473
474</style> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#877396" at line 5, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#877396" at line 5, column 1]
----
1<#-- Importar la plantilla con las MACROS comunes para utilizar --> 
2<#-- Se debe modificar por SITE y por Entorno (Local, PRE y PROD) --> 
3<#include "${templatesPath}/337115551" /> 
4 
5<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
6 
7<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
8<#assign hasVideo = false> 
9<#assign modalesRepetibles = ""> 
10<#assign isPhone = zurichService.getPhone()> 
11<#assign idAnchor = ""> 
12<#if html_id?has_content> 
13    <#assign idAnchor = html_id.getData()> 
14</#if> 
15<#assign fondo = ""> 
16 
17<#assign popupSF=false/> 
18 
19<#if background.getData() == "mist"> 
20    <#assign fondo = "bruma"> 
21<#elseif background.getData() == "mist2"> 
22    <#assign fondo = "bruma2"> 
23<#elseif background.getData() == "lightblue"> 
24    <#assign fondo = "lightblue"> 
25<#elseif background.getData() == "sandstone"> 
26    <#assign fondo = "sandstone"> 
27</#if> 
28 
29<#assign fondoStyle = ""> 
30<#if fondohex?? && fondohex.getData() != ""> 
31    <#assign fondo = ""> 
32    <#assign fondoStyle = "background-color:${fondohex.getData()};"> 
33</#if> 
34 
35<#assign textStyleColor = ""> 
36<#if textColor?? && textColor.getData() != ""> 
37    <#if textColor.getData() == "blanco"> 
38        <#assign textStyleColor = "color:white;"> 
39    <#elseif textColor.getData() == "azul"> 
40        <#assign textStyleColor = "color:#23366f;"> 
41    </#if> 
42</#if> 
43 
44<#assign fondoTexto = ""> 
45<#if text_background_color?? && text_background_color.getData() != "" && fondohex.getData() == ""> 
46    <#if text_background_color.getData() == "dove"> 
47        <#assign fondoTexto = "TextBruma"> 
48    <#elseif text_background_color.getData() == "white"> 
49        <#assign fondoTexto = "TextBlanco"> 
50    <#elseif text_background_color.getData() == "mist2"> 
51        <#assign fondoTexto = "Textbruma2"> 
52    <#elseif text_background_color.getData() == "lightblue"> 
53        <#assign fondoTexto = "Textlightblue"> 
54    <#elseif text_background_color.getData() == "sandstone"> 
55        <#assign fondoTexto = "Textsandstone"> 
56    </#if> 
57</#if> 
58 
59<#if custom_top_margin?? && custom_top_margin.getData() != ""> 
60    <#assign custom_top_margin = custom_top_margin.getData() /> 
61<#else> 
62    <#assign custom_top_margin = "15px" /> 
63</#if> 
64<#if custom_bottom_margin?? && custom_bottom_margin.getData() != ""> 
65    <#assign custom_bottom_margin = custom_bottom_margin.getData() /> 
66<#else> 
67    <#assign custom_bottom_margin = "15px" /> 
68</#if> 
69<#if image_float.getData()?? && image_float.getData()?has_content> 
70    <#if image_float.getData() == "right"> 
71        <#assign fondo = ""> 
72        <#if text_background_color?? && text_background_color.getData() != "" && fondohex.getData() == ""> 
73            <#if text_background_color.getData() == "dove"> 
74                <#assign fondo = "text1-background-dove"> 
75            <#elseif text_background_color.getData() == "mist2"> 
76                <#assign fondo = "text1-background-dove2"> 
77            <#elseif text_background_color.getData() == "white"> 
78                <#assign fondo = "text1-background-blanco"> 
79            <#elseif text_background_color.getData() == "sandstone"> 
80                <#assign fondo = "text1-background-sandstone"> 
81            <#elseif text_background_color.getData() == "lightblue"> 
82                <#assign fondo = "text1-background-lightblue"> 
83            </#if> 
84        </#if> 
85        <#assign fondoTexto = ""> 
86        <#if fondohex.getData() == ""> 
87            <#if background.getData() == "mist"> 
88                <#assign fondoTexto = "bruma"> 
89            <#elseif background.getData() == "mist2"> 
90                <#assign fondoTexto = "bruma2"> 
91            <#elseif background.getData() == "lightblue"> 
92                <#assign fondoTexto = "lightblue"> 
93            <#elseif background.getData() == "sandstone"> 
94                <#assign fondoTexto = "sandstone"> 
95            </#if> 
96        </#if> 
97    </#if> 
98<#else> 
99</#if> 
100<#assign noShadow=""/> 
101<#if image_skin.getData()?? && image_skin.getData() !=""> 
102    <#if image_skin.getData() == "no-shadow"> 
103        <#assign noShadow="noShadow"/> 
104    </#if> 
105</#if> 
106 
107<#if isPhone=="tablet"> 
108<div id ="${idAnchor}" class="mod mod-Product ${fondo} Highlight_1 ${noShadow}" style="${fondoStyle} padding-bottom:130px; padding-top:130px;"> 
109<#else> 
110<div id="${idAnchor}" class="mod mod-Product ${fondo} Highlight_1 ${noShadow}" style="padding:0px!important; ${fondoStyle}"> 
111</#if> 
112 
113        <div class="container" style="max-width: 100%;"> 
114            <#if image_float.getData()?? && image_float.getData()?has_content> 
115            <#if image_float.getData() == "right"> 
116            <div class="row right"> 
117                <#else> 
118                <div class="row left-image"> 
119                    </#if> 
120                    <#else> 
121                    <div class="row left-image"> 
122                        </#if> 
123                        <div class="elements-block"> 
124                            <div class="element-block"> 
125 
126                                <#if image.VideoImagen??> 
127                                    <#if image.VideoImagen.getData()?? && image.VideoImagen.getData()!="" > 
128                                        <#assign modal = ""> 
129                                        <#assign modalPanel = ""> 
130                                        <#assign articleIdModal = ""> 
131                                        <#assign portletRequestModel = objectUtil("com.liferay.portal.kernel.portlet.PortletRequestModel", renderRequest, renderResponse) /> 
132                                        <#assign journalArticleModal = image.VideoImagen.getData()?eval/> 
133                                        <#assign articleModal = journalArticleLocalService.fetchLatestArticle(journalArticleModal.classPK?number)/> 
134                                        <#if articleModal?? && articleModal !="" && articleModal?has_content> 
135                                            <#assign modal = journalArticleLocalService.getArticleContent(articleModal, articleModal.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), portletRequestModel, themeDisplay)> 
136                                            <#assign articleIdModal = articleModal.getArticleId()> 
137                                            <#assign modalPanelImage = zurichService.getModalImage(.vars['reserved-article-id'].data, articleIdModal)> 
138                                            <#assign modalPanel = zurichService.getModal(modal,.vars['reserved-article-id'].data, articleIdModal)> 
139                                            ${modalPanel} 
140                                            <#assign hasVideo = true> 
141                                        </#if> 
142                                    </#if> 
143                                </#if> 
144 
145                                <div class="row"> 
146                                    <div class="col-md-6 image"> 
147                                        <#if image_skin.getData()?? && image_skin.getData() != ""> 
148                                        <div style="width: 100%;height: 100%;"> 
149                                            </#if> 
150                                            <#if image.src_image.getData()?? && image.src_image.getData() != ""> 
151                                                <#if isPhone=="tablet"> 
152                                                    <img style="height: 100%;" alt="${image.alt_image.getData()}" src="${image.src_image.getData()}" class="img-responsive" style="padding-top:90px"/> 
153                                                <#else> 
154                                                    <img  style="height: 100%;" alt="${image.alt_image.getData()}" src="${image.src_image.getData()}" class="img-responsive" /> 
155                                                </#if> 
156 
157                                            <#elseif image.getData()?? && image.getData() != ""> 
158                                                <#if isPhone=="tablet"> 
159                                                    <img  style="height: 100%;" alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute('fileEntryId')}" src="${image.getData()}" class="img-responsive" style="padding-top=90px"/> 
160                                                <#else> 
161                                                    <img  style="height: 100%;" alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute('fileEntryId')}" src="${image.getData()}" class="img-responsive" /> 
162                                                </#if> 
163 
164                                            </#if> 
165                                            <#if hasVideo > 
166                                                <div class="modalVideo"> 
167                                                    ${modalPanelImage} 
168                                                </div> 
169                                            </#if> 
170                                        </div> 
171                                    </div> 
172                                    <div class="col-md-6 text  ${fondoTexto}"> 
173                                        <div class="element-description ${(image_float.getData() == "right")?then('', 'offset-md-1 col-md-10')}"> 
174                                            <#if topic_link_text.getData()?? && topic_link_text.getData() != ""> 
175                                                <#if topic_link_text.topic_link_attr_key.getSiblings()?has_content> 
176                                                    <#list topic_link_text.topic_link_attr_key.getSiblings() as cur_extra_attribute_key> 
177                                                        <#if cur_extra_attribute_key.getData()?? && cur_extra_attribute_key.getData()!=""> 
178                                                            <#if cur_extra_attribute_key?is_first> 
179                                                                <#assign extraAttr="${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_value.getData()}"/> 
180                                                            <#else> 
181                                                                <#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_value.getData()}"/> 
182                                                            </#if> 
183                                                        </#if> 
184                                                    </#list> 
185                                                </#if> 
186                                                <#assign linkClass=""/> 
187 
188                                                <#if topic_link_text.EnlaceModalTopic??> 
189                                                    <#assign link_modalIndiceSuperior = topic_link_text.EnlaceModalTopic.getData() /> 
190                                                </#if> 
191                                                <#assign modalIndiceSuperior = ""> 
192                                                <#assign modalPanelIndiceSuperior = ""> 
193                                                <#assign articleIdModalIndiceSuperior = ""> 
194                                                <#if link_modalIndiceSuperior?? && link_modalIndiceSuperior!="" > 
195                                                    <#assign journalArticleModalIndiceSuperior = link_modalIndiceSuperior?eval/> 
196                                                    <#assign articleModalIndiceSuperior = journalArticleLocalService.fetchLatestArticle(journalArticleModalIndiceSuperior.classPK?number)/> 
197                                                    <#assign modalIndiceSuperior = journalArticleLocalService.getArticleContent(articleModalIndiceSuperior, articleModalIndiceSuperior.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), themeDisplay)> 
198                                                    <#assign articleIdModalIndiceSuperior = articleModalIndiceSuperior.getArticleId()> 
199                                                    <#assign modalPanelIndiceSuperior = zurichService.getModal(modalIndiceSuperior,.vars['reserved-article-id'].data, articleIdModalIndiceSuperior)> 
200                                                </#if> 
201 
202                                                <#assign nofollow=topic_link_text.hasNofollow?? && getterUtil.getBoolean(topic_link_text.hasNofollow.getData())/> 
203                                                <#assign seoLink_topic = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,topic_link_text.topic_link_title.getData(), topic_link_text.topic_link_page_link.getFriendlyUrl(),topic_link_text.topic_link_file_link.getData(), topic_link_text.topic_link_free_link.getData(),getterUtil.getBoolean(topic_link_text.topic_link_new_tab.getData()), linkClass, topic_link_text.topic_link_id_prefix.getData(), topic_link_text.topic_link_id.getData() , extraAttr, modalIndiceSuperior, articleIdModalIndiceSuperior, nofollow)/> 
204 
205                                                <div class="element-hashtag"> 
206                                                    <#if seoLink_topic?? > 
207                                                        ${seoLink_topic} 
208                                                        ${htmlUtil.unescape(topic_link_text.getData())} 
209                                                        </a> 
210                                                    </#if> 
211                                                </div> 
212 
213                                            </#if> 
214                                            <#if title.getData()?? && title.getData() != ""> 
215                                            <#assign title_level = "h2"/> 
216                                            <#if title.title_level.getData()?? && title.title_level.getData() != ""> 
217                                                <#assign title_level = title.title_level.getData()/> 
218                                            </#if> 
219                                            <div class="title"> 
220                                                <${title_level} class="h1-copycat" style="${textStyleColor}">${htmlUtil.unescape(title.getData())}</${title_level}> 
221                                        </div> 
222                                        </#if> 
223                                        <#if subtitle.getData()?? && subtitle.getData() != ""> 
224                                            <div class="subtitle" style="${textStyleColor}"> 
225                                                ${htmlUtil.unescape(subtitle.getData())} 
226                                            </div> 
227                                        </#if> 
228                                        <div class="description" style="${textStyleColor}"> 
229                                            <#if description.getData()?? && description.getData() != ""> 
230                                                ${description.getData()} 
231                                            </#if> 
232                                        </div> 
233                                        <#if link_text.getSiblings()?has_content && (link_text.getData()?? && link_text.getData() != "")> 
234                                        <div class="row cta"> 
235                                            <#if links_align.getData()?? && links_align.getData()?has_content> 
236                                            <div class="${links_align.getData()}"> 
237                                                <#else> 
238                                                <div class="middle"> 
239                                                    </#if> 
240                                                    <#list link_text.getSiblings() as cur_link> 
241 
242                                                        <#if cur_link.modalSF??> 
243                                                            <#assign popupSF=getterUtil.getBoolean(cur_link.modalSF.getData())/> 
244                                                        </#if> 
245 
246                                                        <#if cur_link.link_attr_key.getSiblings()?has_content> 
247                                                            <#list cur_link.link_attr_key.getSiblings() as cur_extra_attribute_key> 
248                                                                <#if cur_extra_attribute_key.getData()?? && cur_extra_attribute_key.getData()!=""> 
249                                                                    <#if cur_extra_attribute_key?is_first> 
250                                                                        <#assign extraAttr="${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.spec_link_attr_value.getData()}"/> 
251                                                                    <#else> 
252                                                                        <#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_key.getData()}"/> 
253                                                                    </#if> 
254                                                                </#if> 
255                                                            </#list> 
256                                                        </#if> 
257                                                        <#assign linkClass="btn btn-lg ${aparienciaCTA(cur_link.link_skin.getData(),'btn-secondary')} arbol"/> 
258 
259 
260                                                        <#if cur_link.EnlaceModal??> 
261                                                            <#assign link_modalElementoRepetible = cur_link.EnlaceModal.getData() /> 
262                                                        </#if> 
263                                                        <#assign modalElementoRepetible = ""> 
264                                                        <#assign modalPanelElementoRepetible = ""> 
265                                                        <#assign articleIdModalElementoRepetible = ""> 
266                                                        <#if link_modalElementoRepetible?? && link_modalElementoRepetible!="" > 
267                                                            <#assign journalArticleModalElementoRepetible = link_modalElementoRepetible?eval/> 
268                                                            <#assign articleModalElementoRepetible = journalArticleLocalService.fetchLatestArticle(journalArticleModalElementoRepetible.classPK?number)/> 
269                                                            <#assign modalElementoRepetible = journalArticleLocalService.getArticleContent(articleModalElementoRepetible, articleModalElementoRepetible.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), themeDisplay)> 
270                                                            <#assign articleIdModalElementoRepetible = articleModalElementoRepetible.getArticleId()> 
271                                                            <#assign modalPanelElementoRepetible = zurichService.getModal(modalElementoRepetible,.vars['reserved-article-id'].data, articleIdModalElementoRepetible)> 
272                                                            <#assign modalesRepetibles = modalesRepetibles + modalPanelElementoRepetible> 
273                                                        </#if> 
274 
275                                                        <#assign nofollow2=cur_link.hasNofollow2?? && getterUtil.getBoolean(cur_link.hasNofollow2.getData())/> 
276                                                        <#assign seoLink = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,cur_link.link_title.getData(), cur_link.link_page_link.getFriendlyUrl(),cur_link.link_file_link.getData(), cur_link.link_free_link.getData(),getterUtil.getBoolean(cur_link.link_new_tab.getData()), linkClass, cur_link.link_id_prefix.getData(), cur_link.link_id.getData(),extraAttr, modalElementoRepetible, articleIdModalElementoRepetible, nofollow2)/> 
277 
278                                                        <#if cur_link.modalRCP_2?? && cur_link.modalRCP_2.getData() != ""> 
279                                                            <div class="button-link col-6 sfModalButton" onclick="openModalRCP${cur_link.modalRCP.getData()}()"> 
280																					                  ${seoLink} 
281                                                            ${htmlUtil.unescape(cur_link.getData())} 
282        	                                                  </a> 
283	                                                          </div> 
284                                                        <#elseif popupSF==true> 
285                                                            <#if cur_link.productSelectModal?? && cur_link.productSelectModal.getData() != ""> 
286                                                                <#assign linkProduct="${cur_link.productSelectModal.getData()}"/> 
287                                                            <#else> 
288                                                                <#assign linkProduct="nada"/> 
289                                                            </#if> 
290                                                            <div class="button-link col-6 sfModalButton" onclick="openSfModal('${linkProduct}')"> 
291                                                                ${seoLink} 
292                                                                ${htmlUtil.unescape(cur_link.getData())} 
293                                                                </a> 
294                                                            </div> 
295                                                        <#else> 
296                                                            <div class="button-link col-6"> 
297                                                                ${seoLink} 
298                                                                ${htmlUtil.unescape(cur_link.getData())} 
299                                                                </a> 
300                                                            </div> 
301                                                        </#if> 
302                                                    </#list> 
303                                                </div> 
304                                            </div> 
305                                            </#if> 
306                                        </div> 
307                                    </div> 
308                                </div> 
309                            </div> 
310                        </div> 
311                    </div> 
312                </div> 
313                <#assign urlLogo = portalUtil.getPortalURL(request) + '/o/zurich-global-theme/images/logo-header.svg'  > 
314 
315                <#assign urlImage = "" > 
316                <#if image.src_image.getData()?? && image.src_image.getData() != ""> 
317                    <#assign urlImage = image.src_image.getData()> 
318                <#elseif image.getData()?? && image.getData() != ""> 
319                    <#assign urlImage = portalUtil.getPortalURL(request) + image.getData()> 
320                </#if> 
321                <#assign nameSEO = htmlUtil.unescape(title.getData())> 
322                <#assign descriptionSEO = description.getData()?keep_after("<p>")> 
323                <#if (descriptionSEO?length > 139) > 
324                    <#assign descriptionSEO = descriptionSEO?substring(0,139) > 
325                </#if> 
326 
327                <#assign descriptionSEO = zurichService.getParsedString(descriptionSEO)> 
328 
329 
330            </div> 
331 
332            <#if modalPanelIndiceSuperior??>${modalPanelIndiceSuperior}</#if> 
333            ${modalesRepetibles} 
334 
335            <script> 
336                if(window.location.href === "https://corporativo.uat-zurich.es/" || window.location.href === "https://www.zurich.es/"){ 
337                    $(".arbol").click(function(e) { 
338                        e.preventDefault(); 
339                        window.location.href=$(this).attr('href'); 
340                    }); 
341
342            </script> 
343 
344            <style> 
345                @media(min-width:769px){ 
346                    .row.left-image{ 
347                        padding-left:12px; 
348
349                    .row.left-image .col-md-6.image{ 
350                        padding-right:6px; 
351
352
353 
354</style> 
355<script> 
356$(".sfModalButton a").on( "click", function(event) { 
357  event.preventDefault(); 
358} ); 
359</script> 
360 
361<style> 
362.noShadow img{ 
363    box-shadow:none!important; 
364
365 
366@media (max-width: 767px) { 
367    .mod.mod-Product .elements-block .element-description .row .button-link a { 
368        width: 100%!important; 
369
370
371</style> 
372<script> 
373(function () { 
374  let lastActivator = null; // Para devolver el foco al activador 
375  let activeModal = null; 
376 
377  function ensureAccessibleAnchors() { 
378    document.querySelectorAll('a[data-target^="#modal-"]').forEach(function (el) { 
379      if (el.hasAttribute('href')) { 
380        el.setAttribute('role', el.getAttribute('role') || 'button'); 
381        el.setAttribute('tabindex', el.getAttribute('tabindex') || '0'); 
382        const target = el.getAttribute('data-target'); 
383        if (target && document.querySelector(target)) { 
384          el.setAttribute('aria-controls', target.slice(1)); 
385
386
387    }); 
388
389 
390  function trapFocus(modalEl) { 
391    const focusableSelectors = [ 
392      'a[href]', 'button:not([disabled])', 'textarea', 'input[type="text"]', 
393      'input[type="radio"]', 'input[type="checkbox"]', 'select', '[tabindex]:not([tabindex="-1"])' 
394    ]; 
395    const focusableEls = modalEl.querySelectorAll(focusableSelectors.join(',')); 
396    const firstEl = focusableEls[0]; 
397    const lastEl = focusableEls[focusableEls.length - 1]; 
398 
399    modalEl.addEventListener('keydown', function (e) { 
400      if (e.key === 'Tab') { 
401        if (e.shiftKey) { 
402          if (document.activeElement === firstEl) { 
403            e.preventDefault(); 
404            lastEl.focus(); 
405
406        } else { 
407          if (document.activeElement === lastEl) { 
408            e.preventDefault(); 
409            firstEl.focus(); 
410
411
412
413    }); 
414
415 
416  function showModal(selector) { 
417    const modalEl = document.querySelector(selector); 
418    if (!modalEl) return; 
419 
420    lastActivator = document.activeElement; 
421    activeModal = modalEl; 
422 
423    // Fallback accesible 
424    modalEl.style.display = 'block'; 
425    modalEl.removeAttribute('hidden'); 
426    modalEl.setAttribute('aria-hidden', 'false'); 
427    modalEl.setAttribute('aria-modal', 'true'); 
428    document.body.classList.add('modal-open'); 
429 
430    trapFocus(modalEl); 
431 
432    const focusable = modalEl.querySelector('[autofocus]') || modalEl.querySelector('button, [tabindex]:not([tabindex="-1"])'); 
433    if (focusable) focusable.focus(); 
434 
435    modalEl.addEventListener('click', function (e) { 
436      if (e.target === modalEl) closeModal(); 
437    }); 
438 
439    // Cierre con Esc 
440    document.addEventListener('keydown', escHandler); 
441
442 
443  function escHandler(e) { 
444    var isActivationKey = (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape'); 
445    if (isActivationKey && activeModal) { 
446        e.preventDefault(); 
447    closeModal(); 
448
449
450 
451  function closeModal() { 
452    if (!activeModal) return; 
453 
454    activeModal.style.display = 'none'; 
455    activeModal.setAttribute('aria-hidden', 'true'); 
456    document.body.classList.remove('modal-open'); 
457 
458    // Devuelve el foco al activador 
459    if (lastActivator) lastActivator.focus(); 
460 
461    activeModal = null; 
462    document.removeEventListener('keydown', escHandler); 
463
464 
465  // Delegación click 
466  document.addEventListener('click', function (event) { 
467    const anchor = event.target.closest('a[data-target^="#modal-"]'); 
468    if (!anchor) return; 
469    event.preventDefault(); 
470    const targetSelector = anchor.getAttribute('data-target'); 
471    if (!targetSelector) return; 
472    showModal(targetSelector); 
473  }, { passive: false }); 
474 
475  // Delegación teclado 
476  document.addEventListener('keydown', function (event) { 
477    if (event.key !== 'Enter' && event.key !== ' ') return; 
478    const anchor = event.target.closest('a[data-target^="#modal-"]'); 
479    if (!anchor) return; 
480    event.preventDefault(); 
481    const targetSelector = anchor.getAttribute('data-target'); 
482    if (!targetSelector) return; 
483    showModal(targetSelector); 
484  }, { passive: false }); 
485 
486  // ===== CIERRE por botón (fallback): data atributos comunes ===== 
487  document.addEventListener('click', function (event) { 
488    const closeBtn = event.target.closest('[data-close-modal], [data-bs-dismiss="modal"], [data-dismiss="modal"]'); 
489    if (!closeBtn) return; 
490 
491    // Si estamos en fallback, cerramos y restauramos scroll nosotros. 
492    if (activeModal) { 
493      event.preventDefault(); 
494      closeModal(); 
495
496    // Si es Bootstrap, su propio handler cerrará el modal; nosotros restauramos en 'hidden.bs.modal'. 
497  }, { passive: false }); 
498 
499  if (document.readyState === 'loading') { 
500    document.addEventListener('DOMContentLoaded', ensureAccessibleAnchors); 
501  } else { 
502    ensureAccessibleAnchors(); 
503
504})(); 
505</script> 
506 
507<style> 
508@media (max-width: 767px) { 
509    .mod.mod-Product .elements-block .element-block .row .button-link { 
510        justify-content: center; 
511
512
513</style> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")  [in template "20115#20151#328918638" at line 5, column 26]

----
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: #assign zurichService = serviceLocato...  [in template "20115#20151#328918638" at line 5, column 1]
----
1<#-- Importar la plantilla con las MACROS comunes para utilizar --> 
2<#-- Se debe modificar por SITE y por Entorno (Local, PRE y PROD) --> 
3<#include "${templatesPath}/337115551" /> 
4 
5<#assign zurichService = serviceLocator.findService("com.zurich.tools.util.ZurichToolsService")/> 
6<#assign isPhone = zurichService.getPhone()> 
7 
8<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
9 
10<#assign fondo = "#ffffff"> 
11<#if background?? && background.getData()!=""> 
12    <#assign fondo = background.getData()> 
13</#if> 
14 
15<#assign popupSF=false/> 
16 
17<#assign textColor = "dark-blue"> 
18<#if text_color?? && text_color.getData()!=""> 
19    <#assign textColor = text_color.getData()> 
20</#if> 
21<#if custom_top_margin?? && custom_top_margin.getData() != ""> 
22    <#assign custom_top_margin = custom_top_margin.getData() /> 
23<#else> 
24    <#assign custom_top_margin = "" /> 
25</#if> 
26 
27<#if custom_bottom_margin?? && custom_bottom_margin.getData() != ""> 
28    <#assign custom_bottom_margin = custom_bottom_margin.getData() /> 
29<#else> 
30    <#assign custom_bottom_margin = "" /> 
31</#if> 
32<div class="mod mod-Product highlight-figure" style="background-color:${fondo}; padding-bottom:${custom_bottom_margin}; padding-top:${custom_top_margin};"> 
33    <div class="container"> 
34        <#if image_float.getData()?? && image_float.getData()?has_content> 
35            <#if image_float.getData() == "right"> 
36                <div class="row right"> 
37            <#else> 
38                <div class="row"> 
39            </#if> 
40        <#else> 
41            <div class="row"> 
42        </#if> 
43            <div class="elements-block"> 
44                <div class="element-block"> 
45                    <div class="row"> 
46                        <div class="col-md-4 image"> 
47                            <#if image.getData()?? && image.getData() != ""> 
48                                <div class="image-border"> 
49                                    <img alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute('fileEntryId')}" src="${image.getData()}" class="img-responsive" width="100%" height="100%" loading="lazy"/> 
50                                </div> 
51                            </#if> 
52                        </div> 
53                        <#-- PL-1023 hide text when is empty --> 
54                        <#assign isEmpty = "" /> 
55                        <#assign textMargin = "" /> 
56                        <#if isPhone == "mobile"> 
57                            <#if title.getData() == "" && description.getData() == "" && link_text.getData() == ""> 
58                                <#assign isEmpty = "hide" /> 
59                            <#elseif title.getData() == "" || description.getData() == ""> 
60                                <#assign textMargin = 'style="margin-bottom:0px;margin-top:0px"' /> 
61                            </#if> 
62                        </#if> 
63                        <#-- --> 
64                        <div class="col-md-8 text text-color__${textColor} ${isEmpty}" ${textMargin}> 
65                            <div class="element-description"> 
66 
67    							<#if title.getData()?? && title.getData() != ""> 
68                                <div class="title"> 
69                                    <${title.title_level.getData()} class="h1-copycat">${htmlUtil.unescape(title.getData())}</${title.title_level.getData()}> 
70                                </div> 
71    							</#if> 
72                                <div class="description"> 
73    							<#if description.getData()?? && description.getData() != ""> 
74                                    ${description.getData()} 
75    							</#if> 
76                                </div> 
77                                <div class="row cta"> 
78                                <#if links_align.getData()?? && links_align.getData()?has_content> 
79                                        <div class="${links_align.getData()}"> 
80                                    <#else> 
81                                        <div class="middle"> 
82                                    </#if> 
83                                <div class="button-link"> 
84                                        <a class="btn btn-lg btn-secondary-alternate" id="mdFormButton" onclick="KAMPYLE_ONSITE_SDK.showForm(28924);">Opina aquí</a> 
85                                    </div> 
86                                <#if link_text.getSiblings()?has_content && (link_text.getData()?? && link_text.getData() != "")> 
87 
88 
89 
90                                    <#list link_text.getSiblings() as cur_link> 
91                                        <#if cur_link.modalSF??> 
92	                                        <#assign popupSF=getterUtil.getBoolean(cur_link.modalSF.getData())/> 
93                                        </#if> 
94                                        <#if cur_link.link_attr_key.getSiblings()?has_content> 
95                                        	<#list cur_link.link_attr_key.getSiblings() as cur_extra_attribute_key> 
96                                        		<#if cur_extra_attribute_key.getData()?? && cur_extra_attribute_key.getData()!=""> 
97                                        			<#if cur_extra_attribute_key?is_first> 
98                                        				<#assign extraAttr="${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.spec_link_attr_value.getData()}"/> 
99                                        			<#else> 
100                                        				<#assign extraAttr="${extraAttr} | ${cur_extra_attribute_key.getData()} / ${cur_extra_attribute_key.link_attr_key.getData()}"/> 
101                                        			</#if> 
102                                        		</#if> 
103                                        	</#list> 
104                                        </#if> 
105                                        <#assign linkClass="btn btn-lg ${aparienciaCTA(cur_link.link_skin.getData(),'btn-primary')}"/> 
106 
107 
108    									<#if cur_link.EnlaceModal??> 
109    										<#assign link_modalElementoRepetible = cur_link.EnlaceModal.getData() /> 
110    									</#if> 
111                                        <#assign modalElementoRepetible = ""> 
112                                        <#assign modalPanelElementoRepetible = ""> 
113                                        <#assign articleIdModalElementoRepetible = ""> 
114                                        <#if link_modalElementoRepetible?? && link_modalElementoRepetible!="" > 
115    										<#assign journalArticleModalElementoRepetible = link_modalElementoRepetible?eval/> 
116    										<#assign articleModalElementoRepetible = journalArticleLocalService.fetchLatestArticle(journalArticleModalElementoRepetible.classPK?number)/> 
117    										<#assign modalElementoRepetible = journalArticleLocalService.getArticleContent(articleModalElementoRepetible, articleModalElementoRepetible.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), themeDisplay)> 
118    										<#assign articleIdModalElementoRepetible = articleModalElementoRepetible.getArticleId()> 
119    										<#assign modalPanelElementoRepetible = zurichService.getModal(modalElementoRepetible,.vars['reserved-article-id'].data, articleIdModalElementoRepetible)> 
120    										<#assign modalesRepetibles = modalesRepetibles + modalPanelElementoRepetible> 
121                    					</#if> 
122 
123                                        <#assign nofollow=cur_link.hasNofollow?? && getterUtil.getBoolean(cur_link.hasNofollow.getData())/> 
124                                        <#assign seoLink = zurichService.getSeoLink(groupId, .vars['reserved-article-id'].data,cur_link.link_title.getData(), cur_link.link_page_link.getFriendlyUrl(),cur_link.link_file_link.getData(), cur_link.link_free_link.getData(),getterUtil.getBoolean(cur_link.link_new_tab.getData()), linkClass, cur_link.link_id_prefix.getData(), cur_link.link_id.getData(),extraAttr, modalElementoRepetible, articleIdModalElementoRepetible, nofollow)/> 
125 
126                                         
127                                        <#if cur_link.modalRCP?? && cur_link.modalRCP.getData() != ""> 
128                                            <div class="button-link sfModalButton" onclick="openModalRCP${cur_link.modalRCP.getData()}()"> 
129																						    ${seoLink} 
130                                                ${htmlUtil.unescape(cur_link.getData())} 
131        	                                      </a> 
132	                                          </div> 
133                                        <#elseif popupSF==true> 
134                                        <#if cur_link.productSelectModal?? && cur_link.productSelectModal.getData() != ""> 
135                                            <#assign linkProduct="${cur_link.productSelectModal.getData()}"/> 
136                                        <#else> 
137                                            <#assign linkProduct="nada"/> 
138                                        </#if> 
139                                            <div class="button-link sfModalButton" onclick="openSfModal('${linkProduct}')"> 
140                                                ${seoLink} 
141                                                ${htmlUtil.unescape(cur_link.getData())} 
142        	                                    </a> 
143	                                        </div> 
144                                        <#else> 
145                                        <div class="button-link"> 
146                                            ${seoLink} 
147                                            ${htmlUtil.unescape(cur_link.getData())} 
148                                            </a> 
149                                        </div> 
150                                        </#if> 
151                                    </#list> 
152                                    </div> 
153    								</div> 
154                                </#if> 
155                            </div> 
156                        </div> 
157                    </div> 
158                </div> 
159            </div> 
160        </div> 
161    </div> 
162</div> 
163 
164<style> 
165a.link-white{ 
166    text-decoration: none; 
167    color: #23366F; 
168    border-color: #23366F; 
169    min-width: 110px; 
170    text-align: center; 
171    border-radius:28px; 
172    background-color:white; 
173
174 
175.link-white{ 
176    height: inherit; 
177    padding: 8px; 
178    display: flex; 
179    justify-content: center; 
180    flex-direction: row; 
181    border: 1px solid #000066; 
182    color: #000066; 
183
184 
185.button-link.small .link-white { 
186    padding: 0 24px; 
187    max-width: none; 
188    min-height: 56px; 
189    font-size: 18px; 
190    align-items: center; 
191    justify-content: center; 
192    margin-top: -20px; 
193    text-align: center; 
194    border-radius: 28px; 
195
196a.link-white:hover { 
197    text-decoration: none; 
198	background-color: #edeef0; 
199	color:#91bfe3; 
200
201</style> 
202 
203<script> 
204$(".sfModalButton a").on( "click", function(event) { 
205  event.preventDefault(); 
206} ); 
207</script> 
208 
209<style> 
210@media(max-width:768px){ 
211    .mod.mod-Product.highlight-figure .elements-block .element-description .button-link:not(:last-of-type){ 
212    margin-right:0px; 
213
214.mod.mod-Product.highlight-figure .elements-block .element-block .text{ 
215    margin-top:15px!important; 
216    padding-top:15px; 
217
218.mod.mod-Product.highlight-figure .elements-block .element-block .image{ 
219    margin-top:30px; 
220
221.mod.mod-Product.highlight-figure .elements-block .element-description .button-link{ 
222    margin-bottom:10px; 
223
224
225 
226 
227</style> 
228<script> 
229 
230 
231//Encuesta 
232if (window.KAMPYLE_ONSITE_SDK) { 
233//If Digital code has been loaded 
234//onsiteLoaded(); 
235} else { 
236// On the neb_OnsiteLoaded event, call onsiteLoaded function 
237window.addEventListener('neb_OnsiteLoaded', onsiteLoaded); 
238
239function onsiteLoaded(){ 
240// load the form and store status (true/false) in neb_status 
241var neb_status = KAMPYLE_ONSITE_SDK.loadForm(29431); 
242// If form is loaded 
243if (neb_status === true){ 
244// set CSS attribute display to inherit so button can be seen 
245//document.getElementById("mdFormButton").style.display = "inherit" 
246
247
248 
249</script> 
Aplicaciones no está disponible temporalmente.