Link do botão
Ícone do botão Button Label
Ícone de carregamento
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> json.groupId  [in template "1975398" at line 283, column 45]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 info = {"url": "/documents/" ...  [in template "1975398" in function "getMediaInfo" at line 283, column 5]
----
1<#-- Conteúdo Web -> Templates: Site de Crise - Include de templates--> 
2<#-- include "${templatesPath}/1975602" --> 
3 
4<#-- Conteúdo Web -> Templates: Site de Crise - Funções gerais--> 
5<#include "${templatesPath}/1975398" /> 
6 
7<#-- Conteúdo Web -> Templates: Busca pelas imagens do tipo de noticia --> 
8<#include "${templatesPath}/18598756" /> 
9	 
10<#assign POST_TYPES_CATEGORIES = getPostTypeImages()!default([]) /> 
11 
12<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Extrair dados de Notícias --> 
13<#--include "${templatesPath}/7762031" --> 
14 
15<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Título --> 
16<#-- include "${templatesPath}/7761976" --> 
17 
18<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação --> 
19<#--include "${templatesPath}/7762069" --> 
20 
21<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia --> 
22<#-- include "${templatesPath}/7761972" --> 
23<#function getNodesByLabel fieldList parentNode label> 
24    <#assign result = []/> 
25    <#attempt> 
26        <#assign groupId =  getIdFromFieldName(fieldList, label) /> 
27        <#assign xSeletorCaminho = saxReaderUtil.createXPath("dynamic-element[@name='${groupId}' ]") /> 
28        <#assign result = xSeletorCaminho.selectNodes(parentNode) /> 
29        <#return result /> 
30        <#recover> 
31            <#return result /> 
32    </#attempt> 
33</#function> 
34 
35<#function findVocabulary vocabularyName vocabularies> 
36    <#assign vocabularyNameLowerCase = vocabularyName?lower_case> 
37    <#list vocabularies as vocabulary> 
38        <#if vocabulary.name?lower_case == vocabularyNameLowerCase> 
39            <#return vocabulary> 
40        </#if> 
41    </#list> 
42    <#return {}> 
43</#function> 
44 
45<#-- ############# Conteúdo Web -> Templates: Site de Crise - Include de templates #################################### --> 
46<#function getSiteUrl> 
47    <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]> 
48    <#if layout?? && layout?has_content> 
49        <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)?replace(layout.getFriendlyURL(), "")> 
50    </#if> 
51    <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)> 
52</#function> 
53 
54<#function getSiteName> 
55    <#return layout.getGroup().getDescriptiveName(locale)> 
56</#function> 
57 
58<#function mountUrlToPage targetPage> 
59    <#assign baseUrl = getSiteUrl()> 
60    <#assign trimmedUrl = baseUrl?replace("/w/", "/")> 
61    <#assign trimmedUrl = trimmedUrl?substring(0, trimmedUrl?last_index_of("/"))> 
62    <#return trimmedUrl + "/" + targetPage> 
63</#function> 
64<#-- ################################################################################################################## --> 
65 
66 
67<#assign 
68    journalArticleLocalService  = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
69    assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") 
70    assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
71    vocabularies = assetVocabularyService.getGroupVocabularies(groupId) 
72    tagsLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService") 
73    tagVocabulary = findVocabulary("Tag", vocabularies) 
74    flagVocabulary = findVocabulary("Flag", vocabularies) 
75    tagCategoryTitles = extractVocabularyTitles(tagVocabulary) 
76    flagCategoryTitles = extractVocabularyTitles(flagVocabulary) 
77    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
78    fileEntryService = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"] 
79    layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
80    PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] 
81    AssetEntryQueryService = objectUtil("com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil").getService() 
82    AssetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery') 
83/> 
84 
85<#-- Nome das midias adaptativas de imagem para desktop e mobile --> 
86<#assign adaptativeMediaDesktopResolutionName = "Preview-1000x0" /> 
87<#assign adaptativeMediaMobileResolutionName = "Thumbnail-300x300" /> 
88 
89<#assign typeOfNewsVocabulary = findVocabulary("Tipo de Notícia", vocabularies)/> 
90<#assign ourEnergyVocabulary = findVocabulary("Nossa Energia", vocabularies)/> 
91 
92<#assign newsJournalArticle = ""> 
93<#assign assetEntry = getAssetEntryFromRequest(assetEntryLocalService)> 
94<#if assetEntry?? && assetEntry?has_content> 
95    <#assign newsJournalArticle = journalArticleLocalService.fetchLatestArticle(assetEntry.classPK)/> 
96</#if> 
97 
98<#function getSingleNode name root> 
99    <#attempt> 
100        <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']/dynamic-content[@language-id='${locale}']") /> 
101        <#return xPathSelector.selectSingleNode( root ) /> 
102        <#recover> 
103            <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']") /> 
104            <#return xPathSelector.selectSingleNode( root ) /> 
105    </#attempt> 
106</#function> 
107 
108<#-- Função para obter a primeira categoria associonada a um Vocabulário o qual está associado a um Jornal Article --> 
109<#function getFirstCategoryOfVocabulary journalArticle vocabulary > 
110    <#attempt> 
111        <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) /> 
112        <#list categories as category> 
113            <#if vocabulary.getVocabularyId() == category.getVocabularyId()> 
114                <#return category.getName()> 
115            </#if> 
116        </#list> 
117        <#return ""> 
118 
119        <#recover> 
120            <#return "" /> 
121    </#attempt> 
122</#function> 
123 
124<#function getFirstCategoryObjectOfVocabulary journalArticle vocabulary > 
125    <#attempt> 
126        <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) /> 
127        <#list categories as category> 
128            <#if vocabulary.getVocabularyId() == category.getVocabularyId()> 
129                <#return category> 
130            </#if> 
131        </#list> 
132        <#return ""> 
133 
134        <#recover> 
135            <#return "" /> 
136    </#attempt> 
137</#function> 
138 
139<#-- Função para obter todas os ids das categorias associonadas a um Vocabulário o qual está associado a um Jornal Article --> 
140<#function getAllCategoryIdOfVocabulary journalArticle vocabulary > 
141    <#attempt> 
142        <#assign categoriesIds = [] /> 
143        <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) /> 
144        <#list categories as category> 
145            <#if vocabulary.getVocabularyId() == category.getVocabularyId()> 
146               <#assign categoriesIds = categoriesIds + [category.getCategoryId()] /> 
147            </#if> 
148        </#list> 
149        <#return categoriesIds> 
150 
151        <#recover> 
152            <#return [] /> 
153    </#attempt> 
154</#function> 
155 
156<#if newsJournalArticle?? && newsJournalArticle?has_content> 
157 
158    <div class="breadcrumb-breakpoint breakpoint"> 
159        <div class="breadcrumb-col col-2-11 md-col-1-8 sm-col-1-4">  
160            <#assign homeURL = "/" /> 
161 
162            <#if currentURL?contains('webserver')> 
163               <#assign homeURL = "/web/nossa-energia" />  
164            </#if> 
165 
166            <a href="${homeURL}" class="breadcrumb-page text previous-page paragraph-micro-regular" tabindex="0">  
167                <span class="breadcrumb-text-truncate" original-text="Home">Home</span>  
168                <div class="icon"></div> 
169            </a> 
170             
171            <#assign currentUrl = getSiteUrl()> 
172 
173            <#assign lastIndex = currentUrl?last_index_of("/")> 
174            <#assign urlWithoutLastSegment = currentUrl?substring(0, lastIndex+1)> 
175            <#assign urlWithoutW = urlWithoutLastSegment?replace("/w/", "/")> 
176 
177            <#assign breadcrumbOurEnergyCategory = getFirstCategoryObjectOfVocabulary(assetEntry, ourEnergyVocabulary) /> 
178            <#assign categoryURL = urlWithoutW/> 
179            <a href="${categoryURL}" class="breadcrumb-page text previous-page paragraph-micro-regular" tabindex="0">  
180                <span class="breadcrumb-text-truncate" original-text="${breadcrumbOurEnergyCategory.getTitle(locale)}">${breadcrumbOurEnergyCategory.getTitle(locale)}</span>  
181                <div class="icon"></div> 
182            </a> 
183 
184            <span original-text="${newsJournalArticle.getTitle(locale)}" class="breadcrumb-page text active-page active paragraph-micro-bold">${newsJournalArticle.getTitle(locale)}</span> 
185        </div> 
186    </div> 
187 
188    <div class="ptb-news__read-news"> 
189        <div class="ptb-news__read-news-post "> 
190            <div class="ptb-news__read-content"> 
191 
192                <#assign 
193                ddmStructure = newsJournalArticle.getDDMStructure() 
194                fieldList = getFieldListByStructure(ddmStructure) 
195                xmlArticle = newsJournalArticle.getDocument().getRootElement() 
196
197 
198                <#assign 
199                <#-- Título principal da notícia --> 
200                mainHeadlineOfTheNews = newsJournalArticle.getTitle(locale, true) 
201                <#-- Título de destaque da notícia --> 
202                featuredNewsHeadline = extractFeaturedNewsHeadline(fieldList, xmlArticle) 
203                <#-- Sumário da notícia --> 
204                newsSummary = extractNewsSummary(fieldList, xmlArticle) 
205                <#-- Data de publicação da notícia --> 
206                lastPublishDate = extractPublishDate(newsJournalArticle) 
207                <#-- Data de criação da notícia --> 
208                createDate = newsJournalArticle.getCreateDate() 
209
210 
211                <#-- Flag da notícia ----------------------------------------------------------------------------------> 
212                <#assign flag = getFirstCategoryTitle(newsJournalArticle, flagCategoryTitles, assetCategoryLocalService)> 
213 
214                <#-- Url amigável da notícia para visualização em DisplayPage -----------------------------------------> 
215                <#assign newsJournalArticleFriendlyUrl = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + newsJournalArticle.getUrlTitle()> 
216 
217                <#-- Conteúdo da notícia ------------------------------------------------------------------------------> 
218                <#assign newsContent = getFieldValue(fieldList, xmlArticle, "Corpo da notícia")> 
219 
220                <#assign WEB_STORIES_FIELD_SET_FIELD_REF = "Fieldset91054335" /> 
221                <#assign WEB_STORIES_IDENTIFICATION_FIELD_LABEL = "Identificador do Carousel" /> 
222                <#assign WEB_STORIES_TITLE_FIELD_LABEL = "Título do carrossel" /> 
223 
224                <#assign webStoriesCarouselsIds = [] /> 
225                <#assign webStoriesCarouselsTitles = [] /> 
226                <#assign webStoriesCarouselsIdsFieldSetList = getNodes(WEB_STORIES_FIELD_SET_FIELD_REF, xmlArticle) /> 
227 
228                <#list webStoriesCarouselsIdsFieldSetList as webStoriesFieldSet> 
229                    <#assign webStoriesCarouselsIds = webStoriesCarouselsIds + [ getFieldValue(fieldList, webStoriesFieldSet, WEB_STORIES_IDENTIFICATION_FIELD_LABEL) ] /> 
230                    <#assign webStoriesCarouselsTitles = webStoriesCarouselsTitles + [ getFieldValue(fieldList, webStoriesFieldSet, WEB_STORIES_TITLE_FIELD_LABEL) ] /> 
231                </#list> 
232 
233                <#assign wsCarouselContent = ' 
234                <div id="[CAROUSEL_ID]" class="ws-carousel"> 
235                    <div class="ws-carousel-header"> 
236                        <h1 class="h2"> 
237                            [CAROUSEL_TITLE] 
238                        </h1> 
239                        <div class="nav-buttons"> 
240                            <svg class="nav-arrow left-arrow inactive" width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 
241                                <path d="M1 16C1 7.16344 8.16344 0 17 0C25.8366 0 33 7.16344 33 16C33 24.8366 25.8366 32 17 32C8.16344 32 1 24.8366 1 16Z" stroke="#bababa"/> 
242                                <path d="M11.5 16H22.5M22.5 16L18 11.5M22.5 16L18 20.5" stroke="#bababa" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
243                            </svg> 
244                            <svg class="nav-arrow right-arrow active" width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 
245                                <path d="M1 16C1 7.16344 8.16344 0 17 0C25.8366 0 33 7.16344 33 16C33 24.8366 25.8366 32 17 32C8.16344 32 1 24.8366 1 16Z" stroke="#008542"/> 
246                                <path d="M11.5 16H22.5M22.5 16L18 11.5M22.5 16L18 20.5" stroke="#008542" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
247                            </svg> 
248                        </div> 
249                    </div> 
250                    <div class="ws-carousel-body"> 
251                        <div class="ws-container"> 
252                        </div> 
253                    </div>     
254                </div>' /> 
255 
256                <#list webStoriesCarouselsIds as item > 
257                    <#assign carouselDiv = wsCarouselContent?replace("[CAROUSEL_ID]", item)?replace("[CAROUSEL_TITLE]", webStoriesCarouselsTitles[item?index]) /> 
258                    <#assign newsContent = newsContent?replace("<p>#[${item}]</p>", carouselDiv) /> 
259                </#list> 
260 
261 
262                <#-- Seção do áudio para o conteúdo da notícia --------------------------------------------------------> 
263                <#assign audios = [] 
264                audioIdentifierFieldSetList = getNodes("Fieldset65862311", xmlArticle) 
265
266                <#list audioIdentifierFieldSetList as audioIdentifierFieldSet> 
267                    <#assign 
268                    <#-- Grupo com as informações de url e legenda do áudio --> 
269                    audioInfoFieldSet = getGroupNode("Fieldset24035689",audioIdentifierFieldSet)> 
270                    <#assign 
271                    externalAudioUrl = getFieldValue(fieldList, audioInfoFieldSet, "URL externa do áudio") 
272                    internalAudioUrl = getFileFromXML("DocumentLibrary24170668", audioInfoFieldSet, fileEntryService) 
273                    audioLegend = getFieldValue(fieldList, audioInfoFieldSet, "Legenda do áudio")> 
274 
275                    <#if externalAudioUrl?has_content || internalAudioUrl.url?has_content > 
276                        <#assign audios += [{ 
277                        "id": getFieldValue(fieldList, audioIdentifierFieldSet, "Identificador de Áudio"), 
278                        "externalUrl" : externalAudioUrl, 
279                        "internalUrl" : internalAudioUrl, 
280                        "legend" : audioLegend 
281                        }]> 
282                    </#if> 
283                </#list> 
284 
285 
286                <#-- Seção de vídeo para o conteúdo da notícia --------------------------------------------------------> 
287                <#assign videos = [] 
288                videoIdentifierFieldSetList = getNodes("Fieldset24460782", xmlArticle) 
289
290                <#list videoIdentifierFieldSetList as videoIdentifierFieldSet> 
291                    <#assign 
292                    <#-- Grupo com as informações de url e legenda do áudio --> 
293                    videoInfoFieldSet = getGroupNode("Fieldset51040010",videoIdentifierFieldSet) 
294 
295                    videos += [{ 
296                    "id": getFieldValue(fieldList,videoIdentifierFieldSet, "Identificador de Vídeo"), 
297                    "youtubeID" : getFieldValue(fieldList, videoInfoFieldSet, "ID do vídeo do YouTube"), 
298                    "internalUrl" : getFileFromXML("DocumentLibrary15265409", videoInfoFieldSet, fileEntryService), 
299                    "legend" : getFieldValue(fieldList, videoInfoFieldSet, "Legenda do vídeo") 
300                    }] 
301
302                </#list> 
303 
304 
305                <#-- Seção de links para o conteúdo da notícia --------------------------------------------------------> 
306                <#assign 
307                links = [] 
308                linksFieldSetList = getNodes("Fieldset37770113", xmlArticle) 
309
310                <#list linksFieldSetList as linksFieldSet> 
311                    <#assign linkFieldSetList = getNodes("Fieldset10524367", linksFieldSet)> 
312 
313                    <#list linkFieldSetList as linkFieldSet> 
314                        <#assign 
315                        linkId = getFieldValue(fieldList, linkFieldSet, "Identificador do link") 
316 
317                        <#-- Grupo com as informações de url e legenda do áudio --> 
318                        linkInfoFieldSeet = getGroupNode("Fieldset86037074", linkFieldSet) 
319 
320                        iconType = getFieldValue(fieldList, linkInfoFieldSeet, "Ícone do link") 
321                        links += [{ 
322                        "id": linkId, 
323                        "externalLink" : getFieldValue(fieldList, linkInfoFieldSeet, "Link externo"), 
324                        "pageLink" : getPageLayoutLinkFromXML("LinkToLayout77941175", linkInfoFieldSeet, layoutLocalService), 
325                        "file" : getFileFromXML("DocumentLibrary34820760", linkInfoFieldSeet, fileEntryService), 
326                        "title" : getFieldValue(fieldList, linkInfoFieldSeet, "Título do link"), 
327                        "iconType" : iconType 
328                        }] 
329
330                    </#list> 
331                </#list> 
332 
333 
334                 
335                <#assign galleryItems = []/> 
336                
337                <#assign mediaGroupList = getNodes(getIdFromFieldName(fieldList, "Galeria de multimídia"), xmlArticle) /> 
338                 
339                <#list mediaGroupList as mediaGroup >       
340                    <#assign nodes = getNodes(getIdFromFieldName(fieldList, "Imagem da Galeria") , mediaGroup) /> 
341                    <#list nodes as node>                   
342                        <#assign image = getMediaInfo(fieldList, node, "Imagem", fileEntryService) /> 
343                        <#if image?? && image?has_content && image.url?has_content> 
344                            <#assign galleryItems += [{"image": image}] /> 
345                        </#if>   
346                    </#list> 
347                </#list> 
348                 
349				<#-- Seção de Quotes para o conteúdo da notícia --------------------------------------------------------> 
350                <#assign quotes = [] /> 
351                <#assign quotesRootFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quotes da notícia"), xmlArticle) /> 
352                <#list quotesRootFieldSetList as quotesFieldSetList> 
353                     <#assign quoteFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quote"), quotesFieldSetList) /> 
354						         <#list quoteFieldSetList as quoteFieldSet> 
355                                        <#assign imageJsonString  = getSingleNodeString("Image94530628", quoteFieldSet)   />                                                                       
356                                        <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} /> 
357                                        <#attempt> 
358                                            <#if imageJsonString ?? && imageJsonString?has_content>  
359                                                <#assign imageJson = jsonFactoryUtil.createJSONObject(imageJsonString) /> 
360                                            </#if> 
361 
362                                            <#if !imageJson.url?? || !imageJson.url?has_content> 
363                                                <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} /> 
364                                            </#if> 
365                                        <#recover>                                             
366                                        </#attempt> 
367 
368                                         <#if !imageJson.url?? || !imageJson.url?has_content> 
369                                                <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} /> 
370                                            </#if> 
371                                 					       
372                                    <#assign quotes += [{ 
373                                    "id": getFieldValue(fieldList, quoteFieldSet, "Identificador do Quote"), 
374                                    "content" : getFieldValue(fieldList, quoteFieldSet, "Texto do Quote"), 
375                                    "author" : getFieldValue(fieldList, quoteFieldSet, "Nome do autor"), 
376                                    "image" : {"url": imageJson.url, "alt": imageJson.alt, "fileEntryId" : imageJson.fileEntryId, "title" : imageJson.title}  
377                                    }] /> 
378						          </#list>                    
379                </#list> 
380 
381                <#assign newsInfo = { 
382                "mainHeadlineOfTheNews": mainHeadlineOfTheNews, 
383                "featuredNewsHeadline" : featuredNewsHeadline, 
384                "displayDate" : formatDate(createDate), 
385                "createDate": createDate, 
386                "newsSummary" : newsSummary, 
387                "newsMedia":  extractNewsMedia(fieldList, xmlArticle, fileEntryService), 
388                "lastPublishDate": lastPublishDate, 
389                "flag": flag, 
390                "url": newsJournalArticleFriendlyUrl, 
391                "newsContent": newsContent, 
392                "audios": audios, 
393                "videos": videos, 
394                "galleryItems": galleryItems, 
395                "links": links, 
396								"quotes": quotes 
397                }/> 
398 
399                <#-- Renderizar o título principal da notícia --> 
400                <#-- Conteúdo-> Conteúdo Web -> Templates: Site de Crise - Notícia - Título --> 
401                <@renderHeadLine newsInfo/> 
402 
403                <#-- Renderizar o resumo da notícia --> 
404                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Resumo --> 
405                <@renderReview newsInfo/> 
406 
407                <#-- Renderizar a data de publicação/edição da notícia e redes sociais --> 
408                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação --> 
409                <@renderPublishAndSocialMediasInfos newsJournalArticle newsInfo/> 
410 
411                <#-- Renderizar as tags da notícia --> 
412                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render Tags --> 
413                <#assign categoriesAsssetEntryResponse = restClient.get("/headless-delivery/v1.0/structured-contents/${assetEntry.getClassPK()}?nestedFields=embeddedTaxonomyCategory&fields=taxonomyCategoryBriefs") /> 
414               
415                <#if categoriesAsssetEntryResponse?? && categoriesAsssetEntryResponse?has_content && categoriesAsssetEntryResponse.taxonomyCategoryBriefs??> 
416                    <#assign tagCategoryList = getCategoriesNamesAndIds("Tags", categoriesAsssetEntryResponse.taxonomyCategoryBriefs) /> 
417                    <#assign removeStartParameterWhenTagIsClicked = true /> 
418                    <#assign includeRequestParams = false /> 
419                    <#assign NEWS_PAGE_NAME= "categorias"/> 
420                    <@renderNewsTags tagCategoryList NEWS_PAGE_NAME removeStartParameterWhenTagIsClicked includeRequestParams /> 
421                </#if> 
422                 
423 
424                <#-- Renderizar a imagem de destaque da notícia --> 
425                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Imagem de destaque --> 
426                <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) /> 
427                 
428                <#if !typeOfNews?? || !typeOfNews?has_content || typeOfNews != "Infográfico" >                
429                    <@renderNewsFeaturedMedia newsInfo /> 
430                </#if> 
431 
432                <#-- Renderizar o conteúdo da notícia --> 
433                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia --> 
434                <@renderNewsContent newsInfo/> 
435 
436                <#-- Renderizar o conteúdo da notícia-->  
437                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia --> 
438 
439                <#-- Renderiza botoes de compartilhamento na versao mobile --> 
440                <div class="render-share-news-container publish_and_social_medias_infos_desk mobile"> 
441                    <@renderShareAndCopyNews/> 
442                </div> 
443 
444                <#-- Renderizar links da notícia --> 
445                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Links do conteúdo da notícia --> 
446                <@renderLinks newsInfo /> 
447 
448                <@renderCite /> 
449 
450                <#-- Renderizar áudios da notícia --> 
451                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia --> 
452 
453                <#-- Renderizar galeria de imagens notícia --> 
454                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render galeria --> 
455                <@renderGallery newsInfo /> 
456									 
457                <#-- Renderizar quotes da notícia --> 
458                <@renderQuotes newsInfo /> 
459            </div> 
460        </div> 
461    </div> 
462<#else > 
463    <div class="ptb-news__read-news paragraph-sm-regular">      
464        <p> <#if locale == "pt_BR"> Nenhuma notícia <#else> There are no news </#if></p> 
465    </div> 
466 
467    <style> 
468        .ptb-news__read-news p { 
469            color: #515867; 
470
471 
472        body.high-contrast-active .ptb-news__read-news p { 
473            color: var(--color-neutral-100); 
474
475    </style> 
476</#if> 
477 
478<style> 
479    .breadcrumb-breakpoint { 
480        padding-top: var(--space-xxl); 
481        padding-bottom: var(--space-xl); 
482
483 
484    body.high-contrast-active .breadcrumb-breakpoint { 
485        background: var(--background-surface-level-01, #010101); 
486
487 
488    .breadcrumb-breakpoint .breadcrumb-col { 
489        display: flex; 
490        width: max-content; 
491        gap: var(--space-xxs); 
492        height: fit-content; 
493        overflow-x: hidden; 
494
495 
496    .breadcrumb-breakpoint #liferay-breadcrumb { 
497        display: none; 
498
499 
500    .breadcrumb-breakpoint .breadcrumb-page { 
501        display: flex; 
502        gap: var(--space-micro); 
503        height: var(--size-md); 
504        size: var(--size-md); 
505        border: 1px solid rgba(0, 0, 0, 0); 
506        box-sizing: border-box; 
507        border-radius: var(--border-radius-sm); 
508
509 
510    .breadcrumb-breakpoint a.breadcrumb-page.text span, 
511    .breadcrumb-breakpoint span.breadcrumb-page.text { 
512        white-space: nowrap; 
513
514 
515    .breadcrumb-breakpoint .breadcrumb-page a:focus { 
516        outline: none; 
517
518 
519    .breadcrumb-breakpoint .breadcrumb-page.active-page { 
520        color: var(--color-text-primary-default); 
521        background-color: var(--color-background-default-level-02); 
522        border-radius: var(--border-radius-sm); 
523
524 
525    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.active-page { 
526        background: var(--background-surface-level-02, #373737); 
527        color: var(--text-primary-default, #FFF); 
528
529 
530    .breadcrumb-breakpoint .breadcrumb-page.previous-page { 
531        transition: 300ms ease-in-out; 
532
533 
534    .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
535        text-decoration: var(--text-decoration-none); 
536        color: var(--color-text-primary-default); 
537        text-transform: capitalize; 
538        padding-left: var(--space-xxs); 
539        padding-right: var(--space-xxs); 
540
541 
542    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
543        color: var(--text-primary-default, #FFF); 
544
545 
546    .breadcrumb-breakpoint .breadcrumb-page.active-page.text { 
547        color: var(--color-text-primary-default); 
548        text-decoration: var(--text-decoration-none); 
549        background-color: var(--color-background-default-level-02); 
550        text-transform: capitalize; 
551        padding-left: var(--space-xxs); 
552        padding-right: var(--space-xxs); 
553
554 
555    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
556        color: var(--text-primary-default, #FFF); 
557
558 
559    .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover { 
560        background-color: var(--color-background-default-level-01); 
561        border-color: var(--border-color-dark); 
562        border-radius: var(--border-radius-sm); 
563        border: 1px solid; 
564        transition: all 300ms ease-in-out; 
565
566 
567    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover { 
568        background-color: transparent; 
569
570 
571    .breadcrumb-breakpoint .breadcrumb-page:focus-visible { 
572        margin: var(--space-micro); 
573        border-radius: var(--space-micro); 
574        outline: none; 
575        border: 1px solid var(--color-primary-medium); 
576        box-sizing: border-box; 
577        transition: 300ms ease-in-out; 
578
579 
580    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page:focus-visible { 
581        border: 1px solid rgba(228, 247, 232, 1); 
582
583 
584    .breadcrumb-breakpoint .breadcrumb-page .icon { 
585        width: var(--size-xxs); 
586        height: var(--size-xxs); 
587        border-color: var(--border-color-darkest); 
588        background-image: url('data:image/svg+xml,%3Csvg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M4.5 2.25L8.25 6L4.5 9.75" stroke="%23525252" stroke-linecap="round" stroke-linejoin="round"%3E%3C/path%3E%3C/svg%3E'); 
589        background-size: cover; 
590        margin-top: auto; 
591        margin-bottom: auto; 
592
593 
594    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page .icon { 
595        background-image: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none"><path d="M4.5 2.25L8.25 6L4.5 9.75" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg>'); 
596
597 
598    .ptb-news__read-news { 
599        padding-bottom: var(--space-xl, 40px); 
600        overflow: hidden; 
601
602 
603    body.high-contrast-active .ptb-news__read-news { 
604        background: var(--background-surface-level-01, #010101); 
605
606</style> 
607 
608 
609<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
610<#-- 
611Add elements from the sidebar to define your template. Type "${" to use the 
612autocomplete feature. 
613--> 
614 
615<#macro renderHeadLine newsInfo> 
616     
617    <div class="main-headline-container breakpoint"> 
618        <div class="main-headline-container-col col-2-11 md-col-1-8 sm-col-1-4"> 
619            <h1 class="main-headline display-sm">${newsInfo.featuredNewsHeadline}</h1> 
620            <div class="bar"></div> 
621        </div> 
622    </div> 
623 
624    <style> 
625        .ptb-news__read-news .main-headline-container .main-headline-container-col { 
626            display: flex; 
627            flex-direction: column; 
628            gap: var(--space-sm); 
629            padding-bottom: var(--space-lg); 
630
631 
632        .ptb-news__read-news .main-headline-container .main-headline-container-col * { 
633            margin: 0; 
634            padding: 0; 
635
636 
637        .ptb-news__read-news .main-headline-container .main-headline { 
638            font-family: var(--font-family-base); 
639            color: var(--color-neutral-800); 
640
641 
642        body.high-contrast-active .ptb-news__read-news .main-headline-container .main-headline { 
643            color: var(--text-primary-default, var(--color-neutral-100)); 
644
645 
646        .ptb-news__read-news .main-headline-container .bar { 
647            width: 32px; 
648            height: var(--size-micro); 
649            background: var(--color-secondary-medium); 
650
651 
652        body.high-contrast-active .ptb-news__read-news .main-headline-container .bar{ 
653            background: var(--text-secondary-accent, #FFEEB3); 
654
655 
656        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
657            .ptb-news__read-news .main-headline-container .main-headline-container-col { 
658                gap: var(--space-xs, 12px); 
659
660
661    </style> 
662</#macro> 
663<#-- ################################################################################################################## --> 
664 
665<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
666<#macro renderReview newsInfo> 
667    <#assign summaryCssRoot = "summary-container" /> 
668 
669    <div class="${summaryCssRoot}-breakpoint breakpoint"> 
670        <div class="${summaryCssRoot} col-2-11 md-col-1-8 sm-col-1-4"> 
671            <p class="summary paragraph-lg-regular"> 
672                ${newsInfo.newsSummary} 
673            </p> 
674        </div> 
675        
676    </div> 
677 
678    <style> 
679        .${summaryCssRoot} .summary { 
680            padding-bottom: var(--space-lg); 
681
682 
683        .${summaryCssRoot} .summary, 
684        .${summaryCssRoot} .summary * { 
685            color: var(--color-neutral-800, #373737); 
686            font-family: var(--font-family-base); 
687            font-style: var(--font-style-italic); 
688            margin: var(--space-none); 
689
690 
691        body.high-contrast-active .summary, 
692        body.high-contrast-active .summary * { 
693            color: var(--text-secondary-default, #F8F8F8); 
694
695    </style> 
696</#macro> 
697<#-- ################################################################################################################## --> 
698 
699<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
700<#macro renderPublishAndSocialMediasInfos journalArticle newsInfo> 
701 
702    <div class="publish_and_social_medias_infos_desk-breakpoint breakpoint"> 
703        <div class="publish_and_social_medias_infos_desk col-2-11 md-col-1-8 sm-col-1-4"> 
704            <div class="publish_and_update_date"> 
705                <#assign lastPublishDate = journalArticle.getModifiedDate()> 
706                <#assign createDate = journalArticle.getCreateDate()> 
707                <#if journalArticle.getLastPublishDate()??> 
708                    <#assign lastPublishDate = journalArticle.getLastPublishDate()> 
709                </#if> 
710 
711                <#if locale == "pt_BR"> 
712                    <p class="updated">Atualizado em ${formatDate(lastPublishDate)}</p> 
713                    <p class="published">Postado em ${formatDate(createDate)}</p> 
714                <#else > 
715                    <p class="updated">Updated on ${formatDate(lastPublishDate)}</p> 
716                    <p class="published">Posted on ${formatDate(createDate)}</p> 
717                </#if> 
718            </div> 
719            <div class="render-share-news-container desktop"> 
720                <@renderShareAndCopyNews/> 
721            </div> 
722        </div> 
723    </div> 
724 
725    <style> 
726			.ptb-news__read-news .hidden { 
727			     display: none; 
728
729        /*Data de publicação e redes sociais */ 
730 
731        /* Desktop */ 
732        .ptb-news__read-news .publish_and_social_medias_infos_desk { 
733            position: relative; 
734            display: grid; 
735            grid-template-columns: auto 1fr auto; 
736
737 
738        .ptb-news__read-news .render-share-news-container.mobile { 
739            display: none; 
740
741 
742        .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
743            padding: var(--space-none, 0); 
744            margin: var(--space-none, 0); 
745            font-family: var(--font-family-base); 
746            font-style: var(--font-style-normal, normal); 
747            font-weight: var(--font-weight-regular, 400); 
748            font-size: var(--font-size-xxs, 16px); 
749            line-height: var(--line-height-xl, 160%); 
750            color: var(--color-neutral-800, #373737); 
751
752 
753        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
754            color: var(--text-secondary-default, #F8F8F8); 
755
756 
757        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg path, 
758        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg path { 
759            stroke: var(--color-neutral-500, #D7D7D7); 
760            fill: rgba(255, 255, 255, 0.32); 
761
762 
763        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg circle, 
764        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg circle { 
765            fill: rgba(255, 255, 255, 0.32); 
766
767 
768        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date { 
769            display: flex; 
770            align-items: center; 
771            gap: var(--space-sm, 16px); 
772
773 
774        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated { 
775            font-weight: var(--font-weight-bold, 700); 
776
777 
778        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated { 
779            color: var(--text-primary-default, var(--color-neutral-100)); 
780
781 
782        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published { 
783            font-weight: var(--font-weight-normal, 400); 
784
785 
786        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
787            display: flex; 
788            width: 100%; 
789            justify-content: flex-end; 
790            align-items: center; 
791            gap: var(--space-sm, 16px); 
792
793   
794        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share { 
795            position: relative; 
796
797	 
798        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share span { 
799            position: absolute; 
800            width: 100%; 
801            height: 100%; 
802            opacity: 0; 
803            overflow: hidden; 
804            pointer-events: none; 
805
806 
807        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share { 
808            display: none; 
809
810 
811        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
812            background: var(--color-neutral-100); 
813            border: var(--border-width-hairline, 1px) solid #CCCCCC; 
814            border-radius: 32px; 
815            display: flex; 
816            align-items: center; 
817            gap: var(--space-sm, 16px); 
818            padding: 6px var(--space-xxs, 8px); 
819            height: 36px; 
820            margin: 0; 
821            cursor: pointer; 
822
823 
824        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
825            background: rgba(255, 255, 255, 0.32); 
826            border: var(--border-width-hairline, 1px) solid rgba(255, 255, 255, 0.32); 
827
828 
829        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container svg { 
830            width: 18px; 
831
832 
833        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk  svg path { 
834            stroke: var(--color-neutral-500, #D7D7D7); 
835
836 
837        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
838            font-family: var(--font-family-base); 
839            font-style: normal; 
840            margin: 0; 
841            height: 100%; 
842            display: flex; 
843            align-items: center; 
844            color: var(--color-primary-medium, #008542); 
845            font-size: var(--font-size-micro, 12px); 
846            font-weight: var(--font-weight-bold, 700); 
847            line-height: var(--line-height-lg, 144%); 
848            pointer-events: none; 
849
850	             
851        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text .copy-text-title-news { 
852            position: absolute; 
853            width: 100%; 
854            height: 100%; 
855            opacity: 0; 
856            overflow: hidden; 
857
858 
859        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
860            color: var(--text-primary-accent, #E4F7E8); 
861
862 
863        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
864            display: none; 
865            position: absolute; 
866            bottom: -43px; 
867            right: -15px; 
868            padding: var(--space-xxxs, 4px) 15px; 
869            margin: var(--space-micro, 2px) 10px; 
870            width: 110px; 
871            font-family: var(--font-family-base); 
872            font-size: var(--font-size-micro, 12px); 
873 
874            color: #008542; 
875            background: var(--color-neutral-100); 
876            border-radius: var(--border-radius-md, 8px); 
877 
878            filter: drop-shadow(0px 4px 16px rgba(0, 0, 0, 0.16)); 
879 
880            cursor: pointer; 
881
882 
883        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
884            background: rgba(255, 255, 255, 0.32); 
885            color: var(--text-primary-accent, #E4F7E8); 
886
887 
888        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message-active { 
889            display: block; 
890
891 
892        /* Mobile */ 
893 
894        .ptb-news__read-news .publish_and_social_medias_infos_mobile { 
895            display: flex; 
896            flex-direction: column; 
897            gap: 19px; 
898
899 
900        .ptb-news__read-news .publish_and_social_medias_infos_mobile { 
901            display: none; 
902
903 
904        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text { 
905            display: flex; 
906            justify-content: space-between; 
907            align-items: center; 
908            margin-bottom: var(--space-lg, 32px); 
909
910 
911        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date * { 
912            padding: 0; 
913            margin: 0; 
914            font-family: var(--font-family-base); 
915            font-style: var(--font-style-normal, normal); 
916            font-size: var(--font-size-micro, 12px); 
917            line-height: 136%; 
918            color: var(--color-neutral-800, #373737); 
919
920 
921        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date * { 
922            color: var(--text-primary-accent, #E4F7E8); 
923
924 
925        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date { 
926            display: flex; 
927            flex-direction: column; 
928            gap: 0; 
929
930 
931        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .updated { 
932            font-weight: var(--font-weight-bold, 700); 
933
934 
935        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .published { 
936            font-weight: var(--font-weight-regular, 400); 
937
938 
939        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container { 
940            background: var(--color-neutral-100); 
941            border: var(--border-width-hairline, 1px) solid #CCCCCC; 
942            border-radius: 32px; 
943            display: flex; 
944            align-items: center; 
945            gap: var(--space-sm, 16px); 
946            padding: 6px var(--space-xxs, 8px); 
947            width: 112px; 
948            height: 36px; 
949
950 
951        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container { 
952            background: rgba(255, 255, 255, 0.32); 
953            color: var(--text-primary-accent, #E4F7E8); 
954
955 
956        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container p.text { 
957            margin: 0; 
958
959 
960        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container .text { 
961            font-family: var(--font-family-base); 
962            font-style: var(--font-style-normal, normal); 
963            font-weight: var(--font-weight-regular, 400); 
964            font-size: 13px; 
965            line-height: 14px; 
966            color: #008542; 
967
968 
969        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container .text { 
970            background: rgba(255, 255, 255, 0.32); 
971            color: var(--text-primary-accent, #E4F7E8); 
972
973 
974        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
975 
976            .ptb-news__read-news .publish_and_social_medias_infos_desk .render-share-news-container.desktop { 
977                display: none; 
978
979 
980            .ptb-news__read-news .render-share-news-container.mobile { 
981                display: block; 
982                margin: 0 var(--space-lg); 
983
984 
985            .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
986                font-size: var(--font-size-micro, 12px); 
987
988             
989            .ptb-news__read-news .publish_and_social_medias_infos_desk { 
990                display: grid; 
991                grid-template-columns: 100%; 
992                grid-template-rows: 1fr 100%; 
993
994 
995            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date { 
996                grid-column-start: 1; 
997                grid-column-end: 1; 
998                grid-row-start: 1; 
999                grid-row-end: 1; 
1000                gap: var(--space-xxs, 8px); 
1001
1002 
1003            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * { 
1004                padding: 0; 
1005                margin: 0; 
1006                font-family: var(--font-family-base); 
1007                font-style: var(--font-style-normal); 
1008                color: var(--color-neutral-800, #373737); 
1009                font-weight: var(--font-weight-bold); 
1010                font-size: var(--font-size-xxxs, 14px); 
1011                line-height: var(--line-height-md, 132%); 
1012
1013 
1014            body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * { 
1015                color: var(--text-primary-accent, #E4F7E8); 
1016
1017 
1018            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published { 
1019                font-weight: var(--font-weight-regular, 400); 
1020
1021 
1022            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
1023                grid-column-start: 1; 
1024                grid-column-end: 2; 
1025                grid-row-start: 2; 
1026                grid-row-end: 2; 
1027                justify-content: flex-end; 
1028                height: 36px; 
1029
1030 
1031            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
1032                grid-column-start: 1; 
1033                grid-column-end: 2; 
1034                grid-row-start: 2; 
1035                grid-row-end: 2; 
1036                max-width: 112px; 
1037                place-self: end; 
1038
1039 
1040            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
1041                display: none; 
1042
1043 
1044            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
1045                bottom: 0; 
1046                right: -9px; 
1047
1048 
1049            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share { 
1050                display: initial; 
1051
1052
1053 
1054        @media screen and (min-width: ${MIN_TABLET_WIDTH}px) and (max-width: ${MAX_TABLET_WIDTH}px) { 
1055            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
1056                padding-right: 0; 
1057
1058
1059 
1060 
1061    </style> 
1062 
1063    <script> 
1064        AUI().ready(function () { 
1065 
1066            function copyOnClick(text) { 
1067 
1068                const strWithoutHtmlTags = text.replace(/(<([^>]+)>)/gi, ""); 
1069                const strWithoutMarcationBrackets = strWithoutHtmlTags.replace(/ *#\[[^\]]*]/g, ""); 
1070                const strWithoutNextPrevious = strWithoutMarcationBrackets.replace(/Previous    Next/g, ""); 
1071                const strWithoutBlankEnters = strWithoutNextPrevious.replace(/^\s*$(?:\r\n?|\n)/gm, ""); 
1072                const strWithoutBlankLines = strWithoutBlankEnters.replace(/&nbsp;/g, ''); 
1073                const tempInput = document.createElement("textarea"); 
1074                tempInput.value = strWithoutBlankLines; 
1075 
1076                document.body.appendChild(tempInput); 
1077                tempInput.select(); 
1078                document.execCommand("copy"); 
1079 
1080                if (tempInput.value.length > 0) { 
1081                    copyMessages.forEach(copyMessage => copyMessage.classList.add('copy-message-active')); 
1082 
1083                    timerToMessage() 
1084
1085 
1086                document.body.removeChild(tempInput); 
1087
1088 
1089            const copyTextContainers = document.querySelectorAll(".publish_and_social_medias_infos_desk .copy-text-container"); 
1090            copyTextContainers.forEach(copyTextContainer => { 
1091                copyTextContainer.addEventListener("click", (event) => { 
1092                    event.preventDefault(); 
1093                    const titleText = document.querySelector(".main-headline-container .main-headline").innerHTML; 
1094                    const publishSocialMediaText = document.querySelector(".publish_and_social_medias_infos_desk .publish_and_update_date").innerHTML; 
1095                    const tagsText = document.querySelector(".tags").innerHTML; 
1096                    const newsContentText = document.querySelector(".news-content").innerHTML; 
1097                    const text = titleText + publishSocialMediaText + tagsText + newsContentText; 
1098                    copyOnClick(text) 
1099                }); 
1100            }); 
1101 
1102            const mobileShare = async () => { 
1103                try { 
1104                    const shareData = { 
1105                        title: '${newsInfo.mainHeadlineOfTheNews}', 
1106                        text: '', 
1107                        url: '${newsInfo.url}' 
1108                    }; 
1109                    await navigator.share(shareData); 
1110                } catch (err) { 
1111 
1112
1113            }; 
1114 
1115            const mobileShareButtons = document.querySelectorAll(".publish_and_social_medias_infos_desk .mobile-share"); 
1116            mobileShareButtons.forEach(mobileShareButton => { 
1117                mobileShareButton.addEventListener("click", (event) => { 
1118                    event.preventDefault(); 
1119                    mobileShare(); 
1120                }); 
1121            }); 
1122 
1123            const copyMessages = document.querySelectorAll('.copy-message'); 
1124            const timerToMessage = () => { 
1125                setTimeout(() => { 
1126                    removeMessage(); 
1127                }, 2500); 
1128 
1129
1130 
1131            const removeMessage = () => { 
1132                copyMessages.forEach(copyMessage => copyMessage.classList.remove('copy-message-active')); 
1133
1134 
1135        }); 
1136    </script> 
1137 
1138</#macro> 
1139 
1140<#-- ################################################################################################################## --> 
1141 
1142<#-- ############# Site de Crise - Notícia - Render Tags ############################################################## --> 
1143 
1144<#function getCategoriesNamesAndIds vocabularyName categoriesList> 
1145    <#assign tagCategoryList = [] /> 
1146 
1147    <#assign tagsVocabulary = assetVocabularyService.fetchGroupVocabulary(groupId, vocabularyName) /> 
1148    <#list categoriesList as cat> 
1149        <#if tagsVocabulary.getVocabularyId() == cat.embeddedTaxonomyCategory.taxonomyVocabularyId > 
1150            <#assign tagCategoryList += [[cat.taxonomyCategoryName, cat.taxonomyCategoryId]] /> 
1151        </#if> 
1152    </#list> 
1153    <#return tagCategoryList> 
1154</#function> 
1155 
1156<#assign 
1157flagVocabulary = findVocabulary("Flag", vocabularies) 
1158assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") 
1159/> 
1160 
1161<#macro renderNewsTags categoryList targetPageWhenClickTag removeStartParameterWhenTagIsClicked updateTagParamsWhenClicked> 
1162    <#assign tagPrefix = "tags-" + randomNumber(groupId?number)> 
1163    <div class="${tagPrefix}-breakpoint breakpoint"> 
1164        <div class="${tagPrefix} col-2-11 md-col-1-8 sm-col-1-4"> 
1165 
1166            <div class="tags"> 
1167                <#list categoryList as cat> 
1168                    <#assign tagLink = mountUrlToPage("") /> 
1169                    <#assign urlWithoutTrailingSlash = tagLink?substring(0, tagLink?length - 1)> 
1170                    <#assign lastSlashIndex = urlWithoutTrailingSlash?last_index_of("/")> 
1171                    <#assign newUrl = urlWithoutTrailingSlash?substring(0, lastSlashIndex + 1)> 
1172                    <#assign tagLink = newUrl + "categorias?category=" + cat[1] /> 
1173                    <a href="${tagLink}" 
1174                        class="category" cetegoryid="${cat[1]}"># ${cat[0]}</a> 
1175                </#list> 
1176            </div> 
1177        </div>    
1178    </div> 
1179 
1180    <style> 
1181        .${tagPrefix} { 
1182            display: flex; 
1183            flex-direction: column; 
1184            padding: 0; 
1185            gap: var(--space-sm); 
1186
1187 
1188        .${tagPrefix} * { 
1189            margin: 0; 
1190            padding: 0; 
1191
1192 
1193        .${tagPrefix} .tags { 
1194            display: flex; 
1195            flex-wrap: wrap; 
1196            gap: var(--space-xxs, 8px); 
1197            padding: var(--space-lg) 0 var(--space-xl); 
1198
1199 
1200        .${tagPrefix} .tags .category { 
1201            padding: var(--space-xxxs) var(--space-xxs); 
1202            background: var(--color-neutral-100); 
1203            border: var(--border-width-hairline, 1px) solid var(--color-neutral-500); 
1204            border-radius: var(--border-radius-xl); 
1205 
1206            font-family: var(--font-family-base); 
1207            font-style: var(--font-style-normal); 
1208            font-weight: var(--font-weight-regular); 
1209            font-size: var(--font-size-xxxs); 
1210            line-height: var(--line-height-xl); 
1211            color: var(--color-neutral-800, #373737); 
1212            cursor: pointer; 
1213
1214 
1215        body.high-contrast-active .${tagPrefix} .tags .category { 
1216            background: rgba(255, 255, 255, 0.32); 
1217            border: 1px solid rgba(255, 255, 255, 0.32); 
1218            color: var(--text-secondary-default, #F8F8F8); 
1219
1220 
1221        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1222            .${tagPrefix} .tags { 
1223                display: flex; 
1224                flex-wrap: wrap; 
1225                gap: 8px; 
1226                padding: var(--space-sm) 0 var(--space-lg); 
1227
1228 
1229            .${tagPrefix} { 
1230                margin-top: var(--space-sm); 
1231
1232
1233    </style> 
1234 
1235    <script> 
1236        AUI().ready(function () { 
1237 
1238            const urlParams = new URLSearchParams(window.location.search); 
1239            const categories = urlParams.getAll("category").sort(); 
1240 
1241            const root = document.querySelector(".${tagPrefix}"); 
1242            const tags = root.querySelectorAll(".category"); 
1243            tags.forEach((tag, index) => { 
1244 
1245                const categoryId = tag.getAttribute("cetegoryid"); 
1246                if (categories.indexOf(categoryId) != -1) { 
1247                    tag.classList.add("active"); 
1248
1249 
1250                <#if updateTagParamsWhenClicked> 
1251                tag.addEventListener("click", (e) => { 
1252                    e.preventDefault(); 
1253                    const clickedTag = e.target; 
1254                    const urlParams = new URLSearchParams(window.location.search); 
1255                    urlParams.delete("tag"); 
1256                    urlParams.delete("category"); 
1257 
1258                    const categoryId = clickedTag.getAttribute("cetegoryid"); 
1259                    urlParams.append("category", categoryId); 
1260 
1261                    <#if removeStartParameterWhenTagIsClicked> 
1262                    urlParams.delete("start"); 
1263                    </#if> 
1264 
1265                    const href = "${themeDisplay.getPortalURL() + mountUrlToPage(targetPageWhenClickTag)}?" + urlParams.toString(); 
1266                    window.location.href = href; 
1267                }); 
1268                </#if> 
1269            }); 
1270        }); 
1271    </script> 
1272 
1273</#macro> 
1274 
1275<#-- ################################################################################################################## --> 
1276 
1277<#-- ############# Site de Crise - Notícia - Imagem de destaque ####################################################### --> 
1278<#macro renderNewsFeaturedMedia newsInfo> 
1279    <#if (newsInfo.newsMedia.imageSrc?? && newsInfo.newsMedia.imageSrc?has_content) || (newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content) || (newsInfo.newsMedia.internalVideo?? && newsInfo.newsMedia.internalVideo.url?has_content)> 
1280        <div class="news-featured-media"> 
1281             
1282            <div class="media-breakpoint breakpoint"> 
1283                <div class="media-col col-2-11 md-col-1-8 sm-col-1-4"> 
1284                    <#if newsInfo.newsMedia.imageSrc?? && newsInfo.newsMedia.imageSrc?has_content> 
1285                        <#-- Midias adaptativas de imagem para desktop e mobile --> 
1286                        <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${newsInfo.newsMedia.fileEntryId}") /> 
1287                        <#assign urlAdaptativeMediaMobile = newsInfo.newsMedia.imageSrc/> 
1288                        <#assign urlAdaptativeMediaDesktop = newsInfo.newsMedia.imageSrc/> 
1289                         
1290                        <#if fileDataRequest?? && fileDataRequest.adaptedImages?? > 
1291                            <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
1292                            <#list dataAdaptativeMedia as data> 
1293                                <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
1294                                    <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
1295                                </#if> 
1296                                <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
1297                                    <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
1298                                </#if>      
1299                            </#list> 
1300                        </#if> 
1301 
1302                        <picture > 
1303                            <source media="(max-width:767px)" srcset="${urlAdaptativeMediaMobile}"> 
1304                            <img src="${urlAdaptativeMediaDesktop}" loading="lazy" alt="${newsInfo.newsMedia.imageAlt}"/> 
1305                        </picture> 
1306												<@liferay_util["html-top"]> 
1307                            <meta name="title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1308                            <meta name="description" content="${newsInfo.newsSummary}"> 
1309 
1310                            <meta property="og:url" content="${currentURL}"> 
1311                            <meta property="og:type" content="website"> 
1312                            <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1313				            				<meta property="og:description" content="${newsInfo.newsSummary}" /> 
1314                            <meta property="og:image" content="${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image"> 
1315                            <meta property="og:image:alt" content="${newsInfo.newsMedia.imageAlt}"> 
1316 
1317                            <meta name="twitter:card" content="summary_large_image"> 
1318                            <meta name="twitter:url" content="${currentURL}" /> 
1319                            <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1320                            <meta name="twitter:description" content="${newsInfo.newsSummary}" /> 
1321                            <meta name="twitter:image" content= "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image" > 
1322							 							<meta name="twitter:image:alt" content="${newsInfo.newsMedia.imageAlt}"> 
1323                        </@> 
1324                    <#else> 
1325                        <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content> 
1326                            <iframe loading="lazy" src="https://www.youtube-nocookie.com/embed/${newsInfo.newsMedia.videoYotubeID}?si=PDNu4EIwtCuSHC1S&amp;controls=0&enablejsapi=1&rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> 
1327                            <@liferay_util["html-top"]>       
1328                            		<meta name="title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1329                            		<meta name="description" content="${newsInfo.newsSummary}"> 
1330							 
1331							    							<meta property="og:url" content="${currentURL}"> 
1332                                <meta property="og:type" content="website"> 
1333                                <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1334				                				<meta property="og:description" content="${newsInfo.newsSummary}" /> 
1335                                <meta property="og:image" content="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg"> 
1336															  <meta property="og:image:alt" content="Youtube Video Thumbnail"> 
1337 
1338                                <meta name="twitter:card" content="summary_large_image"> 
1339                                <meta name="twitter:url" content="${currentURL}" /> 
1340                                <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1341                                <meta name="twitter:description" content="${newsInfo.newsSummary}" /> 
1342                                <meta name="twitter:image" content= "https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" > 
1343															  <meta name="twitter:image:alt" content="Youtube Video Thumbnail"> 
1344                            </@> 
1345														<#else> 
1346                            <video loading="lazy"> 
1347                                <source src="${newsInfo.newsMedia.internalVideo.url}"> 
1348                                Your browser does not support the video tag. 
1349                            </video> 
1350                        </#if> 
1351 
1352                         <div class="banner-video-icons"> 
1353                            <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content> 
1354                                <picture > 
1355                                    <source media="(max-width:767px)" srcset="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/mqdefault.jpg"> 
1356                                    <img class="banner-video-thumb-iframe" loading="lazy" src="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" alt="YouTube Thumbnail"/> 
1357                                </picture> 
1358                            </#if> 
1359                            <svg class="banner-video-icon-play" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1360                                <path d="M0 16C0 7.16344 7.16344 0 16 0C24.8366 0 32 7.16344 32 16C32 24.8366 24.8366 32 16 32C7.16344 32 0 24.8366 0 16Z" fill="white" fill-opacity="0.8"/> 
1361                                <path d="M22.2563 15.5744L13.2625 10.0744C13.1868 10.0277 13.1 10.0021 13.0111 10.0001C12.9221 9.99816 12.8343 10.02 12.7566 10.0633C12.6789 10.1066 12.6141 10.1698 12.569 10.2465C12.5239 10.3232 12.5001 10.4105 12.5 10.4994V21.4994C12.5001 21.5884 12.5239 21.6757 12.569 21.7524C12.6141 21.8291 12.6789 21.8923 12.7566 21.9356C12.8343 21.9789 12.9221 22.0007 13.0111 21.9988C13.1 21.9968 13.1868 21.9712 13.2625 21.9244L22.2563 16.4244C22.3301 16.3808 22.3913 16.3186 22.4338 16.2441C22.4763 16.1696 22.4987 16.0852 22.4987 15.9994C22.4987 15.9137 22.4763 15.8293 22.4338 15.7548C22.3913 15.6803 22.3301 15.6181 22.2563 15.5744Z" fill="#008542"/> 
1362                            </svg> 
1363                        </div> 
1364                    </#if> 
1365                </div> 
1366            </div> 
1367             
1368            <div class="credit-legend breakpoint"> 
1369							 
1370                    <div class="credit-legend-container col-2-11 md-col-1-8 sm-col-1-4"> 
1371											<#if newsInfo.newsMedia.legend != ""> 
1372															<div class="legend paragraph-micro-regular"> 
1373																	<p>${newsInfo.newsMedia.legend}</p> 
1374															</div> 
1375											</#if> 
1376											<#if newsInfo.newsMedia.credits != ""> 
1377															<p class="credits paragraph-micro-regular"> 
1378																	${newsInfo.newsMedia.credits} 
1379															</p>     
1380											</#if> 
1381 
1382                    </div> 
1383            </div> 
1384        </div> 
1385    </#if> 
1386    <style> 
1387        .ptb-news__read-news .news-featured-media { 
1388            padding: 0 0 var(--space-xl) 0; 
1389
1390 
1391        .ptb-news__read-news .news-featured-media .media-col { 
1392            position: relative; 
1393
1394 
1395        .ptb-news__read-news .news-featured-media img, 
1396        .ptb-news__read-news .news-featured-media video, 
1397        .ptb-news__read-news .news-featured-media iframe { 
1398            width: 100%; 
1399            max-height: 567px; 
1400            aspect-ratio: 16/9; 
1401            object-fit: cover; 
1402            border-radius: var(--border-radius-lg, 16px); 
1403
1404 
1405        .ptb-news__read-news .news-featured-media .banner-video-icons { 
1406            width: 100%; 
1407            height: 100%; 
1408            position: absolute; 
1409            top: 50%; 
1410            left: 50%; 
1411            transform: translate(-50%,-50%); 
1412            cursor: pointer; 
1413
1414 
1415        .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-thumb-iframe { 
1416            position: absolute; 
1417            width: 100%; 
1418            height: 100%; 
1419            object-fit: cover; 
1420
1421 
1422        .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play { 
1423            position: absolute; 
1424            top: 50%; 
1425            left: 50%; 
1426            transform: translate(-50%,-50%); 
1427
1428 
1429        body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(1) { 
1430            fill: black;   
1431
1432 
1433        body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(2) { 
1434            fill: white;   
1435
1436 
1437        .ptb-news__read-news .news-featured-media *:not(.breakpoint) { 
1438          margin: 0; 
1439
1440        .ptb-news__read-news .news-featured-media * { 
1441            padding: 0; 
1442            font-family: var(--font-family-base); 
1443            line-height: var(--line-height-xl); 
1444
1445 
1446        .ptb-news__read-news .news-featured-media .credits { 
1447            text-align: right; 
1448            color: var(--collor-neutral-dark-to-bright-200, #525252); 
1449            margin-bottom: var(--space-xxxs, 4px); 
1450            font-style: var(--font-style-italic, italic); 
1451            margin-top: var(--space-xxs, 8px); 
1452            margin-bottom: 0; 
1453
1454 
1455        body.high-contrast-active .ptb-news__read-news .news-featured-media .credits { 
1456            color: var(--text-secondary-default, #F8F8F8); 
1457
1458 
1459        .ptb-news__read-news .news-featured-media .legend { 
1460            margin-top: var(--space-xxs, 8px); 
1461            display: flex; 
1462            justify-content: space-between; 
1463
1464 
1465        .ptb-news__read-news .news-featured-media .legend, 
1466        .ptb-news__read-news .news-featured-media .legend * { 
1467            font-style: var(--font-style-italic, italic); 
1468            color: var(--collor-neutral-dark-to-bright-200, #525252); 
1469
1470			 
1471				.ptb-news__read-news .credit-legend .credit-legend-container { 
1472						display: flex; 
1473						justify-content: space-between; 
1474						flex-wrap: wrap; 
1475						gap: 8px; 
1476				}	 
1477 
1478        body.high-contrast-active .ptb-news__read-news .news-featured-media .legend, 
1479        body.high-contrast-active .ptb-news__read-news .news-featured-media .legend * { 
1480            color: var(--text-secondary-default, #F8F8F8); 
1481
1482 
1483        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1484            .ptb-news__read-news .news-featured-media .credits { 
1485                text-align: left; 
1486
1487
1488    </style> 
1489 
1490    <script> 
1491        /* Manipulation video*/ 
1492        let videoIsPlaying = false; 
1493 
1494        const modalForClick = document.querySelector(".ptb-news__read-news .news-featured-media .banner-video-icons"); 
1495        const video = document.querySelector(".ptb-news__read-news .news-featured-media .media-col > :first-child"); 
1496        
1497        const playIcon = modalForClick && modalForClick.querySelector(".banner-video-icon-play"); 
1498        modalForClick && modalForClick.addEventListener("click", ()=>{ 
1499            if(video.tagName === "VIDEO") { 
1500                if(videoIsPlaying) { 
1501                    video.pause(); 
1502                    playIcon.style.display = ""; 
1503                    videoIsPlaying = false; 
1504                }  
1505                else { 
1506                    video.play(); 
1507                    playIcon.style.display = "none"; 
1508                    videoIsPlaying = true; 
1509
1510            }   
1511            else if(video.tagName === "IFRAME") { 
1512                const thumbYoutube = modalForClick.querySelector(".banner-video-thumb-iframe"); 
1513                if(videoIsPlaying) { 
1514                    video.contentWindow.postMessage('{"event":"command","func":"pauseVideo"}', '*'); 
1515                    playIcon.style.display = ""; 
1516                    videoIsPlaying = false; 
1517                }  
1518                else { 
1519                    thumbYoutube && (thumbYoutube.style.display = "none"); 
1520                    video.contentWindow.postMessage('{"event":"command","func":"playVideo"}', '*'); 
1521                    playIcon.style.display = "none"; 
1522                    videoIsPlaying = true; 
1523
1524            }       
1525        }); 
1526    </script> 
1527<#--/#if --> 
1528</#macro> 
1529<#-- ################################################################################################################## --> 
1530 
1531<#-- ############# Site de Crise - Notícia - Conteúdo da notícia ###################################################### --> 
1532 
1533<#macro renderNewsContent newsInfo> 
1534 
1535    <#assign targetStr = "<div class='paragraph_separator'><span class='dot'></span><span class='dot'></span><span class='dot'></span><span class='dot'></span></div>"> 
1536    <#assign content = newsInfo.newsContent?replace("<p></p>", targetStr, 'r')> 
1537    <#assign content = content?replace("<p> </p>", targetStr, 'r')> 
1538    <#assign content = content?replace("<p></p>", targetStr, 'r')> 
1539    <#assign content = content?replace("<p>&nbsp;</p>", targetStr, 'r')> 
1540  
1541     
1542    <div class="news-content breakpoint"> 
1543      <div class="col-1-12 md-col-1-8 sm-col-1-4"> 
1544        ${content} 
1545      </div> 
1546        <div class="audio-template audio-pause audio-unmuted" style="display:none"> 
1547            <div class="audio-button-play">  
1548                <svg class="audio-play-icon" width="100%" height="100%" viewBox="0 0 91 90" fill="#008542" xmlns="http://www.w3.org/2000/svg"><circle cx="45.2903" cy="45" r="44.5" stroke="#008542"></circle> <path d="M58.9759 43.2545C60.3409 44.0179 60.3409 45.9821 58.9759 46.7455L38.7505 58.0578C37.4173 58.8034 35.7742 57.8397 35.7742 56.3122L35.7742 33.6878C35.7742 32.1603 37.4173 31.1966 38.7505 31.9422L58.9759 43.2545Z" fill="white"></path> 
1549                </svg> 
1550 
1551                <svg class="audio-pause-icon" width="100%" height="100%" viewBox="0 0 91 90" fill="#008542" xmlns="http://www.w3.org/2000/svg"><circle cx="45.2903" cy="45" r="44.5" stroke="#008542"></circle> <path d="M42.3736 30.4167H33.6236V59.5834H42.3736V30.4167Z" fill="white"></path> <path d="M48.2069 59.5834H56.9569V30.4167H48.2069V59.5834Z" fill="white"></path> 
1552                </svg> 
1553            </div> 
1554            <div class="audio-sondwave">  
1555                <svg class="audio-sondwave-desktop" width="100%" height="100%" viewBox="0 0 590 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1556                    <g clip-path="url(#clip0_2625_8152)"> 
1557                    <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1558                    <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1559                    <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1560                    <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1561                    <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1562                    <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1563                    <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1564                    <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1565                    <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1566                    <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1567                    <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1568                    <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1569                    <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1570                    <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1571                    <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1572                    <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1573                    <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1574                    <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1575                    <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1576                    <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1577                    <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1578                    <line x1="107.072" y1="8.75" x2="107.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1579                    <line x1="112.234" y1="0.75" x2="112.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1580                    <line x1="117.395" y1="7.75" x2="117.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1581                    <line x1="122.557" y1="5.75" x2="122.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1582                    <line x1="127.717" y1="11.75" x2="127.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1583                    <line x1="132.879" y1="9.75" x2="132.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1584                    <line x1="138.041" y1="9.75" x2="138.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1585                    <line x1="142.17" y1="1.75" x2="142.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1586                    <line x1="147.33" y1="12.75" x2="147.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1587                    <line x1="151.75" y1="0.75" x2="151.75" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1588                    <line x1="156.91" y1="7.75" x2="156.91" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1589                    <line x1="162.072" y1="5.75" x2="162.072" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1590                    <line x1="167.234" y1="11.75" x2="167.234" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1591                    <line x1="172.395" y1="9.75" x2="172.395" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1592                    <line x1="177.557" y1="9.75" x2="177.557" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1593                    <line x1="181.686" y1="1.75" x2="181.686" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1594                    <line x1="186.848" y1="12.75" x2="186.848" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1595                    <line x1="192.008" y1="13.75" x2="192.008" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1596                    <line x1="197.17" y1="10.75" x2="197.17" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1597                    <line x1="202.33" y1="8.75" x2="202.33" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1598                    <line x1="207.492" y1="0.75" x2="207.492" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1599                    <line x1="212.652" y1="7.75" x2="212.652" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1600                    <line x1="217.814" y1="5.75" x2="217.814" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1601                    <line x1="222.977" y1="11.75" x2="222.977" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1602                    <line x1="228.137" y1="9.75" x2="228.137" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1603                    <line x1="233.299" y1="9.75" x2="233.299" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1604                    <line x1="237.428" y1="1.75" x2="237.428" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1605                    <line x1="242.588" y1="12.75" x2="242.588" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1606                    <line x1="247.75" y1="13.75" x2="247.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1607                    <line x1="252.91" y1="10.75" x2="252.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1608                    <line x1="258.072" y1="8.75" x2="258.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1609                    <line x1="263.234" y1="0.75" x2="263.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1610                    <line x1="268.395" y1="7.75" x2="268.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1611                    <line x1="273.557" y1="5.75" x2="273.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1612                    <line x1="278.717" y1="11.75" x2="278.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1613                    <line x1="283.879" y1="9.75" x2="283.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1614                    <line x1="289.041" y1="9.75" x2="289.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1615                    <line x1="293.17" y1="1.75" x2="293.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1616                    <line x1="298.33" y1="12.75" x2="298.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1617                    <line x1="302.75" y1="10.75" x2="302.75" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1618                    <line x1="307.912" y1="8.75" x2="307.912" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1619                    <line x1="313.072" y1="0.75" x2="313.072" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1620                    <line x1="318.234" y1="7.75" x2="318.234" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1621                    <line x1="323.395" y1="5.75" x2="323.395" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1622                    <line x1="328.557" y1="11.75" x2="328.557" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1623                    <line x1="333.719" y1="9.75" x2="333.719" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1624                    <line x1="338.879" y1="9.75" x2="338.879" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1625                    <line x1="343.008" y1="1.75" x2="343.008" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1626                    <line x1="348.17" y1="12.75" x2="348.17" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1627                    <line x1="353.33" y1="13.75" x2="353.33" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1628                    <line x1="358.492" y1="10.75" x2="358.492" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1629                    <line x1="363.652" y1="8.75" x2="363.652" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1630                    <line x1="368.814" y1="0.75" x2="368.814" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1631                    <line x1="373.977" y1="7.75" x2="373.977" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1632                    <line x1="379.137" y1="5.75" x2="379.137" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1633                    <line x1="384.299" y1="11.75" x2="384.299" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1634                    <line x1="389.459" y1="9.75" x2="389.459" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1635                    <line x1="394.621" y1="9.75" x2="394.621" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1636                    <line x1="398.75" y1="1.75" x2="398.75" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1637                    <line x1="403.912" y1="12.75" x2="403.912" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1638                    <line x1="408.33" y1="10.75" x2="408.33" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1639                    <line x1="413.492" y1="8.75" x2="413.492" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1640                    <line x1="418.654" y1="0.75" x2="418.654" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1641                    <line x1="423.814" y1="7.75" x2="423.814" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1642                    <line x1="428.977" y1="5.75" x2="428.977" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1643                    <line x1="434.137" y1="11.75" x2="434.137" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1644                    <line x1="439.299" y1="9.75" x2="439.299" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1645                    <line x1="444.461" y1="9.75" x2="444.461" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1646                    <line x1="448.59" y1="1.75" x2="448.59" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1647                    <line x1="453.75" y1="12.75" x2="453.75" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1648                    <line x1="458.912" y1="13.75" x2="458.912" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1649                    <line x1="464.072" y1="10.75" x2="464.072" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1650                    <line x1="469.234" y1="8.75" x2="469.234" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1651                    <line x1="474.395" y1="0.75" x2="474.395" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1652                    <line x1="479.557" y1="7.75" x2="479.557" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1653                    <line x1="484.719" y1="5.75" x2="484.719" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1654                    <line x1="489.879" y1="11.75" x2="489.879" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1655                    <line x1="495.041" y1="9.75" x2="495.041" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1656                    <line x1="500.201" y1="9.75" x2="500.201" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1657                    <line x1="504.33" y1="1.75" x2="504.33" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1658                    <line x1="509.492" y1="12.75" x2="509.492" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1659                    <line x1="513.912" y1="10.75" x2="513.912" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1660                    <line x1="519.072" y1="8.75" x2="519.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1661                    <line x1="524.234" y1="0.75" x2="524.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1662                    <line x1="529.395" y1="7.75" x2="529.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1663                    <line x1="534.557" y1="5.75" x2="534.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1664                    <line x1="539.719" y1="11.75" x2="539.719" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1665                    <line x1="544.879" y1="9.75" x2="544.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1666                    <line x1="550.041" y1="9.75" x2="550.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1667                    <line x1="554.17" y1="1.75" x2="554.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1668                    <line x1="559.332" y1="12.75" x2="559.332" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1669                    <line x1="564.492" y1="13.75" x2="564.492" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1670                    <line x1="569.654" y1="10.75" x2="569.654" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1671                    <line x1="574.814" y1="8.75" x2="574.814" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1672                    <line x1="579.977" y1="0.75" x2="579.977" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1673                    <line x1="585.137" y1="7.75" x2="585.137" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1674                    <line x1="590.299" y1="5.75" x2="590.299" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1675                    </g> 
1676                    <defs> 
1677                    <clipPath id="clip0_2625_8152"> 
1678                    <rect width="590" height="30" fill="white"/> 
1679                    </clipPath> 
1680                    </defs> 
1681                </svg> 
1682                <svg class="audio-sondwave-mobile" width="100%" height="100%" viewBox="0 0 102 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1683                    <g clip-path="url(#clip0_2625_8922)"> 
1684                    <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1685                    <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1686                    <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1687                    <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1688                    <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1689                    <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1690                    <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1691                    <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1692                    <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1693                    <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1694                    <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1695                    <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1696                    <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1697                    <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1698                    <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1699                    <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1700                    <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1701                    <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1702                    <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1703                    <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1704                    <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1705                    </g> 
1706                    <defs> 
1707                    <clipPath id="clip0_2625_8922"> 
1708                    <rect width="102" height="30" fill="white"/> 
1709                    </clipPath> 
1710                    </defs> 
1711                </svg> 
1712            </div> 
1713            <div class="audio-time paragraph-micro-bold">  </div> 
1714            <div class="audio-button-mute"> 
1715                <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none"> 
1716                    <path d="M27.3625 9.6375C28.1993 10.4723 28.8632 11.464 29.3161 12.5558C29.7691 13.6476 30.0023 14.818 30.0023 16C30.0023 17.182 29.7691 18.3524 29.3161 19.4442C28.8632 20.536 28.1993 21.5277 27.3625 22.3625M10 21H4C3.73478 21 3.48043 20.8946 3.29289 20.7071C3.10536 20.5196 3 20.2652 3 20V12C3 11.7348 3.10536 11.4804 3.29289 11.2929C3.48043 11.1054 3.73478 11 4 11H10M10 21L19 28V4L10 11M10 21V11M23.825 13.175C24.1969 13.5455 24.492 13.9857 24.6933 14.4705C24.8947 14.9553 24.9983 15.4751 24.9983 16C24.9983 16.5249 24.8947 17.0447 24.6933 17.5295C24.492 18.0143 24.1969 18.4545 23.825 18.825" stroke="#525252" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
1717                </svg> 
1718            </div> 
1719        </div> 
1720    </div> 
1721     
1722    <style> 
1723 
1724        .ptb-news__read-news .news-content p { 
1725            margin-bottom: var(--space-md, 24px); 
1726
1727 
1728        .ptb-news__read-news .news-content strong { 
1729            font-weight: var(--font-weight-bold); 
1730
1731 
1732        .ptb-news__read-news .news-content em { 
1733            font-style: var(--font-style-italic); 
1734
1735 
1736        .ptb-news__read-news .news-content a { 
1737            font-family: var(--font-family-base); 
1738            font-style: var(--font-style-normal, normal); 
1739            font-weight: var(--font-weight-bold, 700); 
1740            font-size: var(--font-size-xs, 18px); 
1741            line-height: var(--line-height-xl, 160%); 
1742 
1743            text-decoration-line: var(--text-decoration-underline, underline); 
1744            color: #008542; 
1745
1746 
1747        body.high-contrast-active .ptb-news__read-news .news-content a { 
1748            color: #E4F7E8; 
1749
1750 
1751        .ptb-news__read-news .news-content ul { 
1752            padding-left: 27px; 
1753            margin-top: -16px; 
1754
1755 
1756        .ptb-news__read-news .news-content ul li::marker { 
1757            content: "■" !important; 
1758            color: var(--color-secondary-medium) !important; 
1759            font-size: var(--size-xxs); 
1760
1761 
1762        .ptb-news__read-news .news-content ul li { 
1763            color: var(--color-text-primary-default); 
1764            padding: 8px 0; 
1765 
1766            /*paragraph-sm-regular*/ 
1767            font-size: var(--font-size-xxs); 
1768            line-height: var(--line-height-xl); 
1769            font-weight: var(--font-weight-regular); 
1770            font-style: var(--font-style-normal); 
1771            text-decoration: var(--text-decoration-none); 
1772 
1773            margin-left: calc(-1* var(--space-sm)); 
1774            padding-left: var(--space-sm); 
1775
1776 
1777        .ptb-news__read-news .news-content ul li * { 
1778            color: var(--color-text-primary-default); 
1779            padding: 8px 0; 
1780 
1781            /*paragraph-sm-regular*/ 
1782            font-size: var(--font-size-xxs); 
1783            line-height: var(--line-height-xl); 
1784            font-weight: var(--font-weight-regular); 
1785            font-style: var(--font-style-normal); 
1786            text-decoration: var(--text-decoration-none); 
1787        }      
1788 
1789        @media screen and (min-width: 1024px) { 
1790          .ptb-news__read-news .news-content > * { 
1791            grid-column-start: 3; 
1792            grid-column-end: 11; 
1793
1794 
1795          <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" > 
1796            .ptb-news__read-news .news-content > *:has(img) { 
1797                grid-column-start: 2; 
1798                grid-column-end: 12; 
1799
1800
1801 
1802          </#if> 
1803
1804 
1805        .ptb-news__read-news .news-content figure { 
1806            margin-bottom: var(--space-sm, 16px); 
1807
1808 
1809        .ptb-news__read-news .news-content figure figcaption { 
1810            display: flex; 
1811            justify-content: space-between; 
1812            align-items: flex-start; 
1813            align-self: stretch; 
1814            margin-top: var(--space-xxs, 8px); 
1815            text-align: justify; 
1816
1817 
1818        .ptb-news__read-news .news-content figure figcaption, 
1819        .ptb-news__read-news .news-content figure figcaption * { 
1820            color: var(--color-neutral-700, #525252); 
1821            font-family: var(--font-family-base); 
1822            font-size: var(--font-size-xxxs, 14px); 
1823            font-style: var(--font-style-italic, italic); 
1824            font-weight: var(--font-weight-regular, 400); 
1825            line-height: var(--line-height-xl, 160%); 
1826
1827 
1828        body.high-contrast-active .ptb-news__read-news .news-content figure figcaption, 
1829        body.high-contrast-active .ptb-news__read-news .news-content figure figcaption * { 
1830            color: var(--text-secondary-default, #F8F8F8); 
1831
1832         
1833        .ptb-news__read-news .news-content figure figcaption br { 
1834            display: none; 
1835
1836 
1837        .ptb-news__read-news .news-content .embed-responsive { 
1838            width: 100% !important; 
1839            border-radius: var(--border-radius-md, 16px); 
1840            margin-bottom: var(--space-md, 16px); 
1841
1842 
1843        .ptb-news__read-news .news-content img { 
1844            width: 100%; 
1845					  height: auto; 
1846            object-fit: cover; 
1847            border-radius: var(--border-radius-md, 16px); 
1848
1849 
1850        <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Artigo" > 
1851            .ptb-news__read-news .news-content img  { 
1852                aspect-ratio: 16/9; 
1853
1854        </#if> 
1855 
1856        .ptb-news__read-news .news-content .paragraph_separator { 
1857            display: flex; 
1858            width: 100%; 
1859            height: fit-content; 
1860            justify-content: center; 
1861            gap: 6px; 
1862
1863 
1864        .ptb-news__read-news .news-content .paragraph_separator .dot { 
1865            height: var(--size-micro, 4px); 
1866            width: var(--size-micro, 4px); 
1867            background-color: #959595; 
1868            border-radius: 100%; 
1869            display: inline-block; 
1870
1871 
1872        .ptb-news__read-news .news-content * { 
1873            font-family: var(--font-family-base); 
1874            font-style: var(--font-style-normal, normal); 
1875            font-weight: var(--font-weight-regular, 400); 
1876            font-size: var(--font-size-xs, 18px); 
1877            line-height: var(--line-height-xl, 160%); 
1878            color: var(--color-neutral-800, #373737); 
1879
1880 
1881        body.high-contrast-active .ptb-news__read-news .news-content * { 
1882            color: var(--text-primary-default, var(--color-neutral-100)); 
1883
1884 
1885        .ptb-news__read-news .news-content h1, 
1886        .ptb-news__read-news .news-content h1 *, 
1887        .ptb-news__read-news .news-content h2, 
1888        .ptb-news__read-news .news-content h2 *, 
1889        .ptb-news__read-news .news-content h3, 
1890        .ptb-news__read-news .news-content h3 *, 
1891        .ptb-news__read-news .news-content h4, 
1892        .ptb-news__read-news .news-content h4 *, 
1893        .ptb-news__read-news .news-content h5, 
1894        .ptb-news__read-news .news-content h5 *, 
1895        .ptb-news__read-news .news-content h6, 
1896        .ptb-news__read-news .news-content h6 * { 
1897            color: var(--color-neutral-800, #373737) !important; 
1898
1899 
1900        body.high-contrast-active .ptb-news__read-news .news-content h1, 
1901        body.high-contrast-active .ptb-news__read-news .news-content h1 *, 
1902        body.high-contrast-active .ptb-news__read-news .news-content h2, 
1903        body.high-contrast-active .ptb-news__read-news .news-content h2 *, 
1904        body.high-contrast-active .ptb-news__read-news .news-content h3, 
1905        body.high-contrast-active .ptb-news__read-news .news-content h3 *, 
1906        body.high-contrast-active .ptb-news__read-news .news-content h4, 
1907        body.high-contrast-active .ptb-news__read-news .news-content h4 *, 
1908        body.high-contrast-active .ptb-news__read-news .news-content h5, 
1909        body.high-contrast-active .ptb-news__read-news .news-content h5 *, 
1910        body.high-contrast-active .ptb-news__read-news .news-content h6, 
1911        body.high-contrast-active .ptb-news__read-news .news-content h6 * { 
1912            color: var(--text-primary-default, var(--color-neutral-100)) !important; 
1913
1914 
1915        .ptb-news__read-news .news-content h1:last-child, 
1916        .ptb-news__read-news .news-content h2:last-child, 
1917        .ptb-news__read-news .news-content h3:last-child, 
1918        .ptb-news__read-news .news-content h4:last-child, 
1919        .ptb-news__read-news .news-content h5:last-child, 
1920        .ptb-news__read-news .news-content h5:last-child, 
1921        .ptb-news__read-news .news-content h6:last-child, 
1922        .ptb-news__read-news .news-content p:last-child { 
1923            padding-bottom: 0 !important; 
1924
1925 
1926        .ptb-news__read-news .news-content h1, 
1927        .ptb-news__read-news .news-content h1 * { 
1928            font-size: var(--font-size-xxl) !important; 
1929            line-height: var(--line-height-sm) !important; 
1930            font-weight: var(--font-weight-bold) !important; 
1931            font-style: var(--font-style-normal) !important; 
1932            text-decoration: var(--text-decoration-none) !important; 
1933
1934 
1935        .ptb-news__read-news .news-content h2, 
1936        .ptb-news__read-news .news-content h2 * { 
1937             
1938            font-size: var(--font-size-xl) !important; 
1939            line-height: var(--line-height-sm) !important; 
1940            font-weight: var(--font-weight-bold) !important; 
1941            font-style: var(--font-style-normal) !important; 
1942            text-decoration: var(--text-decoration-none) !important; 
1943 
1944
1945 
1946        .ptb-news__read-news .news-content h2 { 
1947            margin-top: 48px !important; 
1948           margin-bottom: var(--space-xl, 40px) !important; 
1949 
1950
1951 
1952        .ptb-news__read-news .news-content h3, 
1953        .ptb-news__read-news .news-content h3 * { 
1954            font-size: var(--font-size-lg) !important; 
1955            line-height: var(--line-height-sm) !important; 
1956            font-weight: var(--font-weight-bold) !important; 
1957            font-style: var(--font-style-normal) !important; 
1958            text-decoration: var(--text-decoration-none) !important; 
1959
1960 
1961        .ptb-news__read-news .news-content h3 { 
1962            margin-bottom: var(--space-sm, 16px) !important; 
1963            margin-top: 48px !important; 
1964
1965 
1966        .ptb-news__read-news .news-content h4, 
1967        .ptb-news__read-news .news-content h4 * { 
1968            font-size: var(--font-size-md) !important; 
1969            line-height: var(--line-height-md) !important; 
1970            font-weight: var(--font-weight-bold) !important; 
1971            font-style: var(--font-style-normal) !important; 
1972            text-decoration: var(--text-decoration-none) !important; 
1973
1974 
1975        .ptb-news__read-news .news-content h4 { 
1976            margin-top: 48px !important; 
1977            margin-bottom: var(--space-sm, 16px) !important; 
1978
1979 
1980        .ptb-news__read-news .news-content h5, 
1981        .ptb-news__read-news .news-content h5 * { 
1982            font-size: var(--font-size-sm) !important; 
1983            line-height: var(--line-height-md) !important; 
1984            font-weight: var(--font-weight-bold) !important; 
1985            font-style: var(--font-style-normal) !important; 
1986            text-decoration: var(--text-decoration-none) !important; 
1987
1988 
1989        .ptb-news__read-news .news-content h5 { 
1990            margin-top: 48px !important; 
1991            margin-bottom: var(--space-sm, 16px) !important; 
1992
1993 
1994        .ptb-news__read-news .news-content table { 
1995            border-collapse: collapse; 
1996            border: none; 
1997            width: 100% !important; 
1998            margin: 24px 0; 
1999
2000 
2001        .ptb-news__read-news .news-content table * { 
2002            font-size: var(--font-size-xxs, 16px); 
2003            font-style: var(--font-style-normal, normal); 
2004            font-weight: var(--font-weight-regular, 400); 
2005            line-height: var(--line-height-xl, 160%); 
2006            color: var(--color-neutral-800, #373737); 
2007            border: 0; 
2008
2009 
2010        body.high-contrast-active .ptb-news__read-news .news-content table * { 
2011            color: var(--text-primary-default, var(--color-neutral-100)); 
2012
2013 
2014        .ptb-news__read-news .news-content table tbody > :first-child, 
2015        .ptb-news__read-news .news-content table tbody > :first-child * { 
2016            font-weight: var(--font-weight-bold, 700); 
2017            flex: 1 0 0; 
2018            background: var(--background-Surface-level-02, #F8F8F8); 
2019
2020 
2021        body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child, 
2022        body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child * { 
2023            background: #373737; 
2024
2025         
2026        .ptb-news__read-news .news-content table tbody { 
2027            display: flex; 
2028            flex-direction: column; 
2029
2030 
2031        .ptb-news__read-news .news-content table tbody * { 
2032            display: flex; 
2033            height: 100%; 
2034            align-items: center; 
2035            flex: 1 0 0; 
2036
2037	             
2038        .ptb-news__read-news .news-content table tbody tr * {          
2039            padding: 23px var(--space-lg, 32px); 
2040        }	 
2041             
2042 
2043        .ptb-news__read-news .news-content table tbody tr { 
2044            border-radius: var(--border-radius-md); 
2045            border: var(--border-width-hairline, 1px) solid #EEEEEE; 
2046
2047 
2048        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr { 
2049            border: var(--border-width-hairline, 1px) solid #525252; 
2050
2051 
2052        .ptb-news__read-news .news-content table tbody tr:not(:last-child) { 
2053            border-bottom-left-radius: 0; 
2054            border-bottom-right-radius: 0; 
2055
2056 
2057        .ptb-news__read-news .news-content table tbody tr:not(:first-child) { 
2058            border-top-left-radius: 0; 
2059            border-top-right-radius: 0; 
2060            border-top: none; 
2061
2062 
2063        .ptb-news__read-news .news-content table tbody tr td:not(:last-child) { 
2064            border-right: var(--border-width-hairline, 1px) solid #EEEEEE; 
2065
2066 
2067        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr td:not(:last-child) { 
2068            border-right: var(--border-width-hairline, 1px) solid #525252; 
2069
2070 
2071        .ptb-news__read-news .news-content table tbody tr:first-child td { 
2072            border-top: var(--border-width-hairline, 1px) solid #EEEEEE; 
2073            border-bottom: var(--border-width-hairline, 1px) solid #EEEEEE; 
2074
2075 
2076        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr:first-child td { 
2077            border-top: var(--border-width-hairline, 1px) solid #525252; 
2078            border-bottom: var(--border-width-hairline, 1px) solid #525252; 
2079
2080 
2081        .ptb-news__read-news .news-content table tbody tr td:first-child { 
2082            padding-left: 0; 
2083
2084 
2085        .ptb-news__read-news .news-content table tbody tr td:last-child{ 
2086            padding-right: 0; 
2087
2088 
2089        .ptb-news__read-news .news-content audio { 
2090            display: none; 
2091
2092 
2093        .ptb-news__read-news .news-content .audio-template { 
2094            display: flex; 
2095            padding: var(--space-sm, 16px); 
2096            align-items: center; 
2097            gap: var(--space-md, 24px); 
2098            align-self: stretch; 
2099            border-radius: var(--border-radius-lg, 16px); 
2100            border: var(--border-width-hairline, 1px) solid var(--border-color-mid); 
2101            background: var(--background-card-default, #FFF); 
2102            max-height: var(--size-giant, 72px); 
2103            margin: 48px 0; 
2104
2105 
2106        body.high-contrast-active .ptb-news__read-news .news-content .audio-template { 
2107            background: var(--background-card-default, #010101); 
2108            border: var(--border-width-hairline, 1px) solid #525252; 
2109
2110 
2111        .ptb-news__read-news .news-content .audio-template .audio-button-play { 
2112            display: flex; 
2113            width: var(--size-xl, 40px); 
2114            height: var(--size-xl, 40px); 
2115            justify-content: center; 
2116            align-items: center; 
2117            flex-grow: 0; 
2118            flex-shrink: 0; 
2119            cursor: pointer; 
2120
2121 
2122        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon, 
2123        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon { 
2124            fill: #FFFFFF; 
2125
2126 
2127        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon path, 
2128        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon path { 
2129            fill: #010101; 
2130
2131 
2132        .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-play-icon { 
2133            display: block; 
2134
2135 
2136        .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-pause-icon { 
2137            display: none; 
2138
2139 
2140        .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-play-icon { 
2141            display: none; 
2142
2143 
2144        .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-pause-icon { 
2145            display: block; 
2146
2147 
2148        .ptb-news__read-news .news-content .audio-template .audio-sondwave { 
2149            display: flex; 
2150            flex-direction: column; 
2151            align-items: flex-start; 
2152            gap: var(--space-xxs, 8px); 
2153            flex: 1 0 0; 
2154            height: 100%; 
2155            flex-grow: 1; 
2156            flex-shrink: 1; 
2157
2158 
2159        .ptb-news__read-news .news-content .audio-template .audio-sondwave line { 
2160            stroke: #008542; 
2161
2162 
2163        .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active { 
2164            stroke: #90EE90; 
2165
2166 
2167        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line { 
2168            stroke: #E4F7E8; 
2169
2170 
2171        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active { 
2172            stroke: #666666; 
2173
2174 
2175        .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile { 
2176            display: none; 
2177
2178 
2179        .ptb-news__read-news .news-content .audio-template .audio-time { 
2180            display: flex; 
2181            flex-direction: column; 
2182            align-items: flex-start; 
2183            gap: var(--space-xxs, 8px); 
2184            flex: 1 0 0; 
2185            color: var(--text-primary-accent, #008542); 
2186            text-align: center; 
2187            font-family: var(--font-family-base); 
2188            line-height: 124% !important;  
2189            flex-grow: 0; 
2190            flex-shrink: 0; 
2191
2192 
2193        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-time {     
2194            color: var(--text-primary-accent, #E4F7E8); 
2195
2196 
2197        .ptb-news__read-news .news-content .audio-template .audio-button-mute { 
2198            width: var(--size-lg, 32px); 
2199            height: var(--size-lg, 32px); 
2200            flex-grow: 0; 
2201            flex-shrink: 0; 
2202            cursor: pointer; 
2203
2204 
2205        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-mute svg path { 
2206            stroke: white; 
2207            fill: none; 
2208
2209 
2210        .ptb-news__read-news .news-content .audio-template.audio-muted .audio-button-mute { 
2211            opacity: 0.6; 
2212
2213 
2214         
2215        @media screen and (max-width: 1023px) and (min-width: ${MAX_MOBILE_WIDTH}px) { 
2216            .ptb-news__read-news .news-content > * { 
2217                grid-column-start: 1; 
2218                grid-column-end: 9; 
2219            }        
2220
2221         
2222 
2223        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
2224 
2225            .ptb-news__read-news .news-content * { 
2226                font-size: var(--font-size-xxs, 16px); 
2227
2228 
2229             
2230            .ptb-news__read-news .news-content > * { 
2231                grid-column-start: 1; 
2232                grid-column-end: 5; 
2233
2234             
2235 
2236            .ptb-news__read-news .news-content h1, 
2237            .ptb-news__read-news .news-content h1 * { 
2238                font-size: var(--font-size-xl) !important; 
2239                line-height: var(--line-height-sm) !important; 
2240                font-weight: var(--font-weight-bold) !important; 
2241                font-style: var(--font-style-normal) !important; 
2242                text-decoration: var(--text-decoration-none) !important; 
2243 
2244
2245 
2246            .ptb-news__read-news .news-content h2, 
2247            .ptb-news__read-news .news-content h2 * { 
2248                font-size: var(--font-size-lg) !important; 
2249                line-height: var(--line-height-sm) !important; 
2250                font-weight: var(--font-weight-bold) !important; 
2251                font-style: var(--font-style-normal) !important; 
2252                text-decoration: var(--text-decoration-none) !important; 
2253
2254 
2255            .ptb-news__read-news .news-content h2 { 
2256                margin-bottom: var(--space-md, 24px) !important; 
2257
2258 
2259            .ptb-news__read-news .news-content h3, 
2260            .ptb-news__read-news .news-content h3 * { 
2261                font-size: var(--font-size-md) !important; 
2262                line-height: var(--line-height-sm) !important; 
2263                font-weight: var(--font-weight-bold) !important; 
2264                font-style: var(--font-style-normal) !important; 
2265                text-decoration: var(--text-decoration-none) !important; 
2266
2267 
2268            .ptb-news__read-news .news-content h3 { 
2269                margin-top: var(--space-xxs, 8px) !important; 
2270
2271 
2272            .ptb-news__read-news .news-content h4,  
2273            .ptb-news__read-news .news-content h4 * { 
2274                font-size: var(--font-size-sm) !important; 
2275                line-height: var(--line-height-md) !important; 
2276                font-weight: var(--font-weight-bold) !important; 
2277                font-style: var(--font-style-normal) !important; 
2278                text-decoration: var(--text-decoration-none) !important; 
2279
2280 
2281            .ptb-news__read-news .news-content h5, 
2282            .ptb-news__read-news .news-content h5 * { 
2283                font-size: var(--font-size-xs) !important; 
2284                line-height: var(--line-height-md) !important; 
2285                font-weight: var(--font-weight-bold) !important; 
2286                font-style: var(--font-style-normal) !important; 
2287                text-decoration: var(--text-decoration-none) !important; 
2288
2289 
2290            .ptb-news__read-news .news-content figure figcaption { 
2291                flex-direction: column; 
2292                gap: var(--space-xxs, 8px); 
2293
2294 
2295            .ptb-news__read-news .news-content figure figcaption, 
2296            .ptb-news__read-news .news-content figure figcaption * { 
2297                font-size: var(--font-size-micro, 12px); 
2298
2299 
2300            .ptb-news__read-news .news-content table { 
2301                margin-top: var(--space-xxs, 8px); 
2302                margin-bottom: var(--space-lg, 32px); 
2303
2304 
2305            .ptb-news__read-news .news-content table * { 
2306                font-size: var(--font-size-micro, 12px); 
2307                line-height: 19.2%; 
2308
2309 
2310            .ptb-news__read-news .news-content table tbody * { 
2311                height: 43px; 
2312                padding: var(--space-xs, 12px); 
2313
2314 
2315            .ptb-news__read-news .news-content .audio-template { 
2316                margin-top: var(--space-xxs, 8px); 
2317                margin-bottom: var(--space-lg, 32px); 
2318            }            
2319
2320 
2321        @media screen and (max-width: 500px) { 
2322             .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-desktop { 
2323                display: none; 
2324
2325 
2326            .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile { 
2327                display: block; 
2328
2329
2330    </style> 
2331 
2332    <style> 
2333.ws-carousel p { 
2334    margin: 0 !important; 
2335
2336 
2337.ws-carousel { 
2338    display: flex; 
2339    flex-direction: column; 
2340    gap: 32px; 
2341    /*max-width: 800px;*/ 
2342    margin: 72px auto; 
2343
2344 
2345.ws-carousel .ws-carousel-header { 
2346    display: flex; 
2347    justify-content: space-between; 
2348
2349 
2350.ws-carousel .ws-carousel-header .h2 { 
2351    color: var(--color-neutral-800, #373737) !important; 
2352    font-family: var(--font-family-base), "Petrobras Sans" !important; 
2353    line-height: 100% !important; 
2354    margin: 0 ! important; 
2355
2356 
2357.ws-carousel .ws-carousel-header .nav-buttons { 
2358    display: flex; 
2359    justify-content: space-between; 
2360    gap: var(--space-xxs, 8px); 
2361
2362 
2363.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.left-arrow { 
2364    transform: scaleX(-1); 
2365
2366 
2367.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow { 
2368    cursor: pointer; 
2369
2370 
2371.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.inactive { 
2372    cursor: not-allowed; 
2373
2374 
2375 
2376.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow path { 
2377    transition: stroke 0.3s ease; 
2378
2379 
2380.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.inactive path { 
2381    stroke: #bababa; 
2382
2383 
2384.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.active path { 
2385    stroke: #008542; 
2386
2387 
2388 
2389.ws-carousel .ws-carousel-body { 
2390    overflow-x: scroll; 
2391    -ms-overflow-style: none; 
2392    -scrollbar-width: none; 
2393
2394 
2395.ws-carousel .ws-carousel-body::-webkit-scrollbar { 
2396    display: none; 
2397
2398 
2399.ws-carousel .ws-carousel-body .ws-container { 
2400    display: flex; 
2401    gap: var(--space-lg, 32px); 
2402
2403 
2404.ws-carousel .ws-carousel-body .ws-container .ws-item { 
2405    min-width: 300px; 
2406    max-width: 300px; 
2407    min-height: 400px; 
2408    max-height: 400px; 
2409    position: relative; 
2410    overflow: hidden; 
2411    border-radius: var(--border-radius-lg); 
2412    /* FIXME: Há um efeito nas imagens que precisa ser devidamente aplicado */ 
2413    background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.80) 100%), url(<path-to-image>) lightgray 50% / cover no-repeat; 
2414    box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
2415
2416 
2417.ws-carousel .ws-carousel-body .ws-container .ws-item:hover { 
2418    cursor: pointer; 
2419
2420 
2421.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-image { 
2422    position: absolute; 
2423    top: 50%; 
2424    left: 50%; 
2425    transform: translate(-50%, -50%); 
2426    height: 100%; 
2427
2428 
2429.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-overlay { 
2430    position: absolute; 
2431    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 100%); 
2432    width: 100%; 
2433    height: 100%; 
2434
2435 
2436.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-label { 
2437    position: absolute; 
2438    margin: 24px 0 0 24px; 
2439    border-radius: var(--border-radius-pill, 100%); 
2440    background: linear-gradient(0deg, var(--Background-Surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 0%, var(--Background-Surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 100%), var(--Default-sup-green-water, #006B65); 
2441    box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10); 
2442    padding: 2px 12px; 
2443 
2444    color: var(--Default-sup-green-water, #006B65); 
2445    font-family: var(--font-family-base), "Petrobras Sans"; 
2446    font-size: 12px; 
2447    font-style: normal; 
2448    font-weight: 400; 
2449    line-height: 120%; 
2450 
2451    color: #006B65; 
2452
2453 
2454<#assign petrobrasSiteGroup = "" > 
2455<#assign GroupService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupService")> 
2456<#assign groups = GroupService.search(themeDisplay.getCompanyId(), "Petrobras", "", [], 0, 100)> 
2457<#list groups as group> 
2458    <#assign groupName = group.getDescriptiveName()> 
2459    <#assign groupId = group.getGroupId()> 
2460    <h1>Group Name: ${groupName}<h1> 
2461    <h2>Group ID: ${groupId}<h2> 
2462    <#if groupName == "Petrobras" || groupName == "Portal Petrobras" > 
2463        <#assign petrobrasSiteGroup = group > 
2464        <#break> 
2465    </#if> 
2466</#list> 
2467 
2468.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-content { 
2469    position: relative; 
2470    z-index: 1; 
2471    height: 100%; 
2472 
2473    display: flex; 
2474    padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px); 
2475    flex-direction: column; 
2476    justify-content: flex-end; 
2477    align-items: flex-start; 
2478    gap: var(--space-md, 24px); 
2479
2480 
2481.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-content .h5 { 
2482    overflow: hidden; 
2483    color: #FFF !important; 
2484    text-overflow: ellipsis; 
2485    margin: 0 !important; 
2486    font-family: var(--font-family-base), "Petrobras Sans" !important; 
2487
2488 
2489@media (max-width: 768px) { 
2490 
2491    .ws-carousel .ws-carousel-header .nav-buttons { 
2492        gap: 12px; 
2493
2494 
2495    .ws-carousel .ws-carousel-header .nav-buttons .nav-arrow { 
2496        width: 44px; 
2497        height: 44px; 
2498
2499 
2500    .ws-carousel .ws-carousel-header { 
2501        flex-direction: column; 
2502        align-items: flex-start; 
2503        gap: var(--space-lg, 32px); 
2504
2505 
2506    .ws-carousel .ws-carousel-header .h2 { 
2507        font-size: var(--font-size-lg, 24px) !important; 
2508
2509 
2510    .ws-carousel .ws-carousel-body .ws-container { 
2511        gap: var(--space-lg, 32px); 
2512
2513 
2514    .ws-carousel .ws-carousel-body .ws-container .ws-item { 
2515        min-width: 225px; 
2516        max-width: 225px; 
2517        background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.80) 100%), url(<path-to-image>) lightgray 50% / cover no-repeat; 
2518        box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
2519
2520
2521    </style> 
2522 
2523    <script> 
2524/* CONSTANTS */ 
2525const PUBLISHER_LOGO_INDEX = 0; 
2526const POSTER_PORTRAIT_INDEX = 1; 
2527const PUBLISHER_INDEX = 2; 
2528const COVER_INDEX = 3; 
2529const STORIES_INDEX = 4; 
2530 
2531const COVER_HAS_COVER_INDEX = 0; 
2532const COVER_TITLE_INDEX = 1; 
2533const COVER_TEXT_INDEX = 2; 
2534const COVER_IMAGE_INDEX = 3; 
2535 
2536const STORY_TITLE_INDEX = 0; 
2537const STORY_TEXT_INDEX = 1; 
2538const STORY_COLOR_THEME_INDEX = 2; 
2539const STORY_IMAGE_INDEX = 3; 
2540 
2541const DETAILS_SVG = `<svg width="91" height="21" viewBox="0 0 91 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.5 3.625H7.5C7.15482 3.625 6.875 3.90482 6.875 4.25V16.75C6.875 17.0952 7.15482 17.375 7.5 17.375H12.5C12.8452 17.375 13.125 17.0952 13.125 16.75V4.25C13.125 3.90482 12.8452 3.625 12.5 3.625Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> <path d="M17.5 14.25V6.75C17.5 6.40482 17.2202 6.125 16.875 6.125H13.75C13.4048 6.125 13.125 6.40482 13.125 6.75V14.25C13.125 14.5952 13.4048 14.875 13.75 14.875H16.875C17.2202 14.875 17.5 14.5952 17.5 14.25Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> <path d="M6.875 14.25L6.875 6.75C6.875 6.40482 6.59518 6.125 6.25 6.125H3.125C2.77982 6.125 2.5 6.40482 2.5 6.75L2.5 14.25C2.5 14.5952 2.77982 14.875 3.125 14.875H6.25C6.59518 14.875 6.875 14.5952 6.875 14.25Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> <path d="M30.376 15.5L28.36 6.74H29.56L31.06 14.132L32.704 7.196H33.784L35.428 14.132L36.928 6.74H38.08L36.064 15.5H34.828L33.208 8.672L31.588 15.5H30.376ZM39.6543 12.836C39.6783 13.252 39.7343 13.588 39.8223 13.844C39.9183 14.092 40.0503 14.284 40.2183 14.42C40.3863 14.548 40.5863 14.636 40.8183 14.684C41.0583 14.724 41.3303 14.744 41.6343 14.744C41.9143 14.744 42.1743 14.732 42.4143 14.708C42.6543 14.684 42.8863 14.656 43.1103 14.624V15.344C42.8703 15.44 42.5943 15.512 42.2823 15.56C41.9783 15.616 41.6623 15.644 41.3343 15.644C40.3343 15.644 39.6183 15.388 39.1863 14.876C38.7623 14.356 38.5503 13.584 38.5503 12.56C38.5503 11.456 38.7663 10.652 39.1983 10.148C39.6383 9.636 40.2703 9.38 41.0943 9.38C41.5183 9.38 41.8783 9.448 42.1743 9.584C42.4703 9.712 42.7103 9.908 42.8943 10.172C43.0783 10.428 43.2103 10.744 43.2903 11.12C43.3703 11.496 43.4103 11.928 43.4103 12.416V12.836H39.6543ZM42.3543 12.056C42.3543 11.424 42.2583 10.968 42.0663 10.688C41.8823 10.4 41.5543 10.256 41.0823 10.256C40.5703 10.256 40.2103 10.412 40.0023 10.724C39.7943 11.028 39.6743 11.472 39.6423 12.056H42.3543ZM44.9427 15.5V6.74H46.0467V10.1C46.2147 9.916 46.4347 9.752 46.7067 9.608C46.9867 9.456 47.3667 9.38 47.8467 9.38C48.6467 9.38 49.2387 9.652 49.6227 10.196C50.0067 10.74 50.1987 11.496 50.1987 12.464C50.1987 13.512 49.9827 14.304 49.5507 14.84C49.1267 15.376 48.5067 15.644 47.6907 15.644C47.2347 15.644 46.8707 15.572 46.5987 15.428C46.3347 15.284 46.1107 15.096 45.9267 14.864L45.8427 15.5H44.9427ZM46.0227 12.944C46.0227 13.28 46.0627 13.56 46.1427 13.784C46.2227 14.008 46.3307 14.192 46.4667 14.336C46.6107 14.472 46.7747 14.572 46.9587 14.636C47.1507 14.692 47.3547 14.72 47.5707 14.72C48.0587 14.72 48.4267 14.556 48.6747 14.228C48.9307 13.9 49.0587 13.332 49.0587 12.524C49.0587 12.092 49.0227 11.736 48.9507 11.456C48.8867 11.168 48.7907 10.94 48.6627 10.772C48.5347 10.604 48.3747 10.484 48.1827 10.412C47.9987 10.34 47.7907 10.304 47.5587 10.304C47.3347 10.304 47.1267 10.332 46.9347 10.388C46.7507 10.444 46.5907 10.54 46.4547 10.676C46.3187 10.804 46.2107 10.98 46.1307 11.204C46.0587 11.42 46.0227 11.692 46.0227 12.02V12.944ZM54.1271 14.36C54.4711 14.424 54.8431 14.48 55.2431 14.528C55.6431 14.576 56.0231 14.6 56.3831 14.6C56.6791 14.6 56.9431 14.584 57.1751 14.552C57.4071 14.512 57.6031 14.436 57.7631 14.324C57.9231 14.212 58.0431 14.056 58.1231 13.856C58.2111 13.648 58.2551 13.38 58.2551 13.052C58.2551 12.796 58.2271 12.588 58.1711 12.428C58.1151 12.26 58.0191 12.124 57.8831 12.02C57.7551 11.916 57.5831 11.832 57.3671 11.768C57.1511 11.696 56.8871 11.624 56.5751 11.552L56.2151 11.468C55.8951 11.396 55.5991 11.308 55.3271 11.204C55.0631 11.092 54.8351 10.948 54.6431 10.772C54.4511 10.588 54.2991 10.364 54.1871 10.1C54.0831 9.836 54.0311 9.508 54.0311 9.116C54.0311 8.292 54.2711 7.668 54.7511 7.244C55.2391 6.82 55.9551 6.608 56.8991 6.608C57.3391 6.608 57.7471 6.648 58.1231 6.728C58.5071 6.808 58.8431 6.904 59.1311 7.016V7.82C58.8351 7.78 58.4951 7.736 58.1111 7.688C57.7351 7.64 57.3671 7.616 57.0071 7.616C56.7351 7.616 56.4871 7.632 56.2631 7.664C56.0391 7.696 55.8431 7.764 55.6751 7.868C55.5151 7.964 55.3911 8.104 55.3031 8.288C55.2151 8.472 55.1711 8.712 55.1711 9.008C55.1711 9.264 55.2031 9.476 55.2671 9.644C55.3391 9.804 55.4431 9.936 55.5791 10.04C55.7231 10.144 55.8951 10.232 56.0951 10.304C56.3031 10.368 56.5471 10.428 56.8271 10.484L57.2111 10.568C57.5791 10.648 57.8991 10.748 58.1711 10.868C58.4511 10.98 58.6831 11.128 58.8671 11.312C59.0511 11.496 59.1871 11.724 59.2751 11.996C59.3711 12.268 59.4191 12.6 59.4191 12.992C59.4191 13.464 59.3511 13.868 59.2151 14.204C59.0871 14.54 58.8991 14.816 58.6511 15.032C58.4031 15.24 58.0991 15.392 57.7391 15.488C57.3791 15.584 56.9711 15.632 56.5151 15.632C56.0031 15.632 55.5471 15.584 55.1471 15.488C54.7471 15.384 54.4071 15.276 54.1271 15.164V14.36ZM62.3096 13.52C62.3096 14.016 62.4056 14.348 62.5976 14.516C62.7896 14.676 63.0776 14.756 63.4616 14.756C63.7496 14.756 64.0096 14.744 64.2416 14.72V15.44C64.0736 15.488 63.8896 15.528 63.6896 15.56C63.4896 15.6 63.2776 15.62 63.0536 15.62C62.4056 15.62 61.9336 15.46 61.6376 15.14C61.3496 14.82 61.2056 14.296 61.2056 13.568V10.376H60.1376V9.74L61.2056 9.536V7.7H62.3096V9.524H64.1336V10.376H62.3096V13.52ZM66.6991 14.24C66.8351 14.416 66.9951 14.54 67.1791 14.612C67.3711 14.684 67.5951 14.72 67.8511 14.72C68.0991 14.72 68.3151 14.684 68.4991 14.612C68.6911 14.54 68.8471 14.42 68.9671 14.252C69.0951 14.076 69.1911 13.848 69.2551 13.568C69.3191 13.288 69.3511 12.936 69.3511 12.512C69.3511 12.096 69.3191 11.748 69.2551 11.468C69.1911 11.18 69.0911 10.952 68.9551 10.784C68.8271 10.608 68.6671 10.484 68.4751 10.412C68.2831 10.34 68.0631 10.304 67.8151 10.304C67.5671 10.304 67.3471 10.34 67.1551 10.412C66.9711 10.484 66.8151 10.604 66.6871 10.772C66.5671 10.94 66.4751 11.168 66.4111 11.456C66.3471 11.736 66.3151 12.084 66.3151 12.5C66.3151 12.924 66.3471 13.276 66.4111 13.556C66.4751 13.836 66.5711 14.064 66.6991 14.24ZM67.8271 15.644C66.9311 15.644 66.2671 15.384 65.8351 14.864C65.4031 14.344 65.1871 13.564 65.1871 12.524C65.1871 11.476 65.4031 10.692 65.8351 10.172C66.2751 9.644 66.9471 9.38 67.8511 9.38C68.7471 9.38 69.4111 9.64 69.8431 10.16C70.2751 10.68 70.4911 11.46 70.4911 12.5C70.4911 13.548 70.2711 14.336 69.8311 14.864C69.3991 15.384 68.7311 15.644 67.8271 15.644ZM72.0247 15.5V9.524H72.9127L73.0327 10.28C73.4407 9.712 74.0447 9.428 74.8447 9.428C74.9727 9.428 75.1047 9.44 75.2407 9.464V10.376C75.1767 10.368 75.1167 10.364 75.0607 10.364C75.0047 10.364 74.9487 10.364 74.8927 10.364C74.3007 10.364 73.8567 10.504 73.5607 10.784C73.2727 11.064 73.1287 11.516 73.1287 12.14V15.5H72.0247ZM76.431 15.5V9.524H77.535V15.5H76.431ZM76.995 8.3C76.763 8.3 76.591 8.24 76.479 8.12C76.367 8 76.311 7.832 76.311 7.616C76.311 7.144 76.539 6.908 76.995 6.908C77.227 6.908 77.395 6.968 77.499 7.088C77.611 7.208 77.667 7.376 77.667 7.592C77.667 8.064 77.443 8.3 76.995 8.3ZM80.1778 12.836C80.2018 13.252 80.2578 13.588 80.3458 13.844C80.4418 14.092 80.5738 14.284 80.7418 14.42C80.9098 14.548 81.1098 14.636 81.3418 14.684C81.5818 14.724 81.8538 14.744 82.1578 14.744C82.4378 14.744 82.6978 14.732 82.9378 14.708C83.1778 14.684 83.4098 14.656 83.6338 14.624V15.344C83.3938 15.44 83.1178 15.512 82.8058 15.56C82.5018 15.616 82.1858 15.644 81.8578 15.644C80.8578 15.644 80.1418 15.388 79.7098 14.876C79.2858 14.356 79.0738 13.584 79.0738 12.56C79.0738 11.456 79.2898 10.652 79.7218 10.148C80.1618 9.636 80.7938 9.38 81.6178 9.38C82.0418 9.38 82.4018 9.448 82.6978 9.584C82.9938 9.712 83.2338 9.908 83.4178 10.172C83.6018 10.428 83.7338 10.744 83.8138 11.12C83.8938 11.496 83.9338 11.928 83.9338 12.416V12.836H80.1778ZM82.8778 12.056C82.8778 11.424 82.7818 10.968 82.5898 10.688C82.4058 10.4 82.0778 10.256 81.6058 10.256C81.0938 10.256 80.7338 10.412 80.5258 10.724C80.3178 11.028 80.1978 11.472 80.1658 12.056H82.8778ZM85.2741 14.612C85.5141 14.644 85.7901 14.672 86.1021 14.696C86.4221 14.72 86.7341 14.732 87.0381 14.732C87.2781 14.732 87.4861 14.724 87.6621 14.708C87.8461 14.684 87.9941 14.64 88.1061 14.576C88.2181 14.504 88.3021 14.408 88.3581 14.288C88.4141 14.168 88.4421 14.012 88.4421 13.82C88.4421 13.66 88.4221 13.532 88.3821 13.436C88.3421 13.332 88.2741 13.248 88.1781 13.184C88.0901 13.12 87.9661 13.072 87.8061 13.04C87.6541 13 87.4621 12.964 87.2301 12.932L86.8341 12.872C86.6181 12.84 86.4101 12.792 86.2101 12.728C86.0101 12.656 85.8341 12.56 85.6821 12.44C85.5381 12.312 85.4181 12.148 85.3221 11.948C85.2341 11.74 85.1901 11.48 85.1901 11.168C85.1901 10.848 85.2421 10.576 85.3461 10.352C85.4501 10.128 85.5981 9.944 85.7901 9.8C85.9821 9.656 86.2101 9.552 86.4741 9.488C86.7461 9.424 87.0461 9.392 87.3741 9.392C87.7341 9.392 88.0621 9.42 88.3581 9.476C88.6621 9.524 88.9501 9.592 89.2221 9.68V10.388C88.9901 10.364 88.7301 10.34 88.4421 10.316C88.1621 10.292 87.8701 10.28 87.5661 10.28C87.3581 10.28 87.1701 10.288 87.0021 10.304C86.8341 10.32 86.6901 10.36 86.5701 10.424C86.4501 10.48 86.3541 10.564 86.2821 10.676C86.2181 10.78 86.1861 10.928 86.1861 11.12C86.1861 11.272 86.2061 11.396 86.2461 11.492C86.2941 11.58 86.3621 11.656 86.4501 11.72C86.5461 11.776 86.6661 11.82 86.8101 11.852C86.9541 11.884 87.1301 11.916 87.3381 11.948L87.6621 11.996C87.9421 12.036 88.1941 12.092 88.4181 12.164C88.6421 12.236 88.8301 12.34 88.9821 12.476C89.1421 12.604 89.2621 12.772 89.3421 12.98C89.4301 13.188 89.4741 13.452 89.4741 13.772C89.4741 14.436 89.2861 14.912 88.9101 15.2C88.5341 15.488 88.0141 15.632 87.3501 15.632C87.1501 15.632 86.9501 15.62 86.7501 15.596C86.5501 15.58 86.3581 15.556 86.1741 15.524C85.9901 15.492 85.8181 15.46 85.6581 15.428C85.5061 15.388 85.3781 15.352 85.2741 15.32V14.612Z" fill="white"/> </svg`; 
2542 
2543/* Função para criar formatar object*/ 
2544const createStoryObject = (objectContent) => { 
2545  const hasCover = Boolean( 
2546    objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
2547      COVER_HAS_COVER_INDEX 
2548    ].contentFieldValue.data 
2549  ); 
2550  return { 
2551    category: objectContent.taxonomyCategoryBriefs[0].taxonomyCategoryName, 
2552    publisherLogoSrc: 
2553      objectContent.contentFields[PUBLISHER_LOGO_INDEX].contentFieldValue.data, 
2554    posterPortraitSrc: 
2555      objectContent.contentFields[POSTER_PORTRAIT_INDEX].contentFieldValue.data, 
2556    publisher: 
2557      objectContent.contentFields[PUBLISHER_INDEX].contentFieldValue.data, 
2558    cover: { 
2559      image: Boolean( 
2560        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
2561          COVER_HAS_COVER_INDEX 
2562        ].contentFieldValue.data 
2563      ), 
2564      title: 
2565        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
2566          COVER_TITLE_INDEX 
2567        ].contentFieldValue.data, 
2568      description: 
2569        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
2570          COVER_TEXT_INDEX 
2571        ].contentFieldValue.data, 
2572      imageUrl: 
2573        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
2574          COVER_IMAGE_INDEX 
2575        ].contentFieldValue.image?.contentUrl || null, 
2576      imageAlt: 
2577        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
2578          COVER_IMAGE_INDEX 
2579        ].contentFieldValue.image?.description || null, 
2580    }, 
2581    stories: objectContent.contentFields 
2582      .slice(STORIES_INDEX) 
2583      .map((contentField) => { 
2584        return { 
2585          title: 
2586            contentField.nestedContentFields[STORY_TITLE_INDEX] 
2587              .contentFieldValue.data, 
2588          description: 
2589            contentField.nestedContentFields[STORY_TEXT_INDEX].contentFieldValue 
2590              .data, 
2591          colorTheme: 
2592            contentField.nestedContentFields[STORY_COLOR_THEME_INDEX] 
2593              .contentFieldValue.value, 
2594          imageUrl: 
2595            contentField.nestedContentFields[STORY_IMAGE_INDEX] 
2596              .contentFieldValue.image.contentUrl, 
2597          imageAlt: 
2598            contentField.nestedContentFields[STORY_IMAGE_INDEX] 
2599              .contentFieldValue.image.description, 
2600        }; 
2601      }), 
2602  }; 
2603}; 
2604 
2605/* Renderiza os cards */ 
2606const storyCardFrom = (storyData) => { 
2607  const storyCard = document.createElement("div"); 
2608  storyCard.classList.add("ws-item"); 
2609 
2610  storyCard.addEventListener("click", (e) => { 
2611    const storyCardElement = e.target.closest(".ws-item"); 
2612    console.log( 
2613      "wsContents[storyCardElement.dataset.index].content", 
2614      storyData 
2615    ); 
2616    Liferay.fire("web-stories-modal-open", { webStoryItem: storyData }); 
2617  }); 
2618 
2619  const image = document.createElement("img"); 
2620  image.classList.add("ws-image"); 
2621  image.src = storyData.cover.imageUrl 
2622    ? storyData.cover.imageUrl 
2623    : storyData.stories[0].imageUrl; 
2624  image.alt = storyData.cover.imageAlt 
2625    ? storyData.cover.imageAlt 
2626    : storyData.stories[0].imageAlt; 
2627 
2628  storyCard.appendChild(image); 
2629 
2630  const overlay = document.createElement("div"); 
2631  overlay.classList.add("ws-overlay"); 
2632  storyCard.appendChild(overlay); 
2633 
2634  const label = document.createElement("span"); 
2635  label.classList.add("ws-label"); 
2636  label.dataset.category = storyData.category; 
2637  label.classList.add((storyData.category || "Categoria").toLowerCase().replace(" ", '-')); 
2638  label.textContent = storyData.category || "Categoria"; 
2639  storyCard.appendChild(label); 
2640 
2641  const content = document.createElement("div"); 
2642  content.classList.add("ws-content"); 
2643 
2644  const title = document.createElement("h5"); 
2645  title.classList.add("h5") 
2646  title.textContent = storyData.cover.title || "Título do Card"; 
2647  content.appendChild(title); 
2648 
2649  const details = document.createElement("div"); 
2650  details.classList.add("ws-details"); 
2651 
2652  details.innerHTML = DETAILS_SVG || `<svg>...</svg>`; 
2653  content.appendChild(details); 
2654 
2655  storyCard.appendChild(content); 
2656 
2657  return storyCard; 
2658}; 
2659 
2660/* Renderiza os itens */ 
2661const renderItems = (carouselId, webStoriesObjects) => { 
2662  const carouselElement = document.querySelector(`#` + carouselId); 
2663  const carouselContainer = carouselElement.querySelector(`.ws-container`); 
2664  const carouselBody = carouselElement.querySelector(".ws-carousel-body"); 
2665  const navButtons = carouselElement.querySelector(".nav-buttons"); 
2666  const leftArrow = navButtons.querySelector(".left-arrow"); 
2667  const rightArrow = navButtons.querySelector(".right-arrow"); 
2668 
2669  // Adiciona Cards 
2670  webStoriesObjects.forEach((storyObject, index) => { 
2671    const storyCard = storyCardFrom(storyObject); 
2672    storyCard.dataset.index = index; 
2673    carouselContainer.appendChild(storyCard); 
2674  }); 
2675 
2676  // Altera o Layout 
2677  function updateLayout() { 
2678    if (webStoriesObjects.length < 3) { 
2679      if (window.matchMedia("(min-width: 769px)").matches) { 
2680        carouselContainer.style.justifyContent = "center"; 
2681        navButtons.style.display = "none"; 
2682      } else { 
2683        carouselContainer.style.justifyContent = "flex-start"; 
2684        navButtons.style.display = "flex"; 
2685
2686    } else { 
2687      carouselContainer.style.justifyContent = ""; 
2688      carouselContainer.style.gap = window.matchMedia("(max-width: 768px)") 
2689        .matches 
2690        ? "32px" 
2691        : "16px"; 
2692      navButtons.style.display = ""; 
2693
2694
2695  updateLayout(); 
2696  window.addEventListener("resize", updateLayout); 
2697 
2698  // Configura Scroll das setas 
2699  leftArrow.addEventListener("click", () => { 
2700    const items = carouselBody.querySelectorAll(".ws-item"); 
2701    const gap = window.matchMedia("(max-width: 768px)").matches ? 32 : 16; 
2702    const pageSize = items[0].offsetWidth + gap; 
2703    const currentScroll = carouselBody.scrollLeft; 
2704    const currentPageReal = carouselBody.scrollLeft / pageSize; 
2705    const currentPage = parseInt(currentPageReal); 
2706    const rest = currentPage - currentPageReal; 
2707    const nextPage = rest !== 0 ? currentPage : currentPage - 1; 
2708    carouselBody.scrollLeft = nextPage * pageSize; 
2709  }); 
2710 
2711  rightArrow.addEventListener("click", () => { 
2712    const gap = window.matchMedia("(max-width: 768px)").matches ? 32 : 16; 
2713    const items = carouselBody.querySelectorAll(".ws-item"); 
2714    carouselBody.scrollLeft += items[0].offsetWidth + gap; 
2715  }); 
2716 
2717  const updateArrows = () => { 
2718    const scrollLeft = carouselBody.scrollLeft; 
2719    const maxScrollLeft = carouselBody.scrollWidth - carouselBody.clientWidth; 
2720 
2721    // Regra 1: A seta esquerda fica cinza se scrollLeft for 0 
2722    if (scrollLeft === 0) { 
2723      leftArrow.classList.remove("active"); 
2724      leftArrow.classList.add("inactive"); 
2725    } else { 
2726      leftArrow.classList.remove("inactive"); 
2727      leftArrow.classList.add("active"); 
2728
2729 
2730    // Regra 2: A seta direita fica cinza se o scroll for máximo 
2731    if (scrollLeft >= maxScrollLeft) { 
2732      rightArrow.classList.remove("active"); 
2733      rightArrow.classList.add("inactive"); 
2734    } else { 
2735      rightArrow.classList.remove("inactive"); 
2736      rightArrow.classList.add("active"); 
2737
2738  }; 
2739 
2740  carouselBody.addEventListener("scroll", updateArrows); 
2741}; 
2742 
2743/* Fetch Things */ 
2744async function getWebStoriesDataSectionFromNews(webContentId) { 
2745  const ID_INDEX = 0; 
2746  const WEB_STORIES_STRUCTURED_CONTENT_INDEX_START_AT = 2; 
2747  const urlToFetchToGetWebStoriesGroup = 
2748    `/o/headless-delivery/v1.0/structured-contents/` + 
2749    webContentId + 
2750    `?fields=contentFields`; 
2751 
2752  return fetch(urlToFetchToGetWebStoriesGroup, { 
2753    method: "GET", 
2754    headers: { 
2755      accept: "application/json", 
2756      "x-csrf-token": Liferay.authToken, 
2757    }, 
2758  }) 
2759    .then((response) => { 
2760      if (response.status === 200) { 
2761        return response.json(); 
2762      } else { 
2763        throw new Error("Erro interno. Por favor tente mais tarde."); 
2764
2765    }) 
2766    .then((data) => { 
2767      const webStoriesGroups = Array.from(data.contentFields).filter( 
2768        (contentField) => contentField.label === "Web Stories" 
2769      ); 
2770 
2771      const webStoriesDataMapped = webStoriesGroups.map((webStoryGroup) => { 
2772        const webStoryGroupId = 
2773          webStoryGroup.nestedContentFields[ID_INDEX].contentFieldValue.data; 
2774        const webStoriesStrucutredContentNodes = 
2775          webStoryGroup.nestedContentFields.slice( 
2776            WEB_STORIES_STRUCTURED_CONTENT_INDEX_START_AT 
2777          ); 
2778        const webStoriesIds = Array.from(webStoriesStrucutredContentNodes).map( 
2779          (webStoryNode) => { 
2780            const webStoryId = 
2781              webStoryNode.contentFieldValue.structuredContentLink.id; 
2782            return { 
2783              webStoryId: webStoryId, 
2784            }; 
2785
2786        ); 
2787        return { 
2788          webStoryGroupId: webStoryGroupId, 
2789          webStoriesIds: webStoriesIds, 
2790        }; 
2791      }); 
2792 
2793      return webStoriesDataMapped; 
2794    }) 
2795    .then((webStoriesDataMapped) => { 
2796      // Mapeia os dados recebidos 
2797      return Promise.all( 
2798        webStoriesDataMapped.map(async (group) => { 
2799          const updatedWebStoriesIds = await Promise.all( 
2800            group.webStoriesIds.map(async (story) => { 
2801              // Faz o fetch para obter os dados do webStoryId 
2802              const response = await fetch( 
2803                `/o/headless-delivery/v1.0/structured-contents/` + 
2804                  story.webStoryId, 
2805
2806                  method: "GET", 
2807                  headers: { 
2808                    accept: "application/json", 
2809                    "x-csrf-token": Liferay.authToken, 
2810                  }, 
2811
2812              ); 
2813              if (!response.ok) { 
2814                throw new Error( 
2815                  `Erro ao buscar dados para webStoryId` + story.webStoryId 
2816                ); 
2817
2818              const webStoryData = await response.json(); 
2819              return { webStoryData: webStoryData }; 
2820            }) 
2821          ); 
2822 
2823          // Retorna o objeto transformado 
2824          return { 
2825            webStoryGroupId: group.webStoryGroupId, 
2826            webStoriesData: updatedWebStoriesIds, 
2827          }; 
2828        }) 
2829      ); 
2830    }) 
2831    .then((webStoriesDataFetched) => { 
2832      return webStoriesDataFetched.map((data) => { 
2833        return { 
2834          webStoryGroupId: data.webStoryGroupId, 
2835          webStoryObjects: data.webStoriesData.map((data) => 
2836            createStoryObject(data.webStoryData) 
2837          ), 
2838        }; 
2839      }); 
2840    }) 
2841    .catch((error) => { 
2842      console.error("Erro ao buscar coleção: ", error); 
2843    }); 
2844
2845 
2846async function getWebStoriesData(webStoriesIds) { 
2847  // Mapeia os IDs para criar um array de promessas 
2848  const fetchPromises = webStoriesIds.map((webStoryId) => { 
2849    //const urlToFetch = `/o/headless-delivery/v1.0/structured-contents/` + webStoryId + `?fields=contentFields`; 
2850    const urlToFetch = 
2851      `/o/headless-delivery/v1.0/structured-contents/` + 
2852      webStoryId + 
2853      `?fields=contentFields%2CtaxonomyCategoryBriefs`; 
2854    return fetch(urlToFetch, { 
2855      method: "GET", 
2856      headers: { 
2857        accept: "application/json", 
2858        "x-csrf-token": Liferay.authToken, 
2859      }, 
2860    }).then((response) => { 
2861      if (!response.ok) { 
2862        throw new Error(`Erro ao buscar ID`); 
2863
2864      return response.json(); // Transforma a resposta em JSON 
2865    }); 
2866  }); 
2867 
2868  // Aguarda todas as promessas e preserva a ordem 
2869  try { 
2870    const results = await Promise.all(fetchPromises); 
2871    return results; // Retorna os resultados em ordem 
2872  } catch (error) { 
2873    console.error("Erro ao buscar Web Stories:", error); 
2874    throw error; // Relança o erro para tratamento posterior 
2875
2876
2877 
2878async function fetchAndLogWebStories() { 
2879  const webStoriesCarouselDataList = await getWebStoriesDataSectionFromNews( 
2880    "${newsJournalArticle.getResourcePrimKey()}" 
2881  ); 
2882 
2883  webStoriesCarouselDataList.forEach((webStoriesCarouselData) => { 
2884    renderItems( 
2885      webStoriesCarouselData.webStoryGroupId, 
2886      webStoriesCarouselData.webStoryObjects 
2887    ); 
2888  }); 
2889
2890 
2891fetchAndLogWebStories(); 
2892 
2893</script> 
2894 
2895    <script> 
2896        <#assign configureLinkTab = "configureLinkTab_" + randomNumber(5)> 
2897 
2898        function ${configureLinkTab}() { 
2899            const root = document.querySelector(".ptb-news__read-news"); 
2900            const newsContentElement = root.querySelector(".news-content div:first-child"); 
2901            const pList = newsContentElement.querySelectorAll("p"); 
2902            pList.forEach((pElement) => { 
2903                const cont = pElement.innerHTML.trim(); 
2904                if (cont == "" || cont == "&nbsp;") { 
2905                    newsContentElement?.removeChild(pElement); 
2906
2907            }); 
2908
2909 
2910        ${configureLinkTab}(); 
2911 
2912        <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" > 
2913 
2914            function resizeMediaInfographic() { 
2915                if (window.innerWidth > 1024) { 
2916                    const contents = document.querySelectorAll(".ptb-news__read-news .news-content p"); 
2917                    contents.forEach((content) => {        
2918                        content.querySelector("img") && (content.style.gridColumn = "2 / 12"); 
2919                    }); 
2920
2921                else { 
2922                    const contents = document.querySelectorAll(".ptb-news__read-news .news-content p"); 
2923                    contents.forEach((content) => {        
2924                        content.querySelector("img") && (content.style.gridColumn = ""); 
2925                    }); 
2926 
2927                }           
2928
2929            resizeMediaInfographic(); 
2930        </#if> 
2931 
2932         
2933 
2934        document.addEventListener("DOMContentLoaded", () => { 
2935            const headers = document.querySelectorAll(".ptb-news__read-news .news-content h1, .ptb-news__read-news .news-content h2, .ptb-news__read-news .news-content h3, .ptb-news__read-news .news-content h4"); 
2936 
2937            headers.forEach((header) => { 
2938                 
2939                const currentLevel = parseInt(header.tagName.charAt(1)); 
2940 
2941                if (currentLevel >= 1 && currentLevel <= 5) { 
2942                     
2943                    const newLevel = currentLevel + 1; 
2944                    const newTagName = "h" + newLevel; 
2945 
2946                    // Criar a nova tag e transferir o conteúdo 
2947                    const newHeader = document.createElement(newTagName); 
2948                    newHeader.innerHTML = header.innerHTML; 
2949 
2950                    // Substituir a tag antiga pela nova 
2951                    header.parentNode.replaceChild(newHeader, header); 
2952
2953            }); 
2954             
2955            <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) /> 
2956                 
2957            <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" > 
2958                resizeMediaInfographic(); 
2959                window.addEventListener("resize", resizeMediaInfographic); 
2960            </#if>           
2961        }); 
2962 
2963        AUI().ready(()=>{ 
2964            const audiosContainer = document.querySelectorAll(".ptb-news__read-news .news-content .audio-content"); 
2965            const audioTemplate = document.querySelector(".ptb-news__read-news .news-content .audio-template"); 
2966 
2967            audiosContainer.forEach((audioContainer)=>{ 
2968                 
2969                const audio = audioContainer.querySelector("audio"); 
2970                const audioInterface = audioTemplate.cloneNode(true); 
2971 
2972                const sondwave = audioInterface.querySelector(".audio-sondwave"); 
2973                const linesDesktop = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-desktop line"); 
2974                const linesMobile = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-mobile line"); 
2975                 
2976                const playPauseButtonAudioInterface = audioInterface.querySelector(".audio-button-play"); 
2977 
2978                playPauseButtonAudioInterface.addEventListener("click", ()=>{ 
2979                    if(audioInterface.classList.contains("audio-play")) { 
2980                        audioInterface.classList.replace("audio-play", "audio-pause"); 
2981                        audio.pause(); 
2982
2983                    else { 
2984 
2985                        audiosContainer.forEach((audioContainer)=>{ 
2986                            const otherAudio = audioContainer.querySelector("audio"); 
2987                            const otherAudioInterface = audioContainer.querySelector(".audio-button-play"); 
2988                            !otherAudio.paused && otherAudioInterface.click(); 
2989                        }); 
2990 
2991                        audioInterface.classList.replace("audio-pause", "audio-play"); 
2992                        audio.play(); 
2993
2994                }); 
2995 
2996                const audioMuteButton = audioInterface.querySelector(".audio-button-mute"); 
2997 
2998                audioMuteButton.addEventListener("click", ()=>{ 
2999                    if(audioInterface.classList.contains("audio-unmuted")) { 
3000                        audioInterface.classList.replace("audio-unmuted", "audio-muted"); 
3001                        audio.muted = true; 
3002
3003                    else { 
3004                        audioInterface.classList.replace("audio-muted", "audio-unmuted"); 
3005                        audio.muted = false; 
3006
3007                }); 
3008 
3009                const audioTime = audioInterface.querySelector(".audio-time"); 
3010                audioTime.textContent = Math.floor(audio.duration / 60) + ":" + Math.floor(audio.duration % 60); 
3011 
3012 
3013                audio.addEventListener("timeupdate", ()=>{ 
3014                    let minutes = Math.floor((audio.duration - audio.currentTime) / 60);  
3015                    let seconds = Math.floor((audio.duration - audio.currentTime) % 60); 
3016 
3017                    minutes = minutes < 10? "0" + minutes : minutes; 
3018                    seconds = seconds < 10? "0" + seconds : seconds; 
3019                     
3020                    audioTime.textContent = minutes + ":" + seconds; 
3021 
3022                    const progress = (audio.currentTime / audio.duration) * 100; 
3023 
3024                    linesDesktop.forEach(function(line, index) { 
3025                        const lineProgress = (index / linesDesktop.length) * 100; 
3026                        if (progress >= lineProgress) { 
3027                            !line.classList.contains("line-active") && line.classList.add("line-active"); 
3028                        } else { 
3029                            line.classList.contains("line-active") && line.classList.remove("line-active"); 
3030
3031                    }); 
3032 
3033                    linesMobile.forEach(function(line, index) { 
3034                        const lineProgress = (index / linesMobile.length) * 100; 
3035                        if (progress >= lineProgress) { 
3036                            !line.classList.contains("line-active") && line.classList.add("line-active"); 
3037                        } else { 
3038                            line.classList.contains("line-active") && line.classList.remove("line-active"); 
3039
3040                    });                    
3041                }); 
3042 
3043                
3044                sondwave.addEventListener("click", (event)=>{                     
3045                    const distanceLeft = (event.clientX - sondwave.getBoundingClientRect().left)/sondwave.offsetWidth; 
3046                    audio.currentTime = audio.duration * distanceLeft; 
3047                }); 
3048                
3049                audioInterface.style.display = ""; 
3050                audioContainer.appendChild(audioInterface); 
3051            }); 
3052 
3053        }); 
3054    </script> 
3055</#macro> 
3056 
3057<#macro renderShareAndCopyNews> 
3058    <#--        <div class="share_news_container">--> 
3059        <div class="social-media-container"> 
3060 
3061            <#assign emailMsg = "Veja o conteúdo do post no link "> 
3062            <#if locale == "en_US"> 
3063                <#assign emailMsg = "See the content of the post in the link "> 
3064            </#if> 
3065            <a class="social-media-share" href="mailto:?subject=${newsInfo.mainHeadlineOfTheNews}&amp;body=${emailMsg}${newsInfo.url}" 
3066                target="_blank"> 
3067                <svg class="email" width="37" height="36" viewBox="0 0 37 36" fill="none" 
3068                        xmlns="http://www.w3.org/2000/svg"> 
3069                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
3070                    <path d="M24.9231 12H11.0769C10.9239 12 10.7772 12.0579 10.669 12.1611C10.5608 12.2642 10.5 12.4041 10.5 12.55V21.9C10.5 22.1917 10.6216 22.4715 10.838 22.6778C11.0543 22.8841 11.3478 23 11.6538 23H24.3462C24.6522 23 24.9457 22.8841 25.162 22.6778C25.3784 22.4715 25.5 22.1917 25.5 21.9V12.55C25.5 12.4041 25.4392 12.2642 25.331 12.1611C25.2228 12.0579 25.0761 12 24.9231 12ZM24.3462 21.9H11.6538V13.8012L17.6106 19.0056C17.7169 19.0984 17.8559 19.1498 18 19.1498C18.1441 19.1498 18.2831 19.0984 18.3894 19.0056L24.3462 13.8012V21.9Z" 
3071                            fill="#008542"/> 
3072                </svg> 
3073                <span >send e-mail</span> 
3074            </a> 
3075 
3076            <a class="social-media-share"  href="https://www.facebook.com/sharer/sharer.php?u=${newsInfo.url}" target="_blank"> 
3077                <svg class="facebook" width="37" height="36" viewBox="0 0 37 36" fill="none" 
3078                        xmlns="http://www.w3.org/2000/svg"> 
3079                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
3080                    <path d="M17.5417 24H20.0341V18.1855H21.9697L22.2879 15.875H20.0341V14.2754C20.0341 13.9199 20.0871 13.6406 20.2462 13.4629C20.4053 13.2598 20.75 13.1582 21.2273 13.1582H22.5V11.1016C22.0227 11.0508 21.3864 11 20.6439 11C19.6894 11 18.947 11.2793 18.3902 11.8125C17.8068 12.3457 17.5417 13.082 17.5417 14.0469V15.875H15.5V18.1855H17.5417V24Z" 
3081                            fill="#008542"/> 
3082                </svg> 
3083                    <span >Facebook</span> 
3084            </a> 
3085 
3086            <#assign mobileShareButtonId = "mobile-share-" + randomNumber(5)> 
3087            <div class="mobile-share" id="${mobileShareButtonId}"> 
3088                <svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3089                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
3090                    <path d="M13.8923 20.5914C15.2136 20.5914 16.2847 19.5151 16.2847 18.1875C16.2847 16.8599 15.2136 15.7837 13.8923 15.7837C12.5711 15.7837 11.5 16.8599 11.5 18.1875C11.5 19.5151 12.5711 20.5914 13.8923 20.5914Z" 
3091                            fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
3092                    <path d="M22.2654 26.0001C23.5866 26.0001 24.6577 24.9238 24.6577 23.5962C24.6577 22.2686 23.5866 21.1924 22.2654 21.1924C20.9441 21.1924 19.873 22.2686 19.873 23.5962C19.873 24.9238 20.9441 26.0001 22.2654 26.0001Z" 
3093                            fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
3094                    <path d="M22.2654 15.1827C23.5866 15.1827 24.6577 14.1064 24.6577 12.7788C24.6577 11.4512 23.5866 10.375 22.2654 10.375C20.9441 10.375 19.873 11.4512 19.873 12.7788C19.873 14.1064 20.9441 15.1827 22.2654 15.1827Z" 
3095                            fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
3096                    <path d="M20.2546 14.0784L15.9036 16.8879" stroke="#008542" stroke-linecap="round" 
3097                            stroke-linejoin="round"/> 
3098                    <path d="M15.9036 19.4871L20.2546 22.2966" stroke="#008542" stroke-linecap="round" 
3099                            stroke-linejoin="round"/> 
3100                </svg> 
3101            </div> 
3102 
3103            <a class="social-media-share"  href="https://twitter.com/intent/tweet?url=${newsInfo.url}" target="_blank" data-size="large"> 
3104                <svg class="twitter" width="37" height="36" viewBox="0 0 37 36" fill="none" 
3105                        xmlns="http://www.w3.org/2000/svg"> 
3106                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
3107                    <path d="M22.7542 12H24.7809L20.3542 17.0933 25.5809 24H21.4742L18.2741 19.8133 14.5941 24H12.5674L17.3141 18.56 12.3008 12H16.5141L19.4208 15.84 22.7542 12ZM22.0342 22.7733H23.1542L15.9008 13.1467H14.6741L22.0342 22.7733Z" fill="#008542"/> 
3108                </svg> 
3109                        <span >twitter</span> 
3110            </a> 
3111 
3112            <a class="social-media-share"  href="https://api.whatsapp.com/send?text=${newsInfo.url}" data-action="share/whatsapp/share" 
3113                target="_blank"> 
3114                <svg class="whatsapp" width="37" height="36" viewBox="0 0 37 36" fill="none" 
3115                        xmlns="http://www.w3.org/2000/svg"> 
3116                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
3117                    <path d="M12.5482 21.3241C11.6166 19.7525 11.2908 17.8949 11.6318 16.1C11.9729 14.3052 12.9573 12.6965 14.4003 11.5761C15.8434 10.4556 17.6457 9.90042 19.4691 10.0147C21.2925 10.129 23.0114 10.9049 24.3033 12.1967C25.5951 13.4886 26.371 15.2075 26.4853 17.0309C26.5996 18.8543 26.0444 20.6566 24.9239 22.0997C23.8035 23.5427 22.1948 24.5271 20.4 24.8682C18.6051 25.2092 16.7475 24.8834 15.1759 23.9518L12.5795 24.687C12.4731 24.7181 12.3603 24.72 12.2529 24.6925C12.1455 24.6651 12.0475 24.6092 11.9692 24.5308C11.8908 24.4525 11.8349 24.3545 11.8075 24.2471C11.78 24.1397 11.7819 24.0269 11.813 23.9205L12.5482 21.3241Z" 
3118                            fill="#008542"/> 
3119                    <path d="M20.6917 21C20.0094 21.0017 19.3335 20.8686 18.7029 20.6083C18.0722 20.348 17.4992 19.9656 17.0168 19.4832C16.5344 19.0008 16.152 18.4278 15.8917 17.7971C15.6314 17.1665 15.4983 16.4906 15.5 15.8083C15.5017 15.3281 15.6937 14.8682 16.0338 14.5293C16.374 14.1903 16.8346 14 17.3148 14C17.394 13.9994 17.472 14.0201 17.5404 14.06C17.6089 14.1 17.6653 14.1576 17.7037 14.2269L18.462 15.5491C18.5071 15.6295 18.5303 15.7203 18.5291 15.8124C18.528 15.9046 18.5026 15.9948 18.4556 16.0741L17.8463 17.0917C18.1584 17.7859 18.7141 18.3416 19.4083 18.6537L20.4259 18.0444C20.5052 17.9974 20.5954 17.972 20.6876 17.9709C20.7797 17.9697 20.8705 17.9929 20.9509 18.038L22.2731 18.7963C22.3424 18.8347 22.4 18.8911 22.44 18.9596C22.4799 19.028 22.5006 19.106 22.5 19.1852C22.4983 19.6649 22.3074 20.1245 21.9689 20.4643C21.6303 20.8041 21.1713 20.9966 20.6917 21Z" 
3120                            fill="white"/> 
3121                </svg> 
3122                <span >Share to WhatsApp </span> 
3123            </a> 
3124 
3125            <div class="copy-text-container"> 
3126                <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3127                    <path d="M10.5 10.5H13.5V2.5H5.5V5.5" stroke="#008542" stroke-linecap="round" 
3128                            stroke-linejoin="round"/> 
3129                    <path d="M10.5 5.5H2.5V13.5H10.5V5.5Z" stroke="#008542" stroke-linecap="round" 
3130                            stroke-linejoin="round"/> 
3131                </svg> 
3132 
3133                <#if locale == "pt_BR"> 
3134                    <p class="text">Copiar texto <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p> 
3135                <#else > 
3136                    <p class="text">Copy text <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p> 
3137                </#if> 
3138            </div> 
3139 
3140        </div> 
3141 
3142        <#if locale == "pt_BR"> 
3143            <span class="copy-message">Texto copiado!</span> 
3144        <#else > 
3145            <span class="copy-message">Text copied!</span> 
3146        </#if> 
3147    <#--        </div>--> 
3148</#macro> 
3149 
3150<#-- ################################################################################################################## --> 
3151 
3152<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# --> 
3153<#macro renderLinks newsInfo> 
3154    <#if newsInfo.links?size != 0> 
3155    <#--videos "escondidos" que serão unidos a .ptb-news__read-content --> 
3156 
3157        <div class="ptb-news__links-container d-none "> 
3158            <div id="ptb-news__links-identifiers"> 
3159                <#assign separator = ""> 
3160                <#list newsInfo.links as link> 
3161                    ${link.id}; 
3162                    <#assign separator = ";"> 
3163                </#list> 
3164            </div> 
3165            <#list newsInfo.links as link> 
3166                <#assign link_index = link?index> 
3167                <#assign linkUrl = "#"> 
3168                <#assign target = "_blank"> 
3169                <#assign linkClass = ""> 
3170 
3171                <div id="ptb-news__link-container-${link_index}"> 
3172                    <#if link.externalLink?has_content> 
3173                        <#assign linkUrl = link.externalLink> 
3174                        <#assign target = "_blank"> 
3175                        <#assign linkClass = "external-link"> 
3176                    <#elseif link.pageLink?has_content> 
3177                        <#assign linkUrl = link.pageLink> 
3178                        <#assign target = "_self"> 
3179                        <#assign linkClass = "internal-page-link"> 
3180                    <#elseif link.file.mimeType?has_content> 
3181                        <#assign linkUrl = link.file.url> 
3182                        <#assign target = "_blank"> 
3183                        <#assign linkClass = "file-link"> 
3184                    </#if> 
3185 
3186                    <#-- PDF icon --> 
3187                    <#if link.iconType == "Opção78730408" > 
3188                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
3189                             xmlns="http://www.w3.org/2000/svg"> 
3190                            <path d="M3.752 15.974H4.664C4.912 15.974 5.124 15.954 5.3 15.914C5.476 15.874 5.62 15.806 5.732 15.71C5.852 15.606 5.94 15.466 5.996 15.29C6.052 15.114 6.08 14.894 6.08 14.63C6.08 14.11 5.968 13.758 5.744 13.574C5.528 13.39 5.168 13.298 4.664 13.298H3.752V15.974ZM2 20.654V11.894H4.784C5.856 11.894 6.632 12.122 7.112 12.578C7.6 13.026 7.844 13.698 7.844 14.594C7.844 15.474 7.604 16.158 7.124 16.646C6.652 17.134 5.872 17.378 4.784 17.378H3.752V20.654H2Z" 
3191                                  fill="#008542"/> 
3192                            <path d="M10.8402 19.142H11.9442C12.2962 19.142 12.6042 19.102 12.8682 19.022C13.1322 18.942 13.3482 18.798 13.5162 18.59C13.6922 18.374 13.8242 18.082 13.9122 17.714C14.0002 17.338 14.0442 16.854 14.0442 16.262C14.0442 15.678 14.0002 15.202 13.9122 14.834C13.8322 14.458 13.7042 14.166 13.5282 13.958C13.3602 13.75 13.1442 13.606 12.8802 13.526C12.6242 13.446 12.3202 13.406 11.9682 13.406H10.8402V19.142ZM9.16016 20.654V11.894H12.1002C12.7642 11.894 13.3322 11.982 13.8042 12.158C14.2762 12.326 14.6602 12.59 14.9562 12.95C15.2602 13.302 15.4802 13.75 15.6162 14.294C15.7602 14.83 15.8322 15.47 15.8322 16.214C15.8322 17.726 15.5362 18.846 14.9442 19.574C14.3522 20.294 13.3882 20.654 12.0522 20.654H9.16016Z" 
3193                                  fill="#008542"/> 
3194                            <path d="M17.2695 20.654V11.894H22.2735V13.358H18.9735V15.59H21.9015V17.054H18.9735V20.654H17.2695Z" 
3195                                  fill="#008542"/> 
3196                            <path d="M6.08984 8.24516V1.60376C6.08984 1.44364 6.15211 1.29007 6.26294 1.17684C6.37377 1.06361 6.52408 1 6.68082 1H13.7725M13.7725 1L17.9094 5.22634M13.7725 1L13.7725 5.22634H17.9094M17.9094 5.22634V8.24516" 
3197                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
3198                                  stroke-linejoin="round"/> 
3199                        </svg> 
3200 
3201                    <#-- JPG icon --> 
3202                    <#elseif link.iconType == "Opção89889679" > 
3203                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
3204                             xmlns="http://www.w3.org/2000/svg"> 
3205                            <path d="M2 19.1657C2.248 19.1977 2.504 19.2257 2.768 19.2497C3.032 19.2657 3.284 19.2737 3.524 19.2737C3.844 19.2737 4.112 19.2497 4.328 19.2017C4.544 19.1537 4.72 19.0657 4.856 18.9377C4.992 18.8017 5.088 18.6257 5.144 18.4097C5.208 18.1857 5.24 17.8977 5.24 17.5457V11.8937H6.992V17.5457C6.992 18.6817 6.756 19.5057 6.284 20.0177C5.82 20.5297 5.128 20.7857 4.208 20.7857C3.984 20.7857 3.764 20.7737 3.548 20.7497C3.34 20.7257 3.14 20.6937 2.948 20.6537C2.756 20.6137 2.58 20.5697 2.42 20.5217C2.26 20.4737 2.12 20.4257 2 20.3777V19.1657Z" 
3206                                  fill="#008542"/> 
3207                            <path d="M10.4203 15.9737H11.3323C11.5803 15.9737 11.7923 15.9537 11.9683 15.9137C12.1443 15.8737 12.2883 15.8057 12.4003 15.7097C12.5203 15.6057 12.6083 15.4657 12.6643 15.2897C12.7203 15.1137 12.7483 14.8937 12.7483 14.6297C12.7483 14.1097 12.6363 13.7577 12.4123 13.5737C12.1963 13.3897 11.8363 13.2977 11.3323 13.2977H10.4203V15.9737ZM8.66834 20.6537V11.8937H11.4523C12.5243 11.8937 13.3003 12.1217 13.7803 12.5777C14.2683 13.0257 14.5123 13.6977 14.5123 14.5937C14.5123 15.4737 14.2723 16.1577 13.7923 16.6457C13.3203 17.1337 12.5403 17.3777 11.4523 17.3777H10.4203V20.6537H8.66834Z" 
3208                                  fill="#008542"/> 
3209                            <path d="M22.0085 20.2697C21.6405 20.4057 21.2085 20.5257 20.7125 20.6297C20.2245 20.7337 19.7165 20.7857 19.1885 20.7857C18.5005 20.7857 17.9245 20.6897 17.4605 20.4977C17.0045 20.2977 16.6365 20.0097 16.3565 19.6337C16.0845 19.2577 15.8885 18.7977 15.7685 18.2537C15.6485 17.7017 15.5885 17.0777 15.5885 16.3817C15.5885 15.6217 15.6565 14.9537 15.7925 14.3777C15.9285 13.8017 16.1445 13.3217 16.4405 12.9377C16.7365 12.5457 17.1205 12.2537 17.5925 12.0617C18.0645 11.8617 18.6405 11.7617 19.3205 11.7617C19.7845 11.7617 20.2125 11.8017 20.6045 11.8817C21.0045 11.9617 21.3605 12.0577 21.6725 12.1697V13.3937C21.5525 13.3857 21.4125 13.3737 21.2525 13.3577C21.0925 13.3337 20.9205 13.3137 20.7365 13.2977C20.5605 13.2817 20.3765 13.2697 20.1845 13.2617C20.0005 13.2457 19.8205 13.2377 19.6445 13.2377C19.2205 13.2377 18.8605 13.2857 18.5645 13.3817C18.2765 13.4697 18.0405 13.6297 17.8565 13.8617C17.6805 14.0857 17.5485 14.3937 17.4605 14.7857C17.3805 15.1777 17.3405 15.6737 17.3405 16.2737C17.3405 16.8417 17.3765 17.3217 17.4485 17.7137C17.5285 18.0977 17.6485 18.4097 17.8085 18.6497C17.9685 18.8897 18.1765 19.0617 18.4325 19.1657C18.6965 19.2697 19.0125 19.3217 19.3805 19.3217C19.6765 19.3217 20.0245 19.2857 20.4245 19.2137V17.1977H19.1045V15.8897H22.0085V20.2697Z" 
3210                                  fill="#008542"/> 
3211                            <path d="M6.08984 8.24516V1.60376C6.08984 1.44364 6.15211 1.29007 6.26294 1.17684C6.37377 1.06361 6.52408 1 6.68082 1H13.7725M13.7725 1L17.9094 5.22634M13.7725 1L13.7725 5.22634H17.9094M17.9094 5.22634V8.24516" 
3212                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
3213                                  stroke-linejoin="round"/> 
3214                        </svg> 
3215                    <#-- DOC icon --> 
3216                    <#elseif link.iconType == "Opção15480314" > 
3217                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
3218                             xmlns="http://www.w3.org/2000/svg"> 
3219                            <path d="M2.68 19.1417H3.784C4.136 19.1417 4.444 19.1017 4.708 19.0217C4.972 18.9417 5.188 18.7977 5.356 18.5897C5.532 18.3737 5.664 18.0817 5.752 17.7137C5.84 17.3377 5.884 16.8537 5.884 16.2617C5.884 15.6777 5.84 15.2017 5.752 14.8337C5.672 14.4577 5.544 14.1657 5.368 13.9577C5.2 13.7497 4.984 13.6057 4.72 13.5257C4.464 13.4457 4.16 13.4057 3.808 13.4057H2.68V19.1417ZM1 20.6537V11.8937H3.94C4.604 11.8937 5.172 11.9817 5.644 12.1577C6.116 12.3257 6.5 12.5897 6.796 12.9497C7.1 13.3017 7.32 13.7497 7.456 14.2937C7.6 14.8297 7.672 15.4697 7.672 16.2137C7.672 17.7257 7.376 18.8457 6.784 19.5737C6.192 20.2937 5.228 20.6537 3.892 20.6537H1Z" 
3220                                  fill="#008542"/> 
3221                            <path d="M10.7894 20.4977C10.3334 20.3057 9.96138 20.0217 9.67338 19.6457C9.39338 19.2697 9.18937 18.8057 9.06137 18.2537C8.93337 17.6937 8.86938 17.0457 8.86938 16.3097C8.86938 15.5657 8.93337 14.9097 9.06137 14.3417C9.19737 13.7737 9.40938 13.2977 9.69738 12.9137C9.99338 12.5297 10.3694 12.2417 10.8254 12.0497C11.2894 11.8577 11.8494 11.7617 12.5054 11.7617C13.1694 11.7617 13.7294 11.8577 14.1854 12.0497C14.6414 12.2417 15.0094 12.5257 15.2894 12.9017C15.5774 13.2777 15.7854 13.7457 15.9134 14.3057C16.0414 14.8577 16.1054 15.5017 16.1054 16.2377C16.1054 16.9817 16.0374 17.6377 15.9014 18.2057C15.7734 18.7737 15.5614 19.2497 15.2654 19.6337C14.9774 20.0177 14.6014 20.3057 14.1374 20.4977C13.6814 20.6897 13.1254 20.7857 12.4694 20.7857C11.8054 20.7857 11.2454 20.6897 10.7894 20.4977ZM11.0894 18.6737C11.2414 18.9057 11.4334 19.0737 11.6654 19.1777C11.8974 19.2737 12.1694 19.3217 12.4814 19.3217C12.7934 19.3217 13.0654 19.2737 13.2974 19.1777C13.5294 19.0737 13.7214 18.9057 13.8734 18.6737C14.0254 18.4337 14.1374 18.1217 14.2094 17.7377C14.2814 17.3457 14.3174 16.8577 14.3174 16.2737C14.3174 15.6897 14.2814 15.2057 14.2094 14.8217C14.1374 14.4297 14.0254 14.1177 13.8734 13.8857C13.7294 13.6457 13.5414 13.4777 13.3094 13.3817C13.0774 13.2777 12.8054 13.2257 12.4934 13.2257C12.1814 13.2257 11.9094 13.2777 11.6774 13.3817C11.4454 13.4777 11.2534 13.6457 11.1014 13.8857C10.9494 14.1177 10.8374 14.4297 10.7654 14.8217C10.6934 15.2057 10.6574 15.6897 10.6574 16.2737C10.6574 16.8577 10.6934 17.3457 10.7654 17.7377C10.8374 18.1217 10.9454 18.4337 11.0894 18.6737Z" 
3222                                  fill="#008542"/> 
3223                            <path d="M23.1389 20.3897C22.8349 20.5017 22.4989 20.5937 22.1309 20.6657C21.7709 20.7457 21.3629 20.7857 20.9069 20.7857C20.2189 20.7857 19.6429 20.6897 19.1789 20.4977C18.7229 20.3057 18.3549 20.0257 18.0749 19.6577C17.7949 19.2817 17.5949 18.8177 17.4749 18.2657C17.3629 17.7137 17.3069 17.0777 17.3069 16.3577C17.3069 15.5977 17.3709 14.9297 17.4989 14.3537C17.6269 13.7777 17.8309 13.2977 18.1109 12.9137C18.3909 12.5297 18.7589 12.2417 19.2149 12.0497C19.6709 11.8577 20.2229 11.7617 20.8709 11.7617C21.3029 11.7617 21.6989 11.8017 22.0589 11.8817C22.4269 11.9537 22.7629 12.0457 23.0669 12.1577V13.3817C22.8029 13.3497 22.4949 13.3177 22.1429 13.2857C21.7989 13.2537 21.4829 13.2377 21.1949 13.2377C20.8029 13.2377 20.4709 13.2857 20.1989 13.3817C19.9349 13.4697 19.7189 13.6297 19.5509 13.8617C19.3829 14.0857 19.2629 14.3937 19.1909 14.7857C19.1189 15.1697 19.0829 15.6617 19.0829 16.2617C19.0829 16.8617 19.1189 17.3617 19.1909 17.7617C19.2709 18.1537 19.3949 18.4657 19.5629 18.6977C19.7389 18.9217 19.9669 19.0817 20.2469 19.1777C20.5269 19.2657 20.8709 19.3097 21.2789 19.3097C21.5989 19.3097 21.9309 19.2937 22.2749 19.2617C22.6189 19.2217 22.9069 19.1897 23.1389 19.1657V20.3897Z" 
3224                                  fill="#008542"/> 
3225                            <path d="M6.08984 8.24516V1.60376C6.08984 1.44364 6.15211 1.29007 6.26294 1.17684C6.37377 1.06361 6.52408 1 6.68082 1H13.7725M13.7725 1L17.9094 5.22634M13.7725 1L13.7725 5.22634H17.9094M17.9094 5.22634V8.24516" 
3226                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
3227                                  stroke-linejoin="round"/> 
3228                        </svg> 
3229                    <#-- External link icon --> 
3230                    <#elseif link.iconType == "Opção43823553" > 
3231                        <svg width="24" height="24" viewBox="0 0 32 32" fill="none" 
3232                             xmlns="http://www.w3.org/2000/svg"> 
3233                            <path opacity="0.98" 
3234                                  d="M25.5 15.5001V26.5001C25.5 26.7653 25.3946 27.0197 25.2071 27.2072C25.0196 27.3947 24.7652 27.5001 24.5 27.5001L5.5 27.5001C5.23479 27.5001 4.98043 27.3947 4.79289 27.2072C4.60536 27.0197 4.5 26.7653 4.5 26.5001L4.5 7.50009C4.5 7.23488 4.60536 6.98052 4.79289 6.79299C4.98043 6.60545 5.23478 6.50009 5.5 6.50009L17 6.50009M20.4742 4.7124H27.8988M27.8988 4.7124V12.137M27.8988 4.7124L14.5 18.0001" 
3235                                  stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
3236                        </svg> 
3237                    <#-- Internal page link icon --> 
3238                    <#elseif link.iconType == "Opção64212757" > 
3239                    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#008542" viewBox="0 0 256 256"> 
3240                        <path d="M137.54,186.36a8,8,0,0,1,0,11.31l-9.94,10A56,56,0,0,1,48.38,128.4L72.5,104.28A56,56,0,0,1,149.31,102a8,8,0,1,1-10.64,12,40,40,0,0,0-54.85,1.63L59.7,139.72a40,40,0,0,0,56.58,56.58l9.94-9.94A8,8,0,0,1,137.54,186.36Zm70.08-138a56.08,56.08,0,0,0-79.22,0l-9.94,9.95a8,8,0,0,0,11.32,11.31l9.94-9.94a40,40,0,0,1,56.58,56.58L172.18,140.4A40,40,0,0,1,117.33,142,8,8,0,1,0,106.69,154a56,56,0,0,0,76.81-2.26l24.12-24.12A56.08,56.08,0,0,0,207.62,48.38Z"> 
3241                        </path> 
3242                    </svg> 
3243                    <#-- Download link icon --> 
3244                    <#elseif link.iconType == "Opção20766606" > 
3245                        <svg width="24" height="24" viewBox="0 0 32 32" fill="none" 
3246                             xmlns="http://www.w3.org/2000/svg"> 
3247                            <path d="M10.75 13.75L16 19M16 19L21.25 13.75M16 19V5M27 19V26C27 26.2652 26.8946 26.5196 26.7071 26.7071C26.5196 26.8946 26.2652 27 26 27H6C5.73478 27 5.48043 26.8946 5.29289 26.7071C5.10536 26.5196 5 26.2652 5 26V19" 
3248                                  stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
3249                        </svg> 
3250                    </#if> 
3251<#if link.title?? && link.title?has_content> 
3252                    <a href="${linkUrl}" class="link ${linkClass}" target="${target}">${link.title}</a> 
3253	</#if> 
3254                </div> 
3255            </#list> 
3256        </div> 
3257 
3258        <script> 
3259            var newsContent_code = document.querySelector(".news-content").innerHTML; 
3260 
3261            var linksIdentifiers = document.querySelector("#ptb-news__links-identifiers").innerHTML.trim().split(";"); 
3262            linksIdentifiers.forEach((linkIdentifier, index) => { 
3263                const linkIdentifierContent = document.querySelector("#ptb-news__link-container-" + index); 
3264                if (linkIdentifierContent) { 
3265                    const tag = "#[" + linkIdentifier.trim() + "]"; 
3266                    const splitContent = newsContent_code.split(tag); 
3267                    newsContent_code = splitContent.join(linkIdentifierContent.innerHTML); 
3268                    //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent); 
3269
3270            }); 
3271 
3272 
3273            var ptb_news__read_content = document.querySelector(".news-content"); 
3274            ptb_news__read_content.innerHTML = newsContent_code; 
3275             
3276            const links_ptb_news = document.querySelectorAll(".news-content a"); 
3277            links_ptb_news.forEach((link) => { 
3278                link.classList.add("link-ptb-news"); 
3279            }); 
3280 
3281        </script> 
3282 
3283        <style> 
3284            .ptb-news__read-news .ptb-news__link a { 
3285                font-family: var(--font-family-base); 
3286                font-style: var(--font-style-normal, normal); 
3287                font-weight: var(--font-weight-bold, 700); 
3288                font-size: var(--font-size-xxs, 16px); 
3289                line-height: var(--line-height-xl, 160%); 
3290                text-decoration-line: var(--text-decoration-underline, underline); 
3291                color: #008542; 
3292
3293 
3294            body.high-contrast-active .ptb-news__read-news .ptb-news__link a { 
3295                color: #E4F7E8; 
3296            }           
3297 
3298            .ptb-news__read-news .news-content .link { 
3299                font-family: var(--font-family-base); 
3300                font-style: var(--font-style-normal, normal); 
3301                font-weight: var(--font-weight-bold, 700); 
3302                font-size: var(--font-size-xs, 18px); 
3303                line-height: var(--line-height-xl, 160%); 
3304 
3305                text-decoration-line: var(--text-decoration-underline, underline); 
3306                color: #008542; 
3307
3308 
3309            body.high-contrast-active .ptb-news__read-news .news-content .link { 
3310                color: #E4F7E8; 
3311
3312 
3313            body.high-contrast-active .ptb-news__read-news .news-content svg path { 
3314                stroke: var(--color-neutral-500, #D7D7D7); 
3315                fill: rgba(255, 255, 255, 0.32); 
3316
3317 
3318            .ptb-news__read-news .news-content .ptb-link__wrapper { 
3319                display: flex; 
3320                flex-direction: column; 
3321                gap: 0; 
3322                margin-top: -24px; 
3323
3324 
3325            .ptb-news__read-news .news-content .ptb-link__wrapper svg { 
3326                margin-right: var(--space-sm, 16px); 
3327
3328 
3329            .ptb-news__read-news .news-content .ptb-link__wrapper .first { 
3330                gap: 0 !important; 
3331
3332 
3333            @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
3334                .ptb-news__read-news .news-content .link { 
3335                    font-size: var(--font-size-xxs, 16px); 
3336
3337
3338        </style> 
3339    </#if> 
3340</#macro> 
3341 
3342<#-- ################################################################################################################## --> 
3343 
3344<#-- ################################################################################################################## --> 
3345 
3346<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# --> 
3347<#macro renderCite> 
3348    <div class="ptb-news__cite-container"> 
3349        <div class="ptb-news__cite-container-breakpoint breakpoint"> 
3350            <div class="ptb-news__cite-container-col col-1-12 md-col-1-8 sm-col-1-4"> 
3351                <div class="ptb-news__cite-title"> 
3352                    <#if locale?lower_case == "pt_br"> 
3353                        Notas 
3354                    <#else> 
3355                        Notes 
3356                    </#if> 
3357                </div> 
3358 
3359                <div class="ptb-news__cites-elements"> 
3360                </div> 
3361            </div> 
3362        </div> 
3363    </div> 
3364 
3365    <script> 
3366        function positionCitesText(parentNodeCitesText) { 
3367             
3368            parentNodeCitesText.forEach((parentNodeCiteText)=>{ 
3369                if(window.innerWidth > 1024) { 
3370                    parentNodeCiteText.style.display=""; 
3371                    parentNodeCiteText.style.gridColumnStart = "11"; 
3372                    parentNodeCiteText.style.gridColumnEnd = "13"; 
3373                }  
3374                else { 
3375                    parentNodeCiteText.style.display="none"; 
3376                    parentNodeCiteText.style.gridColumnStart = ""; 
3377                    parentNodeCiteText.style.gridColumnEnd = "";                  
3378
3379            }); 
3380
3381 
3382        function addCitesTextMobile(citesText) { 
3383            const citesContainer = document.querySelector(".ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements"); 
3384 
3385            if(citesContainer.children.length === 0) { 
3386                citesContainer && citesText.forEach((citeText)=>{                         
3387                    citesContainer.appendChild(citeText.cloneNode(true)); 
3388                }); 
3389            }         
3390
3391 
3392        const citesText = document.querySelectorAll(".news-content cite"); 
3393         
3394        if (citesText.length > 0) { 
3395            const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode); 
3396            positionCitesText(parentNodeCitesText); 
3397            addCitesTextMobile(citesText);     
3398
3399        else { 
3400            const citesContainer = document.querySelector(".ptb-news__cite-container"); 
3401            citesContainer && (citesContainer.style.display="none"); 
3402
3403         
3404        document.addEventListener('DOMContentLoaded', ()=>{ 
3405             
3406            const citesText = document.querySelectorAll(".news-content cite"); 
3407             
3408            if (citesText.length > 0) { 
3409                const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode);            
3410 
3411                positionCitesText(parentNodeCitesText); 
3412                addCitesTextMobile(citesText); 
3413 
3414                window.addEventListener('resize', ()=>{positionCitesText(parentNodeCitesText)}); 
3415
3416            else { 
3417                const citesContainer = document.querySelector(".ptb-news__cite-container"); 
3418                citesContainer && (citesContainer.style.display="none"); 
3419
3420        }); 
3421 
3422    </script> 
3423 
3424    <style> 
3425     
3426        .ptb-news__read-news-post cite { 
3427            color: var(--color-neutral-800, #373737); 
3428            font-family: var(--font-family-base); 
3429            font-size: var(--font-size-xxxs, 14px) !important; 
3430            font-style: var(--font-style-normal, normal); 
3431            font-weight: var(--font-weight-regular, 400); 
3432            line-height: var(--line-height-xl, 160%); 
3433
3434 
3435        .ptb-news__read-news-post cite  a{ 
3436            font-size: var(--font-size-xxxs, 14px) !important; 
3437
3438 
3439        body.high-contrast-active .ptb-news__read-news-post cite { 
3440        color: var(--text-primary-default, var(--color-neutral-100)); 
3441        }  
3442 
3443        .ptb-news__read-news-post .news-content cite, 
3444        .ptb-news__read-news-post .ptb-news__cite-container cite { 
3445            display: block; 
3446            padding-left: var(--space-md); 
3447            border-left: var(--border-width-hairline, 1px) solid var(--color-neutral-500, #D7D7D7); 
3448
3449 
3450        @media screen and (min-width: 1025px) { 
3451            .ptb-news__read-news-post .ptb-news__cite-container { 
3452                display: none;                
3453            }         
3454
3455 
3456        @media screen and (max-width: 1025px) { 
3457            .ptb-news__read-news .ptb-news__cite-container .link { 
3458                text-decoration-line: var(--text-decoration-underline, underline); 
3459                color: #008542; 
3460
3461 
3462            body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container .link { 
3463                color: #E4F7E8; 
3464
3465 
3466            body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container svg path { 
3467                stroke: var(--color-neutral-500, #D7D7D7); 
3468                fill: rgba(255, 255, 255, 0.32); 
3469
3470             
3471            .ptb-news__read-news-post .ptb-news__cite-container { 
3472                display: grid; 
3473                background: var(--background-surface-level-03, #EEE); 
3474
3475 
3476            body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container { 
3477                background: var(--background-surface-level-03, #525252); 
3478
3479 
3480            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col { 
3481                padding: var(--space-xxl) 0; 
3482                display: flex; 
3483                flex-direction: column; 
3484                gap: var(--space-lg, 32px); 
3485
3486 
3487            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements { 
3488                display: flex; 
3489                flex-direction: column; 
3490                gap: var(--space-lg, 32px);  
3491            }       
3492 
3493            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title { 
3494                color: var(--color-neutral-800, #373737); 
3495                font-size: var(--font-size-sm, 20px); 
3496                font-style: var(--font-style-normal, normal); 
3497                font-weight: var(--font-weight-bold, 700); 
3498                line-height: var(--line-height-xl, 160%); 
3499
3500 
3501            body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title { 
3502                color: var(--text-primary-default, var(--color-neutral-100)); 
3503
3504        }         
3505    </style> 
3506     
3507</#macro> 
3508 
3509<#-- ################################################################################################################## --> 
3510 
3511 
3512<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### --> 
3513<#macro renderGallery newsInfo> 
3514    <#if newsInfo.galleryItems?size == 0> 
3515        <#return /> 
3516    </#if> 
3517 
3518    <div class="gallery-breakpoint breakpoint"> 
3519        <div class="gallery col-3-11 md-col-1-8 sm-col-1-4"> 
3520 
3521            <div class="title-container"> 
3522                <svg class="icon" viewBox="0 0 26 23" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3523                    <path d="M23 22H3C2.46957 22 1.96086 21.7893 1.58579 21.4142C1.21071 21.0391 1 20.5304 1 20V6C1 5.46957 1.21071 4.96086 1.58579 4.58579C1.96086 4.21071 2.46957 4 3 4H7L9 1H17L19 4H23C23.5304 4 24.0391 4.21071 24.4142 4.58579C24.7893 4.96086 25 5.46957 25 6V20C25 20.5304 24.7893 21.0391 24.4142 21.4142C24.0391 21.7893 23.5304 22 23 22Z" 
3524                            stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
3525                    <path d="M13 17C15.4853 17 17.5 14.9853 17.5 12.5C17.5 10.0147 15.4853 8 13 8C10.5147 8 8.5 10.0147 8.5 12.5C8.5 14.9853 10.5147 17 13 17Z" 
3526                            stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
3527                </svg> 
3528                <p class="title"> 
3529                    <#if locale == "pt_BR"> Galeria de Imagens <#else > Image gallery </#if> 
3530                </p> 
3531            </div> 
3532 
3533            <div class="image-container"> 
3534				<#assign index = 0 /> 
3535                <#list newsInfo.galleryItems as gItem> 
3536                    <div class="modal-image-fragment" index="${index}"> 
3537                        <div class="modal-image-container" index="${index}"> 
3538                            <span class="click-image" ></span> 
3539 
3540                            <div class="image-player-container"> 
3541                                <span class="close-image"> 
3542                                    <svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3543                                        <path d="M22 -9.61651e-07C34.1503 -4.30546e-07 44 9.84974 44 22C44 34.1503 34.1503 44 22 44C9.84973 44 -1.49276e-06 34.1503 -9.61651e-07 22C-4.30546e-07 9.84973 9.84974 -1.49276e-06 22 -9.61651e-07Z" fill="white"/> 
3544                                        <path d="M26.5 26.5L17.5 17.5M17.5 26.5L26.5 17.5" stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
3545                                    </svg> 
3546                                </span> 
3547                                <div class="image-player-session"> 
3548                                    <#-- Midias adaptativas de imagem para desktop e mobile --> 
3549                                    <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${gItem.image.fileEntryId}") /> 
3550                                    <#assign urlAdaptativeMediaMobile = gItem.image.url/> 
3551                                    <#assign urlAdaptativeMediaDesktop = gItem.image.url/> 
3552                                     
3553                                    <#if fileDataRequest?? && fileDataRequest.adaptedImages?? > 
3554                                        <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
3555                                        <#list dataAdaptativeMedia as data> 
3556                                            <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
3557                                                <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
3558                                            </#if> 
3559                                            <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
3560                                                <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
3561                                            </#if>      
3562                                        </#list> 
3563                                    </#if> 
3564																		 
3565                                    <picture > 
3566                                        <source media="(max-width:767px)" srcset="${urlAdaptativeMediaMobile}" > 
3567                                        <img width="274px" height="152px" loading="lazy" src="${urlAdaptativeMediaDesktop}" alt="${gItem.image.alt}"/> 
3568                                    </picture>		  
3569                                </div> 
3570                            </div> 
3571                        </div> 
3572                    </div> 
3573                    <#assign index = index + 1 /> 
3574                </#list> 
3575                <div class="control-arrow left-arrow"> 
3576                    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3577                        <path d="M20 26L10 16L20 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
3578                    </svg> 
3579                </div> 
3580                <div class="control-arrow right-arrow"> 
3581                    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3582                        <path d="M12 6L22 16L12 26" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
3583                    </svg> 
3584                </div> 
3585                <div class="image-bullets"> 
3586                    <#list 0..(newsInfo.galleryItems?size-1) as index> 
3587                        <div index="${index}" class="bullet"></div> 
3588                    </#list> 
3589                </div> 
3590            </div> 
3591        </div> 
3592    </div> 
3593 
3594    <style> 
3595 
3596        .ptb-news__read-news .gallery { 
3597            padding-top: 42px; 
3598
3599 
3600        .ptb-news__read-news .gallery * { 
3601            margin: 0; 
3602            padding: 0; 
3603
3604 
3605        .ptb-news__read-news .gallery { 
3606            display: flex; 
3607            gap: var(--space-xl, 40px); 
3608            flex-direction: column; 
3609
3610			 
3611        .ptb-news__read-news .gallery .control-arrow { 
3612            position: fixed; 
3613            height: 100%; 
3614            align-items: center; 
3615            display: flex; 
3616            justify-content: center; 
3617            display: none; 
3618            z-index: 9999; 
3619
3620 
3621        .ptb-news__read-news .gallery .left-arrow { 
3622            top: 0; 
3623            left: 5vw; 
3624
3625 
3626        .ptb-news__read-news .gallery .right-arrow { 
3627            top: 0; 
3628            right: 5vw; 
3629
3630 
3631        .ptb-news__read-news .gallery .lefg-arrow svg { 
3632          margin-left: 16px !important; 
3633
3634 
3635        .ptb-news__read-news .gallery .right-arrow svg { 
3636          margin-right: 16px !important; 
3637
3638 
3639        .ptb-news__read-news .gallery .image-bullets { 
3640          display: none; 
3641          gap: var(--space-sm, 16px); 
3642          position: fixed; 
3643          left: 0; 
3644          bottom: calc(10vh + 24px); 
3645          width: 100vw; 
3646          z-index: 9999; 
3647          justify-content: center; 
3648
3649 
3650        .ptb-news__read-news .gallery .image-bullets .bullet { 
3651          width: var(--size-xs, 16px); 
3652          height: var(--size-xs, 16px); 
3653          border-radius: 50%; 
3654          border: 1px solid var(--color-neutral-100, #FFFFFF); 
3655          z-index: 9999; 
3656
3657 
3658        .ptb-news__read-news .gallery .image-bullets .bullet.current-item { 
3659          background: var(--color-neutral-100, #FFFFFF); 
3660
3661 
3662        .ptb-news__read-news .gallery .title-container { 
3663            display: flex; 
3664            align-items: center; 
3665            gap: var(--space-sm, 16px); 
3666
3667 
3668        .ptb-news__read-news .gallery .title-container svg { 
3669            width: var(--size-md, 24px); 
3670            height: 21px; 
3671
3672 
3673        .ptb-news__read-news .gallery .title-container .title { 
3674            color: var(--color-neutral-800, #373737); 
3675            font-family: var(--font-family-base); 
3676            font-size: var(--font-size-lg); 
3677            font-style: var(--font-style-normal); 
3678            font-weight: var(--font-weight-bold); 
3679            line-height: var(--line-height-md); 
3680
3681 
3682        body.high-contrast-active .ptb-news__read-news .gallery .title-container .title { 
3683            color: var(--color-neutral-100); 
3684
3685 
3686        .ptb-news__read-news .gallery .image-container { 
3687            display: flex; 
3688            gap: var(--space-sm, 16px); 
3689            flex-wrap: wrap; 
3690
3691 
3692         .ptb-news__read-news .gallery .image-container .modal-image-fragment { 
3693            width: inherit; 
3694            height: inherit; 
3695            max-height: calc(100vw/2); 
3696            padding: 0; 
3697            margin: 0; 
3698            overflow: hidden; 
3699
3700 
3701        .ptb-news__read-news .gallery .image-container .modal-image-fragment * { 
3702            box-sizing: border-box; 
3703            margin: 0; 
3704            padding: 0; 
3705
3706 
3707        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container { 
3708            width: 100%; 
3709            height: inherit; 
3710            display: flex; 
3711            justify-content: center; 
3712            align-items: center; 
3713            cursor: pointer; 
3714            position: relative; 
3715
3716 
3717        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing {     
3718            position: fixed; 
3719            top: 0; 
3720            left: 0; 
3721            width: 100vw !important; 
3722            height: 100vh !important; 
3723            z-index: 9999 !important; 
3724            background-color: rgba(0, 0, 0, 0.75); 
3725            max-height: 100vh; 
3726
3727 
3728        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .click-image { 
3729            height: 100%; 
3730            width: 100%; 
3731            position: absolute; 
3732            z-index: 3; 
3733
3734 
3735        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container { 
3736            width: 100%; 
3737            height: 100%; 
3738
3739 
3740        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing { 
3741            position: relative; 
3742            width: 90vw !important; 
3743            height: 80vh !important; 
3744            z-index: 9999 !important; 
3745            background-color: rgba(0, 0, 0, 0.75); 
3746            border-radius: var(--border-radius-card); 
3747
3748 
3749        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image { 
3750            display: none; 
3751            position: absolute; 
3752            top: 0; 
3753	        right: 0; 
3754            transform: translate(100%, -100%); 
3755            z-index: 99999; 
3756
3757 
3758        body.high-contrast-active .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image path:nth-child(1) { 
3759           fill: var(--background-Surface-level-01, #010101); 
3760
3761 
3762        body.high-contrast-active .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image path:nth-child(2) { 
3763           stroke: #E4F7E8; 
3764
3765 
3766        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image.image-active { 
3767            display: block; 
3768
3769 
3770        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session { 
3771            width: 100%; 
3772            height: 100%; 
3773
3774 
3775        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session { 
3776            width: 90vw !important; 
3777            height: 80vh !important; 
3778            z-index: 9999 !important; 
3779            background-color: rgba(0, 0, 0, 0.75); 
3780            border-radius: var(--border-radius-card); 
3781            overflow: hidden; 
3782
3783 
3784        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session img { 
3785            object-fit: cover; 
3786
3787 
3788        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session img { 
3789            width: 100%; 
3790            height: 100%; 
3791            margin-left: 0 !important; 
3792            max-height: 100vh; 
3793
3794 
3795        .ptb-news__read-news .gallery .image-container img { 
3796            width: 274px; 
3797            height: 152px; 
3798            border-radius: var(--border-radius-md, 8px); 
3799            cursor: pointer; 
3800
3801 
3802        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
3803 
3804            .ptb-news__read-news .gallery { 
3805                padding-top: var(--space-xl, 40px); 
3806
3807 
3808            .ptb-news__read-news .gallery .image-container { 
3809                gap: var(--space-xxs, 8px); 
3810
3811 
3812            .ptb-news__read-news .gallery .image-container img { 
3813                width: 296px; 
3814                height: 180px; 
3815
3816 
3817            .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing { 
3818                transform: rotate(90deg); 
3819                transform-origin: center; 
3820                width: 80vh !important; 
3821                height: 90vw !important; 
3822
3823 
3824            .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing img{ 
3825                cursor: pointer; 
3826
3827 
3828            .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session { 
3829                width: 80vh !important; 
3830                height: 90vw !important; 
3831
3832 
3833            .ptb-news__read-news .gallery .lefg-arrow svg { 
3834                margin-left: 4px !important; 
3835
3836 
3837            .ptb-news__read-news .gallery .right-arrow svg { 
3838                margin-right: 4px !important; 
3839
3840 
3841            .ptb-news__read-news .gallery .image-bullets { 
3842              gap: 14px; 
3843
3844 
3845            .ptb-news__read-news .gallery .image-bullets .bullet { 
3846              width: var(--size-xxs, 12px); 
3847              height: var(--size-xxs, 12px); 
3848
3849
3850 
3851    </style> 
3852 
3853    <script> 
3854     
3855        const allModalImagesFragment = document.querySelectorAll(".ptb-news__read-news .gallery .modal-image-fragment"); 
3856        const totalItems = allModalImagesFragment.length; 
3857        const bulletsContainer = document.querySelector(".ptb-news__read-news .gallery .image-bullets"); 
3858        const bullets = bulletsContainer.querySelectorAll(".bullet"); 
3859        let currentItem = 0; 
3860        const nextImage = document.querySelector(".ptb-news__read-news .gallery .right-arrow"); 
3861        const previousImage = document.querySelector(".ptb-news__read-news .gallery .left-arrow"); 
3862 
3863        const stopImage = (getImageClick, imagePlayerContainer, imageContainer, closeImage) => { 
3864            getImageClick.classList.remove('image-playing'); 
3865            imagePlayerContainer.classList.remove('image-playing'); 
3866            imageContainer.classList.remove('image-playing'); 
3867 
3868					  const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem +  '"]') 
3869            currentBullet && currentBullet.classList.remove('current-item'); 
3870						 
3871            closeImage.classList.remove('image-active'); 
3872             
3873            document.querySelector("body").style.overflow = 'initial'; 
3874            [nextImage, previousImage].forEach(item => { 
3875                item.style.display = "none"; 
3876            }); 
3877            bulletsContainer.style.display = "none"; 
3878
3879 
3880        const playImage = (index, getImageClick, imagePlayerContainer, imageContainer, closeImage) => { 
3881            getImageClick.classList.add('image-playing'); 
3882            imagePlayerContainer.classList.add('image-playing'); 
3883            imageContainer.classList.add('image-playing'); 
3884            closeImage.classList.add('image-active'); 
3885 
3886             
3887            document.querySelector("body").style.overflow = 'hidden'; 
3888            [nextImage, previousImage].forEach(item => { 
3889                item.style.display = "flex"; 
3890            }); 
3891            bulletsContainer.style.display = "flex"; 
3892            bullets[index].classList.add('current-item'); 
3893
3894 
3895        const changeImage = (next) => { 
3896          if(next == currentItem || next < 0 || next >= totalItems) return; 
3897 
3898          const getImageClick = allModalImagesFragment[currentItem].querySelector('.click-image'); 
3899          const imageContainer = allModalImagesFragment[currentItem].querySelector('.modal-image-container'); 
3900          const imagePlayerContainer = allModalImagesFragment[currentItem].querySelector('.image-player-container'); 
3901          const image = imagePlayerContainer.querySelector('img'); 
3902          const closeImage = imagePlayerContainer.querySelector('.close-image'); 
3903 
3904          const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem +  '"]') 
3905          currentBullet.classList.remove('current-item'); 
3906 
3907          stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImage);  
3908          allModalImagesFragment[next].querySelector('.click-image')?.click(); 
3909           
3910          const nextBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + next +  '"]') 
3911          nextBullet.classList.add('current-item'); 
3912          currentItem = next; 
3913
3914 
3915        nextImage.addEventListener('click', () => { 
3916          changeImage(currentItem + 1); 
3917        }); 
3918 
3919        previousImage.addEventListener('click', () => { 
3920          changeImage(currentItem - 1); 
3921        }); 
3922 
3923        bullets.forEach((bullet, bulletIndex) => { 
3924          bullet.addEventListener('click', (_) => changeImage(bulletIndex)) ; 
3925        }); 
3926 
3927        allModalImagesFragment.forEach((modalImageFragment, index)=>{ 
3928            const getImageClick = modalImageFragment.querySelector('.click-image'); 
3929            const imageContainer = modalImageFragment.querySelector('.modal-image-container'); 
3930            const imagePlayerContainer = modalImageFragment.querySelector('.image-player-container'); 
3931 
3932            const image = imagePlayerContainer.querySelector('img'); 
3933            const closeImage = imagePlayerContainer.querySelector('.close-image'); 
3934            const body = document.body; 
3935 
3936            const toTopButton = document.querySelector(".fragment_88038 .petro-button"); 
3937 
3938            getImageClick.addEventListener('click', () => { 
3939                if (document.body.classList.contains('has-edit-mode-menu')) { 
3940                    return; 
3941
3942                currentItem = index; 
3943                if (imagePlayerContainer.classList.contains('image-playing')) { 
3944                    toTopButton && (toTopButton.style.zIndex = ""); 
3945                    stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImage); 
3946                } else { 
3947                    playImage(index, getImageClick, imagePlayerContainer, imageContainer, closeImage); 
3948                    toTopButton && (toTopButton.style.zIndex = "1"); 
3949
3950            }) 
3951 
3952            closeImage.addEventListener('click', () => { 
3953                if (imagePlayerContainer.classList.contains('image-playing')) { 
3954                    toTopButton && (toTopButton.style.zIndex = ""); 
3955                    stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImage); 
3956                    const bulletToClose = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + index +  '"]') 
3957                    console.log(bulletToClose) 
3958                    bulletToClose?.classList.remove('current-item'); 
3959                }  
3960            }) 
3961        });             
3962    </script> 
3963 
3964</#macro> 
3965 
3966 
3967<#-- ################################################################################################################## --> 
3968	 
3969	 
3970	 
3971	 
3972	 
3973	 
3974	 
3975	 
3976	 
3977	 
3978	 
3979	 
3980	 
3981	<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### --> 
3982<#macro renderQuotes newsInfo> 
3983    <#if newsInfo.quotes?size != 0> 
3984    <#--quotes "escondidas" que serão unidas a .ptb-news__read-content --> 
3985 
3986        <div class="ptb-news__quotes-container d-none "> 
3987            <div id="ptb-news__quotes-identifiers"> 
3988                <#assign separator = ""> 
3989                <#list newsInfo.quotes as quote> 
3990                    ${quote.id}; 
3991                    <#assign separator = ";"> 
3992                </#list> 
3993            </div> 
3994            <#list newsInfo.quotes as quote> 
3995                <#assign quotes_index = quote?index> 
3996                <div id="ptb-news__quotes-container-${quote_index}"> 
3997                    <#assign noAuthorWrapper = !((quote.image.url?? && quote.image.url?has_content) || (quote.author?has_content)) /> 
3998                    <div class="quote <#if noAuthorWrapper>no-author-wrapper</#if>"> 
3999                        <div class="text-wrapper"> 
4000                            <blockquote class="text">${quote.content}</blockquote > 
4001                        </div> 
4002                        <#if !noAuthorWrapper>   
4003                            <div class="author-wrapper"> 
4004                                <#if quote.image.url?? && quote.image.url?has_content> 
4005                                    <#assign imageUrl = "/o/adaptive-media/image/" + quote.image.fileEntryId +"/Thumbnail-300x300/image"/> 
4006                                    <img src="${imageUrl}" loading="lazy" alt="${quote.image.alt}">		 
4007                                </#if> 
4008                                <#if quote.author?? && quote?has_content>                             
4009                                    <p class="author">${quote.author}</p> 
4010                                </#if> 
4011                            </div> 
4012                        </#if> 
4013                    </div> 
4014                </div> 
4015            </#list> 
4016        </div> 
4017 
4018        <script> 
4019            var newsContent_code = document.querySelector(".news-content").innerHTML; 
4020 
4021            var quotesIdentifiers = document.querySelector("#ptb-news__quotes-identifiers").innerHTML.trim().split(";"); 
4022            quotesIdentifiers.forEach((quoteIdentifier, index) => { 
4023                const quoteIdentifierContent = document.querySelector("#ptb-news__quotes-container-" + index); 
4024                if (quoteIdentifierContent) { 
4025                    const tag = "#[" + quoteIdentifier.trim() + "]"; 
4026                    const splitContent = newsContent_code.split(tag); 
4027                    newsContent_code = splitContent.join(quoteIdentifierContent.innerHTML); 
4028                    //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent); 
4029
4030            }); 
4031 
4032 
4033            var ptb_news__read_content = document.querySelector(".news-content"); 
4034            ptb_news__read_content.innerHTML = newsContent_code; 
4035 
4036        </script> 
4037 
4038        <style> 
4039            
4040            .ptb-news__read-news .quote { 
4041                display: flex; 
4042                flex-direction: column; 
4043                gap: var(--space-md, 24px); 
4044
4045 
4046            .ptb-news__read-news .quote.no-author-wrapper{ 
4047                gap: 0; 
4048
4049 
4050            .ptb-news__read-news .quote .text-wrapper { 
4051                padding-left: var(--space-xl, 40px); 
4052
4053 
4054            .ptb-news__read-news .quote .text-wrapper .text { 
4055                font-style: var(--font-style-italic) !important; 
4056                padding-left: var(--space-md, 24px); 
4057                margin-bottom: 0; 
4058                border-left: 1px solid var(--border-color-mid, #d7d7d7); 
4059							  font-size: var(--font-size-xxs, 16px); 
4060
4061 
4062            .ptb-news__read-news .quote .author-wrapper {  
4063                display: flex; 
4064                flex-direction: row; 
4065                gap: var(--space-md, 24px); 
4066
4067 
4068            .ptb-news__read-news .news-content .quote .author-wrapper img { 
4069                height: var(--size-xxxl, 56px); 
4070                width: var(--size-xxxl, 56px); 
4071                border-radius: 100px; 
4072                border: var(--size-nano, 2px) solid var(--border-color-mid) !important; 
4073
4074 
4075            .ptb-news__read-news .news-content .quote .author-wrapper p { 
4076                margin: 0; 
4077                align-self: center; 
4078                font-size: var(--font-size-xs, 18px); 
4079                font-style: var(--font-style-normal, normal); 
4080                font-weight: var(--font-weight-bold, 700); 
4081                line-height: var(--line-height-xs, 100%); 
4082
4083 
4084            @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
4085                .ptb-news__read-news .quote .text-wrapper { 
4086                    padding-left: 0; 
4087
4088							 
4089							  .ptb-news__read-news .quote .text-wrapper .text { 
4090							      font-size: var(--font-size-xxxs, 14px); 
4091
4092 
4093                .ptb-news__read-news .news-content .quote .author-wrapper p { 
4094                    font-size: var(--font-size-xxs, 16px); 
4095
4096
4097        </style> 
4098    </#if> 
4099</#macro> 
4100 
4101 
4102					 
4103					 
4104<#-- ################################################################################################################## --> 
4105	 
4106	 
4107	 
4108	 
4109	 
4110	 
4111 
4112 
4113<#-- ############# Site de Crise - Notícia - Extrair dados de Notícias ################################################ --> 
4114<#-- 
4115Add elements from the sidebar to define your template. Type "${" to use the 
4116autocomplete feature. 
4117--> 
4118<#function extractFeaturedNewsHeadline fieldList xmlArticle> 
4119    <#return getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia")> 
4120</#function> 
4121 
4122<#function extractNewsSummary fieldList xmlArticle> 
4123    <#return getFieldValue(fieldList, xmlArticle, "Resumo da notícia")> 
4124</#function> 
4125 
4126<#function extractPublishDate journalArticle> 
4127    <#assign lastPublishDate = journalArticle.getModifiedDate()> 
4128    <#if journalArticle.getLastPublishDate()??> 
4129        <#assign lastPublishDate = journalArticle.getLastPublishDate()> 
4130    <#else> 
4131        <#assign lastPublishDate = journalArticle.getModifiedDate()> 
4132    </#if> 
4133    <#return lastPublishDate /> 
4134</#function> 
4135 
4136<#-- Seção da imagem de destaque ----------------------------------------------------------------------> 
4137<#function extractNewsMedia fieldList xmlArticle  fileEntryService> 
4138    <#-- Tentando pegar Imagem --> 
4139    <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) /> 
4140    <#assign media = {} /> 
4141    <#list mediasGroup as mediaGroup > 
4142        <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) />  
4143        <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "fileEntryId" : media.fileEntryId} /> 
4144 
4145        <#-- Se não tiver imagem, tentar pegar vídeo --> 
4146        <#if !media.imageSrc?has_content>               
4147            <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") /> 
4148            <#if youtubeID?? && youtubeID?has_content>  
4149                <#assign media = {"videoYotubeID": youtubeID} /> 
4150            <#else> 
4151                <#-- Tentar pegar vídeo Interno --> 
4152                <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) /> 
4153                <#if internalVideo?? && internalVideo?has_content> 
4154                    <#assign media = {"internalVideo": internalVideo} /> 
4155                </#if> 
4156            </#if>          
4157        </#if> 
4158 
4159        <#assign referenceMediasGroup = getNodes(getIdFromFieldName(fieldList, "Referências"), mediaGroup) /> 
4160        <#list referenceMediasGroup as referenciaMediaGroup > 
4161            <#assign credits = getFieldValue(fieldList, referenceMediasGroup, "Crédito da mídia de destaque da notícia") /> 
4162            <#assign legend = getFieldValue(fieldList, referenceMediasGroup, "Legenda da mídia de destaque da notícia") /> 
4163        </#list> 
4164 
4165        <#assign media = media + {"credits": credits, "legend": legend} /> 
4166         
4167    </#list> 
4168 
4169    <#return media> 
4170</#function> 
4171 
4172 
4173<#--------------------- Renderização de Lista de Cards -----------------------------------------------> 
4174 
4175<#-- Root Css -> Para poder instanciar dois elementos e não dar confusão no JS --> 
4176<#assign rootCss = "card-news-list-container_" + randomNumber(4586) /> 
4177 
4178<#attempt> 
4179    <#assign ourEnergyStyles = [] /> 
4180    <#list ourEnergyVocabulary.getCategories() as ourEnergyCategory > 
4181        <#assign shadowColorCategory = "" /> 
4182        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra")??)> 
4183            <#assign categoryShadowColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra") /> 
4184            <#assign shadowColorCategory = categoryShadowColorByService.value /> 
4185        </#if> 
4186 
4187        <#assign backgroundColorCategory = "" /> 
4188        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo")??)> 
4189            <#assign categoryBackgroundColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo") /> 
4190            <#assign backgroundColorCategory = categoryBackgroundColorByService.value /> 
4191        </#if> 
4192 
4193        <#assign textColorCategory = "" /> 
4194        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto")??)> 
4195            <#assign categoryTextColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto") /> 
4196            <#assign textColorCategory = categoryTextColorByService.value /> 
4197        </#if> 
4198 
4199        <#assign textColorHighContrastCategory = "" /> 
4200        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste")??)> 
4201            <#assign categoryTextColorHighContrastByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste") /> 
4202            <#assign textColorHighContrastCategory = categoryTextColorHighContrastByService.value /> 
4203        </#if> 
4204 
4205        <#assign ourEnergyStyles += [{"titleLocale": ourEnergyCategory.getTitle(locale),"shadowColor": shadowColorCategory, "backgroundColor": backgroundColorCategory, "textColor": textColorCategory, "textColorHighContrast": textColorHighContrastCategory}] /> 
4206    </#list> 
4207 
4208    <#recover> 
4209        <#assign ourEnergyStyles = [] /> 
4210     
4211</#attempt> 
4212 
4213<#-- Função para obter a primeira categoria associonada a um Vocabulário o qual está associado a um Jornal Article --> 
4214<#function getFirstCategoryTitleLocaleOfVocabulary journalArticle vocabulary > 
4215    <#attempt> 
4216        <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) /> 
4217         
4218        <#list categories as category> 
4219            <#if vocabulary.getVocabularyId() == category.getVocabularyId()> 
4220                <#return category.getTitle(locale)> 
4221            </#if> 
4222        </#list> 
4223 
4224        <#return ""> 
4225 
4226        <#recover> 
4227            <#return "" /> 
4228 
4229    </#attempt> 
4230</#function> 
4231 
4232<#-- Função para obter os dados de um card no Web Content (Journal Article) --> 
4233<#function getDataForCard entry > 
4234    <#attempt> 
4235        <#assign journalArticle = journalArticleLocalService.getLatestArticle(entry.getClassPK()) /> 
4236        <#assign ddmStructure = journalArticle.getDDMStructure() /> 
4237        <#assign fieldList = getFieldListByStructure(ddmStructure) /> 
4238        <#assign xmlArticle = journalArticle.getDocument().getRootElement() /> 
4239 
4240        <#-- Tentando pegar Imagem --> 
4241        <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) /> 
4242        <#assign media = "" /> 
4243        <#list mediasGroup as mediaGroup > 
4244            <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) /> 
4245 
4246            <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${media.fileEntryId}") /> 
4247 
4248            <#assign urlAdaptativeMediaDesktop = ""/> 
4249            <#assign urlAdaptativeMediaMobile = ""/> 
4250            <#if media.url?? && media.url?has_content && fileDataRequest?? && fileDataRequest.adaptedImages?? > 
4251                <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
4252                <#list dataAdaptativeMedia as data> 
4253                    <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
4254                        <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
4255                    </#if> 
4256                    <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
4257                        <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
4258                    </#if>      
4259                </#list> 
4260            </#if> 
4261            <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "imageFileEntryId": media.fileEntryId, "urlAdaptativeMedia": {"mobile": urlAdaptativeMediaMobile, "desktop": urlAdaptativeMediaDesktop}} />  
4262             
4263            <#-- Se não tiver imagem, tentar pegar vídeo --> 
4264            <#if !media.imageSrc?? || !media.imageSrc?has_content>               
4265                <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") /> 
4266                <#if youtubeID?? && youtubeID?has_content>  
4267                    <#assign media = {"videoYotubeID": youtubeID} /> 
4268                <#else> 
4269                    <#-- Tentar pegar vídeo Interno --> 
4270                    <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) /> 
4271                    <#if internalVideo?? && internalVideo?has_content> 
4272                        <#assign media = {"internalVideo": internalVideo} /> 
4273                    </#if> 
4274                </#if>          
4275            </#if> 
4276        </#list> 
4277 
4278        <#assign title = getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia") /> 
4279 
4280        <#assign timeRead = getFieldValue(fieldList, xmlArticle, "Tempo de Leitura") /> 
4281 
4282        <#assign ourEnergyCategory = getFirstCategoryTitleLocaleOfVocabulary(entry, ourEnergyVocabulary) /> 
4283 
4284        <#assign typeOfNews = getFirstCategoryTitleLocaleOfVocabulary(entry, typeOfNewsVocabulary) /> 
4285 
4286        <#if themeDisplay.getPortalURL()?contains("webserver")> 
4287					<#assign urlNews = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + journalArticle.getUrlTitle()> 
4288				<#else> 
4289						<#assign urlNews = themeDisplay.getPortalURL() + "/w/" + journalArticle.getUrlTitle()> 
4290				</#if> 
4291         
4292        <#assign cardData = {"media": media, "title": title, "timeRead": timeRead, "ourEnergyCategory": ourEnergyCategory, "typeOfNews": typeOfNews, "urlNews": urlNews} /> 
4293         
4294        <#return cardData> 
4295 
4296        <#recover> 
4297            <#return {} /> 
4298    </#attempt> 
4299 
4300    <#-- cardData ->    image: url, alt 
4301                        title 
4302                        timeRead 
4303                        ourEnergyCategory 
4304                        typeOfNews 
4305                        urlNews 
4306    --> 
4307</#function> 
4308 
4309 
4310<#-- Macro para renderizar os arrows--> 
4311<#macro renderArrows> 
4312    <div class="card-news-list-arrows-breakpoint breakpoint"> 
4313        <div class="card-news-list-arrows col-11-12 md-col-7-8 sm-col-1-4"> 
4314            <div class="card-news-arrow-left arrow-disable">  
4315                <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4316                    <path d="M1 17C1 8.16344 8.16344 1 17 1C25.8366 1 33 8.16344 33 17C33 25.8366 25.8366 33 17 33C8.16344 33 1 25.8366 1 17Z" stroke="#959595"/> 
4317                    <path d="M22.5 17H11.5M11.5 17L16 12.5M11.5 17L16 21.5" stroke="#525252" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
4318                </svg> 
4319            </div> 
4320            <div class="card-news-arrow-right">  
4321                <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4322                    <path d="M1 17C1 8.16344 8.16344 1 17 1C25.8366 1 33 8.16344 33 17C33 25.8366 25.8366 33 17 33C8.16344 33 1 25.8366 1 17Z" stroke="#008542"/> 
4323                    <path d="M11.5 17H22.5M22.5 17L18 12.5M22.5 17L18 21.5" stroke="#008542" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
4324                </svg> 
4325 
4326            </div> 
4327        </div> 
4328    </div> 
4329 
4330    <style> 
4331 
4332        .${rootCss} .card-news-list-arrows-breakpoint { 
4333            position: relative; 
4334            z-index: 1; 
4335
4336 
4337        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows { 
4338            display: flex; 
4339            align-items: flex-start; 
4340            justify-self: flex-end; 
4341            gap: var(--space-xxs, 8px); 
4342
4343         
4344        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left, 
4345        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right { 
4346            cursor: pointer; 
4347
4348 
4349        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(1), 
4350        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(1) { 
4351            fill: rgb(0, 133, 66); 
4352
4353 
4354        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(1), 
4355        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(1) { 
4356            fill: white; 
4357
4358 
4359        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(2), 
4360        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(2) { 
4361            stroke: #fff; 
4362
4363 
4364        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(2), 
4365        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(2) { 
4366            stroke: #010101; 
4367
4368 
4369        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable, 
4370        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable { 
4371            opacity: 0.4; 
4372            cursor: auto; 
4373
4374 
4375        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path, 
4376        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path { 
4377            stroke: rgb(0, 133, 66); 
4378            transition: all 300ms ease-in-out; 
4379
4380 
4381        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path, 
4382        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path { 
4383            stroke: rgba(228, 247, 232, 1); 
4384
4385 
4386        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1), 
4387        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) { 
4388            stroke: rgb(149, 149, 149); 
4389
4390 
4391        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1), 
4392        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) { 
4393            stroke: rgba(215, 215, 215, 1); 
4394
4395 
4396        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2), 
4397        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) { 
4398            stroke: rgb(82, 82, 82); 
4399
4400 
4401        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2), 
4402        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) { 
4403            stroke: rgba(149, 149, 149, 1); 
4404
4405 
4406        @media screen and (min-width: 1440px) { 
4407            .${rootCss} .card-news-list-arrows-breakpoint { 
4408                width: 100%; 
4409
4410
4411 
4412        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
4413 
4414            .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows { 
4415                justify-self: flex-start; 
4416                margin-top: var(--space-lg); 
4417
4418
4419 
4420    </style> 
4421 
4422</#macro> 
4423 
4424 
4425<#-- Macro para renderizar um Card --> 
4426<#macro renderCard cardData> 
4427    <#-- cardData ->    image: url, alt 
4428                        title 
4429                        timeRead 
4430                        ourEnergyCategory 
4431                        typeOfNews 
4432                        urlNews 
4433    --> 
4434 
4435    <div class="card-news-container"> 
4436        <a class="news-page-see-more-link card-news-link" href="${cardData.urlNews}">  Link da Notícia ${cardData.title}  </a> 
4437        <div class="card-news-thumb"> 
4438            <#assign noImage = "" /> 
4439            <#if cardData.media.imageSrc?? && cardData.media.imageSrc?has_content> 
4440                <#assign imageSrcDesktop = cardData.media.imageSrc /> 
4441                <#assign imageSrcMobile = cardData.media.imageSrc /> 
4442                <#if cardData.media.urlAdaptativeMedia?? && cardData.media.urlAdaptativeMedia?has_content> 
4443                    <#assign imageSrcDesktop = cardData.media.urlAdaptativeMedia.desktop /> 
4444                    <#assign imageSrcMobile = cardData.media.urlAdaptativeMedia.mobile /> 
4445                </#if> 
4446                <picture > 
4447                    <source media="(max-width:767px)" srcset="${imageSrcMobile}"> 
4448                    <img class="card-news-image" loading="lazy" src="${imageSrcDesktop}" alt="${cardData.media.imageAlt}"/> 
4449                </picture>		 
4450            <#else> 
4451                <#if cardData.media.videoYotubeID?? && cardData.media.videoYotubeID?has_content> 
4452                <picture > 
4453                    <source media="(max-width:767px)" srcset="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/mqdefault.jpg"> 
4454                    <img class="card-news-image" loading="lazy" src="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/maxresdefault.jpg" alt="YouTube Thumbnail"/> 
4455                </picture>  
4456                <#else> 
4457                    <#if (cardData.media.internalVideo?? && cardData.media.internalVideo.url?has_content) > 
4458                        <video class="card-news-image" loading="lazy"> 
4459                            <source src="${cardData.media.internalVideo.url}"> 
4460                            Your browser does not support the video tag. 
4461                        </video> 
4462                    <#else> 
4463                        <#assign noImage = "no-image" /> 
4464                    </#if> 
4465                </#if> 
4466                <svg class="thumb-play-icon" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4467                    <path d="M0 16C0 7.16344 7.16344 0 16 0C24.8366 0 32 7.16344 32 16C32 24.8366 24.8366 32 16 32C7.16344 32 0 24.8366 0 16Z" fill="white" fill-opacity="0.8"/> 
4468                    <path d="M22.2563 15.5744L13.2625 10.0744C13.1868 10.0277 13.1 10.0021 13.0111 10.0001C12.9221 9.99816 12.8343 10.02 12.7566 10.0633C12.6789 10.1066 12.6141 10.1698 12.569 10.2465C12.5239 10.3232 12.5001 10.4105 12.5 10.4994V21.4994C12.5001 21.5884 12.5239 21.6757 12.569 21.7524C12.6141 21.8291 12.6789 21.8923 12.7566 21.9356C12.8343 21.9789 12.9221 22.0007 13.0111 21.9988C13.1 21.9968 13.1868 21.9712 13.2625 21.9244L22.2563 16.4244C22.3301 16.3808 22.3913 16.3186 22.4338 16.2441C22.4763 16.1696 22.4987 16.0852 22.4987 15.9994C22.4987 15.9137 22.4763 15.8293 22.4338 15.7548C22.3913 15.6803 22.3301 15.6181 22.2563 15.5744Z" fill="#008542"/> 
4469                </svg>        
4470            </#if>         
4471        </div> 
4472         
4473        <div class="card-news-category-container ${noImage}">  
4474            <div data-category="${cardData.ourEnergyCategory}" class="card-news-category paragraph-micro-regular"> ${cardData.ourEnergyCategory} </div> 
4475        </div>  
4476 
4477        <div class="card-news-text-content ${noImage}">  
4478            <div class="card-news-title h5"> ${cardData.title} </div> 
4479 
4480             <div class="card-news-info">  
4481                <div class="card-news-type">  
4482                    <#if getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default(""))?? > 
4483												<#assign postTypeIconUrl = getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default("")) /> 
4484												<img src="${postTypeIconUrl}" loading="lazy" alt="post type icon" /> 
4485                        <div class="card-news-type-text paragraph-micro-regular">${cardData.typeOfNews}</div> 
4486												<#else/> 
4487                            <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4488                                <path d="M6.25 7.5H13.75M6.25 10H13.75M6.25 12.5H13.75M3.125 3.75H16.875C17.2202 3.75 17.5 4.02982 17.5 4.375V15.625C17.5 15.9702 17.2202 16.25 16.875 16.25H3.125C2.77982 16.25 2.5 15.9702 2.5 15.625V4.375C2.5 4.02982 2.77982 3.75 3.125 3.75Z" stroke="#959595" stroke-linecap="round" stroke-linejoin="round"/> 
4489                            </svg>										 
4490                            <div class="card-news-type-text paragraph-micro-regular">Artigo</div> 
4491										</#if> 
4492                </div> 
4493 
4494								<#if cardData.timeRead?? && cardData.timeRead?has_content> 
4495									<div class="card-news-time-read">  
4496											<svg class="card-news-icon-time-read" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4497													<path d="M10.5 5.625C10.5 5.34886 10.2761 5.125 10 5.125C9.72386 5.125 9.5 5.34886 9.5 5.625H10.5ZM10 10H9.5C9.5 10.2761 9.72386 10.5 10 10.5V10ZM14.375 10.5C14.6511 10.5 14.875 10.2761 14.875 10C14.875 9.72386 14.6511 9.5 14.375 9.5V10.5ZM17 10C17 13.866 13.866 17 10 17V18C14.4183 18 18 14.4183 18 10H17ZM10 17C6.13401 17 3 13.866 3 10H2C2 14.4183 5.58172 18 10 18V17ZM3 10C3 6.13401 6.13401 3 10 3V2C5.58172 2 2 5.58172 2 10H3ZM10 3C13.866 3 17 6.13401 17 10H18C18 5.58172 14.4183 2 10 2V3ZM9.5 5.625V10H10.5V5.625H9.5ZM10 10.5H14.375V9.5H10V10.5Z" fill="#959595"/> 
4498											</svg> 
4499 
4500											<div class="card-news-time-read-text paragraph-micro-regular">${cardData.timeRead} min</div> 
4501									</div> 
4502								</#if> 
4503            </div> 
4504        </div> 
4505    </div> 
4506</#macro> 
4507 
4508<style> 
4509    .${rootCss} .card-news-container { 
4510        width: 300px; 
4511        height: 370px; 
4512        display: flex; 
4513        flex-direction: column; 
4514        flex-shrink: 0; 
4515        align-items: flex-start; 
4516        border-radius: var(--border-radius-lg); 
4517        border: var(--border-width-hairline) solid var(--border-card-default, #EEE); 
4518        background: var(--background-surface-level-01, #FFF); 
4519        box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
4520        overflow: hidden; 
4521        scroll-snap-align: start; 
4522        cursor: pointer; 
4523        transition: border 300ms ease-in-out; 
4524        text-decoration: none; 
4525        position: relative; 
4526
4527 
4528    body.high-contrast-active .${rootCss} .card-news-container {      
4529        border: var(--border-width-hairline) solid var(--border-card-default, #525252); 
4530        background: var(--background-surface-level-01, #010101); 
4531
4532 
4533    .${rootCss} .card-news-container:hover { 
4534        border: var(--border-width-hairline) solid rgb(0, 133, 66); 
4535
4536 
4537    body.high-contrast-active .${rootCss} .card-news-container:hover { 
4538        border: var(--border-width-hairline) solid var(--border-card-default, #E4F7E8); 
4539
4540 
4541    .${rootCss} .card-news-container .card-news-link { 
4542        position: absolute; 
4543        top: 0; 
4544        width: 100%; 
4545        height: 100%; 
4546        z-index: 1; 
4547        opacity: 0; 
4548
4549 
4550    .${rootCss} .card-news-container .card-news-thumb { 
4551        position: relative; 
4552
4553 
4554    .${rootCss} .card-news-container .card-news-image { 
4555        width: 298px; 
4556        height: 168px; 
4557        object-fit: cover; 
4558
4559 
4560 
4561    .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon { 
4562        position: absolute; 
4563        left: 50%; 
4564        top: 50%; 
4565        transform: translate(-50%, -50%); 
4566
4567 
4568    body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(1) { 
4569        fill: black;   
4570
4571 
4572    body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(2) { 
4573        fill: white;   
4574
4575 
4576    .${rootCss} .card-news-container .card-news-category-container { 
4577        position: relative; 
4578
4579 
4580    .${rootCss} .card-news-container .card-news-category-container .card-news-category { 
4581        display: flex; 
4582        justify-content: center; 
4583        align-items: center;  
4584        padding: var(--space-micro) var(--space-xs); 
4585        position: absolute; 
4586        z-index: 2; 
4587        left: var(--space-md); 
4588        top: -13px; 
4589        border-radius: var(--border-radius-pill); 
4590        background: linear-gradient(0deg, var(--background-surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 0%, var(--background-surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 100%), var(--default-sup-green-water, #006B65); 
4591        box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10); 
4592        line-height: var(--line-height-lg, 144%); 
4593        color: var(--default-sup-green-water, #006B65); 
4594			  white-space: nowrap; 
4595
4596 
4597    body.high-contrast-active .${rootCss} .card-news-container .card-news-category-container .card-news-category { 
4598        background: linear-gradient(0deg, var(--background-surface-opacity-light-level-07, #373737) 0%, var(--background-surface-opacity-light-level-07, #373737) 100%), var(--default-sup-green-water, #99E0DD); 
4599        color: var(--default-sup-green-water, #99E0DD);  
4600
4601 
4602    .${rootCss} .card-news-container .card-news-category-container.no-image .card-news-category { 
4603        position: relative; 
4604        top: 0; 
4605        left: 0; 
4606        margin-left: var(--space-md); 
4607        margin-top: var(--space-md); 
4608
4609 
4610    .${rootCss} .card-news-container .card-news-text-content { 
4611        display: flex; 
4612        padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px); 
4613        flex-direction: column; 
4614        justify-content: space-between; 
4615        align-items: flex-start; 
4616        flex: 1 0 0; 
4617        align-self: stretch; 
4618
4619 
4620    .${rootCss} .card-news-container .card-news-text-content.no-image { 
4621        padding-top: var(--space-sm); 
4622
4623 
4624    .${rootCss} .card-news-container .card-news-text-content .card-news-title { 
4625        display: -webkit-box; 
4626        -webkit-box-orient: vertical; 
4627        -webkit-line-clamp: 4; 
4628        align-self: stretch; 
4629        overflow: hidden; 
4630        color: var(--text-primary-default, #373737); 
4631        text-overflow: ellipsis; 
4632        margin: 0; 
4633
4634 
4635    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-title { 
4636        color: var(--text-primary-default, #FFF); 
4637
4638 
4639    .${rootCss} .card-news-container .card-news-text-content .card-news-info { 
4640        display: flex; 
4641        align-items: center; 
4642        align-content: center; 
4643        gap: var(--space-sm, 16px); 
4644        align-self: stretch; 
4645        flex-wrap: wrap; 
4646
4647 
4648    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type, 
4649    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read { 
4650        display: flex; 
4651        align-items: center; 
4652        gap: var(--space-xxs, 8px); 
4653
4654 
4655    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type path { 
4656        stroke: #D7D7D7; 
4657
4658 
4659    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text, 
4660    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
4661        color: var(--text-tertiary-default, #959595); 
4662        line-height: var(--line-height-lg, 144%); 
4663
4664 
4665    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text, 
4666    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
4667        color: var(--text-tertiary-default, #EEE); 
4668
4669 
4670    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-icon-time-read { 
4671        transform: translateY(-0.5px); 
4672
4673 
4674    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-icon-time-read path { 
4675        fill: #D7D7D7; 
4676
4677</style> 
4678 
4679<#assign maxNumberOfCards = 9/> 
4680<#assign className = "com.liferay.journal.model.JournalArticle" /> 
4681<#assign classNameId = PortalUtil.getClassNameId(className) /> 
4682${AssetEntryQuery.setClassNameIds([classNameId]) } 
4683${AssetEntryQuery.setEnd(maxNumberOfCards)} 
4684 
4685<#assign entries = []/> 
4686<#assign ourEnergyCategoriesIds = getAllCategoryIdOfVocabulary(assetEntry, ourEnergyVocabulary) /> 
4687<#list ourEnergyCategoriesIds as ourEnergyCategoryId> 
4688    ${AssetEntryQuery.setAllCategoryIds([ourEnergyCategoryId])} 
4689    <#assign ents = AssetEntryQueryService.getEntries(AssetEntryQuery) /> 
4690    <#assign entries = entries + ents /> 
4691</#list> 
4692 
4693 
4694<#-- Renderizar Lista de cards --> 
4695<#if entries?has_content> 
4696    <div class="${rootCss}"> 
4697        <div class="list-of-news-title breakpoint"> 
4698            <div class="list-of-news-title-col col-1-12 md-col-1-8 sm-col-1-4"> 
4699                <div class="list-title fragment_85017"> 
4700                    <div class="petro-title"> 
4701                        <h2 id="title" class="display-sm" style="color: var(--color-neutral-800)"> 
4702                            <#if locale?lower_case == "pt_br"> Leia também <#else> Read also </#if> 
4703                        </h2> 
4704                             
4705                        <div class="yellow-bar bar-display-sm" style="background-color: var(--color-secondary-medium)"></div> 
4706                     
4707                    </div> 
4708                </div> 
4709            </div>  
4710        </div> 
4711 
4712        <@renderArrows /> 
4713         
4714        <div class="card-news-list-breakpoint breakpoint"> 
4715            <div class="card-news-list col-1-12 md-col-1-8 sm-col-1-4">  
4716                <#if entries?size gt maxNumberOfCards> 
4717                    <#assign entries = entries[0..maxNumberOfCards] /> 
4718                </#if> 
4719                <#list entries as entry> 
4720                    <#if assetEntry.getClassPK() != entry.getClassPK() > 
4721                        <#assign cardData = getDataForCard(entry) /> 
4722                        <@renderCard cardData/> 
4723                    </#if> 
4724                </#list> 
4725            </div> 
4726        </div>   
4727    </div> 
4728</#if> 
4729 
4730 
4731<style> 
4732 
4733    .portlet { 
4734        margin: 0; 
4735
4736     
4737    .${rootCss} { 
4738        padding: var(--space-giant, 80px) 0; 
4739        background: var(--background-surface-level-01, #FFF); 
4740        width: 100%; 
4741        position: relative; 
4742        font-family: var(--font-family-base, "Petrobras Sans"); 
4743        display: flex; 
4744        flex-direction: column; 
4745        gap: var(--space-lg); 
4746
4747 
4748    body.high-contrast-active .${rootCss} { 
4749        background: var(--background-surface-level-01, #010101); 
4750
4751 
4752    .${rootCss} .list-of-news-title { 
4753        position: relative; 
4754        z-index: 1; 
4755
4756 
4757    .${rootCss} body.high-contrast-active .fragment_614685 .petro-title .yellow-bar { 
4758        background-color: #FFEEB3 !important; 
4759
4760 
4761    .${rootCss} .card-news-list { 
4762        display: flex; 
4763        gap: var(--space-lg); 
4764        overflow: auto; 
4765        position: relative; 
4766        z-index: 1; 
4767        scroll-snap-type: x mandatory; 
4768        scrollbar-width: none; 
4769
4770 
4771    .${rootCss} .card-news-list::-webkit-scrollbar { 
4772        display: none; 
4773
4774 
4775    @media screen and (min-width: 1440px) { 
4776        .${rootCss} .card-news-list-breakpoint { 
4777            width: 100%;            
4778
4779 
4780        .${rootCss} .list-of-news-title { 
4781            width: 100%; 
4782
4783
4784 
4785    @media screen and (max-width: 1024px) { 
4786        .${rootCss} .fragment_614685 { 
4787            padding: var(--space-xxl, 56px) 0; 
4788
4789
4790    
4791</style> 
4792 
4793<#list ourEnergyStyles as ourEnergyStyle> 
4794    <style> 
4795        .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] { 
4796            background: linear-gradient(0deg, var(--background-surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 0%, var(--background-surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 100%), #${ourEnergyStyle.backgroundColor} !important; 
4797            box-shadow: 0px 2px 6px 0px #${ourEnergyStyle.shadowColor} !important; 
4798            color: #${ourEnergyStyle.textColor} !important; 
4799
4800 
4801        body.high-contrast-active .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] { 
4802             background: linear-gradient(0deg, var(--background-surface-opacity-light-level-07, rgba(55, 55, 55, 1)) 0%, var(--background-surface-opacity-light-level-07, rgba(55, 55, 55, 1)) 100%), #${ourEnergyStyle.backgroundColor} !important; 
4803            color: #${ourEnergyStyle.textColorHighContrast} !important; 
4804
4805 
4806    </style> 
4807</#list> 
4808 
4809<script> 
4810 
4811    function disableEnableArrow(arrow, scrollBar, maxDistance, direction) 
4812
4813        if(direction === "left") { 
4814            if (scrollBar.scrollLeft > 0) { 
4815                arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable"); 
4816
4817            else { 
4818                !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable"); 
4819
4820        }  
4821        else if(direction === "right") { 
4822            if (Math.ceil(scrollBar.scrollLeft + scrollBar.clientWidth) < maxDistance) { 
4823                arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable"); 
4824
4825            else { 
4826                !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable"); 
4827
4828
4829
4830 
4831    function scrollCarousel() 
4832
4833        const root = document.querySelector(".${rootCss}"); 
4834        if(root) { 
4835            const scrollBar = root.querySelector(".${rootCss} .card-news-list"); 
4836            const gap = 32;// var(--space-lg); 
4837            const stepLength = scrollBar.querySelector(".card-news-container").offsetWidth + gap; 
4838            const arrowLeftBtn = root.querySelector(".card-news-arrow-left") 
4839            const arrowRightBtn = root.querySelector(".card-news-arrow-right") 
4840 
4841            let maxDistance = scrollBar.scrollWidth; 
4842 
4843            arrowLeftBtn.addEventListener('click', () => { 
4844                if (scrollBar.scrollLeft > 0) { 
4845                    scrollBar.scroll({ 
4846                        left: scrollBar.scrollLeft - stepLength, 
4847                        behavior: "smooth", 
4848                    });	 
4849
4850            }); 
4851 
4852            arrowRightBtn.addEventListener('click', () => { 
4853                if (scrollBar.scrollLeft < maxDistance) { 
4854                    scrollBar.scroll({ 
4855                        left: scrollBar.scrollLeft + stepLength, 
4856                        behavior: "smooth", 
4857                    }); 
4858
4859            }); 
4860             
4861            scrollBar.addEventListener("scroll", ()=>{ 
4862                disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left"); 
4863                disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right"); 
4864            }); 
4865 
4866            disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left"); 
4867            disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right"); 
4868 
4869        }        
4870
4871 
4872    document.addEventListener('DOMContentLoaded', scrollCarousel); 
4873 
4874</script> 
4875	 
4876<style> 
4877 
4878 
4879.ptb-news__read-news .news-content .embed-responsive-youtube::before { 
4880    padding-top: 0; 
4881
4882	 
4883.ptb-news__read-news .news-content .embed-responsive-liferay::before { 
4884    padding-top: calc(9/16 *100% - 64px); 
4885
4886 
4887.ptb-news__read-news .news-content .thumnail-play-button { 
4888
4889 
4890.ptb-news__read-news .news-content .thumnail-play-button { 
4891    position: relative; 
4892    z-index: 100; 
4893    height: 64px; 
4894    width: 64px; 
4895    background-repeat: no-repeat; 
4896    top: calc(50%); 
4897    left: calc(50% - 32px); 
4898
4899	 
4900	 
4901.ptb-news__read-news .news-content .thumnail-play-button-youtube { 
4902    position: absolute; 
4903    z-index: 100; 
4904    height: 64px; 
4905    width: 64px; 
4906    background-repeat: no-repeat; 
4907    top: calc(50% - 64px); 
4908    left: calc(50% - 32px); 
4909
4910 
4911.ptb-news__read-news .news-content .thumnail-play-button-liferay { 
4912    position: relative; 
4913    z-index: 100; 
4914    height: 64px; 
4915    width: 64px; 
4916    top: calc(-50% + 32px); 
4917    left: calc(50% - 32px); 
4918    background-repeat: no-repeat; 
4919
4920 
4921	 
4922	.ptb-news__read-news .news-content .embed-responsive-youtube img { 
4923	width: 100%; 
4924		height: 100%; 
4925
4926	 
4927</style> 
4928 
4929	<script> 
4930	<#assign createYoutubeThumbnails = "createYoutubeThumbnails_"+ randomNumber(5952) />  
4931	 
4932	function ${createYoutubeThumbnails}(){ 
4933 
4934        const newsContent = document.querySelector(".news-content"); 
4935 
4936        const getYoutubeId = (youtubeUrl) => { 
4937 
4938            const url = new URL(youtubeUrl); 
4939            const splittedPathName = url.pathname.split("/"); 
4940 
4941            if (splittedPathName.length <= 0){ 
4942                return ""; 
4943
4944 
4945            return splittedPathName[splittedPathName.length-1]; 
4946        }; 
4947		 
4948		    window.addEventListener("resize", (event) => { 
4949				const iframeList = newsContent.querySelectorAll('iframe'); 
4950           iframeList.forEach((iframe) => { 
4951                const src = iframe.src; 
4952                if (!src){ 
4953                    return; 
4954
4955 
4956                const isYoutube = src.toLowerCase().includes("youtube"); 
4957                if (!isYoutube){ 
4958                    return; 
4959
4960						  
4961						    const iframeParent = iframe.parentNode; 
4962						  
4963						    const thumbnail = iframeParent.querySelector("img"); 
4964                if (thumbnail){ 
4965					         // thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px"; 
4966
4967				   }); 
4968				 
4969				}); 
4970         
4971        const iframeList = newsContent.querySelectorAll('iframe'); 
4972        iframeList.forEach((iframe) => { 
4973                const src = iframe.src; 
4974                if (!src){ 
4975                    return; 
4976
4977 
4978                const isYoutube = src.toLowerCase().includes("youtube"); 
4979                if (!isYoutube){ 
4980                    return; 
4981
4982 
4983                const iframeParent = iframe.parentNode; 
4984 
4985                const thumbnail = document.createElement("img"); 
4986                thumbnail.src = 'https://img.youtube.com/vi/' + getYoutubeId(src) +'/hqdefault.jpg'; 
4987                thumbnail.alt = "Youtube"; 
4988					      //thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px"; 
4989 
4990                const playButton = document.createElement("div"); 
4991                playButton.style = 'background-image: url("data:image/svg+xml,%3Csvg width=\'64\' height=\'64\' viewBox=\'0 0 64 64\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cg clip-path=\'url(%23clip0_4118_27800)\'%3E%3Crect width=\'64\' height=\'64\' rx=\'32\' fill=\'white\'/%3E%3Cpath d=\'M39.22 32.52C39.591 32.2726 39.591 31.7274 39.22 31.48L28.9717 24.6478C28.5563 24.3709 28 24.6686 28 25.1678V38.8322C28 39.3314 28.5563 39.6291 28.9717 39.3522L39.22 32.52Z\' fill=\'%23008542\' stroke=\'%23008542\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-linejoin=\'round\'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id=\'clip0_4118_27800\'%3E%3Crect width=\'64\' height=\'64\' rx=\'32\' fill=\'white\'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A")'; 
4992                playButton.classList.add("thumnail-play-button-youtube"); 
4993                const children = iframeParent.children; 
4994 
4995                if (children.length > 0) { 
4996                    iframeParent.insertBefore(thumbnail, children.firstChild); 
4997                    iframeParent.insertBefore(playButton, thumbnail); 
4998                    iframe.classList.add("hide"); 
4999                    iframeParent.classList.add("embed-responsive-youtube"); 
5000
5001 
5002                playButton.addEventListener("click", () => { 
5003                    thumbnail.click(); 
5004                }); 
5005 
5006                thumbnail.addEventListener("click", () => { 
5007                    thumbnail.classList.add("hide"); 
5008                    playButton.classList.add("hide"); 
5009                    iframe.classList.remove("hide"); 
5010                    iframeParent.classList.remove("embed-responsive-youtube"); 
5011                    const url = new URL(src); 
5012                    const searchParams = url.searchParams; 
5013                    searchParams.set("rel", "0"); 
5014                    //searchParams.set("modestbranding", "0"); 
5015                    //searchParams.set("mute", "0"); 
5016                    //searchParams.set("color", "white"); 
5017                    searchParams.set("controls", "1"); 
5018                    //searchParams.set("playsinline", "1"); 
5019                    //searchParams.set("enablejsapi", "1"); 
5020                    searchParams.set("autoplay", "1"); 
5021                    //searchParams.set("logo", "0"); 
5022                 
5023                    console.log(url.toString()); 
5024 
5025                    iframeParent.setAttribute("data-embed-id", url.toString()); 
5026                    iframe.setAttribute("src", url.toString()); 
5027                }); 
5028        }); 
5029  
5030
5031		 
5032	${createYoutubeThumbnails}(); 
5033		 
5034    <#assign createLRThumbnails = "createLRThumbnails"+ randomNumber(5952) />  
5035	 
5036	function ${createLRThumbnails}(){ 
5037 
5038        const newsContent = document.querySelector(".news-content"); 
5039        const iframeList = newsContent.querySelectorAll("iframe[data-video-liferay]"); 
5040 
5041        iframeList.forEach(iframe => {                       
5042 
5043            const playButton = document.createElement("div"); 
5044            playButton.style = 'background-image: url("data:image/svg+xml,%3Csvg width=\'64\' height=\'64\' viewBox=\'0 0 64 64\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cg clip-path=\'url(%23clip0_4118_27800)\'%3E%3Crect width=\'64\' height=\'64\' rx=\'32\' fill=\'white\'/%3E%3Cpath d=\'M39.22 32.52C39.591 32.2726 39.591 31.7274 39.22 31.48L28.9717 24.6478C28.5563 24.3709 28 24.6686 28 25.1678V38.8322C28 39.3314 28.5563 39.6291 28.9717 39.3522L39.22 32.52Z\' fill=\'%23008542\' stroke=\'%23008542\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-linejoin=\'round\'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id=\'clip0_4118_27800\'%3E%3Crect width=\'64\' height=\'64\' rx=\'32\' fill=\'white\'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A")'; 
5045            playButton.classList.add("thumnail-play-button-liferay"); 
5046            const children = iframe.parentNode.children; 
5047            if (children.length > 0) {                
5048                iframe.parentNode.insertBefore(playButton, children.firstChild);                 
5049
5050 
5051            iframe.addEventListener("load", () => { 
5052                if (iframe.contentDocument){ 
5053                    const video = iframe.contentDocument.body.querySelector("video"); 
5054                    video.removeAttribute("controls"); 
5055
5056            }); 
5057					 
5058					iframe.parentNode.classList.add("embed-responsive-liferay"); 
5059             
5060 
5061            playButton.addEventListener("click", () => { 
5062                playButton.classList.add("hide"); 
5063                playButton.classList.remove("thumnail-play-button-liferay");     
5064							iframe.parentNode.classList.remove("embed-responsive-liferay"); 
5065                if (iframe.contentDocument){ 
5066                    const video = iframe.contentDocument.body.querySelector("video"); 
5067                    video.setAttribute("controls", ""); 
5068                    video.play(); 
5069
5070            }); 
5071        }); 
5072
5073 
5074    ${createLRThumbnails}(); 
5075	</script> 




Canais

Acessibilidade

Faça uma busca:

Sugestões de busca

Link de exemplo
Ícone do botão /documents/d/nossa-energia/chevronright-svg?download=true Exibir mais resultados
Ícone de carregamento

Mais pesquisados

Preço dos combustíveis

Pré-Sal

Time Petrobras

Escolha um Canal:

Portal da Transparência
Transparência
Portal da Transparência
Investidor Petrobras
Investidor Petrobras
Investidor Petrobras
Site Petrobras
Site Petrobras
Site Petrobras

Acessibilidade

Alto-Contraste

Desligado

Ligado

Texto Grande

Desligado

Ligado

Idioma:

Selecione um idioma: