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:
==> cardData  [in template "20099#20135#10700480" at line 1373, column 69]

----
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: ${cardData.media.videoYotubeID}  [in template "20099#20135#10700480" in macro "renderNewsFeaturedMedia" at line 1373, column 67]
	- Reached through: @renderNewsFeaturedMedia newsInfo  [in template "20099#20135#10700480" at line 471, column 21]
----
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                <#assign WEB_STORIES_FIELD_SET_FIELD_REF = "Fieldset91054335" /> 
263                <#assign WEB_STORIES_IDENTIFICATION_FIELD_LABEL = "Identificador do Carousel" /> 
264                <#assign WEB_STORIES_TITLE_FIELD_LABEL = "Título do carrossel" /> 
265 
266                <#assign webStoriesCarouselsIds = [] /> 
267                <#assign webStoriesCarouselsTitles = [] /> 
268                <#assign webStoriesCarouselsIdsFieldSetList = getNodes(WEB_STORIES_FIELD_SET_FIELD_REF, xmlArticle) /> 
269 
270                <#list webStoriesCarouselsIdsFieldSetList as webStoriesFieldSet> 
271                    <#assign webStoriesCarouselsIds = webStoriesCarouselsIds + [ getFieldValue(fieldList, webStoriesFieldSet, WEB_STORIES_IDENTIFICATION_FIELD_LABEL) ] /> 
272                    <#assign webStoriesCarouselsTitles = webStoriesCarouselsTitles + [ getFieldValue(fieldList, webStoriesFieldSet, WEB_STORIES_TITLE_FIELD_LABEL) ] /> 
273                </#list> 
274 
275                <#assign wsCarouselContent = ' 
276                <div id="[CAROUSEL_ID]" class="ws-carousel"> 
277                    <div class="ws-carousel-header"> 
278                        <h1 class="h2"> 
279                            [CAROUSEL_TITLE] 
280                        </h1> 
281                        <div class="nav-buttons"> 
282                            <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"> 
283                                <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"/> 
284                                <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"/> 
285                            </svg> 
286                            <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"> 
287                                <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"/> 
288                                <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"/> 
289                            </svg> 
290                        </div> 
291                    </div> 
292                    <div class="ws-carousel-body"> 
293                        <div class="ws-container"> 
294                        </div> 
295                    </div>     
296                </div>' /> 
297 
298                <#list webStoriesCarouselsIds as item > 
299                    <#assign carouselDiv = wsCarouselContent?replace("[CAROUSEL_ID]", item)?replace("[CAROUSEL_TITLE]", webStoriesCarouselsTitles[item?index]) /> 
300                    <#assign newsContent = newsContent?replace("<p>#[${item}]</p>", carouselDiv) /> 
301                </#list> 
302 
303 
304                <#-- Seção do áudio para o conteúdo da notícia --------------------------------------------------------> 
305                <#assign audios = [] 
306                audioIdentifierFieldSetList = getNodes("Fieldset65862311", xmlArticle) 
307
308                <#list audioIdentifierFieldSetList as audioIdentifierFieldSet> 
309                    <#assign 
310                    <#-- Grupo com as informações de url e legenda do áudio --> 
311                    audioInfoFieldSet = getGroupNode("Fieldset24035689",audioIdentifierFieldSet)> 
312                    <#assign 
313                    externalAudioUrl = getFieldValue(fieldList, audioInfoFieldSet, "URL externa do áudio") 
314                    internalAudioUrl = getFileFromXML("DocumentLibrary24170668", audioInfoFieldSet, fileEntryService) 
315                    audioLegend = getFieldValue(fieldList, audioInfoFieldSet, "Legenda do áudio")> 
316 
317                    <#if externalAudioUrl?has_content || internalAudioUrl.url?has_content > 
318                        <#assign audios += [{ 
319                        "id": getFieldValue(fieldList, audioIdentifierFieldSet, "Identificador de Áudio"), 
320                        "externalUrl" : externalAudioUrl, 
321                        "internalUrl" : internalAudioUrl, 
322                        "legend" : audioLegend 
323                        }]> 
324                    </#if> 
325                </#list> 
326 
327 
328                <#-- Seção de vídeo para o conteúdo da notícia --------------------------------------------------------> 
329                <#assign videos = [] 
330                videoIdentifierFieldSetList = getNodes("Fieldset24460782", xmlArticle) 
331
332                <#list videoIdentifierFieldSetList as videoIdentifierFieldSet> 
333                    <#assign 
334                    <#-- Grupo com as informações de url e legenda do áudio --> 
335                    videoInfoFieldSet = getGroupNode("Fieldset51040010",videoIdentifierFieldSet) 
336 
337                    videos += [{ 
338                    "id": getFieldValue(fieldList,videoIdentifierFieldSet, "Identificador de Vídeo"), 
339                    "youtubeID" : getFieldValue(fieldList, videoInfoFieldSet, "ID do vídeo do YouTube"), 
340                    "internalUrl" : getFileFromXML("DocumentLibrary15265409", videoInfoFieldSet, fileEntryService), 
341                    "legend" : getFieldValue(fieldList, videoInfoFieldSet, "Legenda do vídeo") 
342                    }] 
343
344                </#list> 
345 
346 
347                <#-- Seção de links para o conteúdo da notícia --------------------------------------------------------> 
348                <#assign 
349                links = [] 
350                linksFieldSetList = getNodes("Fieldset37770113", xmlArticle) 
351
352                <#list linksFieldSetList as linksFieldSet> 
353                    <#assign linkFieldSetList = getNodes("Fieldset10524367", linksFieldSet)> 
354 
355                    <#list linkFieldSetList as linkFieldSet> 
356                        <#assign 
357                        linkId = getFieldValue(fieldList, linkFieldSet, "Identificador do link") 
358 
359                        <#-- Grupo com as informações de url e legenda do áudio --> 
360                        linkInfoFieldSeet = getGroupNode("Fieldset86037074", linkFieldSet) 
361 
362                        iconType = getFieldValue(fieldList, linkInfoFieldSeet, "Ícone do link") 
363                        links += [{ 
364                        "id": linkId, 
365                        "externalLink" : getFieldValue(fieldList, linkInfoFieldSeet, "Link externo"), 
366                        "pageLink" : getPageLayoutLinkFromXML("LinkToLayout77941175", linkInfoFieldSeet, layoutLocalService), 
367                        "file" : getFileFromXML("DocumentLibrary34820760", linkInfoFieldSeet, fileEntryService), 
368                        "title" : getFieldValue(fieldList, linkInfoFieldSeet, "Título do link"), 
369                        "iconType" : iconType 
370                        }] 
371
372                    </#list> 
373                </#list> 
374 
375 
376                 
377                <#assign galleryItems = []/> 
378                
379                <#assign mediaGroupList = getNodes(getIdFromFieldName(fieldList, "Galeria de multimídia"), xmlArticle) /> 
380                 
381                <#list mediaGroupList as mediaGroup >       
382                    <#assign nodes = getNodes(getIdFromFieldName(fieldList, "Imagem da Galeria") , mediaGroup) /> 
383                    <#list nodes as node>                   
384                        <#assign image = getMediaInfo(fieldList, node, "Imagem", fileEntryService) /> 
385                        <#if image?? && image?has_content && image.url?has_content> 
386                            <#assign galleryItems += [{"image": image}] /> 
387                        </#if>   
388                    </#list> 
389                </#list> 
390                 
391				<#-- Seção de Quotes para o conteúdo da notícia --------------------------------------------------------> 
392				<#-- Seção de Quotes para o conteúdo da notícia --------------------------------------------------------> 
393                <#assign quotes = [] /> 
394                <#assign quotesRootFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quotes da notícia"), xmlArticle) /> 
395                <#list quotesRootFieldSetList as quotesFieldSetList> 
396                     <#assign quoteFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quote"), quotesFieldSetList) /> 
397						         <#list quoteFieldSetList as quoteFieldSet> 
398                                        <#assign imageJsonString  = getSingleNodeString("Image94530628", quoteFieldSet)   />                                                                       
399                                        <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} /> 
400                                        <#attempt> 
401                                            <#if imageJsonString ?? && imageJsonString?has_content>  
402                                                <#assign imageJson = jsonFactoryUtil.createJSONObject(imageJsonString) /> 
403                                            </#if> 
404 
405                                            <#if !imageJson.url?? || !imageJson.url?has_content> 
406                                                <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} /> 
407                                            </#if> 
408                                        <#recover>                                             
409                                        </#attempt> 
410 
411                                         <#if !imageJson.url?? || !imageJson.url?has_content> 
412                                                <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} /> 
413                                            </#if> 
414                                 					       
415                                    <#assign quotes += [{ 
416                                    "id": getFieldValue(fieldList, quoteFieldSet, "Identificador do Quote"), 
417                                    "content" : getFieldValue(fieldList, quoteFieldSet, "Texto do Quote"), 
418                                    "author" : getFieldValue(fieldList, quoteFieldSet, "Nome do autor"), 
419                                    "image" : {"url": imageJson.url, "alt": imageJson.alt, "fileEntryId" : imageJson.fileEntryId, "title" : imageJson.title}  
420                                    }] /> 
421						          </#list>                    
422                </#list> 
423 
424                <#assign newsInfo = { 
425                "mainHeadlineOfTheNews": mainHeadlineOfTheNews, 
426                "featuredNewsHeadline" : featuredNewsHeadline, 
427                "displayDate" : formatDate(createDate), 
428                "createDate": createDate, 
429                "newsSummary" : newsSummary, 
430                "newsMedia":  extractNewsMedia(fieldList, xmlArticle, fileEntryService), 
431                "lastPublishDate": lastPublishDate, 
432                "flag": flag, 
433                "url": newsJournalArticleFriendlyUrl, 
434                "newsContent": newsContent, 
435                "audios": audios, 
436                "videos": videos, 
437                "galleryItems": galleryItems, 
438                "links": links, 
439								"quotes": quotes 
440                }/> 
441 
442                <#-- Renderizar o título principal da notícia --> 
443                <#-- Conteúdo-> Conteúdo Web -> Templates: Site de Crise - Notícia - Título --> 
444                <@renderHeadLine newsInfo/> 
445 
446                <#-- Renderizar o resumo da notícia --> 
447                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Resumo --> 
448                <@renderReview newsInfo/> 
449 
450                <#-- Renderizar a data de publicação/edição da notícia e redes sociais --> 
451                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação --> 
452                <@renderPublishAndSocialMediasInfos newsJournalArticle newsInfo/> 
453 
454                <#-- Renderizar as tags da notícia --> 
455                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render Tags --> 
456                <#assign categoriesAsssetEntryResponse = restClient.get("/headless-delivery/v1.0/structured-contents/${assetEntry.getClassPK()}?nestedFields=embeddedTaxonomyCategory&fields=taxonomyCategoryBriefs") /> 
457               
458                <#if categoriesAsssetEntryResponse?? && categoriesAsssetEntryResponse?has_content && categoriesAsssetEntryResponse.taxonomyCategoryBriefs??> 
459                    <#assign tagCategoryList = getCategoriesNamesAndIds("Tags", categoriesAsssetEntryResponse.taxonomyCategoryBriefs) /> 
460                    <#assign removeStartParameterWhenTagIsClicked = true /> 
461                    <#assign includeRequestParams = false /> 
462                    <#assign NEWS_PAGE_NAME= "categorias"/> 
463                </#if> 
464                 
465 
466                <#-- Renderizar a imagem de destaque da notícia --> 
467                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Imagem de destaque --> 
468                <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) /> 
469                 
470                <#if !typeOfNews?? || !typeOfNews?has_content || typeOfNews != "Infográfico" >                
471                    <@renderNewsFeaturedMedia newsInfo /> 
472                </#if> 
473 
474                <#-- Renderizar o conteúdo da notícia --> 
475                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia --> 
476                <@renderNewsContent newsInfo/> 
477 
478                <#-- Renderizar o conteúdo da notícia-->  
479                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia --> 
480 
481                <#-- Renderizar o conteúdo da notícia-->  
482                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia --> 
483 
484                <#-- Renderiza botoes de compartilhamento na versao mobile --> 
485                <div class="render-share-news-container publish_and_social_medias_infos_desk mobile"> 
486                    <@renderShareAndCopyNews/> 
487                </div> 
488 
489                <#-- Renderizar links da notícia --> 
490                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Links do conteúdo da notícia --> 
491                <@renderLinks newsInfo /> 
492 
493                <@renderCite /> 
494 
495                <#-- Renderizar áudios da notícia --> 
496                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia --> 
497 
498                <#-- Renderizar galeria de imagens notícia --> 
499                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render galeria --> 
500                <@renderGallery newsInfo /> 
501									 
502                <#-- Renderizar quotes da notícia --> 
503                <@renderQuotes newsInfo /> 
504            </div> 
505        </div> 
506    </div> 
507<#else > 
508    <div class="ptb-news__read-news paragraph-sm-regular">      
509        <p> <#if locale == "pt_BR"> Nenhuma notícia <#else> There are no news </#if></p> 
510    </div> 
511 
512    <style> 
513        .ptb-news__read-news p { 
514            color: #515867; 
515
516 
517        body.high-contrast-active .ptb-news__read-news p { 
518            color: var(--color-neutral-100); 
519
520    </style> 
521</#if> 
522 
523<style> 
524    .breadcrumb-breakpoint { 
525        padding-top: var(--space-xxl); 
526        padding-bottom: var(--space-xl); 
527
528 
529    body.high-contrast-active .breadcrumb-breakpoint { 
530        background: var(--background-surface-level-01, #010101); 
531
532 
533    .breadcrumb-breakpoint .breadcrumb-col { 
534        display: flex; 
535        width: max-content; 
536        gap: var(--space-xxs); 
537        height: fit-content; 
538        overflow-x: hidden; 
539
540 
541    .breadcrumb-breakpoint #liferay-breadcrumb { 
542        display: none; 
543
544 
545    .breadcrumb-breakpoint .breadcrumb-page { 
546        display: flex; 
547        gap: var(--space-micro); 
548        height: var(--size-md); 
549        size: var(--size-md); 
550        border: 1px solid rgba(0, 0, 0, 0); 
551        box-sizing: border-box; 
552        border-radius: var(--border-radius-sm); 
553
554 
555    .breadcrumb-breakpoint a.breadcrumb-page.text span, 
556    .breadcrumb-breakpoint span.breadcrumb-page.text { 
557        white-space: nowrap; 
558
559 
560    .breadcrumb-breakpoint .breadcrumb-page a:focus { 
561        outline: none; 
562
563 
564    .breadcrumb-breakpoint .breadcrumb-page.active-page { 
565        color: var(--color-text-primary-default); 
566        background-color: var(--color-background-default-level-02); 
567        border-radius: var(--border-radius-sm); 
568
569 
570    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.active-page { 
571        background: var(--background-surface-level-02, #373737); 
572        color: var(--text-primary-default, #FFF); 
573
574 
575    .breadcrumb-breakpoint .breadcrumb-page.previous-page { 
576        transition: 300ms ease-in-out; 
577
578 
579    .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
580        text-decoration: var(--text-decoration-none); 
581        color: var(--color-text-primary-default); 
582        text-transform: capitalize; 
583        padding-left: var(--space-xxs); 
584        padding-right: var(--space-xxs); 
585
586 
587    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
588        color: var(--text-primary-default, #FFF); 
589
590 
591    .breadcrumb-breakpoint .breadcrumb-page.active-page.text { 
592        color: var(--color-text-primary-default); 
593        text-decoration: var(--text-decoration-none); 
594        background-color: var(--color-background-default-level-02); 
595        text-transform: capitalize; 
596        padding-left: var(--space-xxs); 
597        padding-right: var(--space-xxs); 
598
599 
600    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
601        color: var(--text-primary-default, #FFF); 
602
603 
604    .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover { 
605        background-color: var(--color-background-default-level-01); 
606        border-color: var(--border-color-dark); 
607        border-radius: var(--border-radius-sm); 
608        border: 1px solid; 
609        transition: all 300ms ease-in-out; 
610
611 
612    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover { 
613        background-color: transparent; 
614
615 
616    .breadcrumb-breakpoint .breadcrumb-page:focus-visible { 
617        margin: var(--space-micro); 
618        border-radius: var(--space-micro); 
619        outline: none; 
620        border: 1px solid var(--color-primary-medium); 
621        box-sizing: border-box; 
622        transition: 300ms ease-in-out; 
623
624 
625    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page:focus-visible { 
626        border: 1px solid rgba(228, 247, 232, 1); 
627
628 
629    .breadcrumb-breakpoint .breadcrumb-page .icon { 
630        width: var(--size-xxs); 
631        height: var(--size-xxs); 
632        border-color: var(--border-color-darkest); 
633        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'); 
634        background-size: cover; 
635        margin-top: auto; 
636        margin-bottom: auto; 
637
638 
639    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page .icon { 
640        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>'); 
641
642 
643    .ptb-news__read-news { 
644        overflow: hidden; 
645
646 
647    body.high-contrast-active .ptb-news__read-news { 
648        background: var(--background-surface-level-01, #010101); 
649
650</style> 
651 
652 
653<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
654<#-- 
655Add elements from the sidebar to define your template. Type "${" to use the 
656autocomplete feature. 
657--> 
658 
659<#macro renderHeadLine newsInfo> 
660     
661    <div class="main-headline-container breakpoint"> 
662        <div class="main-headline-container-col col-2-11 md-col-1-8 sm-col-1-4"> 
663            <h1 class="main-headline display-sm">${newsInfo.featuredNewsHeadline}</h1> 
664            <div class="bar"></div> 
665        </div> 
666    </div> 
667 
668    <style> 
669        .ptb-news__read-news .main-headline-container .main-headline-container-col { 
670            display: flex; 
671            flex-direction: column; 
672            gap: var(--space-sm); 
673            padding-bottom: var(--space-lg); 
674
675 
676        .ptb-news__read-news .main-headline-container .main-headline-container-col * { 
677            margin: 0; 
678            padding: 0; 
679
680 
681        .ptb-news__read-news .main-headline-container .main-headline { 
682            font-family: var(--font-family-base); 
683            color: var(--color-neutral-800); 
684
685 
686        body.high-contrast-active .ptb-news__read-news .main-headline-container .main-headline { 
687            color: var(--text-primary-default, var(--color-neutral-100)); 
688
689 
690        .ptb-news__read-news .main-headline-container .bar { 
691            width: 32px; 
692            height: var(--size-micro); 
693            background: var(--color-secondary-medium); 
694
695 
696        body.high-contrast-active .ptb-news__read-news .main-headline-container .bar{ 
697            background: var(--text-secondary-accent, #FFEEB3); 
698
699 
700        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
701            .ptb-news__read-news .main-headline-container .main-headline-container-col { 
702                gap: var(--space-xs, 12px); 
703
704
705    </style> 
706</#macro> 
707<#-- ################################################################################################################## --> 
708 
709<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
710<#macro renderReview newsInfo> 
711    <#assign summaryCssRoot = "summary-container" /> 
712 
713    <div class="${summaryCssRoot}-breakpoint breakpoint"> 
714        <div class="${summaryCssRoot} col-2-11 md-col-1-8 sm-col-1-4"> 
715            <p class="summary paragraph-lg-regular"> 
716                ${newsInfo.newsSummary} 
717            </p> 
718        </div> 
719        
720    </div> 
721 
722    <style> 
723        .${summaryCssRoot} .summary { 
724            padding-bottom: var(--space-lg); 
725
726 
727        .${summaryCssRoot} .summary, 
728        .${summaryCssRoot} .summary * { 
729            color: var(--color-neutral-800, #373737); 
730            font-family: var(--font-family-base); 
731            font-style: var(--font-style-italic); 
732            margin: var(--space-none); 
733
734 
735        body.high-contrast-active .summary, 
736        body.high-contrast-active .summary * { 
737            color: var(--text-secondary-default, #F8F8F8); 
738
739    </style> 
740</#macro> 
741<#-- ################################################################################################################## --> 
742 
743<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
744<#macro renderPublishAndSocialMediasInfos journalArticle newsInfo> 
745 
746    <div class="publish_and_social_medias_infos_desk-breakpoint breakpoint"> 
747        <div class="publish_and_social_medias_infos_desk col-2-11 md-col-1-8 sm-col-1-4"> 
748            <div class="publish_and_update_date"> 
749                <#assign lastPublishDate = journalArticle.getModifiedDate()> 
750                <#assign createDate = journalArticle.getCreateDate()> 
751                <#if journalArticle.getLastPublishDate()??> 
752                    <#assign lastPublishDate = journalArticle.getLastPublishDate()> 
753                </#if> 
754 
755                <#if locale == "pt_BR"> 
756                    <p class="updated">Atualizado em ${formatDate(lastPublishDate)}</p> 
757                    <p class="published">Postado em ${formatDate(createDate)}</p> 
758                <#else > 
759                    <p class="updated">Updated on ${formatDate(lastPublishDate)}</p> 
760                    <p class="published">Posted on ${formatDate(createDate)}</p> 
761                </#if> 
762            </div> 
763            <div class="render-share-news-container desktop"> 
764                <@renderShareAndCopyNews/> 
765            </div> 
766        </div> 
767    </div> 
768 
769    <style> 
770			.ptb-news__read-news .hidden { 
771			     display: none; 
772
773        /*Data de publicação e redes sociais */ 
774 
775        /* Desktop */ 
776        .ptb-news__read-news .publish_and_social_medias_infos_desk { 
777            position: relative; 
778            display: grid; 
779            grid-template-columns: auto 1fr auto; 
780
781 
782        .ptb-news__read-news .render-share-news-container.mobile { 
783            display: none; 
784
785 
786        .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
787            padding: var(--space-none, 0); 
788            margin: var(--space-none, 0); 
789            font-family: var(--font-family-base); 
790            font-style: var(--font-style-normal, normal); 
791            font-weight: var(--font-weight-regular, 400); 
792            font-size: var(--font-size-xxs, 16px); 
793            line-height: var(--line-height-xl, 160%); 
794            color: var(--color-neutral-800, #373737); 
795
796 
797        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
798            color: var(--text-secondary-default, #F8F8F8); 
799
800 
801        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg path, 
802        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg path { 
803            stroke: var(--color-neutral-500, #D7D7D7); 
804            fill: rgba(255, 255, 255, 0.32); 
805
806 
807        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg circle, 
808        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg circle { 
809            fill: rgba(255, 255, 255, 0.32); 
810
811 
812        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date { 
813            display: flex; 
814            align-items: center; 
815            gap: var(--space-sm, 16px); 
816
817 
818        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated { 
819            font-weight: var(--font-weight-bold, 700); 
820            font-size: var(--font-size-xxxs, 14px); 
821
822 
823        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated { 
824            color: var(--text-primary-default, var(--color-neutral-100)); 
825
826 
827        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published { 
828            font-weight: var(--font-weight-normal, 400); 
829            font-size: var(--font-size-xxxs, 14px); 
830
831 
832        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
833            display: flex; 
834            width: 100%; 
835            justify-content: flex-end; 
836            align-items: center; 
837            gap: var(--space-sm, 16px); 
838
839   
840        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share { 
841            position: relative; 
842
843	 
844        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share span { 
845            position: absolute; 
846            width: 100%; 
847            height: 100%; 
848            opacity: 0; 
849            overflow: hidden; 
850            pointer-events: none; 
851
852 
853        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share { 
854            display: none; 
855
856 
857        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
858            background: var(--color-neutral-100); 
859            border: var(--border-width-hairline, 1px) solid #CCCCCC; 
860            border-radius: 32px; 
861            display: flex; 
862            align-items: center; 
863            gap: var(--space-sm, 16px); 
864            padding: 6px var(--space-xxs, 8px); 
865            height: 36px; 
866            margin: 0; 
867            cursor: pointer; 
868
869 
870        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
871            background: rgba(255, 255, 255, 0.32); 
872            border: var(--border-width-hairline, 1px) solid rgba(255, 255, 255, 0.32); 
873
874 
875        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container svg { 
876            width: 18px; 
877
878 
879        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk  svg path { 
880            stroke: var(--color-neutral-500, #D7D7D7); 
881
882 
883        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
884            font-family: var(--font-family-base); 
885            font-style: normal; 
886            margin: 0; 
887            height: 100%; 
888            display: flex; 
889            align-items: center; 
890            color: var(--color-primary-medium, #008542); 
891            font-size: var(--font-size-micro, 12px); 
892            font-weight: var(--font-weight-bold, 700); 
893            line-height: var(--line-height-lg, 144%); 
894            pointer-events: none; 
895
896	             
897        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text .copy-text-title-news { 
898            position: absolute; 
899            width: 100%; 
900            height: 100%; 
901            opacity: 0; 
902            overflow: hidden; 
903
904 
905        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
906            color: var(--text-primary-accent, #E4F7E8); 
907
908 
909        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
910            display: none; 
911            position: absolute; 
912            bottom: -43px; 
913            right: -15px; 
914            padding: var(--space-xxxs, 4px) 15px; 
915            margin: var(--space-micro, 2px) 10px; 
916            width: 110px; 
917            font-family: var(--font-family-base); 
918            font-size: var(--font-size-micro, 12px); 
919 
920            color: #008542; 
921            background: var(--color-neutral-100); 
922            border-radius: var(--border-radius-md, 8px); 
923 
924            filter: drop-shadow(0px 4px 16px rgba(0, 0, 0, 0.16)); 
925 
926            cursor: pointer; 
927
928 
929        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
930            background: rgba(255, 255, 255, 0.32); 
931            color: var(--text-primary-accent, #E4F7E8); 
932
933 
934        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message-active { 
935            display: block; 
936
937 
938        /* Mobile */ 
939 
940        .ptb-news__read-news .publish_and_social_medias_infos_mobile { 
941            display: flex; 
942            flex-direction: column; 
943            gap: 19px; 
944
945 
946        .ptb-news__read-news .publish_and_social_medias_infos_mobile { 
947            display: none; 
948
949 
950        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text { 
951            display: flex; 
952            justify-content: space-between; 
953            align-items: center; 
954            margin-bottom: var(--space-lg, 32px); 
955
956 
957        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date * { 
958            padding: 0; 
959            margin: 0; 
960            font-family: var(--font-family-base); 
961            font-style: var(--font-style-normal, normal); 
962            font-size: var(--font-size-micro, 12px); 
963            line-height: 136%; 
964            color: var(--color-neutral-800, #373737); 
965
966 
967        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 * { 
968            color: var(--text-primary-accent, #E4F7E8); 
969
970 
971        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date { 
972            display: flex; 
973            flex-direction: column; 
974            gap: 0; 
975
976 
977        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .updated { 
978            font-weight: var(--font-weight-bold, 700); 
979
980 
981        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .published { 
982            font-weight: var(--font-weight-regular, 400); 
983
984 
985        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container { 
986            background: var(--color-neutral-100); 
987            border: var(--border-width-hairline, 1px) solid #CCCCCC; 
988            border-radius: 32px; 
989            display: flex; 
990            align-items: center; 
991            gap: var(--space-sm, 16px); 
992            padding: 6px var(--space-xxs, 8px); 
993            width: 112px; 
994            height: 36px; 
995
996 
997        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container { 
998            background: rgba(255, 255, 255, 0.32); 
999            color: var(--text-primary-accent, #E4F7E8); 
1000
1001 
1002        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container p.text { 
1003            margin: 0; 
1004
1005 
1006        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container .text { 
1007            font-family: var(--font-family-base); 
1008            font-style: var(--font-style-normal, normal); 
1009            font-weight: var(--font-weight-regular, 400); 
1010            font-size: 13px; 
1011            line-height: 14px; 
1012            color: #008542; 
1013
1014 
1015        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 { 
1016            background: rgba(255, 255, 255, 0.32); 
1017            color: var(--text-primary-accent, #E4F7E8); 
1018
1019 
1020        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1021 
1022            .ptb-news__read-news .publish_and_social_medias_infos_desk .render-share-news-container.desktop { 
1023                display: none; 
1024
1025 
1026            .ptb-news__read-news .render-share-news-container.mobile { 
1027                display: block; 
1028                margin: var(--space-xl) var(--space-lg) 0 var(--space-lg); 
1029
1030 
1031            .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
1032                font-size: var(--font-size-micro, 12px); 
1033
1034             
1035            .ptb-news__read-news .publish_and_social_medias_infos_desk { 
1036                display: grid; 
1037                grid-template-columns: 100%; 
1038                grid-template-rows: 1fr 100%; 
1039
1040 
1041            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date { 
1042                grid-column-start: 1; 
1043                grid-column-end: 1; 
1044                grid-row-start: 1; 
1045                grid-row-end: 1; 
1046                gap: var(--space-xxs, 8px); 
1047
1048 
1049            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * { 
1050                padding: 0; 
1051                margin: 0; 
1052                font-family: var(--font-family-base); 
1053                font-style: var(--font-style-normal); 
1054                color: var(--color-neutral-800, #373737); 
1055                font-weight: var(--font-weight-bold); 
1056                font-size: var(--font-size-xxxs, 14px); 
1057                line-height: var(--line-height-md, 132%); 
1058
1059 
1060            body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * { 
1061                color: var(--text-primary-accent, #E4F7E8); 
1062
1063 
1064            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published { 
1065                font-weight: var(--font-weight-regular, 400); 
1066
1067 
1068            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
1069                grid-column-start: 1; 
1070                grid-column-end: 2; 
1071                grid-row-start: 2; 
1072                grid-row-end: 2; 
1073                justify-content: center; 
1074                gap: var(--space-xs, 12px); 
1075                height: 36px; 
1076
1077 
1078            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
1079                grid-column-start: 1; 
1080                grid-column-end: 2; 
1081                grid-row-start: 2; 
1082                grid-row-end: 2; 
1083                max-width: 112px; 
1084                place-self: end; 
1085
1086 
1087            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
1088                display: none; 
1089
1090 
1091            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
1092                bottom: 0; 
1093                right: -9px; 
1094
1095 
1096            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share { 
1097                display: initial; 
1098
1099
1100 
1101        @media screen and (min-width: ${MIN_TABLET_WIDTH}px) and (max-width: ${MAX_TABLET_WIDTH}px) { 
1102            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
1103                padding-right: 0; 
1104
1105
1106 
1107 
1108    </style> 
1109 
1110    <script> 
1111        AUI().ready(function () { 
1112 
1113            function copyOnClick(text) { 
1114 
1115                const strWithoutHtmlTags = text.replace(/(<([^>]+)>)/gi, ""); 
1116                const strWithoutMarcationBrackets = strWithoutHtmlTags.replace(/ *#\[[^\]]*]/g, ""); 
1117                const strWithoutNextPrevious = strWithoutMarcationBrackets.replace(/Previous    Next/g, ""); 
1118                const strWithoutBlankEnters = strWithoutNextPrevious.replace(/^\s*$(?:\r\n?|\n)/gm, ""); 
1119                const strWithoutBlankLines = strWithoutBlankEnters.replace(/&nbsp;/g, ''); 
1120                const tempInput = document.createElement("textarea"); 
1121                tempInput.value = strWithoutBlankLines; 
1122 
1123                document.body.appendChild(tempInput); 
1124                tempInput.select(); 
1125                document.execCommand("copy"); 
1126 
1127                if (tempInput.value.length > 0) { 
1128                    copyMessages.forEach(copyMessage => copyMessage.classList.add('copy-message-active')); 
1129 
1130                    timerToMessage() 
1131
1132 
1133                document.body.removeChild(tempInput); 
1134
1135 
1136            const copyTextContainers = document.querySelectorAll(".publish_and_social_medias_infos_desk .copy-text-container"); 
1137            copyTextContainers.forEach(copyTextContainer => { 
1138                copyTextContainer.addEventListener("click", (event) => { 
1139                    event.preventDefault(); 
1140                    const titleText = document.querySelector(".main-headline-container .main-headline").innerHTML; 
1141                    const publishSocialMediaText = document.querySelector(".publish_and_social_medias_infos_desk .publish_and_update_date").innerHTML; 
1142                    const tagsText = document.querySelector(".tags").innerHTML; 
1143                    const newsContentText = document.querySelector(".news-content").innerHTML; 
1144                    const text = titleText + publishSocialMediaText + tagsText + newsContentText; 
1145                    copyOnClick(text) 
1146                }); 
1147            }); 
1148 
1149            const mobileShare = async () => { 
1150                try { 
1151                    const shareData = { 
1152                        title: '${newsInfo.mainHeadlineOfTheNews}', 
1153                        text: '', 
1154                        url: '${newsInfo.url}' 
1155                    }; 
1156                    await navigator.share(shareData); 
1157                } catch (err) { 
1158 
1159
1160            }; 
1161 
1162            const mobileShareButtons = document.querySelectorAll(".publish_and_social_medias_infos_desk .mobile-share"); 
1163            mobileShareButtons.forEach(mobileShareButton => { 
1164                mobileShareButton.addEventListener("click", (event) => { 
1165                    event.preventDefault(); 
1166                    mobileShare(); 
1167                }); 
1168            }); 
1169 
1170            const copyMessages = document.querySelectorAll('.copy-message'); 
1171            const timerToMessage = () => { 
1172                setTimeout(() => { 
1173                    removeMessage(); 
1174                }, 2500); 
1175 
1176
1177 
1178            const removeMessage = () => { 
1179                copyMessages.forEach(copyMessage => copyMessage.classList.remove('copy-message-active')); 
1180
1181 
1182        }); 
1183    </script> 
1184 
1185</#macro> 
1186 
1187<#-- ################################################################################################################## --> 
1188 
1189<#-- ############# Site de Crise - Notícia - Render Tags ############################################################## --> 
1190 
1191<#function getCategoriesNamesAndIds vocabularyName categoriesList> 
1192    <#assign tagCategoryList = [] /> 
1193 
1194    <#assign tagsVocabulary = assetVocabularyService.fetchGroupVocabulary(groupId, vocabularyName) /> 
1195    <#list categoriesList as cat> 
1196        <#if tagsVocabulary.getVocabularyId() == cat.embeddedTaxonomyCategory.taxonomyVocabularyId > 
1197            <#assign tagCategoryList += [[cat.taxonomyCategoryName, cat.taxonomyCategoryId]] /> 
1198        </#if> 
1199    </#list> 
1200    <#return tagCategoryList> 
1201</#function> 
1202 
1203<#assign 
1204flagVocabulary = findVocabulary("Flag", vocabularies) 
1205assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") 
1206/> 
1207 
1208<#macro renderNewsTags categoryList targetPageWhenClickTag removeStartParameterWhenTagIsClicked updateTagParamsWhenClicked> 
1209    <#assign tagPrefix = "tags-" + randomNumber(groupId?number)> 
1210    <div class="${tagPrefix}-breakpoint breakpoint"> 
1211        <div class="${tagPrefix} col-2-11 md-col-1-8 sm-col-1-4"> 
1212 
1213            <div class="tags"> 
1214                <#list categoryList as cat> 
1215                    <#assign tagLink = mountUrlToPage("") /> 
1216                    <#assign urlWithoutTrailingSlash = tagLink?substring(0, tagLink?length - 1)> 
1217                    <#assign lastSlashIndex = urlWithoutTrailingSlash?last_index_of("/")> 
1218                    <#assign newUrl = urlWithoutTrailingSlash?substring(0, lastSlashIndex + 1)> 
1219                    <#assign tagLink = newUrl + "categorias?category=" + cat[1] /> 
1220                    <a href="${tagLink}" 
1221                        class="category" cetegoryid="${cat[1]}"># ${cat[0]}</a> 
1222                </#list> 
1223            </div> 
1224        </div>    
1225    </div> 
1226 
1227    <style> 
1228        .${tagPrefix} { 
1229            display: flex; 
1230            flex-direction: column; 
1231            padding: 0; 
1232            gap: var(--space-sm); 
1233
1234 
1235        .${tagPrefix} * { 
1236            margin: 0; 
1237            padding: 0; 
1238
1239 
1240        .${tagPrefix} .tags { 
1241            display: flex; 
1242            flex-wrap: wrap; 
1243            gap: var(--space-xxs, 8px); 
1244            padding: var(--space-lg) 0 0; 
1245
1246 
1247        .${tagPrefix} .tags .category { 
1248            padding: var(--space-xxxs) var(--space-xxs); 
1249            background: var(--color-neutral-100); 
1250            border: var(--border-width-hairline, 1px) solid var(--color-neutral-500); 
1251            border-radius: var(--border-radius-xl); 
1252 
1253            font-family: var(--font-family-base); 
1254            font-style: var(--font-style-normal); 
1255            font-weight: var(--font-weight-regular); 
1256            font-size: var(--font-size-xxxs); 
1257            line-height: var(--line-height-xl); 
1258            color: var(--color-neutral-800, #373737); 
1259            cursor: pointer; 
1260
1261 
1262        body.high-contrast-active .${tagPrefix} .tags .category { 
1263            background: rgba(255, 255, 255, 0.32); 
1264            border: 1px solid rgba(255, 255, 255, 0.32); 
1265            color: var(--text-secondary-default, #F8F8F8); 
1266
1267 
1268        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1269            .${tagPrefix} .tags { 
1270                display: flex; 
1271                flex-wrap: wrap; 
1272                gap: 8px; 
1273                padding: var(--space-sm) 0 var(--space-lg); 
1274
1275 
1276            .${tagPrefix} { 
1277                margin-top: var(--space-sm); 
1278
1279
1280    </style> 
1281 
1282    <script> 
1283        AUI().ready(function () { 
1284 
1285            const urlParams = new URLSearchParams(window.location.search); 
1286            const categories = urlParams.getAll("category").sort(); 
1287 
1288            const root = document.querySelector(".${tagPrefix}"); 
1289            const tags = root.querySelectorAll(".category"); 
1290            tags.forEach((tag, index) => { 
1291 
1292                const categoryId = tag.getAttribute("cetegoryid"); 
1293                if (categories.indexOf(categoryId) != -1) { 
1294                    tag.classList.add("active"); 
1295
1296 
1297                <#if updateTagParamsWhenClicked> 
1298                tag.addEventListener("click", (e) => { 
1299                    e.preventDefault(); 
1300                    const clickedTag = e.target; 
1301                    const urlParams = new URLSearchParams(window.location.search); 
1302                    urlParams.delete("tag"); 
1303                    urlParams.delete("category"); 
1304 
1305                    const categoryId = clickedTag.getAttribute("cetegoryid"); 
1306                    urlParams.append("category", categoryId); 
1307 
1308                    <#if removeStartParameterWhenTagIsClicked> 
1309                    urlParams.delete("start"); 
1310                    </#if> 
1311 
1312                    const href = "${themeDisplay.getPortalURL() + mountUrlToPage(targetPageWhenClickTag)}?" + urlParams.toString(); 
1313                    window.location.href = href; 
1314                }); 
1315                </#if> 
1316            }); 
1317        }); 
1318    </script> 
1319 
1320</#macro> 
1321 
1322<#-- ################################################################################################################## --> 
1323 
1324<#-- ############# Site de Crise - Notícia - Imagem de destaque ####################################################### --> 
1325<#macro renderNewsFeaturedMedia newsInfo> 
1326    <#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)> 
1327        <div class="news-featured-media"> 
1328             
1329            <div class="media-breakpoint breakpoint"> 
1330                <div class="media-col col-2-11 md-col-1-8 sm-col-1-4"> 
1331                    <#if newsInfo.newsMedia.imageSrc?? && newsInfo.newsMedia.imageSrc?has_content> 
1332                        <#-- Midias adaptativas de imagem para desktop e mobile --> 
1333                        <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${newsInfo.newsMedia.fileEntryId}") /> 
1334                        <#assign urlAdaptativeMediaMobile = newsInfo.newsMedia.imageSrc/> 
1335                        <#assign urlAdaptativeMediaDesktop = newsInfo.newsMedia.imageSrc/> 
1336                         
1337                        <#if fileDataRequest?? && fileDataRequest.adaptedImages?? > 
1338                            <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
1339                            <#list dataAdaptativeMedia as data> 
1340                                <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
1341                                    <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
1342                                </#if> 
1343                                <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
1344                                    <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
1345                                </#if>      
1346                            </#list> 
1347                        </#if> 
1348 
1349                        <picture > 
1350                            <source media="(max-width:767px)" srcset="${urlAdaptativeMediaMobile}"> 
1351                            <img src="${urlAdaptativeMediaDesktop}" loading="lazy" alt="${newsInfo.newsMedia.imageAlt}"/> 
1352                        </picture> 
1353												<@liferay_util["html-top"]> 
1354                            <meta name="title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1355                            <meta name="description" content="${newsInfo.newsSummary}"> 
1356 
1357                            <meta property="og:url" content="${currentURL}"> 
1358                            <meta property="og:type" content="website"> 
1359                            <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1360				            				<meta property="og:description" content="${newsInfo.newsSummary}" /> 
1361                            <meta property="og:image" content="${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image"> 
1362                            <meta property="og:image:alt" content="${newsInfo.newsMedia.imageAlt}"> 
1363 
1364                            <meta name="twitter:card" content="summary_large_image"> 
1365                            <meta name="twitter:url" content="${currentURL}" /> 
1366                            <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1367                            <meta name="twitter:description" content="${newsInfo.newsSummary}" /> 
1368                            <meta name="twitter:image" content= "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image" > 
1369							 							<meta name="twitter:image:alt" content="${newsInfo.newsMedia.imageAlt}"> 
1370                        </@> 
1371                    <#else> 
1372                        <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content> 
1373                            <iframe loading="lazy" data-video-id="${cardData.media.videoYotubeID}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> 
1374                            <@liferay_util["html-top"]>       
1375                            		<meta name="title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1376                            		<meta name="description" content="${newsInfo.newsSummary}"> 
1377							 
1378							    							<meta property="og:url" content="${currentURL}"> 
1379                                <meta property="og:type" content="website"> 
1380                                <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1381				                				<meta property="og:description" content="${newsInfo.newsSummary}" /> 
1382                                <meta property="og:image" content="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg"> 
1383															  <meta property="og:image:alt" content="Youtube Video Thumbnail"> 
1384 
1385                                <meta name="twitter:card" content="summary_large_image"> 
1386                                <meta name="twitter:url" content="${currentURL}" /> 
1387                                <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1388                                <meta name="twitter:description" content="${newsInfo.newsSummary}" /> 
1389                                <meta name="twitter:image" content= "https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" > 
1390															  <meta name="twitter:image:alt" content="Youtube Video Thumbnail"> 
1391                            </@> 
1392														<#else> 
1393                            <video loading="lazy"> 
1394                                <source src="${newsInfo.newsMedia.internalVideo.url}"> 
1395                                Your browser does not support the video tag. 
1396                            </video> 
1397                        </#if> 
1398 
1399                         <div class="banner-video-icons"> 
1400                            <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content> 
1401                                <picture > 
1402                                    <source media="(max-width:767px)" srcset="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/mqdefault.jpg"> 
1403                                    <img class="banner-video-thumb-iframe" loading="lazy" src="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" alt="YouTube Thumbnail"/> 
1404                                </picture> 
1405                            </#if> 
1406                            <svg class="banner-video-icon-play" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1407                                <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"/> 
1408                                <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"/> 
1409                            </svg> 
1410                        </div> 
1411                    </#if> 
1412                </div> 
1413            </div> 
1414             
1415            <div class="credit-legend breakpoint"> 
1416							 
1417                    <div class="credit-legend-container col-2-11 md-col-1-8 sm-col-1-4"> 
1418											<#if newsInfo.newsMedia.legend != ""> 
1419															<div class="legend paragraph-micro-regular"> 
1420																	<p>${newsInfo.newsMedia.legend}</p> 
1421															</div> 
1422											</#if> 
1423											<#if newsInfo.newsMedia.credits != ""> 
1424															<p class="credits paragraph-micro-regular"> 
1425																	${newsInfo.newsMedia.credits} 
1426															</p>     
1427											</#if> 
1428 
1429                    </div> 
1430            </div> 
1431        </div> 
1432    </#if> 
1433    <style> 
1434        .ptb-news__read-news .news-featured-media { 
1435            padding: var(--space-xl) 0 var(--space-xl) 0; 
1436
1437 
1438        .ptb-news__read-news .news-featured-media .media-col { 
1439            position: relative; 
1440
1441 
1442        .ptb-news__read-news .news-featured-media img, 
1443        .ptb-news__read-news .news-featured-media video, 
1444        .ptb-news__read-news .news-featured-media iframe { 
1445            width: 100%; 
1446            max-height: 567px; 
1447            aspect-ratio: 16/9; 
1448            object-fit: cover; 
1449            border-radius: var(--border-radius-lg, 16px); 
1450
1451 
1452        .ptb-news__read-news .news-featured-media .banner-video-icons { 
1453            width: 100%; 
1454            height: 100%; 
1455            position: absolute; 
1456            top: 50%; 
1457            left: 50%; 
1458            transform: translate(-50%,-50%); 
1459            cursor: pointer; 
1460
1461 
1462        .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-thumb-iframe { 
1463            position: absolute; 
1464            width: 100%; 
1465            height: 100%; 
1466            object-fit: cover; 
1467
1468 
1469        .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play { 
1470            position: absolute; 
1471            top: 50%; 
1472            left: 50%; 
1473            transform: translate(-50%,-50%); 
1474
1475 
1476        body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(1) { 
1477            fill: black;   
1478
1479 
1480        body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(2) { 
1481            fill: white;   
1482
1483 
1484        .ptb-news__read-news .news-featured-media *:not(.breakpoint) { 
1485          margin: 0; 
1486
1487        .ptb-news__read-news .news-featured-media * { 
1488            padding: 0; 
1489            font-family: var(--font-family-base); 
1490            line-height: var(--line-height-xl); 
1491
1492 
1493        .ptb-news__read-news .news-featured-media .credits { 
1494            text-align: right; 
1495            color: var(--collor-neutral-dark-to-bright-200, #525252); 
1496            margin-bottom: var(--space-xxxs, 4px); 
1497            font-style: var(--font-style-italic, italic); 
1498            margin-top: var(--space-xxs, 8px); 
1499            margin-bottom: 0; 
1500
1501 
1502        body.high-contrast-active .ptb-news__read-news .news-featured-media .credits { 
1503            color: var(--text-secondary-default, #F8F8F8); 
1504
1505 
1506        .ptb-news__read-news .news-featured-media .legend { 
1507            margin-top: var(--space-xxs, 8px); 
1508            display: flex; 
1509            justify-content: space-between; 
1510
1511 
1512        .ptb-news__read-news .news-featured-media .legend, 
1513        .ptb-news__read-news .news-featured-media .legend * { 
1514            font-style: var(--font-style-italic, italic); 
1515            color: var(--collor-neutral-dark-to-bright-200, #525252); 
1516
1517			 
1518				.ptb-news__read-news .credit-legend .credit-legend-container { 
1519						display: flex; 
1520						justify-content: space-between; 
1521						flex-wrap: wrap; 
1522						gap: 8px; 
1523				}	 
1524 
1525        body.high-contrast-active .ptb-news__read-news .news-featured-media .legend, 
1526        body.high-contrast-active .ptb-news__read-news .news-featured-media .legend * { 
1527            color: var(--text-secondary-default, #F8F8F8); 
1528
1529 
1530        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1531            .ptb-news__read-news .news-featured-media .credits { 
1532                text-align: left; 
1533
1534
1535    </style> 
1536 
1537    <script> 
1538        /* Manipulation video*/ 
1539        let videoIsPlaying = false; 
1540 
1541        const modalForClick = document.querySelector(".ptb-news__read-news .news-featured-media .banner-video-icons"); 
1542        const video = document.querySelector(".ptb-news__read-news .news-featured-media .media-col > :first-child"); 
1543        
1544        const playIcon = modalForClick && modalForClick.querySelector(".banner-video-icon-play"); 
1545        modalForClick && modalForClick.addEventListener("click", ()=>{ 
1546            if(video.tagName === "VIDEO") { 
1547                if(videoIsPlaying) { 
1548                    video.pause(); 
1549                    playIcon.style.display = ""; 
1550                    videoIsPlaying = false; 
1551                }  
1552                else { 
1553                    video.play(); 
1554                    playIcon.style.display = "none"; 
1555                    videoIsPlaying = true; 
1556
1557            }   
1558            else if(video.tagName === "IFRAME") { 
1559                const thumbYoutube = modalForClick.querySelector(".banner-video-thumb-iframe"); 
1560                if(videoIsPlaying) { 
1561                    video.contentWindow.postMessage('{"event":"command","func":"pauseVideo"}', '*'); 
1562                    playIcon.style.display = ""; 
1563                    videoIsPlaying = false; 
1564                }  
1565                else { 
1566									if (!video.getAttribute('src')) { 
1567                          const videoId = video.getAttribute('data-video-id'); 
1568                          const youtubeIframeUrl = 'https://www.youtube-nocookie.com/embed/' + videoId + '?si=PDNu4EIwtCuSHC1S&amp;controls=0&enablejsapi=1&rel=0'; 
1569                          video.setAttribute('src', youtubeIframeUrl); 
1570                          video.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share'); 
1571 
1572                          video.onload = () => video.contentWindow.postMessage('{"event":"command","func":"playVideo"}', '*'); 
1573
1574                    thumbYoutube && (thumbYoutube.style.display = "none"); 
1575                    video.contentWindow.postMessage('{"event":"command","func":"playVideo"}', '*'); 
1576                    playIcon.style.display = "none"; 
1577                    videoIsPlaying = true; 
1578
1579            }       
1580        }); 
1581    </script> 
1582<#--/#if --> 
1583</#macro> 
1584<#-- ################################################################################################################## --> 
1585 
1586<#-- ############# Site de Crise - Notícia - Conteúdo da notícia ###################################################### --> 
1587 
1588<#macro renderNewsContent newsInfo> 
1589 
1590    <#assign targetStr = "<div class='paragraph_separator'><span class='dot'></span><span class='dot'></span><span class='dot'></span><span class='dot'></span></div>"> 
1591    <#assign content = newsInfo.newsContent?replace("<p></p>", targetStr, 'r')> 
1592    <#assign content = content?replace("<p> </p>", targetStr, 'r')> 
1593    <#assign content = content?replace("<p></p>", targetStr, 'r')> 
1594    <#assign content = content?replace("<p>&nbsp;</p>", targetStr, 'r')> 
1595  
1596     
1597    <div class="news-content breakpoint"> 
1598      <div class="col-1-12 md-col-1-8 sm-col-1-4"> 
1599        ${content} 
1600      </div> 
1601        <div class="audio-template audio-pause audio-unmuted" style="display:none"> 
1602            <div class="audio-button-play">  
1603                <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> 
1604                </svg> 
1605 
1606                <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> 
1607                </svg> 
1608            </div> 
1609            <div class="audio-sondwave">  
1610                <svg class="audio-sondwave-desktop" width="100%" height="100%" viewBox="0 0 590 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1611                    <g clip-path="url(#clip0_2625_8152)"> 
1612                    <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1613                    <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1614                    <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1615                    <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1616                    <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1617                    <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1618                    <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1619                    <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1620                    <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1621                    <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1622                    <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1623                    <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1624                    <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1625                    <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1626                    <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1627                    <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1628                    <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1629                    <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1630                    <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1631                    <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1632                    <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1633                    <line x1="107.072" y1="8.75" x2="107.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1634                    <line x1="112.234" y1="0.75" x2="112.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1635                    <line x1="117.395" y1="7.75" x2="117.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1636                    <line x1="122.557" y1="5.75" x2="122.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1637                    <line x1="127.717" y1="11.75" x2="127.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1638                    <line x1="132.879" y1="9.75" x2="132.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1639                    <line x1="138.041" y1="9.75" x2="138.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1640                    <line x1="142.17" y1="1.75" x2="142.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1641                    <line x1="147.33" y1="12.75" x2="147.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1642                    <line x1="151.75" y1="0.75" x2="151.75" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1643                    <line x1="156.91" y1="7.75" x2="156.91" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1644                    <line x1="162.072" y1="5.75" x2="162.072" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1645                    <line x1="167.234" y1="11.75" x2="167.234" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1646                    <line x1="172.395" y1="9.75" x2="172.395" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1647                    <line x1="177.557" y1="9.75" x2="177.557" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1648                    <line x1="181.686" y1="1.75" x2="181.686" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1649                    <line x1="186.848" y1="12.75" x2="186.848" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1650                    <line x1="192.008" y1="13.75" x2="192.008" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1651                    <line x1="197.17" y1="10.75" x2="197.17" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1652                    <line x1="202.33" y1="8.75" x2="202.33" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1653                    <line x1="207.492" y1="0.75" x2="207.492" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1654                    <line x1="212.652" y1="7.75" x2="212.652" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1655                    <line x1="217.814" y1="5.75" x2="217.814" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1656                    <line x1="222.977" y1="11.75" x2="222.977" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1657                    <line x1="228.137" y1="9.75" x2="228.137" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1658                    <line x1="233.299" y1="9.75" x2="233.299" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1659                    <line x1="237.428" y1="1.75" x2="237.428" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1660                    <line x1="242.588" y1="12.75" x2="242.588" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1661                    <line x1="247.75" y1="13.75" x2="247.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1662                    <line x1="252.91" y1="10.75" x2="252.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1663                    <line x1="258.072" y1="8.75" x2="258.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1664                    <line x1="263.234" y1="0.75" x2="263.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1665                    <line x1="268.395" y1="7.75" x2="268.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1666                    <line x1="273.557" y1="5.75" x2="273.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1667                    <line x1="278.717" y1="11.75" x2="278.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1668                    <line x1="283.879" y1="9.75" x2="283.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1669                    <line x1="289.041" y1="9.75" x2="289.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1670                    <line x1="293.17" y1="1.75" x2="293.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1671                    <line x1="298.33" y1="12.75" x2="298.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1672                    <line x1="302.75" y1="10.75" x2="302.75" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1673                    <line x1="307.912" y1="8.75" x2="307.912" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1674                    <line x1="313.072" y1="0.75" x2="313.072" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1675                    <line x1="318.234" y1="7.75" x2="318.234" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1676                    <line x1="323.395" y1="5.75" x2="323.395" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1677                    <line x1="328.557" y1="11.75" x2="328.557" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1678                    <line x1="333.719" y1="9.75" x2="333.719" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1679                    <line x1="338.879" y1="9.75" x2="338.879" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1680                    <line x1="343.008" y1="1.75" x2="343.008" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1681                    <line x1="348.17" y1="12.75" x2="348.17" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1682                    <line x1="353.33" y1="13.75" x2="353.33" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1683                    <line x1="358.492" y1="10.75" x2="358.492" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1684                    <line x1="363.652" y1="8.75" x2="363.652" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1685                    <line x1="368.814" y1="0.75" x2="368.814" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1686                    <line x1="373.977" y1="7.75" x2="373.977" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1687                    <line x1="379.137" y1="5.75" x2="379.137" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1688                    <line x1="384.299" y1="11.75" x2="384.299" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1689                    <line x1="389.459" y1="9.75" x2="389.459" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1690                    <line x1="394.621" y1="9.75" x2="394.621" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1691                    <line x1="398.75" y1="1.75" x2="398.75" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1692                    <line x1="403.912" y1="12.75" x2="403.912" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1693                    <line x1="408.33" y1="10.75" x2="408.33" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1694                    <line x1="413.492" y1="8.75" x2="413.492" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1695                    <line x1="418.654" y1="0.75" x2="418.654" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1696                    <line x1="423.814" y1="7.75" x2="423.814" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1697                    <line x1="428.977" y1="5.75" x2="428.977" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1698                    <line x1="434.137" y1="11.75" x2="434.137" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1699                    <line x1="439.299" y1="9.75" x2="439.299" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1700                    <line x1="444.461" y1="9.75" x2="444.461" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1701                    <line x1="448.59" y1="1.75" x2="448.59" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1702                    <line x1="453.75" y1="12.75" x2="453.75" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1703                    <line x1="458.912" y1="13.75" x2="458.912" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1704                    <line x1="464.072" y1="10.75" x2="464.072" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1705                    <line x1="469.234" y1="8.75" x2="469.234" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1706                    <line x1="474.395" y1="0.75" x2="474.395" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1707                    <line x1="479.557" y1="7.75" x2="479.557" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1708                    <line x1="484.719" y1="5.75" x2="484.719" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1709                    <line x1="489.879" y1="11.75" x2="489.879" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1710                    <line x1="495.041" y1="9.75" x2="495.041" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1711                    <line x1="500.201" y1="9.75" x2="500.201" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1712                    <line x1="504.33" y1="1.75" x2="504.33" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1713                    <line x1="509.492" y1="12.75" x2="509.492" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1714                    <line x1="513.912" y1="10.75" x2="513.912" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1715                    <line x1="519.072" y1="8.75" x2="519.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1716                    <line x1="524.234" y1="0.75" x2="524.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1717                    <line x1="529.395" y1="7.75" x2="529.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1718                    <line x1="534.557" y1="5.75" x2="534.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1719                    <line x1="539.719" y1="11.75" x2="539.719" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1720                    <line x1="544.879" y1="9.75" x2="544.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1721                    <line x1="550.041" y1="9.75" x2="550.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1722                    <line x1="554.17" y1="1.75" x2="554.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1723                    <line x1="559.332" y1="12.75" x2="559.332" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1724                    <line x1="564.492" y1="13.75" x2="564.492" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1725                    <line x1="569.654" y1="10.75" x2="569.654" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1726                    <line x1="574.814" y1="8.75" x2="574.814" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1727                    <line x1="579.977" y1="0.75" x2="579.977" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1728                    <line x1="585.137" y1="7.75" x2="585.137" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1729                    <line x1="590.299" y1="5.75" x2="590.299" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1730                    </g> 
1731                    <defs> 
1732                    <clipPath id="clip0_2625_8152"> 
1733                    <rect width="590" height="30" fill="white"/> 
1734                    </clipPath> 
1735                    </defs> 
1736                </svg> 
1737                <svg class="audio-sondwave-mobile" width="100%" height="100%" viewBox="0 0 102 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1738                    <g clip-path="url(#clip0_2625_8922)"> 
1739                    <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1740                    <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1741                    <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1742                    <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1743                    <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1744                    <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1745                    <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1746                    <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1747                    <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1748                    <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1749                    <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1750                    <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1751                    <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1752                    <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1753                    <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1754                    <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1755                    <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1756                    <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1757                    <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1758                    <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1759                    <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1760                    </g> 
1761                    <defs> 
1762                    <clipPath id="clip0_2625_8922"> 
1763                    <rect width="102" height="30" fill="white"/> 
1764                    </clipPath> 
1765                    </defs> 
1766                </svg> 
1767            </div> 
1768            <div class="audio-time paragraph-micro-bold">  </div> 
1769            <div class="audio-button-mute"> 
1770                <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none"> 
1771                    <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"/> 
1772                </svg> 
1773            </div> 
1774        </div> 
1775    </div> 
1776     
1777			  <#if categoriesAsssetEntryResponse?? && categoriesAsssetEntryResponse?has_content && categoriesAsssetEntryResponse.taxonomyCategoryBriefs??> 
1778            <@renderNewsTags tagCategoryList NEWS_PAGE_NAME removeStartParameterWhenTagIsClicked includeRequestParams /> 
1779        </#if> 
1780    <style> 
1781 
1782        .ptb-news__read-news .news-content p { 
1783            margin-bottom: var(--space-md, 24px); 
1784
1785 
1786        .ptb-news__read-news .news-content strong { 
1787            font-weight: var(--font-weight-bold); 
1788
1789 
1790        .ptb-news__read-news .news-content em { 
1791            font-style: var(--font-style-italic); 
1792
1793 
1794        .ptb-news__read-news .news-content a:not(.stories-container *) { 
1795            font-family: var(--font-family-base); 
1796            font-style: var(--font-style-normal, normal); 
1797            font-weight: var(--font-weight-bold, 700); 
1798            font-size: var(--font-size-xs, 18px); 
1799            line-height: var(--line-height-xl, 160%); 
1800 
1801            color: #008542; 
1802
1803 
1804        body.high-contrast-active .ptb-news__read-news .news-content a { 
1805            color: #E4F7E8; 
1806
1807 
1808        .ptb-news__read-news .news-content ul { 
1809            padding-left: 27px; 
1810            margin-top: -16px; 
1811
1812 
1813        .ptb-news__read-news .news-content ul li::marker { 
1814            content: "■" !important; 
1815            color: var(--color-secondary-medium) !important; 
1816            font-size: var(--size-xxs); 
1817
1818 
1819        .ptb-news__read-news .news-content ul li { 
1820            color: var(--color-text-primary-default); 
1821            padding: 8px 0; 
1822 
1823            /*paragraph-sm-regular*/ 
1824            font-size: var(--font-size-xxs); 
1825            line-height: var(--line-height-xl); 
1826            font-weight: var(--font-weight-regular); 
1827            font-style: var(--font-style-normal); 
1828            text-decoration: var(--text-decoration-none); 
1829 
1830            margin-left: calc(-1* var(--space-sm)); 
1831            padding-left: var(--space-sm); 
1832
1833 
1834        .ptb-news__read-news .news-content ul li * { 
1835            color: var(--color-text-primary-default); 
1836            padding: 8px 0; 
1837 
1838            /*paragraph-sm-regular*/ 
1839            font-size: var(--font-size-xxs); 
1840            line-height: var(--line-height-xl); 
1841            font-weight: var(--font-weight-regular); 
1842            font-style: var(--font-style-normal); 
1843            text-decoration: var(--text-decoration-none); 
1844        }      
1845 
1846        @media screen and (min-width: 1024px) { 
1847          .ptb-news__read-news .news-content > * { 
1848            grid-column-start: 3; 
1849            grid-column-end: 11; 
1850
1851 
1852          <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" > 
1853            .ptb-news__read-news .news-content > *:has(img) { 
1854                grid-column-start: 2; 
1855                grid-column-end: 12; 
1856
1857
1858 
1859          </#if> 
1860
1861 
1862        .ptb-news__read-news .news-content figure { 
1863            margin-bottom: var(--space-sm, 16px); 
1864
1865 
1866        .ptb-news__read-news .news-content figure figcaption { 
1867            display: flex; 
1868            justify-content: space-between; 
1869            align-items: flex-start; 
1870            align-self: stretch; 
1871            margin-top: var(--space-xxs, 8px); 
1872            text-align: justify; 
1873
1874 
1875        .ptb-news__read-news .news-content figure figcaption, 
1876        .ptb-news__read-news .news-content figure figcaption * { 
1877            color: var(--color-neutral-700, #525252); 
1878            font-family: var(--font-family-base); 
1879            font-size: var(--font-size-xxxs, 14px); 
1880            font-style: var(--font-style-italic, italic); 
1881            font-weight: var(--font-weight-regular, 400); 
1882            line-height: var(--line-height-xl, 160%); 
1883
1884 
1885        body.high-contrast-active .ptb-news__read-news .news-content figure figcaption, 
1886        body.high-contrast-active .ptb-news__read-news .news-content figure figcaption * { 
1887            color: var(--text-secondary-default, #F8F8F8); 
1888
1889         
1890        .ptb-news__read-news .news-content figure figcaption br { 
1891            display: none; 
1892
1893 
1894        .ptb-news__read-news .news-content .embed-responsive { 
1895            width: 100% !important; 
1896            border-radius: var(--border-radius-md, 16px); 
1897            margin-bottom: var(--space-md, 16px); 
1898            aspect-ratio: 16/9; 
1899
1900 
1901        .ptb-news__read-news .news-content img { 
1902            width: 100%; 
1903					  height: auto; 
1904            object-fit: cover; 
1905            border-radius: var(--border-radius-md, 16px); 
1906
1907 
1908        <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Artigo" > 
1909            .ptb-news__read-news .news-content img  { 
1910                aspect-ratio: 16/9; 
1911
1912        </#if> 
1913 
1914        .ptb-news__read-news .news-content .paragraph_separator { 
1915            display: flex; 
1916            width: 100%; 
1917            height: fit-content; 
1918            justify-content: center; 
1919            gap: 6px; 
1920
1921 
1922        .ptb-news__read-news .news-content .paragraph_separator .dot { 
1923            height: var(--size-micro, 4px); 
1924            width: var(--size-micro, 4px); 
1925            background-color: #959595; 
1926            border-radius: 100%; 
1927            display: inline-block; 
1928
1929 
1930        .ptb-news__read-news .news-content *:not(.stories-container *) { 
1931            font-family: var(--font-family-base); 
1932            font-style: var(--font-style-normal, normal); 
1933            font-weight: var(--font-weight-regular, 400); 
1934            font-size: var(--font-size-xs, 18px); 
1935            line-height: var(--line-height-xl, 160%); 
1936            color: var(--color-neutral-800, #373737); 
1937
1938 
1939        body.high-contrast-active .ptb-news__read-news .news-content * { 
1940            color: var(--text-primary-default, var(--color-neutral-100)); 
1941
1942 
1943        .ptb-news__read-news .news-content h1, 
1944        .ptb-news__read-news .news-content h1 *, 
1945        .ptb-news__read-news .news-content h2, 
1946        .ptb-news__read-news .news-content h2 *, 
1947        .ptb-news__read-news .news-content h3, 
1948        .ptb-news__read-news .news-content h3 *, 
1949        .ptb-news__read-news .news-content h4, 
1950        .ptb-news__read-news .news-content h4 *, 
1951        .ptb-news__read-news .news-content h5, 
1952        .ptb-news__read-news .news-content h5 *, 
1953        .ptb-news__read-news .news-content h6, 
1954        .ptb-news__read-news .news-content h6 * { 
1955            color: var(--color-neutral-800, #373737) !important; 
1956
1957 
1958        body.high-contrast-active .ptb-news__read-news .news-content h1, 
1959        body.high-contrast-active .ptb-news__read-news .news-content h1 *, 
1960        body.high-contrast-active .ptb-news__read-news .news-content h2, 
1961        body.high-contrast-active .ptb-news__read-news .news-content h2 *, 
1962        body.high-contrast-active .ptb-news__read-news .news-content h3, 
1963        body.high-contrast-active .ptb-news__read-news .news-content h3 *, 
1964        body.high-contrast-active .ptb-news__read-news .news-content h4, 
1965        body.high-contrast-active .ptb-news__read-news .news-content h4 *, 
1966        body.high-contrast-active .ptb-news__read-news .news-content h5, 
1967        body.high-contrast-active .ptb-news__read-news .news-content h5 *, 
1968        body.high-contrast-active .ptb-news__read-news .news-content h6, 
1969        body.high-contrast-active .ptb-news__read-news .news-content h6 * { 
1970            color: var(--text-primary-default, var(--color-neutral-100)) !important; 
1971
1972 
1973        .ptb-news__read-news .news-content h1:last-child, 
1974        .ptb-news__read-news .news-content h2:last-child, 
1975        .ptb-news__read-news .news-content h3:last-child, 
1976        .ptb-news__read-news .news-content h4:last-child, 
1977        .ptb-news__read-news .news-content h5:last-child, 
1978        .ptb-news__read-news .news-content h5:last-child, 
1979        .ptb-news__read-news .news-content h6:last-child, 
1980        .ptb-news__read-news .news-content p:last-child { 
1981            padding-bottom: 0 !important; 
1982
1983 
1984        .ptb-news__read-news .news-content h1, 
1985        .ptb-news__read-news .news-content h1 * { 
1986            font-size: var(--font-size-xxl) !important; 
1987            line-height: var(--line-height-sm) !important; 
1988            font-weight: var(--font-weight-bold) !important; 
1989            font-style: var(--font-style-normal) !important; 
1990            text-decoration: var(--text-decoration-none) !important; 
1991
1992 
1993        .ptb-news__read-news .news-content h2, 
1994        .ptb-news__read-news .news-content h2 * { 
1995             
1996            font-size: var(--font-size-xl) !important; 
1997            line-height: var(--line-height-sm) !important; 
1998            font-weight: var(--font-weight-bold) !important; 
1999            font-style: var(--font-style-normal) !important; 
2000            text-decoration: var(--text-decoration-none) !important; 
2001 
2002
2003 
2004        .ptb-news__read-news .news-content h2 { 
2005            margin-top: 48px !important; 
2006           margin-bottom: var(--space-xl, 40px) !important; 
2007 
2008
2009 
2010        .ptb-news__read-news .news-content h3, 
2011        .ptb-news__read-news .news-content h3 * { 
2012            font-size: var(--font-size-lg) !important; 
2013            line-height: var(--line-height-sm) !important; 
2014            font-weight: var(--font-weight-bold) !important; 
2015            font-style: var(--font-style-normal) !important; 
2016            text-decoration: var(--text-decoration-none) !important; 
2017
2018 
2019        .ptb-news__read-news .news-content h3 { 
2020            margin-bottom: var(--space-sm, 16px) !important; 
2021            margin-top: 48px !important; 
2022
2023 
2024        .ptb-news__read-news .news-content h4, 
2025        .ptb-news__read-news .news-content h4 * { 
2026            font-size: var(--font-size-md) !important; 
2027            line-height: var(--line-height-md) !important; 
2028            font-weight: var(--font-weight-bold) !important; 
2029            font-style: var(--font-style-normal) !important; 
2030            text-decoration: var(--text-decoration-none) !important; 
2031
2032 
2033        .ptb-news__read-news .news-content h4 { 
2034            margin-top: 48px !important; 
2035            margin-bottom: var(--space-sm, 16px) !important; 
2036
2037 
2038        .ptb-news__read-news .news-content h5, 
2039        .ptb-news__read-news .news-content h5 * { 
2040            font-size: var(--font-size-sm) !important; 
2041            line-height: var(--line-height-md) !important; 
2042            font-weight: var(--font-weight-bold) !important; 
2043            font-style: var(--font-style-normal) !important; 
2044            text-decoration: var(--text-decoration-none) !important; 
2045
2046 
2047        .ptb-news__read-news .news-content h5 { 
2048            margin-top: 48px !important; 
2049            margin-bottom: var(--space-sm, 16px) !important; 
2050
2051 
2052        .ptb-news__read-news .news-content table { 
2053            border-collapse: collapse; 
2054            border: none; 
2055            width: 100% !important; 
2056            margin: var(--space-md, 24px) 0; 
2057
2058 
2059        .ptb-news__read-news .news-content table * { 
2060            font-size: var(--font-size-xxs, 16px); 
2061            font-style: var(--font-style-normal, normal); 
2062            font-weight: var(--font-weight-regular, 400); 
2063            line-height: var(--line-height-xl, 160%); 
2064            color: var(--color-neutral-800, #373737); 
2065            border: 0; 
2066
2067 
2068        body.high-contrast-active .ptb-news__read-news .news-content table * { 
2069            color: var(--text-primary-default, var(--color-neutral-100)); 
2070
2071 
2072        .ptb-news__read-news .news-content table tbody > :first-child, 
2073        .ptb-news__read-news .news-content table tbody > :first-child * { 
2074            font-weight: var(--font-weight-bold, 700); 
2075            flex: 1 0 0; 
2076            background: var(--background-Surface-level-02, #F8F8F8); 
2077
2078 
2079        body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child, 
2080        body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child * { 
2081            background: #373737; 
2082
2083         
2084        .ptb-news__read-news .news-content table tbody { 
2085            display: flex; 
2086            flex-direction: column; 
2087
2088 
2089        .ptb-news__read-news .news-content table tbody * { 
2090            display: flex; 
2091            height: 100%; 
2092            align-items: center; 
2093            flex: 1 0 0; 
2094
2095	             
2096        .ptb-news__read-news .news-content table tbody tr * {          
2097            padding: 23px var(--space-lg, 32px); 
2098        }	 
2099             
2100 
2101        .ptb-news__read-news .news-content table tbody tr { 
2102            border-radius: var(--border-radius-md); 
2103            border: var(--border-width-hairline, 1px) solid #EEEEEE; 
2104
2105 
2106        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr { 
2107            border: var(--border-width-hairline, 1px) solid #525252; 
2108
2109 
2110        .ptb-news__read-news .news-content table tbody tr:not(:last-child) { 
2111            border-bottom-left-radius: 0; 
2112            border-bottom-right-radius: 0; 
2113
2114 
2115        .ptb-news__read-news .news-content table tbody tr:not(:first-child) { 
2116            border-top-left-radius: 0; 
2117            border-top-right-radius: 0; 
2118            border-top: none; 
2119
2120 
2121        .ptb-news__read-news .news-content table tbody tr td:not(:last-child) { 
2122            border-right: var(--border-width-hairline, 1px) solid #EEEEEE; 
2123
2124 
2125        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr td:not(:last-child) { 
2126            border-right: var(--border-width-hairline, 1px) solid #525252; 
2127
2128 
2129        .ptb-news__read-news .news-content table tbody tr:first-child td { 
2130            border-top: var(--border-width-hairline, 1px) solid #EEEEEE; 
2131            border-bottom: var(--border-width-hairline, 1px) solid #EEEEEE; 
2132
2133 
2134        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr:first-child td { 
2135            border-top: var(--border-width-hairline, 1px) solid #525252; 
2136            border-bottom: var(--border-width-hairline, 1px) solid #525252; 
2137
2138 
2139        .ptb-news__read-news .news-content table tbody tr td:first-child { 
2140            padding-left: 0; 
2141
2142 
2143        .ptb-news__read-news .news-content table tbody tr td:last-child{ 
2144            padding-right: 0; 
2145
2146 
2147        .ptb-news__read-news .news-content audio { 
2148            display: none; 
2149
2150 
2151        .ptb-news__read-news .news-content .audio-template { 
2152            display: flex; 
2153            padding: var(--space-sm, 16px); 
2154            align-items: center; 
2155            gap: var(--space-md, 24px); 
2156            align-self: stretch; 
2157            border-radius: var(--border-radius-lg, 16px); 
2158            border: var(--border-width-hairline, 1px) solid var(--border-color-mid); 
2159            background: var(--background-card-default, #FFF); 
2160            max-height: var(--size-giant, 72px); 
2161            margin: 48px 0; 
2162
2163 
2164        body.high-contrast-active .ptb-news__read-news .news-content .audio-template { 
2165            background: var(--background-card-default, #010101); 
2166            border: var(--border-width-hairline, 1px) solid #525252; 
2167
2168 
2169        .ptb-news__read-news .news-content .audio-template .audio-button-play { 
2170            display: flex; 
2171            width: var(--size-xl, 40px); 
2172            height: var(--size-xl, 40px); 
2173            justify-content: center; 
2174            align-items: center; 
2175            flex-grow: 0; 
2176            flex-shrink: 0; 
2177            cursor: pointer; 
2178
2179 
2180        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon, 
2181        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon { 
2182            fill: #FFFFFF; 
2183
2184 
2185        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon path, 
2186        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon path { 
2187            fill: #010101; 
2188
2189 
2190        .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-play-icon { 
2191            display: block; 
2192
2193 
2194        .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-pause-icon { 
2195            display: none; 
2196
2197 
2198        .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-play-icon { 
2199            display: none; 
2200
2201 
2202        .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-pause-icon { 
2203            display: block; 
2204
2205 
2206        .ptb-news__read-news .news-content .audio-template .audio-sondwave { 
2207            display: flex; 
2208            flex-direction: column; 
2209            align-items: flex-start; 
2210            gap: var(--space-xxs, 8px); 
2211            flex: 1 0 0; 
2212            height: 100%; 
2213            flex-grow: 1; 
2214            flex-shrink: 1; 
2215
2216 
2217        .ptb-news__read-news .news-content .audio-template .audio-sondwave line { 
2218            stroke: #008542; 
2219
2220 
2221        .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active { 
2222            stroke: #90EE90; 
2223
2224 
2225        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line { 
2226            stroke: #E4F7E8; 
2227
2228 
2229        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active { 
2230            stroke: #666666; 
2231
2232 
2233        .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile { 
2234            display: none; 
2235
2236 
2237        .ptb-news__read-news .news-content .audio-template .audio-time { 
2238            display: flex; 
2239            flex-direction: column; 
2240            align-items: flex-start; 
2241            gap: var(--space-xxs, 8px); 
2242            flex: 1 0 0; 
2243            color: var(--text-primary-accent, #008542); 
2244            text-align: center; 
2245            font-family: var(--font-family-base); 
2246            line-height: 124% !important;  
2247            flex-grow: 0; 
2248            flex-shrink: 0; 
2249
2250 
2251        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-time {     
2252            color: var(--text-primary-accent, #E4F7E8); 
2253
2254 
2255        .ptb-news__read-news .news-content .audio-template .audio-button-mute { 
2256            width: var(--size-lg, 32px); 
2257            height: var(--size-lg, 32px); 
2258            flex-grow: 0; 
2259            flex-shrink: 0; 
2260            cursor: pointer; 
2261
2262 
2263        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-mute svg path { 
2264            stroke: white; 
2265            fill: none; 
2266
2267 
2268        .ptb-news__read-news .news-content .audio-template.audio-muted .audio-button-mute { 
2269            opacity: 0.6; 
2270
2271 
2272         
2273        @media screen and (max-width: 1023px) and (min-width: ${MAX_MOBILE_WIDTH}px) { 
2274            .ptb-news__read-news .news-content > * { 
2275                grid-column-start: 1; 
2276                grid-column-end: 9; 
2277            }        
2278
2279         
2280 
2281        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
2282 
2283            .ptb-news__read-news .news-content * { 
2284                font-size: var(--font-size-xxs, 16px); 
2285
2286 
2287             
2288            .ptb-news__read-news .news-content > * { 
2289                grid-column-start: 1; 
2290                grid-column-end: 5; 
2291
2292             
2293 
2294            .ptb-news__read-news .news-content h1, 
2295            .ptb-news__read-news .news-content h1 * { 
2296                font-size: var(--font-size-xl) !important; 
2297                line-height: var(--line-height-sm) !important; 
2298                font-weight: var(--font-weight-bold) !important; 
2299                font-style: var(--font-style-normal) !important; 
2300                text-decoration: var(--text-decoration-none) !important; 
2301 
2302
2303 
2304            .ptb-news__read-news .news-content h2, 
2305            .ptb-news__read-news .news-content h2 * { 
2306                font-size: var(--font-size-lg) !important; 
2307                line-height: var(--line-height-sm) !important; 
2308                font-weight: var(--font-weight-bold) !important; 
2309                font-style: var(--font-style-normal) !important; 
2310                text-decoration: var(--text-decoration-none) !important; 
2311
2312 
2313            .ptb-news__read-news .news-content h2 { 
2314                margin-bottom: var(--space-md, 24px) !important; 
2315
2316 
2317            .ptb-news__read-news .news-content h3, 
2318            .ptb-news__read-news .news-content h3 * { 
2319                font-size: var(--font-size-md) !important; 
2320                line-height: var(--line-height-sm) !important; 
2321                font-weight: var(--font-weight-bold) !important; 
2322                font-style: var(--font-style-normal) !important; 
2323                text-decoration: var(--text-decoration-none) !important; 
2324
2325 
2326            .ptb-news__read-news .news-content h3 { 
2327                margin-top: var(--space-xxs, 8px) !important; 
2328
2329 
2330            .ptb-news__read-news .news-content h4,  
2331            .ptb-news__read-news .news-content h4 * { 
2332                font-size: var(--font-size-sm) !important; 
2333                line-height: var(--line-height-md) !important; 
2334                font-weight: var(--font-weight-bold) !important; 
2335                font-style: var(--font-style-normal) !important; 
2336                text-decoration: var(--text-decoration-none) !important; 
2337
2338 
2339            .ptb-news__read-news .news-content h5, 
2340            .ptb-news__read-news .news-content h5 * { 
2341                font-size: var(--font-size-xs) !important; 
2342                line-height: var(--line-height-md) !important; 
2343                font-weight: var(--font-weight-bold) !important; 
2344                font-style: var(--font-style-normal) !important; 
2345                text-decoration: var(--text-decoration-none) !important; 
2346
2347 
2348            .ptb-news__read-news .news-content figure figcaption { 
2349                flex-direction: column; 
2350                gap: var(--space-xxs, 8px); 
2351
2352 
2353            .ptb-news__read-news .news-content figure figcaption, 
2354            .ptb-news__read-news .news-content figure figcaption * { 
2355                font-size: var(--font-size-micro, 12px); 
2356
2357 
2358            .ptb-news__read-news .news-content table { 
2359                margin-top: var(--space-xxs, 8px); 
2360                margin-bottom: var(--space-lg, 32px); 
2361
2362 
2363            .ptb-news__read-news .news-content table * { 
2364                font-size: var(--font-size-micro, 12px); 
2365                line-height: 19.2%; 
2366
2367 
2368            .ptb-news__read-news .news-content table tbody * { 
2369                height: 43px; 
2370                padding: var(--space-xs, 12px); 
2371
2372 
2373            .ptb-news__read-news .news-content .audio-template { 
2374                margin-top: var(--space-xxs, 8px); 
2375                margin-bottom: var(--space-lg, 32px); 
2376            }            
2377
2378 
2379        @media screen and (max-width: 500px) { 
2380             .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-desktop { 
2381                display: none; 
2382
2383 
2384            .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile { 
2385                display: block; 
2386
2387
2388    </style> 
2389 
2390    <style> 
2391.ws-carousel p { 
2392    margin: var(--space-none, 0) !important; 
2393
2394 
2395.ws-carousel { 
2396    display: flex; 
2397    flex-direction: column; 
2398    gap: var(--space-lg, 32px); 
2399    margin: var(--space-big, 72px) auto; 
2400
2401 
2402.ws-carousel .ws-carousel-header { 
2403    display: flex; 
2404    justify-content: space-between; 
2405
2406 
2407.ws-carousel .ws-carousel-header .h2, 
2408.ws-carousel .ws-carousel-header h2 { 
2409    color: var(--color-neutral-800, #373737) !important; 
2410    font-family: var(--font-family-base), "Petrobras Sans" !important; 
2411    line-height: 100% !important; 
2412    margin: var(--space-none, 0) ! important; 
2413
2414 
2415.ws-carousel .ws-carousel-header .nav-buttons { 
2416    display: flex; 
2417    justify-content: space-between; 
2418    gap: var(--space-xxs, 8px); 
2419
2420 
2421.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.left-arrow { 
2422    transform: scaleX(-1); 
2423
2424 
2425.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow { 
2426    cursor: pointer; 
2427
2428 
2429.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.inactive { 
2430    cursor: not-allowed; 
2431
2432 
2433 
2434.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow path { 
2435    transition: stroke 0.3s ease; 
2436
2437 
2438.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.inactive path { 
2439    stroke: #bababa; 
2440
2441 
2442.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.active path { 
2443    stroke: #008542; 
2444
2445 
2446 
2447.ws-carousel .ws-carousel-body { 
2448    overflow-x: scroll; 
2449    -ms-overflow-style: none; 
2450    -scrollbar-width: none; 
2451
2452 
2453.ws-carousel .ws-carousel-body::-webkit-scrollbar { 
2454    display: none; 
2455
2456 
2457.ws-carousel .ws-carousel-body .ws-container { 
2458    display: flex; 
2459    gap: var(--space-lg, 32px); 
2460
2461 
2462.ws-carousel .ws-carousel-body .ws-container .ws-item { 
2463    min-width: 300px; 
2464    max-width: 300px; 
2465    min-height: 400px; 
2466    max-height: 400px; 
2467    position: relative; 
2468    overflow: hidden; 
2469    border-radius: var(--border-radius-lg); 
2470    box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
2471
2472 
2473.ws-carousel .ws-carousel-body .ws-container .ws-item:hover { 
2474    cursor: pointer; 
2475
2476 
2477.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-image { 
2478    position: absolute; 
2479    top: 50%; 
2480    left: 50%; 
2481    transform: translate(-50%, -50%); 
2482    height: 100%; 
2483
2484 
2485.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-overlay { 
2486    position: absolute; 
2487    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 100%); 
2488    width: 100%; 
2489    height: 100%; 
2490
2491 
2492.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-label { 
2493    position: absolute; 
2494    margin: var(--space-md, 24px) 0 0 var(--space-md, 24px); 
2495    border-radius: var(--border-radius-pill, 100%); 
2496    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); 
2497    box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10); 
2498    padding: var(--space-micro, 2px) var(--space-xs, 12px); 
2499 
2500    color: var(--Default-sup-green-water, #006B65); 
2501    font-family: var(--font-family-base), "Petrobras Sans"; 
2502    font-size: var(--font-size-xxxs, 12px); 
2503    font-style: normal; 
2504    font-weight: var(--font-weight-regular, 400); 
2505    line-height: var(--line-height-sm, 120%); 
2506    color: #006B65; 
2507
2508 
2509.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-content { 
2510    position: relative; 
2511    z-index: 1; 
2512    height: 100%; 
2513 
2514    display: flex; 
2515    padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px); 
2516    flex-direction: column; 
2517    justify-content: flex-end; 
2518    align-items: flex-start; 
2519    gap: var(--space-md, 24px); 
2520
2521 
2522.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-content .h5 { 
2523    overflow: hidden; 
2524    color: #FFF !important; 
2525    text-overflow: ellipsis; 
2526    margin: 0 !important; 
2527    font-family: var(--font-family-base), "Petrobras Sans" !important; 
2528
2529 
2530@media (max-width: 768px) { 
2531 
2532    .ws-carousel .ws-carousel-header .nav-buttons { 
2533        gap: var(--space-micro, 12px); 
2534
2535 
2536    .ws-carousel .ws-carousel-header .nav-buttons .nav-arrow { 
2537        width: 44px; 
2538        height: 44px; 
2539
2540 
2541    .ws-carousel .ws-carousel-header { 
2542        flex-direction: column; 
2543        align-items: flex-start; 
2544        gap: var(--space-lg, 32px); 
2545
2546 
2547    .ws-carousel .ws-carousel-header .h2 { 
2548        font-size: var(--font-size-lg, 24px) !important; 
2549
2550 
2551    .ws-carousel .ws-carousel-body .ws-container { 
2552        gap: var(--space-lg, 32px); 
2553
2554 
2555    .ws-carousel .ws-carousel-body .ws-container .ws-item { 
2556        min-width: 225px; 
2557        max-width: 225px; 
2558        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; 
2559        box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
2560
2561
2562    </style> 
2563 
2564<#--  Exibição de um único story com naveação direto no conteúdo  --> 
2565<style> 
2566  .stories-container * { 
2567    margin: 0; 
2568    padding: 0; 
2569    box-sizing: border-box; 
2570
2571 
2572  .stories-container { 
2573    position: relative; 
2574    /* 
2575      Largura das duas setas com position absolute: 64px 
2576      Largura das somas margens das setas: 48px 
2577 
2578    */ 
2579    width: calc(100vw - 64px - 48px); 
2580    max-width: 400px; 
2581    height: auto; 
2582    aspect-ratio: 59/105; 
2583    border-radius: 8px; 
2584
2585 
2586  .header-container { 
2587    position: absolute; 
2588    top: 0; 
2589    left: 0; 
2590    right: 0; 
2591    z-index: 3; 
2592    padding: 16px 16px 0 16px; 
2593    display: flex; 
2594    flex-direction: column; 
2595    gap: 24px; 
2596
2597 
2598  .story-header { 
2599    display: flex; 
2600    flex-direction: column; 
2601    gap: 8px; 
2602
2603 
2604  .progress-bars { 
2605    display: flex; 
2606    gap: 5px; 
2607    width: 100%; 
2608
2609 
2610  .progress-bar { 
2611    height: 3px; 
2612    background-color: rgba(255, 255, 255, 0.3); 
2613    flex-grow: 1; 
2614    border-radius: 3px; 
2615    overflow: hidden; 
2616
2617 
2618  .story-progress { 
2619    height: 100%; 
2620    background-color: white; 
2621    width: 0%; 
2622    transition: width 0.2s linear; 
2623
2624 
2625  .story-progress.completed { 
2626    width: 100% !important; 
2627
2628 
2629  .story-progress.active { 
2630    animation: progress 8s linear forwards; 
2631
2632 
2633  @keyframes progress { 
2634    from { 
2635      width: 0%; 
2636
2637 
2638    to { 
2639      width: 100%; 
2640
2641
2642 
2643  .story-slide { 
2644    position: absolute; 
2645    width: 100%; 
2646    height: 100%; 
2647    display: none; 
2648    flex-direction: column; 
2649    justify-content: center; 
2650    align-items: center; 
2651    color: white; 
2652    overflow: hidden; 
2653    border-radius: 8px; 
2654
2655 
2656  .story-slide::before { 
2657    position: absolute; 
2658    z-index: 2; 
2659    content: ''; 
2660    width: 100%; 
2661    height: 100%; 
2662    background: linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%); 
2663
2664 
2665  .story-slide.active { 
2666    display: flex; 
2667
2668 
2669  .story-image { 
2670    width: 100%; 
2671    height: 100% !important; 
2672    object-fit: cover; 
2673    position: absolute; 
2674    top: 0; 
2675    left: 0; 
2676    z-index: 1; 
2677    aspect-ratio: auto !important; 
2678
2679 
2680  .story-content { 
2681    position: relative; 
2682    z-index: 2; 
2683    color: white; 
2684    width: 100%; 
2685    display: flex; 
2686    flex-direction: column; 
2687    justify-content: flex-end; 
2688    height: 100%; 
2689    padding: 16px 24px 64px 24px; 
2690
2691 
2692  .story-content .content-wrapper { 
2693    display: flex; 
2694    flex-direction: column; 
2695    align-items: flex-start; 
2696    gap: 24px; 
2697    align-self: stretch; 
2698    padding: 0 16px; 
2699
2700 
2701  .story-content .content-wrapper.no-padding { 
2702    padding: 0; 
2703
2704 
2705  .story-title { 
2706    display: flex; 
2707    padding: 8px; 
2708    flex-direction: column; 
2709    align-items: flex-start; 
2710    align-self: stretch; 
2711    backdrop-filter: blur(3px); 
2712
2713 
2714  .story-title.button { 
2715    display: none; 
2716
2717 
2718  .story-title.dark-theme, 
2719  .story-description.dark-theme { 
2720    background: rgba(13, 19, 16, 0.80); 
2721    color: #FFF; 
2722
2723 
2724  .story-description.dark-theme p { 
2725    color: #FFF !important; 
2726
2727 
2728  .story-title.light-theme, 
2729  .story-description.light-theme { 
2730    background: rgba(255, 255, 255, 0.90); 
2731    color: #373737; 
2732
2733 
2734  .story-title.green-theme, 
2735  .story-description.green-theme { 
2736    background: rgba(0, 133, 66, 0.80); 
2737    color: #FFF; 
2738
2739 
2740  .story-title .title-text { 
2741    align-self: stretch; 
2742    font-size: 24px; 
2743    font-style: normal; 
2744    font-weight: 700; 
2745    line-height: 100%; 
2746
2747 
2748  .story-title .mischievous { 
2749    color: #FDC82F; 
2750    font-size: 24px; 
2751    font-style: normal; 
2752    font-weight: 700; 
2753    line-height: 100%; 
2754    width: 24px; 
2755
2756 
2757  .description-and-link { 
2758    width: 100%; 
2759    display: flex; 
2760    flex-direction: column; 
2761    gap: 8px; 
2762
2763 
2764  .story-description { 
2765    padding: 8px; 
2766    width: 100%; 
2767
2768 
2769  .story-description p { 
2770    font-size: 16px; 
2771    font-weight: 400; 
2772    line-height: 120%; 
2773    margin-bottom: 0; 
2774
2775 
2776  .story-description.button { 
2777    padding: 0; 
2778    display: flex; 
2779    justify-content: center; 
2780
2781 
2782  .story-description.button p a { 
2783    text-decoration: underline; 
2784    font-weight: bold; 
2785
2786 
2787  .story-description.button p a { 
2788    background: #FFF; 
2789    width: fit-content; 
2790    height: 48px; 
2791    display: flex; 
2792    justify-content: center; 
2793    align-items: center; 
2794    gap: 16px; 
2795    text-decoration: none; 
2796    color: #008542; 
2797    border-radius: 100px; 
2798    padding: 0 24px; 
2799    box-shadow: 0px 4px 16px 0px #00000029; 
2800    font-family: 'Petrobras Sans'; 
2801    font-weight: 700; 
2802    font-size: 16px; 
2803    line-height: 144%; 
2804    letter-spacing: 0%; 
2805
2806 
2807  .story-description.button p a::after { 
2808    content: ''; 
2809    display: inline-block; 
2810    flex-shrink: 0; 
2811    width: 20px; 
2812    height: 20px; 
2813    vertical-align: middle; 
2814    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjQ2OTUgMTIuMzU5MkMxMC4zMDk4IDEyLjUxODkgMTAuMzA5OCAxMi43Nzc5IDEwLjQ2OTUgMTIuOTM3N0MxMC42MjkzIDEzLjA5NzUgMTAuODg4MyAxMy4wOTc1IDExLjA0ODEgMTIuOTM3N0wxMC40Njk1IDEyLjM1OTJaTTEzLjQwNzIgMTBMMTMuNjk2NSAxMC4yODkzQzEzLjg1NjMgMTAuMTI5NSAxMy44NTYzIDkuODcwNDkgMTMuNjk2NSA5LjcxMDczTDEzLjQwNzIgMTBaTTExLjA0ODEgNy4wNjIyOUMxMC44ODgzIDYuOTAyNTMgMTAuNjI5MyA2LjkwMjUzIDEwLjQ2OTUgNy4wNjIyOUMxMC4zMDk4IDcuMjIyMDUgMTAuMzA5OCA3LjQ4MTA3IDEwLjQ2OTUgNy42NDA4M0wxMS4wNDgxIDcuMDYyMjlaTTcuMTU3MjMgOS41OTA5MUM2LjkzMTI5IDkuNTkwOTEgNi43NDgxNCA5Ljc3NDA3IDYuNzQ4MTQgMTBDNi43NDgxNCAxMC4yMjU5IDYuOTMxMjkgMTAuNDA5MSA3LjE1NzIzIDEwLjQwOTFWOS41OTA5MVpNMTcuMzczMSAxMEMxNy4zNzMxIDEzLjkxNjIgMTQuMTk4NCAxNy4wOTA5IDEwLjI4MjIgMTcuMDkwOVYxNy45MDkxQzE0LjY1MDMgMTcuOTA5MSAxOC4xOTEzIDE0LjM2ODEgMTguMTkxMyAxMEgxNy4zNzMxWk0xMC4yODIyIDE3LjA5MDlDNi4zNjYwMyAxNy4wOTA5IDMuMTkxMzIgMTMuOTE2MiAzLjE5MTMyIDEwSDIuMzczMTRDMi4zNzMxNCAxNC4zNjgxIDUuOTE0MTYgMTcuOTA5MSAxMC4yODIyIDE3LjkwOTFWMTcuMDkwOVpNMy4xOTEzMiAxMEMzLjE5MTMyIDYuMDgzOCA2LjM2NjAzIDIuOTA5MDkgMTAuMjgyMiAyLjkwOTA5VjIuMDkwOTFDNS45MTQxNiAyLjA5MDkxIDIuMzczMTQgNS42MzE5MyAyLjM3MzE0IDEwSDMuMTkxMzJaTTEwLjI4MjIgMi45MDkwOUMxNC4xOTg0IDIuOTA5MDkgMTcuMzczMSA2LjA4MzggMTcuMzczMSAxMEgxOC4xOTEzQzE4LjE5MTMgNS42MzE5MyAxNC42NTAzIDIuMDkwOTEgMTAuMjgyMiAyLjA5MDkxVjIuOTA5MDlaTTExLjA0ODEgMTIuOTM3N0wxMy42OTY1IDEwLjI4OTNMMTMuMTE4IDkuNzEwNzNMMTAuNDY5NSAxMi4zNTkyTDExLjA0ODEgMTIuOTM3N1pNMTMuNjk2NSA5LjcxMDczTDExLjA0ODEgNy4wNjIyOUwxMC40Njk1IDcuNjQwODNMMTMuMTE4IDEwLjI4OTNMMTMuNjk2NSA5LjcxMDczWk03LjE1NzIzIDEwLjQwOTFIMTMuNDA3MlY5LjU5MDkxSDcuMTU3MjNWMTAuNDA5MVoiIGZpbGw9IiMwMDg1NDIiLz4KPC9zdmc+Cg=="); 
2815    background-size: contain; 
2816    background-repeat: no-repeat; 
2817    background-position: center; 
2818
2819 
2820  .story-description a { 
2821    position: relative; 
2822    z-index: 3; 
2823    color: #FFF; 
2824    text-decoration: underline; 
2825
2826 
2827  .nav-area-container { 
2828    position: absolute; 
2829    top: 0; 
2830    left: 0; 
2831    right: 0; 
2832    bottom: 0; 
2833    display: flex; 
2834    justify-content: space-between; 
2835    align-items: center; 
2836    z-index: 1; 
2837    /* pointer-events: none; */ 
2838
2839 
2840  .nav-area { 
2841    height: 100%; 
2842    width: 50%; 
2843    display: flex; 
2844    align-items: center; 
2845
2846 
2847  .nav-area .arrow, 
2848  .nav-area .restart-icon { 
2849    position: absolute; 
2850
2851 
2852  .nav-area .arrow:hover, 
2853  .nav-area.next .restart-icon { 
2854    cursor: pointer; 
2855
2856 
2857  .nav-area.prev .arrow { 
2858    left: calc(-32px - 24px); 
2859
2860 
2861  .nav-area.next .arrow, 
2862  .nav-area.next .restart-icon { 
2863    right: calc(-32px - 24px); 
2864
2865 
2866  .nav-area .arrow.disabled { 
2867    opacity: 0.4; 
2868
2869 
2870  .nav-area .arrow.disabled:hover { 
2871    cursor: not-allowed; 
2872
2873 
2874  .nav-area .hidden { 
2875    display: none; 
2876
2877 
2878  .action-buttons { 
2879    display: flex; 
2880    gap: 24px; 
2881    justify-content: flex-end; 
2882
2883 
2884  .action-btn { 
2885    background: transparent; 
2886    border-radius: 50%; 
2887    border: none; 
2888    display: flex; 
2889    align-items: center; 
2890    justify-content: center; 
2891    cursor: pointer; 
2892    font-size: 14px; 
2893
2894 
2895  .action-btn.pause::before { 
2896    content: ''; 
2897    display: inline-block; 
2898    width: 15px; 
2899    height: 18px; 
2900    vertical-align: middle; 
2901    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxNiAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuMjY4NTU1IDE4LjI3NzNINS4zNTE0N1YwLjI3NzM0NEgwLjI2ODU1NVYxOC4yNzczWk0xMC40MzQ0IDAuMjc3MzQ0VjE4LjI3NzNIMTUuNTE3M1YwLjI3NzM0NEgxMC40MzQ0WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="); 
2902    background-size: contain; 
2903    background-repeat: no-repeat; 
2904    background-position: center; 
2905
2906 
2907  .action-btn.play::before { 
2908    content: ''; 
2909    display: inline-block; 
2910    width: 18px; 
2911    height: 18px; 
2912    vertical-align: middle; 
2913    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyMiAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIwLjUxMjUgMTIuMTQ5OUwyLjUyNSAxLjE0OTg4QzIuMzczNTggMS4wNTY0NyAyLjE5OTk4IDEuMDA1MTYgMi4wMjIxMSAxLjAwMTIyQzEuODQ0MjQgMC45OTcyODcgMS42Njg1NCAxLjA0MDg4IDEuNTEzMTQgMS4xMjc1QzEuMzU3NzQgMS4yMTQxMSAxLjIyODI2IDEuMzQwNjIgMS4xMzgwNSAxLjQ5Mzk3QzEuMDQ3ODUgMS42NDczMiAxLjAwMDIgMS44MjE5NiAxIDEuOTk5ODhWMjMuOTk5OUMxLjAwMDIgMjQuMTc3OCAxLjA0Nzg1IDI0LjM1MjQgMS4xMzgwNSAyNC41MDU4QzEuMjI4MjYgMjQuNjU5MSAxLjM1Nzc0IDI0Ljc4NTYgMS41MTMxNCAyNC44NzIzQzEuNjY4NTQgMjQuOTU4OSAxLjg0NDI0IDI1LjAwMjUgMi4wMjIxMSAyNC45OTg1QzIuMTk5OTggMjQuOTk0NiAyLjM3MzU4IDI0Ljk0MzMgMi41MjUgMjQuODQ5OUwyMC41MTI1IDEzLjg0OTlDMjAuNjYwMiAxMy43NjI1IDIwLjc4MjYgMTMuNjM4MiAyMC44Njc2IDEzLjQ4OTJDMjAuOTUyNiAxMy4zNDAxIDIwLjk5NzQgMTMuMTcxNSAyMC45OTc0IDEyLjk5OTlDMjAuOTk3NCAxMi44MjgzIDIwLjk1MjYgMTIuNjU5NiAyMC44Njc2IDEyLjUxMDZDMjAuNzgyNiAxMi4zNjE1IDIwLjY2MDIgMTIuMjM3MiAyMC41MTI1IDEyLjE0OTlWMTIuMTQ5OVoiIHN0cm9rZT0iI0ZGRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg=="); 
2914    background-size: contain; 
2915    background-repeat: no-repeat; 
2916    background-position: center; 
2917
2918 
2919  .action-btn.share::before { 
2920    content: ''; 
2921    display: inline-block; 
2922    width: 18px; 
2923    height: 18px; 
2924    vertical-align: middle; 
2925    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOSAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuOTA3MDMgMTAuNjYxMkwxNi43NzcgMS4wNjU3MkwxOC4xOTcgMi40NDc2Mkw4LjMzNzAzIDEyLjA1MjlMNi45MDcwMyAxMC42NjEyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi43MzQxIDIuNDg4NzdMMTMuMTA3OCAxNS45NTU0QzEzLjA3NDYgMTYuMDc5MyAxMy4wMDM2IDE2LjE5MDQgMTIuOTA0MSAxNi4yNzQyQzEyLjgwNDYgMTYuMzU3OSAxMi42ODEzIDE2LjQxMDMgMTIuNTUwNiAxNi40MjQ0QzEyLjQxOTkgMTYuNDM4NiAxMi4yODc4IDE2LjQxMzggMTIuMTcxOSAxNi4zNTMzQzEyLjA1NjMgMTYuMjkzMSAxMS45NjIyIDE2LjIwMDIgMTEuOTAxOCAxNi4wODdMMTEuOTAxMiAxNi4wODU5TDguODMwNjkgMTAuMjQyMUwyLjc4MTI5IDcuMzAzNjZMMi43Nzg5MiA3LjMwMjUxQzIuNjYwNDcgNy4yNDUzNyAyLjU2Mjc0IDcuMTU0NDUgMi40OTg3NiA3LjA0MTg3QzIuNDM0NzkgNi45MjkyOCAyLjQwNzYxIDYuODAwMzkgMi40MjA4NSA2LjY3MjM4QzIuNDM0MDkgNi41NDQzOCAyLjQ4NzEyIDYuNDIzMzQgMi41NzI4OCA2LjMyNTQzQzIuNjU4NjMgNi4yMjc1MSAyLjc3MzAyIDYuMTU3MzcgMi45MDA3OSA2LjEyNDM2TDE2LjczNDEgMi40ODg3N1pNMTguOTYyMyAxLjUwODUyQzE5LjA3NzIgMS4xMTQ0MyAxOC45MTE2IDAuNzY0OTExIDE4LjcwNzUgMC41NjYzNjFDMTguNTAzNCAwLjM2NzczNyAxOC4yMzc0IDAuMjc3MzQ0IDE3Ljk4NyAwLjI3NzM0NEgxNy44NjFMMi40MTMyNyA0LjMzNzI0TDIuNDExMTEgNC4zMzc3OUMxLjkxMDcxIDQuNDY3NTMgMS40NjI3NSA0Ljc0MjQ3IDEuMTI2ODIgNS4xMjYwNUMwLjc5MDQxIDUuNTEwMTcgMC41ODIzNTMgNS45ODUgMC41MzA0MDUgNi40ODcxN0MwLjQ3ODQ1NiA2Ljk4OTM1IDAuNTg1MDg2IDcuNDk1MDEgMC44MzYwNzEgNy45MzY2OEMxLjA4NjggOC4zNzc5MiAxLjQ2OTY5IDguNzM0MzUgMS45MzM3NCA4Ljk1ODUzTDEuOTM1MTQgOC45NTkyTDcuNDIzMzcgMTEuNjI1MUwxMC4yMTEyIDE2LjkzMDhMMTAuMjEyOCAxNi45MzM5QzEwLjQ0OTUgMTcuMzgwMiAxMC44MTk3IDE3Ljc0NiAxMS4yNzQ2IDE3Ljk4MzJDMTEuNzI5NSAxOC4yMjAzIDEyLjI0NzYgMTguMzE3NiAxMi43NjA0IDE4LjI2MjJDMTMuMjczMyAxOC4yMDY3IDEzLjc1NjggMTguMDAxMSAxNC4xNDcxIDE3LjY3MjZDMTQuNTM3MyAxNy4zNDQxIDE0LjgxNTkgMTYuOTA4MiAxNC45NDYyIDE2LjQyMjRMMTguOTYyMyAxLjUwODUyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="); 
2926    background-size: contain; 
2927    background-repeat: no-repeat; 
2928    background-position: center; 
2929
2930 
2931  @media (max-width: 768px) { 
2932    .ws-carousel { 
2933      margin: var(--space-lg, 32px) 0; 
2934
2935 
2936    .stories-container { 
2937      /* 
2938        Largura das duas setas com position absolute: 64px 
2939        Largura das somas margens das setas mobile: 16px 
2940        Soma das margens laterais: 48px 
2941      */ 
2942      width: calc(100vw - 64px - 16px - 48px); 
2943
2944 
2945    .header-container { 
2946      padding: 6px; 
2947
2948 
2949    .story-progress { 
2950      height: 2px; 
2951
2952 
2953    .header-container, 
2954    .action-buttons { 
2955      gap: 12px; 
2956
2957 
2958    .action-btn.play::before, 
2959    .action-btn.pause::before, 
2960    .action-btn.share::before { 
2961      width: 10px; 
2962      height: 10px; 
2963
2964 
2965    .nav-area.prev .arrow { 
2966      left: calc(-32px - 8px); 
2967
2968 
2969    .nav-area.next .arrow, 
2970    .nav-area.next .restart-icon { 
2971      right: calc(-32px - 8px); 
2972
2973 
2974    .story-content { 
2975      padding: 16px 16px 32px 16px; 
2976
2977 
2978    .story-content .content-wrapper { 
2979      padding: 0; 
2980
2981 
2982    .story-title .title-text { 
2983      font-size: 16px; 
2984
2985 
2986    .story-description p, 
2987    .story-description p a { 
2988      font-size: 14px !important; 
2989
2990
2991</style> 
2992 
2993<!-- Google tag (gtag.js) --> 
2994<script async src="https://www.googletagmanager.com/gtag/js?id=G-9TG5WL85H3"></script> 
2995<script> 
2996  window.dataLayer = window.dataLayer || []; 
2997  function gtag() { dataLayer.push(arguments); } 
2998  gtag('js', new Date()); 
2999 
3000  // Configuração do Google Analytics 4 
3001  gtag('config', 'G-9TG5WL85H3'); 
3002</script> 
3003 
3004    <script> 
3005/* CONSTANTS */ 
3006const PUBLISHER_LOGO_INDEX = 0; 
3007const POSTER_PORTRAIT_INDEX = 1; 
3008const PUBLISHER_INDEX = 2; 
3009const COVER_INDEX = 3; 
3010const STORIES_INDEX = 4; 
3011 
3012const COVER_HAS_COVER_INDEX = 0; 
3013const COVER_TITLE_INDEX = 1; 
3014const COVER_TEXT_INDEX = 2; 
3015const COVER_IMAGE_INDEX = 3; 
3016 
3017const STORY_TITLE_INDEX = 0; 
3018const STORY_TEXT_INDEX = 1; 
3019const STORY_COLOR_THEME_INDEX = 2; 
3020const STORY_IMAGE_INDEX = 3; 
3021 
3022const 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`; 
3023 
3024/* Função para criar formatar object*/ 
3025const createStoryObject = (objectContent) => { 
3026  const hasCover = Boolean( 
3027    objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
3028      COVER_HAS_COVER_INDEX 
3029    ].contentFieldValue.data 
3030  ); 
3031  return { 
3032    category: objectContent.taxonomyCategoryBriefs[0].taxonomyCategoryName, 
3033    publisherLogoSrc: 
3034      objectContent.contentFields[PUBLISHER_LOGO_INDEX].contentFieldValue.data, 
3035    posterPortraitSrc: 
3036      objectContent.contentFields[POSTER_PORTRAIT_INDEX].contentFieldValue.data, 
3037    publisher: 
3038      objectContent.contentFields[PUBLISHER_INDEX].contentFieldValue.data, 
3039    friendlyUrlPath: objectContent.friendlyUrlPath, 
3040    cover: { 
3041      image: Boolean( 
3042        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
3043          COVER_HAS_COVER_INDEX 
3044        ].contentFieldValue.data 
3045      ), 
3046      title: 
3047        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
3048          COVER_TITLE_INDEX 
3049        ].contentFieldValue.data, 
3050      description: 
3051        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
3052          COVER_TEXT_INDEX 
3053        ].contentFieldValue.data, 
3054      imageUrl: 
3055        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
3056          COVER_IMAGE_INDEX 
3057        ].contentFieldValue.image?.contentUrl || null, 
3058      imageAlt: 
3059        objectContent.contentFields[COVER_INDEX].nestedContentFields[ 
3060          COVER_IMAGE_INDEX 
3061        ].contentFieldValue.image?.description || null, 
3062    }, 
3063    stories: objectContent.contentFields 
3064      .slice(STORIES_INDEX) 
3065      .map((contentField) => { 
3066        return { 
3067          title: 
3068            contentField.nestedContentFields[STORY_TITLE_INDEX] 
3069              ?.contentFieldValue?.data ?? null, 
3070          description: 
3071            contentField.nestedContentFields[STORY_TEXT_INDEX]?.contentFieldValue 
3072              .data ?? null, 
3073          colorTheme: 
3074            contentField.nestedContentFields[STORY_COLOR_THEME_INDEX] 
3075              ?.contentFieldValue?.value ?? null, 
3076          imageUrl: 
3077            contentField.nestedContentFields[STORY_IMAGE_INDEX] 
3078              ?.contentFieldValue?.image?.contentUrl ?? null, 
3079          imageAlt: 
3080            contentField.nestedContentFields[STORY_IMAGE_INDEX] 
3081              ?.contentFieldValue?.image?.description ?? null, 
3082        }; 
3083      }), 
3084  }; 
3085}; 
3086 
3087/* Renderiza os cards */ 
3088const storyCardFrom = (storyData) => { 
3089  const storyCard = document.createElement("div"); 
3090  storyCard.classList.add("ws-item"); 
3091 
3092  let displayPageUrl; 
3093  if (`${themeDisplay.getURLPortal()}`.includes('webserver')) { 
3094    displayPageUrl = `${themeDisplay.getURLPortal()}/web/nossa-energia/w/` + storyData.friendlyUrlPath; 
3095  } else { 
3096    displayPageUrl = `${themeDisplay.getURLPortal()}/w/` + storyData.friendlyUrlPath; 
3097
3098 
3099  storyCard.addEventListener("click", (e) => { 
3100    window.location.href = displayPageUrl; 
3101  }); 
3102 
3103  const image = document.createElement("img"); 
3104  image.classList.add("ws-image"); 
3105  image.src = storyData.cover.imageUrl 
3106    ? storyData.cover.imageUrl 
3107    : storyData.stories[0].imageUrl; 
3108  image.alt = storyData.cover.imageAlt 
3109    ? storyData.cover.imageAlt 
3110    : storyData.stories[0].imageAlt; 
3111 
3112  storyCard.appendChild(image); 
3113 
3114  const overlay = document.createElement("div"); 
3115  overlay.classList.add("ws-overlay"); 
3116  storyCard.appendChild(overlay); 
3117 
3118  const label = document.createElement("span"); 
3119  label.classList.add("ws-label"); 
3120  label.dataset.category = storyData.category; 
3121  label.classList.add((storyData.category || "Categoria").toLowerCase().replace(" ", '-')); 
3122  label.textContent = storyData.category || "Categoria"; 
3123  storyCard.appendChild(label); 
3124 
3125  const content = document.createElement("div"); 
3126  content.classList.add("ws-content"); 
3127 
3128  const title = document.createElement("h5"); 
3129  title.classList.add("h5") 
3130  title.textContent = storyData.cover.title || "Título do Card"; 
3131  content.appendChild(title); 
3132 
3133  const details = document.createElement("div"); 
3134  details.classList.add("ws-details"); 
3135 
3136  details.innerHTML = DETAILS_SVG || `<svg>...</svg>`; 
3137  content.appendChild(details); 
3138 
3139  storyCard.appendChild(content); 
3140 
3141  return storyCard; 
3142}; 
3143 
3144/* Renderiza cores */ 
3145 
3146const getCategoriesColorsStyles = async () => { 
3147    // 
3148    const urlToFetchToGetWebStoriesCategoriesColor = `/o/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/31841266/taxonomy-categories?fields=name%2CtaxonomyCategoryProperties`; 
3149 
3150  return fetch(urlToFetchToGetWebStoriesCategoriesColor, { 
3151    method: "GET", 
3152    headers: { 
3153      accept: "application/json", 
3154      "x-csrf-token": Liferay.authToken, 
3155    }, 
3156  }) 
3157    .then((response) => { 
3158      if (response.status === 200) { 
3159        return response.json(); 
3160      } else { 
3161        throw new Error("Erro interno. Por favor tente mais tarde."); 
3162
3163    }) 
3164    .then((data) => { 
3165      const styleTag = document.createElement('style'); 
3166      styleTag.id= 'webstories-carousel-labels'; 
3167 
3168      let styleContent = ``; 
3169       
3170      data.items.forEach(item => { 
3171        let textColor = item.taxonomyCategoryProperties.find(taxonomtProp => taxonomtProp.key === "Cor do Texto")?.value; 
3172        let textHighContrastColor = item.taxonomyCategoryProperties.find(taxonomtProp => taxonomtProp.key === "Cor do Texto em Alto Contraste")?.value; 
3173 
3174        if (textColor != undefined) { 
3175            styleContent = styleContent + ` 
3176            .ws-carousel .ws-carousel-body .ws-container .ws-item .ws-label[data-category="` + item.name + `"] { 
3177                color: #` + textColor + `; 
3178
3179
3180
3181 
3182        if (textHighContrastColor != undefined) { 
3183            styleContent = styleContent + ` 
3184            body.high-contrast .ws-carousel .ws-carousel-body .ws-container .ws-item .ws-label[data-category="` + item.name + `"] { 
3185                color: #` + textHighContrastColor + `; 
3186
3187
3188
3189      }); 
3190 
3191      styleTag.textContent = styleContent; 
3192 
3193      document.head.appendChild(styleTag); 
3194    }); 
3195}; 
3196 
3197getCategoriesColorsStyles(); 
3198 
3199/* Renderiza os itens */ 
3200const renderItems = (carouselId, webStoriesObjects) => { 
3201  const carouselElement = document.querySelector(`#` + carouselId); 
3202  const carouselContainer = carouselElement.querySelector(`.ws-container`); 
3203  const carouselBody = carouselElement.querySelector(".ws-carousel-body"); 
3204  const navButtons = carouselElement.querySelector(".nav-buttons"); 
3205  const leftArrow = navButtons.querySelector(".left-arrow"); 
3206  const rightArrow = navButtons.querySelector(".right-arrow"); 
3207 
3208  // Adiciona Cards 
3209  webStoriesObjects.forEach((storyObject, index) => { 
3210    const storyCard = storyCardFrom(storyObject); 
3211    storyCard.dataset.index = index; 
3212    carouselContainer.appendChild(storyCard); 
3213  }); 
3214 
3215  // Altera o Layout 
3216  function updateLayout() { 
3217    if (webStoriesObjects.length < 3) { 
3218      if (window.matchMedia("(min-width: 769px)").matches) { 
3219        carouselContainer.style.justifyContent = "center"; 
3220        navButtons.style.display = "none"; 
3221      } else { 
3222        carouselContainer.style.justifyContent = "flex-start"; 
3223        navButtons.style.display = "flex"; 
3224
3225    } else { 
3226      carouselContainer.style.justifyContent = ""; 
3227      carouselContainer.style.gap = window.matchMedia("(max-width: 768px)") 
3228        .matches 
3229        ? "32px" 
3230        : "16px"; 
3231      navButtons.style.display = ""; 
3232
3233
3234  updateLayout(); 
3235  window.addEventListener("resize", updateLayout); 
3236 
3237  // Configura Scroll das setas 
3238  leftArrow.addEventListener("click", () => { 
3239    const items = carouselBody.querySelectorAll(".ws-item"); 
3240    const gap = window.matchMedia("(max-width: 768px)").matches ? 32 : 16; 
3241    const pageSize = items[0].offsetWidth + gap; 
3242    const currentScroll = carouselBody.scrollLeft; 
3243    const currentPageReal = carouselBody.scrollLeft / pageSize; 
3244    const currentPage = parseInt(currentPageReal); 
3245    const rest = currentPage - currentPageReal; 
3246    const nextPage = rest !== 0 ? currentPage : currentPage - 1; 
3247    carouselBody.scrollLeft = nextPage * pageSize; 
3248  }); 
3249 
3250  rightArrow.addEventListener("click", () => { 
3251    const gap = window.matchMedia("(max-width: 768px)").matches ? 32 : 16; 
3252    const items = carouselBody.querySelectorAll(".ws-item"); 
3253    carouselBody.scrollLeft += items[0].offsetWidth + gap; 
3254  }); 
3255 
3256  const updateArrows = () => { 
3257    const scrollLeft = carouselBody.scrollLeft; 
3258    const maxScrollLeft = carouselBody.scrollWidth - carouselBody.clientWidth; 
3259 
3260    // Regra 1: A seta esquerda fica cinza se scrollLeft for 0 
3261    if (scrollLeft === 0) { 
3262      leftArrow.classList.remove("active"); 
3263      leftArrow.classList.add("inactive"); 
3264    } else { 
3265      leftArrow.classList.remove("inactive"); 
3266      leftArrow.classList.add("active"); 
3267
3268 
3269    // Regra 2: A seta direita fica cinza se o scroll for máximo 
3270    if (scrollLeft >= maxScrollLeft) { 
3271      rightArrow.classList.remove("active"); 
3272      rightArrow.classList.add("inactive"); 
3273    } else { 
3274      rightArrow.classList.remove("inactive"); 
3275      rightArrow.classList.add("active"); 
3276
3277  }; 
3278 
3279  carouselBody.addEventListener("scroll", updateArrows); 
3280}; 
3281 
3282/* Fetch Things */ 
3283async function getWebStoriesDataSectionFromNews(webContentId) { 
3284  const ID_INDEX = 0; 
3285  const WEB_STORIES_STRUCTURED_CONTENT_INDEX_START_AT = 2; 
3286  const urlToFetchToGetWebStoriesGroup = 
3287    `/o/headless-delivery/v1.0/structured-contents/` + 
3288    webContentId + 
3289    `?fields=contentFields`; 
3290 
3291  return fetch(urlToFetchToGetWebStoriesGroup, { 
3292    method: "GET", 
3293    headers: { 
3294      accept: "application/json", 
3295      "x-csrf-token": Liferay.authToken, 
3296    }, 
3297  }) 
3298    .then((response) => { 
3299      if (response.status === 200) { 
3300        return response.json(); 
3301      } else { 
3302        throw new Error("Erro interno. Por favor tente mais tarde."); 
3303
3304    }) 
3305    .then((data) => { 
3306      const webStoriesGroups = Array.from(data.contentFields).filter( 
3307        (contentField) => contentField.label === "Web Stories" 
3308      ); 
3309 
3310      const webStoriesDataMapped = webStoriesGroups.map((webStoryGroup) => { 
3311        const webStoryGroupId = 
3312          webStoryGroup.nestedContentFields[ID_INDEX].contentFieldValue.data; 
3313        const webStoriesStrucutredContentNodes = 
3314          webStoryGroup.nestedContentFields.slice( 
3315            WEB_STORIES_STRUCTURED_CONTENT_INDEX_START_AT 
3316          ); 
3317        const webStoriesIds = Array.from(webStoriesStrucutredContentNodes).map( 
3318          (webStoryNode) => { 
3319            const webStoryId = 
3320              webStoryNode.contentFieldValue.structuredContentLink.id; 
3321            return { 
3322              webStoryId: webStoryId, 
3323            }; 
3324
3325        ); 
3326        return { 
3327          webStoryGroupId: webStoryGroupId, 
3328          webStoriesIds: webStoriesIds, 
3329        }; 
3330      }); 
3331 
3332      return webStoriesDataMapped; 
3333    }) 
3334    .then((webStoriesDataMapped) => { 
3335      // Mapeia os dados recebidos 
3336      return Promise.all( 
3337        webStoriesDataMapped.map(async (group) => { 
3338          const updatedWebStoriesIds = await Promise.all( 
3339            group.webStoriesIds.map(async (story) => { 
3340              // Faz o fetch para obter os dados do webStoryId 
3341              const response = await fetch( 
3342                `/o/headless-delivery/v1.0/structured-contents/` + 
3343                  story.webStoryId, 
3344
3345                  method: "GET", 
3346                  headers: { 
3347                    accept: "application/json", 
3348                    "x-csrf-token": Liferay.authToken, 
3349                  }, 
3350
3351              ); 
3352              if (!response.ok) { 
3353                throw new Error( 
3354                  `Erro ao buscar dados para webStoryId` + story.webStoryId 
3355                ); 
3356
3357              const webStoryData = await response.json(); 
3358              return { webStoryData: webStoryData }; 
3359            }) 
3360          ); 
3361 
3362          // Retorna o objeto transformado 
3363          return { 
3364            webStoryGroupId: group.webStoryGroupId, 
3365            webStoriesData: updatedWebStoriesIds, 
3366          }; 
3367        }) 
3368      ); 
3369    }) 
3370    .then((webStoriesDataFetched) => { 
3371      return webStoriesDataFetched.map((data) => { 
3372        return { 
3373          webStoryGroupId: data.webStoryGroupId, 
3374          webStoryObjects: data.webStoriesData.map((data) => 
3375            createStoryObject(data.webStoryData) 
3376          ), 
3377        }; 
3378      }); 
3379    }) 
3380    .catch((error) => { 
3381      console.error("Erro ao buscar coleção: ", error); 
3382    }); 
3383
3384 
3385async function getWebStoriesData(webStoriesIds) { 
3386  // Mapeia os IDs para criar um array de promessas 
3387  const fetchPromises = webStoriesIds.map((webStoryId) => { 
3388    //const urlToFetch = `/o/headless-delivery/v1.0/structured-contents/` + webStoryId + `?fields=contentFields`; 
3389    const urlToFetch = 
3390      `/o/headless-delivery/v1.0/structured-contents/` + 
3391      webStoryId + 
3392      `?fields=contentFields%2CtaxonomyCategoryBriefs`; 
3393    return fetch(urlToFetch, { 
3394      method: "GET", 
3395      headers: { 
3396        accept: "application/json", 
3397        "x-csrf-token": Liferay.authToken, 
3398      }, 
3399    }).then((response) => { 
3400      if (!response.ok) { 
3401        throw new Error(`Erro ao buscar ID`); 
3402
3403      return response.json(); // Transforma a resposta em JSON 
3404    }); 
3405  }); 
3406 
3407  // Aguarda todas as promessas e preserva a ordem 
3408  try { 
3409    const results = await Promise.all(fetchPromises); 
3410    return results; // Retorna os resultados em ordem 
3411  } catch (error) { 
3412    console.error("Erro ao buscar Web Stories:", error); 
3413    throw error; // Relança o erro para tratamento posterior 
3414
3415
3416 
3417<#noparse> 
3418const scriptForStoryInNews = (storyData, containerId) => { 
3419 
3420  storyData.stories = storyData.stories.filter(story => story.imageUrl !== null) 
3421  
3422  const storiesContainer = document.getElementById(`stories-container-${containerId}`); 
3423  const prevArrow = storiesContainer.querySelector('.nav-area.prev svg.arrow'); 
3424  const nextArrow = storiesContainer.querySelector('.nav-area.next svg.arrow'); 
3425  const restartIcon = storiesContainer.querySelector('.nav-area.next svg.restart-icon'); 
3426  const progressBars = storiesContainer.querySelector('.progress-bars'); 
3427  const pauseBtn = storiesContainer.querySelector('.pause-btn'); 
3428  const shareBtn = storiesContainer.querySelector('.share-btn'); 
3429 
3430  let currentStoryIndex = 0; 
3431  let progressTimeout; 
3432  let touchStartX = 0; 
3433  let touchEndX = 0; 
3434  let isPaused = false; 
3435  let viewedStories = new Set(); 
3436  let progressStartTime = 0; 
3437  let remainingTime = 8000; 
3438 
3439  // Tagueamento com Google Analytics 
3440  const trackStoryPageView = (pageId) => { 
3441    gtag("event", `web_story_page_view_${pageId}`, { 
3442      story_title: document.title, 
3443      canonical_url: window.location.href, 
3444      source_url: document.referrer 
3445    }); 
3446
3447 
3448  // Cria slides dos stories 
3449  function createStorySlides() { 
3450    // Cria barras de progresso 
3451    storyData.stories.forEach((story, index) => { 
3452      const progressContainer = document.createElement('div'); 
3453      progressContainer.className = 'progress-bar'; 
3454      progressContainer.dataset.index = index; 
3455 
3456      const progress = document.createElement('div'); 
3457      progress.className = 'story-progress'; 
3458      progressContainer.appendChild(progress); 
3459 
3460      progressBars.appendChild(progressContainer); 
3461    }); 
3462 
3463    // Cria slides 
3464    storyData.stories.forEach((story, index) => { 
3465      const slide = document.createElement('div'); 
3466      slide.className = `story-slide ${index === 0 ? 'active' : ''}`; 
3467      slide.dataset.index = index; 
3468 
3469      let imageHtml = ''; 
3470      if (story.imageUrl) { 
3471        imageHtml = `<img src="${story.imageUrl}" alt="${story.imageAlt || ''}" class="story-image" loading="lazy">`; 
3472
3473 
3474      slide.innerHTML = ` 
3475        ${imageHtml} 
3476        <div class="story-content"> 
3477          <div class="content-wrapper"> 
3478          ${story.title && ( 
3479            `<div class="story-title ${story.colorTheme}"> 
3480              <p class="title-text">${story.title}</p> 
3481              <div class="mischievous">—</div> 
3482            </div>` 
3483          )} 
3484            ${story.description && `<div class="story-description description-text ${story.colorTheme}">${story.description}</div>`} 
3485          </div> 
3486        </div> 
3487      `; 
3488      storiesContainer.insertBefore(slide, storiesContainer.querySelector('.nav-area-container')); 
3489    }); 
3490 
3491    updateArrows(); 
3492    updateProgressBars(); 
3493    startProgressBar(); 
3494
3495 
3496  // Atualiza o estado das setas de navegação 
3497  function updateArrows() { 
3498    // Seta anterior 
3499    if (currentStoryIndex === 0) { 
3500      prevArrow.classList.add('disabled'); 
3501    } else { 
3502      prevArrow.classList.remove('disabled'); 
3503
3504 
3505    // Próxima seta 
3506    if (currentStoryIndex === storyData.stories.length - 1) { 
3507      nextArrow.classList.add('hidden'); 
3508      restartIcon.classList.remove('hidden'); 
3509    } else { 
3510      nextArrow.classList.remove('hidden'); 
3511      restartIcon.classList.add('hidden'); 
3512
3513
3514 
3515  // Atualiza as barras de progresso conforme navegação 
3516  function updateProgressBars() { 
3517    const allProgressBars = storiesContainer.querySelectorAll('.progress-bar .story-progress'); 
3518 
3519    allProgressBars.forEach((bar, index) => { 
3520      bar.classList.remove('completed', 'active'); 
3521      bar.style.width = '0%'; 
3522      bar.style.animation = 'none'; 
3523 
3524      if (index < currentStoryIndex) { 
3525        // Stories já vistos - barra completa 
3526        bar.classList.add('completed'); 
3527        bar.style.width = '100%'; 
3528      } else if (index === currentStoryIndex) { 
3529        // Story atual - barra em progresso 
3530        bar.classList.add('active'); 
3531      } else { 
3532        // Stories não vistos - barra vazia 
3533        bar.style.width = '0%'; 
3534
3535    }); 
3536
3537 
3538  function nextStory() { 
3539    if (currentStoryIndex < storyData.stories.length - 1) { 
3540      viewedStories.add(currentStoryIndex); 
3541      goToStory(currentStoryIndex + 1); 
3542
3543
3544 
3545  function prevStory() { 
3546    if (currentStoryIndex > 0) { 
3547      viewedStories.delete(currentStoryIndex); 
3548      goToStory(currentStoryIndex - 1); 
3549
3550
3551 
3552  function goToStory(index) { 
3553    // Pausa a animação atual 
3554    clearTimeout(progressTimeout); 
3555 
3556    storiesContainer.querySelector('.story-slide.active').classList.remove('active'); 
3557    currentStoryIndex = index; 
3558    storiesContainer.querySelector(`.story-slide[data-index="${index}"]`).classList.add('active'); 
3559 
3560    updateArrows(); 
3561    updateProgressBars(); 
3562 
3563    isPaused = false; 
3564    pauseBtn.classList.replace('play', 'pause'); 
3565    startProgressBar(); 
3566
3567 
3568  function startProgressBar() { 
3569    const currentProgressBar = storiesContainer.querySelector(`.progress-bar[data-index="${currentStoryIndex}"] .story-progress`); 
3570 
3571    // Resetar e iniciar animação 
3572    currentProgressBar.style.animation = 'none'; 
3573    currentProgressBar.offsetHeight; // Trigger reflow 
3574    currentProgressBar.style.animation = 'progress 8s linear forwards'; 
3575 
3576    progressStartTime = Date.now(); 
3577 
3578    progressTimeout = setTimeout(() => { 
3579      nextStory(); 
3580    }, remainingTime); 
3581
3582 
3583  // Pausar/continuar story 
3584  function togglePause() { 
3585    isPaused = !isPaused; 
3586 
3587    const currentProgressBar = storiesContainer.querySelector(`.progress-bar[data-index="${currentStoryIndex}"] .story-progress`); 
3588 
3589    if (isPaused) { 
3590      // Pausar 
3591      currentProgressBar.style.animationPlayState = 'paused'; 
3592      clearTimeout(progressTimeout); 
3593 
3594      // Calcular tempo restante 
3595      const elapsed = Date.now() - progressStartTime; 
3596      remainingTime = Math.max(0, 8000 - elapsed); 
3597 
3598      pauseBtn.classList.remove('pause'); 
3599      pauseBtn.classList.add('play'); 
3600    } else { 
3601      // Retomar 
3602      currentProgressBar.style.animationPlayState = 'running'; 
3603      pauseBtn.classList.remove('play'); 
3604      pauseBtn.classList.add('pause'); 
3605 
3606      // Reiniciar com tempo restante 
3607      progressStartTime = Date.now(); 
3608      progressTimeout = setTimeout(() => { 
3609        nextStory(); 
3610      }, remainingTime); 
3611
3612
3613 
3614  function shareStory() { 
3615    const currentStory = storyData.stories[currentStoryIndex]; 
3616    const baseUrl = window.location.origin; 
3617    let displayPageUrl; 
3618    if (baseUrl.includes('webserver')) { 
3619      displayPageUrl = `${baseUrl}/web/nossa-energia/w/${storyData.friendlyUrlPath}`; 
3620    } else { 
3621      displayPageUrl = `${baseUrl}/w/${storyData.friendlyUrlPath}`; 
3622
3623     
3624    const shareData = { 
3625      title: currentStory.title || 'Story', 
3626      text: currentStory.description ? currentStory.description.replace(/<[^>]*>/g, '') : '', 
3627      url: displayPageUrl 
3628    }; 
3629 
3630    if (navigator.share) { 
3631      navigator.share(shareData) 
3632        .then(() => console.log('Compartilhado com sucesso')) 
3633        .catch((error) => console.log('Erro ao compartilhar:', error)); 
3634    } else { 
3635      // Fallback para navegadores que não suportam a API de compartilhamento 
3636      alert('Compartilhar: ' + shareData.title + '\n' + shareData.text + '\n' + shareData.url); 
3637
3638
3639 
3640  // Event Listeners 
3641  prevArrow.addEventListener('click', (e) => { 
3642    e.stopPropagation(); 
3643    prevStory(); 
3644  }); 
3645 
3646  nextArrow.addEventListener('click', (e) => { 
3647    e.stopPropagation(); 
3648    nextStory(); 
3649  }); 
3650 
3651  restartIcon.addEventListener('click', (e) => { 
3652    e.stopPropagation(); 
3653    goToStory(0); 
3654  }); 
3655 
3656  pauseBtn.addEventListener('click', e => { 
3657    e.stopPropagation(); 
3658    togglePause(); 
3659  }); 
3660   
3661  shareBtn.addEventListener('click', e => { 
3662    e.stopPropagation(); 
3663    shareStory(); 
3664  }); 
3665 
3666  // Navegação por clique na tela 
3667  storiesContainer.addEventListener('click', (e) => { 
3668    const containerWidth = storiesContainer.offsetWidth; 
3669    const clickX = e.clientX - storiesContainer.getBoundingClientRect().left; 
3670 
3671    // Se clicou na metade esquerda 
3672    if (clickX < containerWidth / 2) { 
3673      prevStory(); 
3674
3675    // Se clicou na metade direita 
3676    else if (clickX > containerWidth / 2) { 
3677      nextStory(); 
3678
3679  }); 
3680 
3681  // Inicializar 
3682  createStorySlides(); 
3683 
3684  // Envia evento de click em links 
3685  storiesContainer.addEventListener('click', e => { 
3686    if (e.target.classList.contains('a')) { 
3687      gtag("event", `web_story_link_click_${storyData.friendlyUrlPath}`); 
3688
3689  }); 
3690 
3691  const lastPage = storiesContainer.querySelector(".story-slide:last-of-type"); 
3692 
3693  // Observa a mudança das páginas do story 
3694  const observer = new MutationObserver((mutationsList) => { 
3695    mutationsList.forEach((mutation) => { 
3696      if (mutation.type === "attributes" && mutation.attributeName === "active") { 
3697        const target = mutation.target; 
3698        if (target.tagName.toLowerCase() === "story-slide" && target.hasAttribute("active")) { 
3699          trackStoryPageView(target.getAttribute('data-index')); 
3700          target === lastPage && gtag("event", 'web_story_complete'); 
3701
3702
3703    }); 
3704  }); 
3705 
3706  const activePage = storiesContainer.querySelector('.story-slide.active'); 
3707  if (activePage && activePage.getAttribute('data-index') === '0') { 
3708    trackStoryPageView(0); 
3709
3710 
3711  const pages = storiesContainer.querySelectorAll(".story-slide"); 
3712  pages.forEach(page => { 
3713    observer.observe(page, { attributes: true, attributeFilter: ["active"] }); 
3714  }); 
3715
3716</#noparse> 
3717 
3718async function fetchAndLogWebStories() { 
3719  const webStoriesCarouselDataList = await getWebStoriesDataSectionFromNews( 
3720    "${newsJournalArticle.getResourcePrimKey()}" 
3721  ); 
3722 
3723  webStoriesCarouselDataList.forEach((webStoriesCarouselData) => { 
3724    const onlyOneWebstory = webStoriesCarouselData.webStoryObjects.length === 1; 
3725 
3726    if (onlyOneWebstory) { 
3727      // renderiza um único story com navegação dentro da notícia 
3728      const carouselElement = document.querySelector(`#` + webStoriesCarouselData.webStoryGroupId); 
3729      carouselElement.style.alignItems = 'center'; 
3730      <#noparse> 
3731      carouselElement.innerHTML = 
3732      ` <div class="stories-container" id="stories-container-${webStoriesCarouselData.webStoryGroupId}"> 
3733          <div class="header-container"> 
3734            <div class="story-header"> 
3735              <div class="progress-bars"></div> 
3736            </div> 
3737            <div class="action-buttons"> 
3738              <button class="action-btn pause pause-btn"></button> 
3739              <button class="action-btn share share-btn"></button> 
3740            </div> 
3741          </div> 
3742 
3743          <!-- Os stories serão inseridas aqui via JavaScript --> 
3744 
3745          <div class="nav-area-container"> 
3746            <div class="nav-area prev"> 
3747              <svg class="arrow disabled" width="32" height="32" viewBox="0 0 34 33" fill="none" 
3748                xmlns="http://www.w3.org/2000/svg"> 
3749                <g> 
3750                  <path 
3751                    d="M1 16.5C1 7.66344 8.16344 0.5 17 0.5C25.8366 0.5 33 7.66344 33 16.5C33 25.3366 25.8366 32.5 17 32.5C8.16344 32.5 1 25.3366 1 16.5Z" 
3752                    stroke="#959595" /> 
3753                  <path d="M19 21.5L14 16.5L19 11.5" stroke="#525252" stroke-width="1.5" stroke-linecap="round" 
3754                    stroke-linejoin="round" /> 
3755                </g> 
3756              </svg> 
3757            </div> 
3758            <div class="nav-area next"> 
3759              <svg class="arrow" width="32" height="32" viewBox="0 0 34 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3760                <path 
3761                  d="M1 16.5C1 7.66344 8.16344 0.5 17 0.5C25.8366 0.5 33 7.66344 33 16.5C33 25.3366 25.8366 32.5 17 32.5C8.16344 32.5 1 25.3366 1 16.5Z" 
3762                  stroke="#008542" /> 
3763                <path d="M15 11.5L20 16.5L15 21.5" stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
3764                  stroke-linejoin="round" /> 
3765              </svg> 
3766              <svg class="restart-icon hidden" width="32" height="32" viewBox="0 0 34 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3767                <path 
3768                  d="M1 16.5C1 7.66344 8.16344 0.5 17 0.5C25.8366 0.5 33 7.66344 33 16.5C33 25.3366 25.8366 32.5 17 32.5C8.16344 32.5 1 25.3366 1 16.5Z" 
3769                  stroke="#008542" /> 
3770                <path 
3771                  d="M13.9875 14.7313H10.9875M10.9875 14.7313V11.7313M10.9875 14.7313L13.1125 12.6125C13.8816 11.8429 14.8616 11.3186 15.9286 11.106C16.9956 10.8934 18.1017 11.0021 19.1069 11.4182C20.1122 11.8344 20.9714 12.5393 21.576 13.4439C22.1805 14.3485 22.5032 15.412 22.5032 16.5C22.5032 17.588 22.1805 18.6515 21.576 19.5561C20.9714 20.4607 20.1122 21.1656 19.1069 21.5818C18.1017 21.9979 16.9956 22.1066 15.9286 21.894C14.8616 21.6814 13.8816 21.1571 13.1125 20.3875" 
3772                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 
3773              </svg> 
3774            </div> 
3775          </div> 
3776        </div> 
3777      `; 
3778      </#noparse> 
3779      const singleWebstoryData = webStoriesCarouselData.webStoryObjects[0]; 
3780      scriptForStoryInNews(singleWebstoryData, webStoriesCarouselData.webStoryGroupId); 
3781    } else { 
3782      // Carrossel 
3783      renderItems( 
3784        webStoriesCarouselData.webStoryGroupId, 
3785        webStoriesCarouselData.webStoryObjects 
3786      ); 
3787
3788  }); 
3789
3790 
3791fetchAndLogWebStories(); 
3792 
3793</script> 
3794 
3795    <script> 
3796        <#assign configureLinkTab = "configureLinkTab_" + randomNumber(5)> 
3797 
3798        function ${configureLinkTab}() { 
3799            const root = document.querySelector(".ptb-news__read-news"); 
3800            const newsContentElement = root.querySelector(".news-content div:first-child"); 
3801            const pList = newsContentElement.querySelectorAll("p"); 
3802            pList.forEach((pElement) => { 
3803                const cont = pElement.innerHTML.trim(); 
3804                if (cont == "" || cont == "&nbsp;") { 
3805                    newsContentElement?.removeChild(pElement); 
3806
3807            }); 
3808
3809 
3810        ${configureLinkTab}(); 
3811 
3812        <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" > 
3813 
3814            function resizeMediaInfographic() { 
3815                if (window.innerWidth > 1024) { 
3816                    const contents = document.querySelectorAll(".ptb-news__read-news .news-content p"); 
3817                    contents.forEach((content) => {        
3818                        content.querySelector("img") && (content.style.gridColumn = "2 / 12"); 
3819                    }); 
3820
3821                else { 
3822                    const contents = document.querySelectorAll(".ptb-news__read-news .news-content p"); 
3823                    contents.forEach((content) => {        
3824                        content.querySelector("img") && (content.style.gridColumn = ""); 
3825                    }); 
3826 
3827                }           
3828
3829            resizeMediaInfographic(); 
3830        </#if> 
3831 
3832         
3833 
3834        document.addEventListener("DOMContentLoaded", () => { 
3835            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"); 
3836 
3837            headers.forEach((header) => { 
3838                 
3839                const currentLevel = parseInt(header.tagName.charAt(1)); 
3840 
3841                if (currentLevel >= 1 && currentLevel <= 5) { 
3842                     
3843                    const newLevel = currentLevel + 1; 
3844                    const newTagName = "h" + newLevel; 
3845 
3846                    // Criar a nova tag e transferir o conteúdo 
3847                    const newHeader = document.createElement(newTagName); 
3848                    newHeader.innerHTML = header.innerHTML; 
3849 
3850                    // Substituir a tag antiga pela nova 
3851                    header.parentNode.replaceChild(newHeader, header); 
3852
3853            }); 
3854             
3855            <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) /> 
3856                 
3857            <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" > 
3858                resizeMediaInfographic(); 
3859                window.addEventListener("resize", resizeMediaInfographic); 
3860            </#if>           
3861        }); 
3862 
3863        AUI().ready(()=>{ 
3864            const audiosContainer = document.querySelectorAll(".ptb-news__read-news .news-content .audio-content"); 
3865            const audioTemplate = document.querySelector(".ptb-news__read-news .news-content .audio-template"); 
3866 
3867            audiosContainer.forEach((audioContainer)=>{ 
3868                 
3869                const audio = audioContainer.querySelector("audio"); 
3870                const audioInterface = audioTemplate.cloneNode(true); 
3871 
3872                const sondwave = audioInterface.querySelector(".audio-sondwave"); 
3873                const linesDesktop = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-desktop line"); 
3874                const linesMobile = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-mobile line"); 
3875                 
3876                const playPauseButtonAudioInterface = audioInterface.querySelector(".audio-button-play"); 
3877 
3878                playPauseButtonAudioInterface.addEventListener("click", ()=>{ 
3879                    if(audioInterface.classList.contains("audio-play")) { 
3880                        audioInterface.classList.replace("audio-play", "audio-pause"); 
3881                        audio.pause(); 
3882
3883                    else { 
3884 
3885                        audiosContainer.forEach((audioContainer)=>{ 
3886                            const otherAudio = audioContainer.querySelector("audio"); 
3887                            const otherAudioInterface = audioContainer.querySelector(".audio-button-play"); 
3888                            !otherAudio.paused && otherAudioInterface.click(); 
3889                        }); 
3890 
3891                        audioInterface.classList.replace("audio-pause", "audio-play"); 
3892                        audio.play(); 
3893
3894                }); 
3895 
3896                const audioMuteButton = audioInterface.querySelector(".audio-button-mute"); 
3897 
3898                audioMuteButton.addEventListener("click", ()=>{ 
3899                    if(audioInterface.classList.contains("audio-unmuted")) { 
3900                        audioInterface.classList.replace("audio-unmuted", "audio-muted"); 
3901                        audio.muted = true; 
3902
3903                    else { 
3904                        audioInterface.classList.replace("audio-muted", "audio-unmuted"); 
3905                        audio.muted = false; 
3906
3907                }); 
3908 
3909                const audioTime = audioInterface.querySelector(".audio-time"); 
3910                audioTime.textContent = Math.floor(audio.duration / 60) + ":" + Math.floor(audio.duration % 60); 
3911 
3912 
3913                audio.addEventListener("timeupdate", ()=>{ 
3914                    let minutes = Math.floor((audio.duration - audio.currentTime) / 60);  
3915                    let seconds = Math.floor((audio.duration - audio.currentTime) % 60); 
3916 
3917                    minutes = minutes < 10? "0" + minutes : minutes; 
3918                    seconds = seconds < 10? "0" + seconds : seconds; 
3919                     
3920                    audioTime.textContent = minutes + ":" + seconds; 
3921 
3922                    const progress = (audio.currentTime / audio.duration) * 100; 
3923 
3924                    linesDesktop.forEach(function(line, index) { 
3925                        const lineProgress = (index / linesDesktop.length) * 100; 
3926                        if (progress >= lineProgress) { 
3927                            !line.classList.contains("line-active") && line.classList.add("line-active"); 
3928                        } else { 
3929                            line.classList.contains("line-active") && line.classList.remove("line-active"); 
3930
3931                    }); 
3932 
3933                    linesMobile.forEach(function(line, index) { 
3934                        const lineProgress = (index / linesMobile.length) * 100; 
3935                        if (progress >= lineProgress) { 
3936                            !line.classList.contains("line-active") && line.classList.add("line-active"); 
3937                        } else { 
3938                            line.classList.contains("line-active") && line.classList.remove("line-active"); 
3939
3940                    });                    
3941                }); 
3942 
3943                
3944                sondwave.addEventListener("click", (event)=>{                     
3945                    const distanceLeft = (event.clientX - sondwave.getBoundingClientRect().left)/sondwave.offsetWidth; 
3946                    audio.currentTime = audio.duration * distanceLeft; 
3947                }); 
3948                
3949                audioInterface.style.display = ""; 
3950                audioContainer.appendChild(audioInterface); 
3951            }); 
3952 
3953        }); 
3954    </script> 
3955</#macro> 
3956 
3957<#macro renderShareAndCopyNews> 
3958    <#--        <div class="share_news_container">--> 
3959        <div class="social-media-container"> 
3960 
3961            <#assign emailMsg = "Veja o conteúdo do post no link "> 
3962            <#if locale == "en_US"> 
3963                <#assign emailMsg = "See the content of the post in the link "> 
3964            </#if> 
3965            <a class="social-media-share" href="mailto:?subject=${newsInfo.mainHeadlineOfTheNews}&amp;body=${emailMsg}${newsInfo.url}" 
3966                target="_blank"> 
3967                <svg class="email" width="37" height="36" viewBox="0 0 37 36" fill="none" 
3968                        xmlns="http://www.w3.org/2000/svg"> 
3969                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
3970                    <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" 
3971                            fill="#008542"/> 
3972                </svg> 
3973                <span >send e-mail</span> 
3974            </a> 
3975 
3976            <a class="social-media-share"  href="https://www.facebook.com/sharer/sharer.php?u=${newsInfo.url}" target="_blank"> 
3977                <svg class="facebook" width="37" height="36" viewBox="0 0 37 36" fill="none" 
3978                        xmlns="http://www.w3.org/2000/svg"> 
3979                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
3980                    <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" 
3981                            fill="#008542"/> 
3982                </svg> 
3983                    <span >Facebook</span> 
3984            </a> 
3985 
3986            <#assign mobileShareButtonId = "mobile-share-" + randomNumber(5)> 
3987            <div class="mobile-share" id="${mobileShareButtonId}"> 
3988                <svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3989                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
3990                    <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" 
3991                            fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
3992                    <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" 
3993                            fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
3994                    <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" 
3995                            fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
3996                    <path d="M20.2546 14.0784L15.9036 16.8879" stroke="#008542" stroke-linecap="round" 
3997                            stroke-linejoin="round"/> 
3998                    <path d="M15.9036 19.4871L20.2546 22.2966" stroke="#008542" stroke-linecap="round" 
3999                            stroke-linejoin="round"/> 
4000                </svg> 
4001            </div> 
4002 
4003            <a class="social-media-share"  href="https://twitter.com/intent/tweet?url=${newsInfo.url}" target="_blank" data-size="large"> 
4004                <svg class="twitter" width="37" height="36" viewBox="0 0 37 36" fill="none" 
4005                        xmlns="http://www.w3.org/2000/svg"> 
4006                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
4007                    <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"/> 
4008                </svg> 
4009                        <span >twitter</span> 
4010            </a> 
4011 
4012            <a class="social-media-share"  href="https://api.whatsapp.com/send?text=${newsInfo.url}" data-action="share/whatsapp/share" 
4013                target="_blank"> 
4014                <svg class="whatsapp" width="37" height="36" viewBox="0 0 37 36" fill="none" 
4015                        xmlns="http://www.w3.org/2000/svg"> 
4016                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
4017                    <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" 
4018                            fill="#008542"/> 
4019                    <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" 
4020                            fill="white"/> 
4021                </svg> 
4022                <span >Share to WhatsApp </span> 
4023            </a> 
4024 
4025            <div class="copy-text-container"> 
4026                <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4027                    <path d="M10.5 10.5H13.5V2.5H5.5V5.5" stroke="#008542" stroke-linecap="round" 
4028                            stroke-linejoin="round"/> 
4029                    <path d="M10.5 5.5H2.5V13.5H10.5V5.5Z" stroke="#008542" stroke-linecap="round" 
4030                            stroke-linejoin="round"/> 
4031                </svg> 
4032 
4033                <#if locale == "pt_BR"> 
4034                    <p class="text">Copiar texto <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p> 
4035                <#else > 
4036                    <p class="text">Copy text <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p> 
4037                </#if> 
4038            </div> 
4039 
4040        </div> 
4041 
4042        <#if locale == "pt_BR"> 
4043            <span class="copy-message">Texto copiado!</span> 
4044        <#else > 
4045            <span class="copy-message">Text copied!</span> 
4046        </#if> 
4047    <#--        </div>--> 
4048</#macro> 
4049 
4050<#-- ################################################################################################################## --> 
4051 
4052<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# --> 
4053<#macro renderLinks newsInfo> 
4054    <#if newsInfo.links?size != 0> 
4055    <#--videos "escondidos" que serão unidos a .ptb-news__read-content --> 
4056 
4057        <div class="ptb-news__links-container d-none "> 
4058            <div id="ptb-news__links-identifiers"> 
4059                <#assign separator = ""> 
4060                <#list newsInfo.links as link> 
4061                    ${link.id}; 
4062                    <#assign separator = ";"> 
4063                </#list> 
4064            </div> 
4065            <#list newsInfo.links as link> 
4066                <#assign link_index = link?index> 
4067                <#assign linkUrl = "#"> 
4068                <#assign target = "_blank"> 
4069                <#assign linkClass = ""> 
4070 
4071                <div id="ptb-news__link-container-${link_index}"> 
4072                    <#if link.externalLink?has_content> 
4073                        <#assign linkUrl = link.externalLink> 
4074                        <#assign target = "_blank"> 
4075                        <#assign linkClass = "external-link"> 
4076                    <#elseif link.pageLink?has_content> 
4077                        <#assign linkUrl = link.pageLink> 
4078                        <#assign target = "_self"> 
4079                        <#assign linkClass = "internal-page-link"> 
4080                    <#elseif link.file.mimeType?has_content> 
4081                        <#assign linkUrl = link.file.url> 
4082                        <#assign target = "_blank"> 
4083                        <#assign linkClass = "file-link"> 
4084                    </#if> 
4085 
4086                    <#-- PDF icon --> 
4087                    <#if link.iconType == "Opção78730408" > 
4088                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
4089                             xmlns="http://www.w3.org/2000/svg"> 
4090                            <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" 
4091                                  fill="#008542"/> 
4092                            <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" 
4093                                  fill="#008542"/> 
4094                            <path d="M17.2695 20.654V11.894H22.2735V13.358H18.9735V15.59H21.9015V17.054H18.9735V20.654H17.2695Z" 
4095                                  fill="#008542"/> 
4096                            <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" 
4097                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
4098                                  stroke-linejoin="round"/> 
4099                        </svg> 
4100 
4101                    <#-- JPG icon --> 
4102                    <#elseif link.iconType == "Opção89889679" > 
4103                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
4104                             xmlns="http://www.w3.org/2000/svg"> 
4105                            <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" 
4106                                  fill="#008542"/> 
4107                            <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" 
4108                                  fill="#008542"/> 
4109                            <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" 
4110                                  fill="#008542"/> 
4111                            <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" 
4112                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
4113                                  stroke-linejoin="round"/> 
4114                        </svg> 
4115                    <#-- DOC icon --> 
4116                    <#elseif link.iconType == "Opção15480314" > 
4117                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
4118                             xmlns="http://www.w3.org/2000/svg"> 
4119                            <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" 
4120                                  fill="#008542"/> 
4121                            <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" 
4122                                  fill="#008542"/> 
4123                            <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" 
4124                                  fill="#008542"/> 
4125                            <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" 
4126                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
4127                                  stroke-linejoin="round"/> 
4128                        </svg> 
4129                    <#-- External link icon --> 
4130                    <#elseif link.iconType == "Opção43823553" > 
4131                        <svg width="24" height="24" viewBox="0 0 32 32" fill="none" 
4132                             xmlns="http://www.w3.org/2000/svg"> 
4133                            <path opacity="0.98" 
4134                                  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" 
4135                                  stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
4136                        </svg> 
4137                    <#-- Internal page link icon --> 
4138                    <#elseif link.iconType == "Opção64212757" > 
4139                    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#008542" viewBox="0 0 256 256"> 
4140                        <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"> 
4141                        </path> 
4142                    </svg> 
4143                    <#-- Download link icon --> 
4144                    <#elseif link.iconType == "Opção20766606" > 
4145                        <svg width="24" height="24" viewBox="0 0 32 32" fill="none" 
4146                             xmlns="http://www.w3.org/2000/svg"> 
4147                            <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" 
4148                                  stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
4149                        </svg> 
4150                    </#if> 
4151<#if link.title?? && link.title?has_content> 
4152                    <a href="${linkUrl}" class="link ${linkClass}" target="${target}">${link.title}</a> 
4153	</#if> 
4154                </div> 
4155            </#list> 
4156        </div> 
4157 
4158        <script> 
4159            var newsContent_code = document.querySelector(".news-content").innerHTML; 
4160 
4161            var linksIdentifiers = document.querySelector("#ptb-news__links-identifiers").innerHTML.trim().split(";"); 
4162            linksIdentifiers.forEach((linkIdentifier, index) => { 
4163                const linkIdentifierContent = document.querySelector("#ptb-news__link-container-" + index); 
4164                if (linkIdentifierContent) { 
4165                    const tag = "#[" + linkIdentifier.trim() + "]"; 
4166                    const splitContent = newsContent_code.split(tag); 
4167                    newsContent_code = splitContent.join(linkIdentifierContent.innerHTML); 
4168                    //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent); 
4169
4170            }); 
4171 
4172 
4173            var ptb_news__read_content = document.querySelector(".news-content"); 
4174            ptb_news__read_content.innerHTML = newsContent_code; 
4175             
4176            const links_ptb_news = document.querySelectorAll(".news-content a"); 
4177            links_ptb_news.forEach((link) => { 
4178                link.classList.add("link-ptb-news"); 
4179            }); 
4180 
4181        </script> 
4182 
4183        <style> 
4184            .ptb-news__read-news .ptb-news__link a { 
4185                font-family: var(--font-family-base); 
4186                font-style: var(--font-style-normal, normal); 
4187                font-weight: var(--font-weight-bold, 700); 
4188                font-size: var(--font-size-xxs, 16px); 
4189                line-height: var(--line-height-xl, 160%); 
4190                text-decoration-line: var(--text-decoration-underline, underline); 
4191                color: #008542; 
4192
4193 
4194            body.high-contrast-active .ptb-news__read-news .ptb-news__link a { 
4195                color: #E4F7E8; 
4196            }           
4197 
4198            .ptb-news__read-news .news-content .link { 
4199                font-family: var(--font-family-base); 
4200                font-style: var(--font-style-normal, normal); 
4201                font-weight: var(--font-weight-bold, 700); 
4202                font-size: var(--font-size-xs, 18px); 
4203                line-height: var(--line-height-xl, 160%); 
4204 
4205                text-decoration-line: var(--text-decoration-underline, underline); 
4206                color: #008542; 
4207
4208 
4209            body.high-contrast-active .ptb-news__read-news .news-content .link { 
4210                color: #E4F7E8; 
4211
4212 
4213            body.high-contrast-active .ptb-news__read-news .news-content svg path { 
4214                stroke: var(--color-neutral-500, #D7D7D7); 
4215                fill: rgba(255, 255, 255, 0.32); 
4216
4217 
4218            .ptb-news__read-news .news-content .ptb-link__wrapper { 
4219                display: flex; 
4220                flex-direction: column; 
4221                gap: 0; 
4222                margin-top: -24px; 
4223
4224 
4225            .ptb-news__read-news .news-content .ptb-link__wrapper svg { 
4226                margin-right: var(--space-sm, 16px); 
4227
4228 
4229            .ptb-news__read-news .news-content .ptb-link__wrapper .first { 
4230                gap: 0 !important; 
4231
4232 
4233            @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
4234                .ptb-news__read-news .news-content .link { 
4235                    font-size: var(--font-size-xxs, 16px); 
4236
4237
4238        </style> 
4239    </#if> 
4240</#macro> 
4241 
4242<#-- ################################################################################################################## --> 
4243 
4244<#-- ################################################################################################################## --> 
4245 
4246<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# --> 
4247<#macro renderCite> 
4248    <div class="ptb-news__cite-container"> 
4249        <div class="ptb-news__cite-container-breakpoint breakpoint"> 
4250            <div class="ptb-news__cite-container-col col-1-12 md-col-1-8 sm-col-1-4"> 
4251                <div class="ptb-news__cite-title"> 
4252                    <#if locale?lower_case == "pt_br"> 
4253                        Notas 
4254                    <#else> 
4255                        Notes 
4256                    </#if> 
4257                </div> 
4258 
4259                <div class="ptb-news__cites-elements"> 
4260                </div> 
4261            </div> 
4262        </div> 
4263    </div> 
4264 
4265    <script> 
4266        function positionCitesText(parentNodeCitesText) { 
4267             
4268            parentNodeCitesText.forEach((parentNodeCiteText)=>{ 
4269                if(window.innerWidth > 1024) { 
4270                    parentNodeCiteText.style.display=""; 
4271                    parentNodeCiteText.style.gridColumnStart = "11"; 
4272                    parentNodeCiteText.style.gridColumnEnd = "13"; 
4273                }  
4274                else { 
4275                    parentNodeCiteText.style.display="none"; 
4276                    parentNodeCiteText.style.gridColumnStart = ""; 
4277                    parentNodeCiteText.style.gridColumnEnd = "";                  
4278
4279            }); 
4280
4281 
4282        function addCitesTextMobile(citesText) { 
4283            const citesContainer = document.querySelector(".ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements"); 
4284 
4285            if(citesContainer.children.length === 0) { 
4286                citesContainer && citesText.forEach((citeText)=>{                         
4287                    citesContainer.appendChild(citeText.cloneNode(true)); 
4288                }); 
4289            }         
4290
4291 
4292        const citesText = document.querySelectorAll(".news-content cite"); 
4293         
4294        if (citesText.length > 0) { 
4295            const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode); 
4296            positionCitesText(parentNodeCitesText); 
4297            addCitesTextMobile(citesText);     
4298
4299        else { 
4300            const citesContainer = document.querySelector(".ptb-news__cite-container"); 
4301            citesContainer && (citesContainer.style.display="none"); 
4302
4303         
4304        document.addEventListener('DOMContentLoaded', ()=>{ 
4305             
4306            const citesText = document.querySelectorAll(".news-content cite"); 
4307             
4308            if (citesText.length > 0) { 
4309                const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode);            
4310 
4311                positionCitesText(parentNodeCitesText); 
4312                addCitesTextMobile(citesText); 
4313 
4314                window.addEventListener('resize', ()=>{positionCitesText(parentNodeCitesText)}); 
4315
4316            else { 
4317                const citesContainer = document.querySelector(".ptb-news__cite-container"); 
4318                citesContainer && (citesContainer.style.display="none"); 
4319
4320        }); 
4321 
4322    </script> 
4323 
4324    <style> 
4325     
4326        .ptb-news__read-news-post cite { 
4327            color: var(--color-neutral-800, #373737); 
4328            font-family: var(--font-family-base); 
4329            font-size: var(--font-size-xxxs, 14px) !important; 
4330            font-style: var(--font-style-normal, normal); 
4331            font-weight: var(--font-weight-regular, 400); 
4332            line-height: var(--line-height-xl, 160%); 
4333
4334 
4335        .ptb-news__read-news-post cite  a{ 
4336            font-size: var(--font-size-xxxs, 14px) !important; 
4337
4338 
4339        body.high-contrast-active .ptb-news__read-news-post cite { 
4340        color: var(--text-primary-default, var(--color-neutral-100)); 
4341        }  
4342 
4343        .ptb-news__read-news-post .news-content cite, 
4344        .ptb-news__read-news-post .ptb-news__cite-container cite { 
4345            display: block; 
4346            padding-left: var(--space-md); 
4347            border-left: var(--border-width-hairline, 1px) solid var(--color-neutral-500, #D7D7D7); 
4348
4349 
4350        @media screen and (min-width: 1025px) { 
4351            .ptb-news__read-news-post .ptb-news__cite-container { 
4352                display: none;                
4353            }         
4354
4355 
4356        @media screen and (max-width: 1025px) { 
4357            .ptb-news__read-news .ptb-news__cite-container .link { 
4358                text-decoration-line: var(--text-decoration-underline, underline); 
4359                color: #008542; 
4360
4361 
4362            body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container .link { 
4363                color: #E4F7E8; 
4364
4365 
4366            body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container svg path { 
4367                stroke: var(--color-neutral-500, #D7D7D7); 
4368                fill: rgba(255, 255, 255, 0.32); 
4369
4370             
4371            .ptb-news__read-news-post .ptb-news__cite-container { 
4372                display: grid; 
4373                background: var(--background-surface-level-03, #EEE); 
4374
4375 
4376            body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container { 
4377                background: var(--background-surface-level-03, #525252); 
4378
4379 
4380            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col { 
4381                padding: var(--space-xxl) 0; 
4382                display: flex; 
4383                flex-direction: column; 
4384                gap: var(--space-lg, 32px); 
4385
4386 
4387            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements { 
4388                display: flex; 
4389                flex-direction: column; 
4390                gap: var(--space-lg, 32px);  
4391            }       
4392 
4393            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title { 
4394                color: var(--color-neutral-800, #373737); 
4395                font-size: var(--font-size-sm, 20px); 
4396                font-style: var(--font-style-normal, normal); 
4397                font-weight: var(--font-weight-bold, 700); 
4398                line-height: var(--line-height-xl, 160%); 
4399
4400 
4401            body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title { 
4402                color: var(--text-primary-default, var(--color-neutral-100)); 
4403
4404        }         
4405    </style> 
4406     
4407</#macro> 
4408 
4409<#-- ################################################################################################################## --> 
4410 
4411 
4412<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### --> 
4413<#macro renderGallery newsInfo> 
4414    <#if newsInfo.galleryItems?size == 0> 
4415        <#return /> 
4416    </#if> 
4417 
4418    <div class="gallery-breakpoint breakpoint"> 
4419        <div class="gallery col-3-11 md-col-1-8 sm-col-1-4"> 
4420 
4421            <div class="title-container"> 
4422                <svg class="icon" viewBox="0 0 26 23" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4423                    <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" 
4424                            stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
4425                    <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" 
4426                            stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
4427                </svg> 
4428                <p class="title"> 
4429                    <#if locale == "pt_BR"> Galeria de Imagens <#else > Image gallery </#if> 
4430                </p> 
4431            </div> 
4432 
4433            <div class="image-container"> 
4434				<#assign index = 0 /> 
4435				<#assign index = 0 /> 
4436                <#list newsInfo.galleryItems as gItem> 
4437                    <div class="modal-image-fragment" index="${index}"> 
4438                        <div class="modal-image-container" index="${index}"> 
4439                    <div class="modal-image-fragment" index="${index}"> 
4440                        <div class="modal-image-container" index="${index}"> 
4441                            <span class="click-image" ></span> 
4442 
4443                            <div class="image-player-container"> 
4444                                <span class="close-image"> 
4445                                    <svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4446                                        <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"/> 
4447                                        <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"/> 
4448                                    </svg> 
4449                                </span> 
4450                                <div class="image-player-session"> 
4451                                    <#-- Midias adaptativas de imagem para desktop e mobile --> 
4452                                    <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${gItem.image.fileEntryId}") /> 
4453                                    <#assign urlAdaptativeMediaMobile = gItem.image.url/> 
4454                                    <#assign urlAdaptativeMediaDesktop = gItem.image.url/> 
4455                                     
4456                                    <#if fileDataRequest?? && fileDataRequest.adaptedImages?? > 
4457                                        <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
4458                                        <#list dataAdaptativeMedia as data> 
4459                                            <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
4460                                                <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
4461                                            </#if> 
4462                                            <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
4463                                                <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
4464                                            </#if>      
4465                                        </#list> 
4466                                    </#if> 
4467																																				 
4468                                    <picture > 
4469                                        <source media="(max-width:767px)" srcset="${urlAdaptativeMediaMobile}"  > 
4470                                        <img width="274px" height="152px" loading="lazy" src="${urlAdaptativeMediaDesktop}" alt="${gItem.image.alt}"/> 
4471                                    </picture>		   
4472                                </div> 
4473                            </div> 
4474                        </div> 
4475                    </div> 
4476                    <#assign index = index + 1 /> 
4477                    <#assign index = index + 1 /> 
4478                </#list> 
4479                <div class="control-arrow left-arrow"> 
4480                    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4481                        <path d="M20 26L10 16L20 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
4482                    </svg> 
4483                </div> 
4484                <div class="control-arrow right-arrow"> 
4485                    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4486                        <path d="M12 6L22 16L12 26" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
4487                    </svg> 
4488                </div> 
4489                <div class="image-bullets"> 
4490                    <#list 0..(newsInfo.galleryItems?size-1) as index> 
4491                        <div index="${index}" class="bullet"></div> 
4492                    </#list> 
4493                </div> 
4494            </div> 
4495                <div class="control-arrow left-arrow"> 
4496                    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4497                        <path d="M20 26L10 16L20 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
4498                    </svg> 
4499                </div> 
4500                <div class="control-arrow right-arrow"> 
4501                    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4502                        <path d="M12 6L22 16L12 26" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
4503                    </svg> 
4504                </div> 
4505                <div class="image-bullets"> 
4506                    <#list 0..(newsInfo.galleryItems?size-1) as index> 
4507                        <div index="${index}" class="bullet"></div> 
4508                    </#list> 
4509                </div> 
4510            </div> 
4511        </div> 
4512    </div> 
4513 
4514    <style> 
4515 
4516        .ptb-news__read-news .gallery { 
4517            padding-top: 42px; 
4518
4519 
4520        .ptb-news__read-news .gallery * { 
4521            margin: 0; 
4522            padding: 0; 
4523
4524 
4525        .ptb-news__read-news .gallery { 
4526            display: flex; 
4527            gap: var(--space-xl, 40px); 
4528            flex-direction: column; 
4529
4530			 
4531        .ptb-news__read-news .gallery .control-arrow { 
4532            position: fixed; 
4533            height: 100%; 
4534            align-items: center; 
4535            display: flex; 
4536            justify-content: center; 
4537            display: none; 
4538            z-index: 9999; 
4539
4540 
4541        .ptb-news__read-news .gallery .left-arrow { 
4542            top: 0; 
4543            left: 5vw; 
4544
4545 
4546        .ptb-news__read-news .gallery .right-arrow { 
4547            top: 0; 
4548            right: 5vw; 
4549
4550 
4551        .ptb-news__read-news .gallery .lefg-arrow svg { 
4552          margin-left: 16px !important; 
4553
4554 
4555        .ptb-news__read-news .gallery .right-arrow svg { 
4556          margin-right: 16px !important; 
4557
4558 
4559        .ptb-news__read-news .gallery .image-bullets { 
4560          display: none; 
4561          gap: var(--space-sm, 16px); 
4562          position: fixed; 
4563          left: 0; 
4564          bottom: calc(10vh + 24px); 
4565          width: 100vw; 
4566          z-index: 9999; 
4567          justify-content: center; 
4568
4569 
4570        .ptb-news__read-news .gallery .image-bullets .bullet { 
4571          width: var(--size-xs, 16px); 
4572          height: var(--size-xs, 16px); 
4573          border-radius: 50%; 
4574          border: 1px solid var(--color-neutral-100, #FFFFFF); 
4575          z-index: 9999; 
4576
4577 
4578        .ptb-news__read-news .gallery .image-bullets .bullet.current-item { 
4579          background: var(--color-neutral-100, #FFFFFF); 
4580
4581			 
4582        .ptb-news__read-news .gallery .control-arrow { 
4583            position: fixed; 
4584            height: 100%; 
4585            align-items: center; 
4586            display: flex; 
4587            justify-content: center; 
4588            display: none; 
4589            z-index: 9999; 
4590
4591 
4592        .ptb-news__read-news .gallery .left-arrow { 
4593            top: 0; 
4594            left: 5vw; 
4595
4596 
4597        .ptb-news__read-news .gallery .right-arrow { 
4598            top: 0; 
4599            right: 5vw; 
4600
4601 
4602        .ptb-news__read-news .gallery .lefg-arrow svg { 
4603          margin-left: 16px !important; 
4604
4605 
4606        .ptb-news__read-news .gallery .right-arrow svg { 
4607          margin-right: 16px !important; 
4608
4609 
4610        .ptb-news__read-news .gallery .image-bullets { 
4611          display: none; 
4612          gap: var(--space-sm, 16px); 
4613          position: fixed; 
4614          left: 0; 
4615          bottom: calc(10vh + 24px); 
4616          width: 100vw; 
4617          z-index: 9999; 
4618          justify-content: center; 
4619
4620 
4621        .ptb-news__read-news .gallery .image-bullets .bullet { 
4622          width: var(--size-xs, 16px); 
4623          height: var(--size-xs, 16px); 
4624          border-radius: 50%; 
4625          border: 1px solid var(--color-neutral-100, #FFFFFF); 
4626          z-index: 9999; 
4627
4628 
4629        .ptb-news__read-news .gallery .image-bullets .bullet.current-item { 
4630          background: var(--color-neutral-100, #FFFFFF); 
4631
4632 
4633        .ptb-news__read-news .gallery .title-container { 
4634            display: flex; 
4635            align-items: center; 
4636            gap: var(--space-sm, 16px); 
4637
4638 
4639        .ptb-news__read-news .gallery .title-container svg { 
4640            width: var(--size-md, 24px); 
4641            height: 21px; 
4642
4643 
4644        .ptb-news__read-news .gallery .title-container .title { 
4645            color: var(--color-neutral-800, #373737); 
4646            font-family: var(--font-family-base); 
4647            font-size: var(--font-size-lg); 
4648            font-style: var(--font-style-normal); 
4649            font-weight: var(--font-weight-bold); 
4650            line-height: var(--line-height-md); 
4651
4652 
4653        body.high-contrast-active .ptb-news__read-news .gallery .title-container .title { 
4654            color: var(--color-neutral-100); 
4655
4656 
4657        .ptb-news__read-news .gallery .image-container { 
4658            display: flex; 
4659            gap: var(--space-sm, 16px); 
4660            flex-wrap: wrap; 
4661
4662 
4663         .ptb-news__read-news .gallery .image-container .modal-image-fragment { 
4664            width: inherit; 
4665            height: inherit; 
4666            max-height: calc(100vw/2); 
4667            padding: 0; 
4668            margin: 0; 
4669            overflow: hidden; 
4670
4671 
4672        .ptb-news__read-news .gallery .image-container .modal-image-fragment * { 
4673            box-sizing: border-box; 
4674            margin: 0; 
4675            padding: 0; 
4676
4677 
4678        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container { 
4679            width: 100%; 
4680            height: inherit; 
4681            display: flex; 
4682            justify-content: center; 
4683            align-items: center; 
4684            cursor: pointer; 
4685            position: relative; 
4686
4687 
4688        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing {     
4689            position: fixed; 
4690            top: 0; 
4691            left: 0; 
4692            width: 100vw !important; 
4693            height: 100vh !important; 
4694            z-index: 9999 !important; 
4695            background-color: rgba(0, 0, 0, 0.75); 
4696            max-height: 100vh; 
4697
4698 
4699        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .click-image { 
4700            height: 100%; 
4701            width: 100%; 
4702            position: absolute; 
4703            z-index: 3; 
4704
4705 
4706        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container { 
4707            width: 100%; 
4708            height: 100%; 
4709
4710 
4711        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing { 
4712            position: relative; 
4713            width: 90vw !important; 
4714            height: 80vh !important; 
4715            z-index: 9999 !important; 
4716            background-color: rgba(0, 0, 0, 0.75); 
4717            border-radius: var(--border-radius-card); 
4718
4719 
4720        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image { 
4721            display: none; 
4722            position: absolute; 
4723            top: 0; 
4724	        right: 0; 
4725            transform: translate(100%, -100%); 
4726            z-index: 99999; 
4727
4728 
4729        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) { 
4730           fill: var(--background-Surface-level-01, #010101); 
4731
4732 
4733        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) { 
4734           stroke: #E4F7E8; 
4735
4736 
4737        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image.image-active { 
4738            display: block; 
4739
4740 
4741        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session { 
4742            width: 100%; 
4743            height: 100%; 
4744
4745 
4746        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session { 
4747            width: 90vw !important; 
4748            height: 80vh !important; 
4749            z-index: 9999 !important; 
4750            background-color: rgba(0, 0, 0, 0.75); 
4751            border-radius: var(--border-radius-card); 
4752            overflow: hidden; 
4753
4754 
4755        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session img { 
4756            object-fit: cover; 
4757
4758 
4759        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session img { 
4760            width: 100%; 
4761            height: 100%; 
4762            margin-left: 0 !important; 
4763            max-height: 100vh; 
4764
4765 
4766        .ptb-news__read-news .gallery .image-container img { 
4767            width: 274px; 
4768            height: 152px; 
4769            border-radius: var(--border-radius-md, 8px); 
4770            cursor: pointer; 
4771
4772 
4773        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
4774 
4775            .ptb-news__read-news .gallery { 
4776                padding-top: var(--space-xl, 40px); 
4777
4778 
4779            .ptb-news__read-news .gallery .image-container { 
4780                gap: var(--space-xxs, 8px); 
4781
4782 
4783            .ptb-news__read-news .gallery .image-container img { 
4784                width: 296px; 
4785                height: 180px; 
4786
4787 
4788            .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing { 
4789                transform: rotate(90deg); 
4790                transform-origin: center; 
4791                width: 80vh !important; 
4792                height: 90vw !important; 
4793
4794 
4795            .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing img{ 
4796                cursor: pointer; 
4797
4798 
4799            .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session { 
4800                width: 80vh !important; 
4801                height: 90vw !important; 
4802
4803 
4804            .ptb-news__read-news .gallery .lefg-arrow svg { 
4805                margin-left: 4px !important; 
4806
4807 
4808            .ptb-news__read-news .gallery .right-arrow svg { 
4809                margin-right: 4px !important; 
4810
4811 
4812            .ptb-news__read-news .gallery .image-bullets { 
4813              gap: 14px; 
4814
4815 
4816            .ptb-news__read-news .gallery .image-bullets .bullet { 
4817              width: var(--size-xxs, 12px); 
4818              height: var(--size-xxs, 12px); 
4819
4820 
4821            .ptb-news__read-news .gallery .lefg-arrow svg { 
4822                margin-left: 4px !important; 
4823
4824 
4825            .ptb-news__read-news .gallery .right-arrow svg { 
4826                margin-right: 4px !important; 
4827
4828 
4829            .ptb-news__read-news .gallery .image-bullets { 
4830              gap: 14px; 
4831
4832 
4833            .ptb-news__read-news .gallery .image-bullets .bullet { 
4834              width: var(--size-xxs, 12px); 
4835              height: var(--size-xxs, 12px); 
4836
4837
4838 
4839    </style> 
4840 
4841    <script> 
4842     
4843     
4844        const allModalImagesFragment = document.querySelectorAll(".ptb-news__read-news .gallery .modal-image-fragment"); 
4845        const totalItems = allModalImagesFragment.length; 
4846        const bulletsContainer = document.querySelector(".ptb-news__read-news .gallery .image-bullets"); 
4847        const bullets = bulletsContainer.querySelectorAll(".bullet"); 
4848        let currentItem = 0; 
4849        const nextImage = document.querySelector(".ptb-news__read-news .gallery .right-arrow"); 
4850        const previousImage = document.querySelector(".ptb-news__read-news .gallery .left-arrow"); 
4851 
4852        const stopImage = (getImageClick, imagePlayerContainer, imageContainer, closeImage) => { 
4853            getImageClick.classList.remove('image-playing'); 
4854            imagePlayerContainer.classList.remove('image-playing'); 
4855            imageContainer.classList.remove('image-playing'); 
4856 
4857					  const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem +  '"]') 
4858            currentBullet && currentBullet.classList.remove('current-item'); 
4859						 
4860            closeImage.classList.remove('image-active'); 
4861             
4862            document.querySelector("body").style.overflow = 'initial'; 
4863            [nextImage, previousImage].forEach(item => { 
4864                item.style.display = "none"; 
4865            }); 
4866            bulletsContainer.style.display = "none"; 
4867
4868 
4869        const playImage = (index, getImageClick, imagePlayerContainer, imageContainer, closeImage) => { 
4870            getImageClick.classList.add('image-playing'); 
4871            imagePlayerContainer.classList.add('image-playing'); 
4872            imageContainer.classList.add('image-playing'); 
4873            closeImage.classList.add('image-active'); 
4874 
4875             
4876            document.querySelector("body").style.overflow = 'hidden'; 
4877            [nextImage, previousImage].forEach(item => { 
4878                item.style.display = "flex"; 
4879            }); 
4880            bulletsContainer.style.display = "flex"; 
4881            bullets[index].classList.add('current-item'); 
4882
4883 
4884        const changeImage = (next) => { 
4885          if(next == currentItem || next < 0 || next >= totalItems) return; 
4886 
4887          const getImageClick = allModalImagesFragment[currentItem].querySelector('.click-image'); 
4888          const imageContainer = allModalImagesFragment[currentItem].querySelector('.modal-image-container'); 
4889          const imagePlayerContainer = allModalImagesFragment[currentItem].querySelector('.image-player-container'); 
4890          const image = imagePlayerContainer.querySelector('img'); 
4891          const closeImage = imagePlayerContainer.querySelector('.close-image'); 
4892 
4893          const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem +  '"]') 
4894          currentBullet.classList.remove('current-item'); 
4895 
4896          stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImage);  
4897          allModalImagesFragment[next].querySelector('.click-image')?.click(); 
4898           
4899          const nextBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + next +  '"]') 
4900          nextBullet.classList.add('current-item'); 
4901          currentItem = next; 
4902
4903 
4904        nextImage.addEventListener('click', () => { 
4905          changeImage(currentItem + 1); 
4906        }); 
4907 
4908        previousImage.addEventListener('click', () => { 
4909          changeImage(currentItem - 1); 
4910        }); 
4911 
4912        bullets.forEach((bullet, bulletIndex) => { 
4913          bullet.addEventListener('click', (_) => changeImage(bulletIndex)) ; 
4914        }); 
4915 
4916        allModalImagesFragment.forEach((modalImageFragment, index)=>{ 
4917        const totalItems = allModalImagesFragment.length; 
4918        const bulletsContainer = document.querySelector(".ptb-news__read-news .gallery .image-bullets"); 
4919        const bullets = bulletsContainer.querySelectorAll(".bullet"); 
4920        let currentItem = 0; 
4921        const nextImage = document.querySelector(".ptb-news__read-news .gallery .right-arrow"); 
4922        const previousImage = document.querySelector(".ptb-news__read-news .gallery .left-arrow"); 
4923 
4924        const stopImage = (getImageClick, imagePlayerContainer, imageContainer, closeImage) => { 
4925            getImageClick.classList.remove('image-playing'); 
4926            imagePlayerContainer.classList.remove('image-playing'); 
4927            imageContainer.classList.remove('image-playing'); 
4928 
4929					  const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem +  '"]') 
4930            currentBullet && currentBullet.classList.remove('current-item'); 
4931						 
4932            closeImage.classList.remove('image-active'); 
4933             
4934            document.querySelector("body").style.overflow = 'initial'; 
4935            [nextImage, previousImage].forEach(item => { 
4936                item.style.display = "none"; 
4937            }); 
4938            bulletsContainer.style.display = "none"; 
4939
4940 
4941        const playImage = (index, getImageClick, imagePlayerContainer, imageContainer, closeImage) => { 
4942            getImageClick.classList.add('image-playing'); 
4943            imagePlayerContainer.classList.add('image-playing'); 
4944            imageContainer.classList.add('image-playing'); 
4945            closeImage.classList.add('image-active'); 
4946 
4947             
4948            document.querySelector("body").style.overflow = 'hidden'; 
4949            [nextImage, previousImage].forEach(item => { 
4950                item.style.display = "flex"; 
4951            }); 
4952            bulletsContainer.style.display = "flex"; 
4953            bullets[index].classList.add('current-item'); 
4954
4955 
4956        const changeImage = (next) => { 
4957          if(next == currentItem || next < 0 || next >= totalItems) return; 
4958 
4959          const getImageClick = allModalImagesFragment[currentItem].querySelector('.click-image'); 
4960          const imageContainer = allModalImagesFragment[currentItem].querySelector('.modal-image-container'); 
4961          const imagePlayerContainer = allModalImagesFragment[currentItem].querySelector('.image-player-container'); 
4962          const image = imagePlayerContainer.querySelector('img'); 
4963          const closeImage = imagePlayerContainer.querySelector('.close-image'); 
4964 
4965          const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem +  '"]') 
4966          currentBullet.classList.remove('current-item'); 
4967 
4968          stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImage);  
4969          allModalImagesFragment[next].querySelector('.click-image')?.click(); 
4970           
4971          const nextBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + next +  '"]') 
4972          nextBullet.classList.add('current-item'); 
4973          currentItem = next; 
4974
4975 
4976        nextImage.addEventListener('click', () => { 
4977          changeImage(currentItem + 1); 
4978        }); 
4979 
4980        previousImage.addEventListener('click', () => { 
4981          changeImage(currentItem - 1); 
4982        }); 
4983 
4984        bullets.forEach((bullet, bulletIndex) => { 
4985          bullet.addEventListener('click', (_) => changeImage(bulletIndex)) ; 
4986        }); 
4987 
4988        allModalImagesFragment.forEach((modalImageFragment, index)=>{ 
4989            const getImageClick = modalImageFragment.querySelector('.click-image'); 
4990            const imageContainer = modalImageFragment.querySelector('.modal-image-container'); 
4991            const imagePlayerContainer = modalImageFragment.querySelector('.image-player-container'); 
4992 
4993            const image = imagePlayerContainer.querySelector('img'); 
4994            const closeImage = imagePlayerContainer.querySelector('.close-image'); 
4995            const body = document.body; 
4996 
4997            const toTopButton = document.querySelector(".fragment_88038 .petro-button"); 
4998 
4999            getImageClick.addEventListener('click', () => { 
5000                if (document.body.classList.contains('has-edit-mode-menu')) { 
5001                    return; 
5002
5003                currentItem = index; 
5004                currentItem = index; 
5005                if (imagePlayerContainer.classList.contains('image-playing')) { 
5006                    toTopButton && (toTopButton.style.zIndex = ""); 
5007                    stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImagegetImageClick, imagePlayerContainer, imageContainer, closeImage); 
5008                } else { 
5009                    playImage(index, getImageClick, imagePlayerContainer, imageContainer, closeImageindex, getImageClick, imagePlayerContainer, imageContainer, closeImage); 
5010                    toTopButton && (toTopButton.style.zIndex = "1"); 
5011
5012            }) 
5013 
5014            closeImage.addEventListener('click', () => { 
5015                if (imagePlayerContainer.classList.contains('image-playing')) { 
5016                    toTopButton && (toTopButton.style.zIndex = ""); 
5017                    stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImage); 
5018                    const bulletToClose = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + index +  '"]') 
5019                    bulletToClose?.classList.remove('current-item'); 
5020                }  
5021            }) 
5022        });             
5023    </script> 
5024 
5025</#macro> 
5026 
5027 
5028<#-- ################################################################################################################## --> 
5029	 
5030	 
5031	 
5032	 
5033	 
5034	 
5035	 
5036	 
5037	 
5038	 
5039	 
5040	 
5041	 
5042	<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### --> 
5043<#macro renderQuotes newsInfo> 
5044    <#if newsInfo.quotes?size != 0> 
5045    <#--quotes "escondidas" que serão unidas a .ptb-news__read-content --> 
5046 
5047        <div class="ptb-news__quotes-container d-none "> 
5048            <div id="ptb-news__quotes-identifiers"> 
5049                <#assign separator = ""> 
5050                <#list newsInfo.quotes as quote> 
5051                    ${quote.id}; 
5052                    <#assign separator = ";"> 
5053                </#list> 
5054            </div> 
5055            <#list newsInfo.quotes as quote> 
5056                <#assign quotes_index = quote?index> 
5057                <div id="ptb-news__quotes-container-${quote_index}"> 
5058                    <#assign noAuthorWrapper = !((quote.image.url?? && quote.image.url?has_content) || (quote.author?has_content)) /> 
5059                    <div class="quote <#if noAuthorWrapper>no-author-wrapper</#if>"> 
5060                        <div class="text-wrapper"> 
5061                            <blockquote class="text">${quote.content}</blockquote > 
5062                        </div> 
5063                        <#if !noAuthorWrapper>   
5064                            <div class="author-wrapper"> 
5065                                <#if quote.image.url?? && quote.image.url?has_content> 
5066                                    <#assign imageUrl = "/o/adaptive-media/image/" + quote.image.fileEntryId +"/Thumbnail-300x300/image"/> 
5067                                    <img src="${imageUrl}" loading="lazy" alt="${quote.image.alt}">		 
5068                                </#if> 
5069                                <#if quote.author?? && quote?has_content>                             
5070                                    <p class="author">${quote.author}</p> 
5071                                </#if> 
5072                            </div> 
5073                        </#if> 
5074                    </div> 
5075                </div> 
5076            </#list> 
5077        </div> 
5078 
5079        <script> 
5080            var newsContent_code = document.querySelector(".news-content").innerHTML; 
5081 
5082            var quotesIdentifiers = document.querySelector("#ptb-news__quotes-identifiers").innerHTML.trim().split(";"); 
5083            quotesIdentifiers.forEach((quoteIdentifier, index) => { 
5084                const quoteIdentifierContent = document.querySelector("#ptb-news__quotes-container-" + index); 
5085                if (quoteIdentifierContent) { 
5086                    const tag = "#[" + quoteIdentifier.trim() + "]"; 
5087                    const splitContent = newsContent_code.split(tag); 
5088                    newsContent_code = splitContent.join(quoteIdentifierContent.innerHTML); 
5089                    //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent); 
5090
5091            }); 
5092 
5093 
5094            var ptb_news__read_content = document.querySelector(".news-content"); 
5095            ptb_news__read_content.innerHTML = newsContent_code; 
5096 
5097        </script> 
5098 
5099        <style> 
5100            
5101            .ptb-news__read-news .quote { 
5102                display: flex; 
5103                flex-direction: column; 
5104                gap: var(--space-md, 24px); 
5105
5106 
5107            .ptb-news__read-news .quote.no-author-wrapper{ 
5108                gap: 0; 
5109
5110 
5111            .ptb-news__read-news .quote .text-wrapper { 
5112                padding-left: var(--space-xl, 40px); 
5113
5114 
5115            .ptb-news__read-news .quote .text-wrapper .text { 
5116                font-style: var(--font-style-italic) !important; 
5117                padding-left: var(--space-md, 24px); 
5118                margin-bottom: 0; 
5119                border-left: 1px solid var(--border-color-mid, #d7d7d7); 
5120							  font-size: var(--font-size-xxs, 16px); 
5121
5122 
5123            .ptb-news__read-news .quote .author-wrapper {  
5124                display: flex; 
5125                flex-direction: row; 
5126                gap: var(--space-md, 24px); 
5127
5128 
5129            .ptb-news__read-news .news-content .quote .author-wrapper img { 
5130                height: var(--size-xxxl, 56px); 
5131                width: var(--size-xxxl, 56px); 
5132                border-radius: 100px; 
5133                border: var(--size-nano, 2px) solid var(--border-color-mid) !important; 
5134
5135 
5136            .ptb-news__read-news .news-content .quote .author-wrapper p { 
5137                margin: 0; 
5138                align-self: center; 
5139                font-size: var(--font-size-xs, 18px); 
5140                font-style: var(--font-style-normal, normal); 
5141                font-weight: var(--font-weight-bold, 700); 
5142                line-height: var(--line-height-xs, 100%); 
5143
5144 
5145            @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
5146                .ptb-news__read-news .quote .text-wrapper { 
5147                    padding-left: 0; 
5148
5149							 
5150							  .ptb-news__read-news .quote .text-wrapper .text { 
5151							      font-size: var(--font-size-xxxs, 14px); 
5152
5153 
5154                .ptb-news__read-news .news-content .quote .author-wrapper p { 
5155                    font-size: var(--font-size-xxs, 16px); 
5156
5157
5158        </style> 
5159    </#if> 
5160</#macro> 
5161 
5162 
5163					 
5164					 
5165<#-- ################################################################################################################## --> 
5166	 
5167	 
5168	 
5169	 
5170	 
5171	 
5172 
5173 
5174<#-- ############# Site de Crise - Notícia - Extrair dados de Notícias ################################################ --> 
5175<#-- 
5176Add elements from the sidebar to define your template. Type "${" to use the 
5177autocomplete feature. 
5178--> 
5179<#function extractFeaturedNewsHeadline fieldList xmlArticle> 
5180    <#return getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia")> 
5181</#function> 
5182 
5183<#function extractNewsSummary fieldList xmlArticle> 
5184    <#return getFieldValue(fieldList, xmlArticle, "Resumo da notícia")> 
5185</#function> 
5186 
5187<#function extractPublishDate journalArticle> 
5188    <#assign lastPublishDate = journalArticle.getModifiedDate()> 
5189    <#if journalArticle.getLastPublishDate()??> 
5190        <#assign lastPublishDate = journalArticle.getLastPublishDate()> 
5191    <#else> 
5192        <#assign lastPublishDate = journalArticle.getModifiedDate()> 
5193    </#if> 
5194    <#return lastPublishDate /> 
5195</#function> 
5196 
5197<#-- Seção da imagem de destaque ----------------------------------------------------------------------> 
5198<#function extractNewsMedia fieldList xmlArticle  fileEntryService> 
5199    <#-- Tentando pegar Imagem --> 
5200    <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) /> 
5201    <#assign media = {} /> 
5202    <#list mediasGroup as mediaGroup > 
5203        <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) />  
5204        <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "fileEntryId" : media.fileEntryId} /> 
5205 
5206        <#-- Se não tiver imagem, tentar pegar vídeo --> 
5207        <#if !media.imageSrc?has_content>               
5208            <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") /> 
5209            <#if youtubeID?? && youtubeID?has_content>  
5210                <#assign media = {"videoYotubeID": youtubeID} /> 
5211            <#else> 
5212                <#-- Tentar pegar vídeo Interno --> 
5213                <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) /> 
5214                <#if internalVideo?? && internalVideo?has_content> 
5215                    <#assign media = {"internalVideo": internalVideo} /> 
5216                </#if> 
5217            </#if>          
5218        </#if> 
5219 
5220        <#assign referenceMediasGroup = getNodes(getIdFromFieldName(fieldList, "Referências"), mediaGroup) /> 
5221        <#list referenceMediasGroup as referenciaMediaGroup > 
5222            <#assign credits = getFieldValue(fieldList, referenceMediasGroup, "Crédito da mídia de destaque da notícia") /> 
5223            <#assign legend = getFieldValue(fieldList, referenceMediasGroup, "Legenda da mídia de destaque da notícia") /> 
5224        </#list> 
5225 
5226        <#assign media = media + {"credits": credits, "legend": legend} /> 
5227         
5228    </#list> 
5229 
5230    <#return media> 
5231</#function> 
5232 
5233 
5234<#--------------------- Renderização de Lista de Cards -----------------------------------------------> 
5235 
5236<#-- Root Css -> Para poder instanciar dois elementos e não dar confusão no JS --> 
5237<#assign rootCss = "card-news-list-container_" + randomNumber(4586) /> 
5238 
5239<#attempt> 
5240    <#assign ourEnergyStyles = [] /> 
5241    <#list ourEnergyVocabulary.getCategories() as ourEnergyCategory > 
5242        <#assign shadowColorCategory = "" /> 
5243        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra")??)> 
5244            <#assign categoryShadowColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra") /> 
5245            <#assign shadowColorCategory = categoryShadowColorByService.value /> 
5246        </#if> 
5247 
5248        <#assign backgroundColorCategory = "" /> 
5249        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo")??)> 
5250            <#assign categoryBackgroundColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo") /> 
5251            <#assign backgroundColorCategory = categoryBackgroundColorByService.value /> 
5252        </#if> 
5253 
5254        <#assign textColorCategory = "" /> 
5255        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto")??)> 
5256            <#assign categoryTextColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto") /> 
5257            <#assign textColorCategory = categoryTextColorByService.value /> 
5258        </#if> 
5259 
5260        <#assign textColorHighContrastCategory = "" /> 
5261        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste")??)> 
5262            <#assign categoryTextColorHighContrastByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste") /> 
5263            <#assign textColorHighContrastCategory = categoryTextColorHighContrastByService.value /> 
5264        </#if> 
5265 
5266        <#assign ourEnergyStyles += [{"titleLocale": ourEnergyCategory.getTitle(locale),"shadowColor": shadowColorCategory, "backgroundColor": backgroundColorCategory, "textColor": textColorCategory, "textColorHighContrast": textColorHighContrastCategory}] /> 
5267    </#list> 
5268 
5269    <#recover> 
5270        <#assign ourEnergyStyles = [] /> 
5271     
5272</#attempt> 
5273 
5274<#-- Função para obter a primeira categoria associonada a um Vocabulário o qual está associado a um Jornal Article --> 
5275<#function getFirstCategoryTitleLocaleOfVocabulary journalArticle vocabulary > 
5276    <#attempt> 
5277        <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) /> 
5278         
5279        <#list categories as category> 
5280            <#if vocabulary.getVocabularyId() == category.getVocabularyId()> 
5281                <#return category.getTitle(locale)> 
5282            </#if> 
5283        </#list> 
5284 
5285        <#return ""> 
5286 
5287        <#recover> 
5288            <#return "" /> 
5289 
5290    </#attempt> 
5291</#function> 
5292 
5293<#-- Função para obter os dados de um card no Web Content (Journal Article) --> 
5294<#function getDataForCard entry > 
5295    <#attempt> 
5296        <#assign journalArticle = journalArticleLocalService.getLatestArticle(entry.getClassPK()) /> 
5297        <#assign ddmStructure = journalArticle.getDDMStructure() /> 
5298        <#assign fieldList = getFieldListByStructure(ddmStructure) /> 
5299        <#assign xmlArticle = journalArticle.getDocument().getRootElement() /> 
5300 
5301        <#-- Tentando pegar Imagem --> 
5302        <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) /> 
5303        <#assign media = "" /> 
5304        <#list mediasGroup as mediaGroup > 
5305            <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) /> 
5306 
5307            <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${media.fileEntryId}") /> 
5308 
5309            <#assign urlAdaptativeMediaDesktop = ""/> 
5310            <#assign urlAdaptativeMediaMobile = ""/> 
5311            <#if media.url?? && media.url?has_content && fileDataRequest?? && fileDataRequest.adaptedImages?? > 
5312                <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
5313                <#list dataAdaptativeMedia as data> 
5314                    <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
5315                        <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
5316                    </#if> 
5317                    <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
5318                        <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
5319                    </#if>      
5320                </#list> 
5321            </#if> 
5322            <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "imageFileEntryId": media.fileEntryId, "urlAdaptativeMedia": {"mobile": urlAdaptativeMediaMobile, "desktop": urlAdaptativeMediaDesktop}} />  
5323             
5324            <#-- Se não tiver imagem, tentar pegar vídeo --> 
5325            <#if !media.imageSrc?? || !media.imageSrc?has_content>               
5326                <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") /> 
5327                <#if youtubeID?? && youtubeID?has_content>  
5328                    <#assign media = {"videoYotubeID": youtubeID} /> 
5329                <#else> 
5330                    <#-- Tentar pegar vídeo Interno --> 
5331                    <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) /> 
5332                    <#if internalVideo?? && internalVideo?has_content> 
5333                        <#assign media = {"internalVideo": internalVideo} /> 
5334                    </#if> 
5335                </#if>          
5336            </#if> 
5337        </#list> 
5338 
5339        <#assign title = getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia") /> 
5340 
5341        <#assign timeRead = getFieldValue(fieldList, xmlArticle, "Tempo de Leitura") /> 
5342 
5343        <#assign ourEnergyCategory = getFirstCategoryTitleLocaleOfVocabulary(entry, ourEnergyVocabulary) /> 
5344 
5345        <#assign typeOfNews = getFirstCategoryTitleLocaleOfVocabulary(entry, typeOfNewsVocabulary) /> 
5346 
5347        <#if themeDisplay.getPortalURL()?contains("webserver")> 
5348					<#assign urlNews = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + journalArticle.getUrlTitle()> 
5349				<#else> 
5350						<#assign urlNews = themeDisplay.getPortalURL() + "/w/" + journalArticle.getUrlTitle()> 
5351				</#if> 
5352         
5353        <#assign cardData = {"media": media, "title": title, "timeRead": timeRead, "ourEnergyCategory": ourEnergyCategory, "typeOfNews": typeOfNews, "urlNews": urlNews} /> 
5354         
5355        <#return cardData> 
5356 
5357        <#recover> 
5358            <#return {} /> 
5359    </#attempt> 
5360 
5361    <#-- cardData ->    image: url, alt 
5362                        title 
5363                        timeRead 
5364                        ourEnergyCategory 
5365                        typeOfNews 
5366                        urlNews 
5367    --> 
5368</#function> 
5369 
5370 
5371<#-- Macro para renderizar os arrows--> 
5372<#macro renderArrows> 
5373    <div class="card-news-list-arrows-breakpoint"> 
5374        <div class="card-news-list-arrows"> 
5375            <div class="card-news-arrow-left arrow-disable">  
5376                <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg"> 
5377                    <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"/> 
5378                    <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"/> 
5379                </svg> 
5380            </div> 
5381            <div class="card-news-arrow-right">  
5382                <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg"> 
5383                    <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"/> 
5384                    <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"/> 
5385                </svg> 
5386 
5387            </div> 
5388        </div> 
5389    </div> 
5390 
5391    <style> 
5392 
5393        .${rootCss} .card-news-list-arrows-breakpoint { 
5394            position: relative; 
5395            z-index: 1; 
5396					width: 100%; 
5397
5398 
5399        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows { 
5400            display: flex; 
5401            align-items: flex-start; 
5402            justify-self: flex-end; 
5403            gap: var(--space-xxs, 8px); 
5404
5405         
5406        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left, 
5407        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right { 
5408            cursor: pointer; 
5409
5410 
5411        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(1), 
5412        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(1) { 
5413            fill: rgb(0, 133, 66); 
5414
5415 
5416        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), 
5417        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) { 
5418            fill: white; 
5419
5420 
5421        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(2), 
5422        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(2) { 
5423            stroke: #fff; 
5424
5425 
5426        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), 
5427        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) { 
5428            stroke: #010101; 
5429
5430 
5431        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable, 
5432        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable { 
5433            opacity: 0.4; 
5434            cursor: auto; 
5435
5436 
5437        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path, 
5438        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path { 
5439            stroke: rgb(0, 133, 66); 
5440            transition: all 300ms ease-in-out; 
5441
5442 
5443        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path, 
5444        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path { 
5445            stroke: rgba(228, 247, 232, 1); 
5446
5447 
5448        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1), 
5449        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) { 
5450            stroke: rgb(149, 149, 149); 
5451
5452 
5453        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1), 
5454        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) { 
5455            stroke: rgba(215, 215, 215, 1); 
5456
5457 
5458        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2), 
5459        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) { 
5460            stroke: rgb(82, 82, 82); 
5461
5462 
5463        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2), 
5464        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) { 
5465            stroke: rgba(149, 149, 149, 1); 
5466
5467 
5468        @media screen and (min-width: 1440px) { 
5469            .${rootCss} .card-news-list-arrows-breakpoint { 
5470                width: 100%; 
5471
5472
5473 
5474        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
5475 
5476            .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows { 
5477                justify-self: flex-start; 
5478                margin-top: var(--space-lg); 
5479
5480
5481 
5482    </style> 
5483 
5484</#macro> 
5485 
5486 
5487<#-- Macro para renderizar um Card --> 
5488<#macro renderCard cardData> 
5489    <#-- cardData ->    image: url, alt 
5490                        title 
5491                        timeRead 
5492                        ourEnergyCategory 
5493                        typeOfNews 
5494                        urlNews 
5495    --> 
5496 
5497    <div class="card-news-container"> 
5498        <a class="news-page-see-more-link card-news-link" href="${cardData.urlNews}">  Link da Notícia ${cardData.title}  </a> 
5499        <div class="card-news-thumb"> 
5500            <#assign noImage = "" /> 
5501            <#if cardData.media.imageSrc?? && cardData.media.imageSrc?has_content> 
5502                <#assign imageSrcDesktop = cardData.media.imageSrc /> 
5503                <#assign imageSrcMobile = cardData.media.imageSrc /> 
5504                <#if cardData.media.urlAdaptativeMedia?? && cardData.media.urlAdaptativeMedia?has_content> 
5505                    <#assign imageSrcDesktop = cardData.media.urlAdaptativeMedia.desktop /> 
5506                    <#assign imageSrcMobile = cardData.media.urlAdaptativeMedia.mobile /> 
5507                </#if> 
5508                <picture > 
5509                    <source media="(max-width:767px)" srcset="${imageSrcMobile}"> 
5510                    <img class="card-news-image" loading="lazy" src="${imageSrcDesktop}" alt="${cardData.media.imageAlt}"/> 
5511                </picture>		 
5512            <#else> 
5513                <#if cardData.media.videoYotubeID?? && cardData.media.videoYotubeID?has_content> 
5514                <picture > 
5515                    <source media="(max-width:767px)" srcset="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/mqdefault.jpg"> 
5516                    <img class="card-news-image" loading="lazy" src="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/maxresdefault.jpg" alt="YouTube Thumbnail"/> 
5517                </picture>  
5518                <#else> 
5519                    <#if (cardData.media.internalVideo?? && cardData.media.internalVideo.url?has_content) > 
5520                        <video class="card-news-image" loading="lazy"> 
5521                            <source src="${cardData.media.internalVideo.url}"> 
5522                            Your browser does not support the video tag. 
5523                        </video> 
5524                    <#else> 
5525                        <#assign noImage = "no-image" /> 
5526                    </#if> 
5527                </#if> 
5528                <svg class="thumb-play-icon" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
5529                    <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"/> 
5530                    <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"/> 
5531                </svg>        
5532            </#if>         
5533        </div> 
5534         
5535        <div class="card-news-category-container ${noImage}">  
5536            <div data-category="${cardData.ourEnergyCategory}" class="card-news-category paragraph-micro-regular"> ${cardData.ourEnergyCategory} </div> 
5537        </div>  
5538 
5539        <div class="card-news-text-content ${noImage}">  
5540            <div class="card-news-title h5"> ${cardData.title} </div> 
5541 
5542             <div class="card-news-info">  
5543                <div class="card-news-type">  
5544                    <#if getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default(""))?? > 
5545												<#assign postTypeIconUrl = getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default("")) /> 
5546												<img src="${postTypeIconUrl}" loading="lazy" alt="post type icon" /> 
5547                        <div class="card-news-type-text paragraph-micro-regular">${cardData.typeOfNews}</div> 
5548												<#else/> 
5549                            <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 
5550                                <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"/> 
5551                            </svg>										 
5552                            <div class="card-news-type-text paragraph-micro-regular">Artigo</div> 
5553										</#if> 
5554                </div> 
5555 
5556								<#if cardData.timeRead?? && cardData.timeRead?has_content> 
5557									<div class="card-news-time-read">  
5558											<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"> 
5559													<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"/> 
5560											</svg> 
5561 
5562											<div class="card-news-time-read-text paragraph-micro-regular">${cardData.timeRead} min</div> 
5563									</div> 
5564								</#if> 
5565            </div> 
5566        </div> 
5567    </div> 
5568</#macro> 
5569 
5570<style> 
5571    .${rootCss} .card-news-container { 
5572        width: 300px; 
5573        height: 370px; 
5574        display: flex; 
5575        flex-direction: column; 
5576        flex-shrink: 0; 
5577        align-items: flex-start; 
5578        border-radius: var(--border-radius-lg); 
5579        border: var(--border-width-hairline) solid var(--border-card-default, #EEE); 
5580        background: var(--background-surface-level-01, #FFF); 
5581        box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
5582        overflow: hidden; 
5583        scroll-snap-align: start; 
5584        cursor: pointer; 
5585        transition: border 300ms ease-in-out; 
5586        text-decoration: none; 
5587        position: relative; 
5588
5589 
5590    body.high-contrast-active .${rootCss} .card-news-container {      
5591        border: var(--border-width-hairline) solid var(--border-card-default, #525252); 
5592        background: var(--background-surface-level-01, #010101); 
5593
5594 
5595    .${rootCss} .card-news-container:hover { 
5596        border: var(--border-width-hairline) solid rgb(0, 133, 66); 
5597
5598 
5599    body.high-contrast-active .${rootCss} .card-news-container:hover { 
5600        border: var(--border-width-hairline) solid var(--border-card-default, #E4F7E8); 
5601
5602 
5603    .${rootCss} .card-news-container .card-news-link { 
5604        position: absolute; 
5605        top: 0; 
5606        width: 100%; 
5607        height: 100%; 
5608        z-index: 1; 
5609        opacity: 0; 
5610
5611 
5612    .${rootCss} .card-news-container .card-news-thumb { 
5613        position: relative; 
5614
5615 
5616    .${rootCss} .card-news-container .card-news-image { 
5617        width: 298px; 
5618        height: 168px; 
5619        object-fit: cover; 
5620
5621 
5622 
5623    .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon { 
5624        position: absolute; 
5625        left: 50%; 
5626        top: 50%; 
5627        transform: translate(-50%, -50%); 
5628
5629 
5630    body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(1) { 
5631        fill: black;   
5632
5633 
5634    body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(2) { 
5635        fill: white;   
5636
5637 
5638    .${rootCss} .card-news-container .card-news-category-container { 
5639        position: relative; 
5640
5641 
5642    .${rootCss} .card-news-container .card-news-category-container .card-news-category { 
5643        display: flex; 
5644        justify-content: center; 
5645        align-items: center;  
5646        padding: var(--space-micro) var(--space-xs); 
5647        position: absolute; 
5648        z-index: 2; 
5649        left: var(--space-md); 
5650        top: -13px; 
5651        border-radius: var(--border-radius-pill); 
5652        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); 
5653        box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10); 
5654        line-height: var(--line-height-lg, 144%); 
5655        color: var(--default-sup-green-water, #006B65); 
5656			  white-space: nowrap; 
5657
5658 
5659    body.high-contrast-active .${rootCss} .card-news-container .card-news-category-container .card-news-category { 
5660        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); 
5661        color: var(--default-sup-green-water, #99E0DD);  
5662
5663 
5664    .${rootCss} .card-news-container .card-news-category-container.no-image .card-news-category { 
5665        position: relative; 
5666        top: 0; 
5667        left: 0; 
5668        margin-left: var(--space-md); 
5669        margin-top: var(--space-md); 
5670
5671 
5672    .${rootCss} .card-news-container .card-news-text-content { 
5673        display: flex; 
5674        padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px); 
5675        flex-direction: column; 
5676        justify-content: space-between; 
5677        align-items: flex-start; 
5678        flex: 1 0 0; 
5679        align-self: stretch; 
5680
5681 
5682    .${rootCss} .card-news-container .card-news-text-content.no-image { 
5683        padding-top: var(--space-sm); 
5684
5685 
5686    .${rootCss} .card-news-container .card-news-text-content .card-news-title { 
5687        display: -webkit-box; 
5688        -webkit-box-orient: vertical; 
5689        -webkit-line-clamp: 4; 
5690        align-self: stretch; 
5691        overflow: hidden; 
5692        color: var(--text-primary-default, #373737); 
5693        text-overflow: ellipsis; 
5694        margin: 0; 
5695
5696 
5697    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-title { 
5698        color: var(--text-primary-default, #FFF); 
5699
5700 
5701    .${rootCss} .card-news-container .card-news-text-content .card-news-info { 
5702        display: flex; 
5703        align-items: center; 
5704        align-content: center; 
5705        gap: var(--space-sm, 16px); 
5706        align-self: stretch; 
5707        flex-wrap: wrap; 
5708
5709 
5710    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type, 
5711    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read { 
5712        display: flex; 
5713        align-items: center; 
5714        gap: var(--space-xxs, 8px); 
5715
5716 
5717    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type path { 
5718        stroke: #D7D7D7; 
5719
5720 
5721    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text, 
5722    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
5723        color: var(--text-tertiary-default, #959595); 
5724        line-height: var(--line-height-lg, 144%); 
5725
5726 
5727    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text, 
5728    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
5729        color: var(--text-tertiary-default, #EEE); 
5730
5731 
5732    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-icon-time-read { 
5733        transform: translateY(-0.5px); 
5734
5735 
5736    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 { 
5737        fill: #D7D7D7; 
5738
5739</style> 
5740 
5741<#assign maxNumberOfCards = 9/> 
5742<#assign className = "com.liferay.journal.model.JournalArticle" /> 
5743<#assign classNameId = PortalUtil.getClassNameId(className) /> 
5744${AssetEntryQuery.setClassNameIds([classNameId]) } 
5745${AssetEntryQuery.setEnd(maxNumberOfCards)} 
5746 
5747<#assign entries = []/> 
5748<#assign ourEnergyCategoriesIds = getAllCategoryIdOfVocabulary(assetEntry, ourEnergyVocabulary) /> 
5749<#list ourEnergyCategoriesIds as ourEnergyCategoryId> 
5750    ${AssetEntryQuery.setAllCategoryIds([ourEnergyCategoryId])} 
5751    <#assign ents = AssetEntryQueryService.getEntries(AssetEntryQuery) /> 
5752    <#assign entries = entries + ents /> 
5753</#list> 
5754 
5755 
5756<#-- Renderizar Lista de cards --> 
5757<#if entries?has_content> 
5758    <div class="${rootCss}"> 
5759        <div class="list-of-news-title breakpoint"> 
5760            <div class="list-of-news-title-col col-1-12 md-col-1-8 sm-col-1-4"> 
5761                <div class="list-title fragment_85017"> 
5762                    <div class="petro-title"> 
5763                        <h2 id="title" class="display-sm" style="color: var(--color-neutral-800)"> 
5764                            <#if locale?lower_case == "pt_br"> Leia também <#else> Read also </#if> 
5765                        </h2> 
5766                        <div class="yellow-bar-container">   
5767                            <div class="yellow-bar bar-display-sm" style="background-color: var(--color-secondary-medium)"></div> 
5768                               <@renderArrows /> 
5769                        </div> 
5770                    </div> 
5771                </div> 
5772            </div>  
5773        </div> 
5774         
5775        <div class="card-news-list-breakpoint breakpoint"> 
5776            <div class="card-news-list col-1-12 md-col-1-8 sm-col-1-4">  
5777                <#if entries?size gt maxNumberOfCards> 
5778                    <#assign entries = entries[0..maxNumberOfCards] /> 
5779                </#if> 
5780                <#list entries as entry> 
5781                    <#if assetEntry.getClassPK() != entry.getClassPK() > 
5782                        <#assign cardData = getDataForCard(entry) /> 
5783                        <@renderCard cardData/> 
5784                    </#if> 
5785                </#list> 
5786            </div> 
5787        </div>   
5788    </div> 
5789</#if> 
5790 
5791 
5792<style> 
5793    .portlet { 
5794        margin: 0; 
5795
5796     
5797    .${rootCss} { 
5798        padding: var(--space-giant, 80px) 0; 
5799        background: var(--background-surface-level-01, #FFF); 
5800        width: 100%; 
5801        position: relative; 
5802        font-family: var(--font-family-base, "Petrobras Sans"); 
5803        display: flex; 
5804        flex-direction: column; 
5805        gap: var(--space-lg); 
5806
5807 
5808    body.high-contrast-active .${rootCss} { 
5809        background: var(--background-surface-level-01, #010101); 
5810
5811 
5812    .${rootCss} .list-of-news-title { 
5813        position: relative; 
5814        z-index: 1; 
5815
5816 
5817    .${rootCss} body.high-contrast-active .fragment_614685 .petro-title .yellow-bar { 
5818        background-color: #FFEEB3 !important; 
5819
5820 
5821    .${rootCss} .petro-title > div:has(> .yellow-bar, > .card-news-list-arrows-breakpoint) { 
5822        display: flex;     
5823
5824 
5825    .${rootCss} .card-news-list { 
5826        display: flex; 
5827        gap: var(--space-lg); 
5828        overflow: auto; 
5829        position: relative; 
5830        z-index: 1; 
5831        scroll-snap-type: x mandatory; 
5832        scrollbar-width: none; 
5833
5834 
5835    .${rootCss} .card-news-list::-webkit-scrollbar { 
5836        display: none; 
5837
5838 
5839    @media screen and (min-width: 1441px) { 
5840        .${rootCss} .card-news-list-breakpoint { 
5841            width: 100%;            
5842
5843 
5844        .${rootCss} .list-of-news-title { 
5845            width: 100%; 
5846
5847
5848 
5849    @media screen and (max-width: 1024px) { 
5850        .${rootCss} .fragment_614685 { 
5851            padding: var(--space-xxl, 56px) 0; 
5852
5853
5854    
5855    @media screen and (max-width: 768px) { 
5856				.${rootCss} .petro-title > div:has(> .yellow-bar, > .card-news-list-arrows-breakpoint) { 
5857						flex-direction: column; 
5858
5859
5860 
5861 
5862</style> 
5863 
5864<#list ourEnergyStyles as ourEnergyStyle> 
5865    <style> 
5866        .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] { 
5867            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; 
5868            box-shadow: 0px 2px 6px 0px #${ourEnergyStyle.shadowColor} !important; 
5869            color: #${ourEnergyStyle.textColor} !important; 
5870
5871 
5872        body.high-contrast-active .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] { 
5873             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; 
5874            color: #${ourEnergyStyle.textColorHighContrast} !important; 
5875
5876 
5877    </style> 
5878</#list> 
5879 
5880<script> 
5881 
5882    function disableEnableArrow(arrow, scrollBar, maxDistance, direction) 
5883
5884        if(direction === "left") { 
5885            if (scrollBar.scrollLeft > 0) { 
5886                arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable"); 
5887
5888            else { 
5889                !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable"); 
5890
5891        }  
5892        else if(direction === "right") { 
5893            if (Math.ceil(scrollBar.scrollLeft + scrollBar.clientWidth) < maxDistance) { 
5894                arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable"); 
5895
5896            else { 
5897                !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable"); 
5898
5899
5900
5901 
5902    function scrollCarousel() 
5903
5904        const root = document.querySelector(".${rootCss}"); 
5905        if(root) { 
5906            const scrollBar = root.querySelector(".${rootCss} .card-news-list"); 
5907            const gap = 32;// var(--space-lg); 
5908            const stepLength = scrollBar.querySelector(".card-news-container").offsetWidth + gap; 
5909            const arrowLeftBtn = root.querySelector(".card-news-arrow-left") 
5910            const arrowRightBtn = root.querySelector(".card-news-arrow-right") 
5911 
5912            let maxDistance = scrollBar.scrollWidth; 
5913 
5914            arrowLeftBtn.addEventListener('click', () => { 
5915                if (scrollBar.scrollLeft > 0) { 
5916                    scrollBar.scroll({ 
5917                        left: scrollBar.scrollLeft - stepLength, 
5918                        behavior: "smooth", 
5919                    });	 
5920
5921            }); 
5922 
5923            arrowRightBtn.addEventListener('click', () => { 
5924                if (scrollBar.scrollLeft < maxDistance) { 
5925                    scrollBar.scroll({ 
5926                        left: scrollBar.scrollLeft + stepLength, 
5927                        behavior: "smooth", 
5928                    }); 
5929
5930            }); 
5931             
5932            scrollBar.addEventListener("scroll", ()=>{ 
5933                disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left"); 
5934                disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right"); 
5935            }); 
5936 
5937            disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left"); 
5938            disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right"); 
5939 
5940        }        
5941
5942 
5943    document.addEventListener('DOMContentLoaded', scrollCarousel); 
5944 
5945</script> 
5946	 
5947<style> 
5948 
5949 
5950.ptb-news__read-news .news-content .embed-responsive-youtube::before { 
5951    padding-top: 0; 
5952
5953	 
5954.ptb-news__read-news .news-content .embed-responsive-liferay::before { 
5955    padding-top: calc(9/16 *100% - 64px); 
5956
5957 
5958.ptb-news__read-news .news-content .thumnail-play-button { 
5959
5960 
5961.ptb-news__read-news .news-content .thumnail-play-button { 
5962    position: relative; 
5963    z-index: 100; 
5964    height: 64px; 
5965    width: 64px; 
5966    background-repeat: no-repeat; 
5967    top: calc(50%); 
5968    left: calc(50% - 32px); 
5969
5970	 
5971	 
5972.ptb-news__read-news .news-content .thumnail-play-button-youtube { 
5973    position: absolute; 
5974    z-index: 100; 
5975    height: 64px; 
5976    width: 64px; 
5977    background-repeat: no-repeat; 
5978    top: calc(50% - 64px); 
5979    left: calc(50% - 32px); 
5980
5981 
5982.ptb-news__read-news .news-content .thumnail-play-button-liferay { 
5983    position: relative; 
5984    z-index: 100; 
5985    height: 64px; 
5986    width: 64px; 
5987    top: calc(-50% + 32px); 
5988    left: calc(50% - 32px); 
5989    background-repeat: no-repeat; 
5990
5991 
5992	 
5993	.ptb-news__read-news .news-content .embed-responsive-youtube img { 
5994	width: 100%; 
5995		height: 100%; 
5996
5997	 
5998</style> 
5999 
6000	<script> 
6001	<#assign createYoutubeThumbnails = "createYoutubeThumbnails_"+ randomNumber(5952) />  
6002	 
6003	function ${createYoutubeThumbnails}(){ 
6004 
6005        const newsContent = document.querySelector(".news-content"); 
6006 
6007        const getYoutubeId = (youtubeUrl) => { 
6008 
6009            const url = new URL(youtubeUrl); 
6010            const splittedPathName = url.pathname.split("/"); 
6011 
6012            if (splittedPathName.length <= 0){ 
6013                return ""; 
6014
6015 
6016            return splittedPathName[splittedPathName.length-1]; 
6017        }; 
6018		 
6019		    window.addEventListener("resize", (event) => { 
6020				const iframeList = newsContent.querySelectorAll('iframe'); 
6021           iframeList.forEach((iframe) => { 
6022                const src = iframe.src; 
6023                if (!src){ 
6024                    return; 
6025
6026 
6027                const isYoutube = src.toLowerCase().includes("youtube"); 
6028                if (!isYoutube){ 
6029                    return; 
6030
6031						  
6032						    const iframeParent = iframe.parentNode; 
6033						  
6034						    const thumbnail = iframeParent.querySelector("img"); 
6035                if (thumbnail){ 
6036					         // thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px"; 
6037
6038				   }); 
6039				 
6040				}); 
6041         
6042        const iframeList = newsContent.querySelectorAll('iframe'); 
6043        iframeList.forEach((iframe) => { 
6044                const src = iframe.src; 
6045                if (!src){ 
6046                    return; 
6047
6048 
6049                const isYoutube = src.toLowerCase().includes("youtube"); 
6050                if (!isYoutube){ 
6051                    return; 
6052
6053 
6054                const iframeParent = iframe.parentNode; 
6055 
6056                const thumbnail = document.createElement("img"); 
6057                thumbnail.src = 'https://img.youtube.com/vi/' + getYoutubeId(src) +'/hqdefault.jpg'; 
6058                thumbnail.alt = "Youtube"; 
6059                thumbnail.loading = "lazy"; 
6060					      //thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px"; 
6061 
6062                const playButton = document.createElement("div"); 
6063                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")'; 
6064                playButton.classList.add("thumnail-play-button-youtube"); 
6065                const children = iframeParent.children; 
6066 
6067                if (children.length > 0) { 
6068                    iframeParent.insertBefore(thumbnail, children.firstChild); 
6069                    iframeParent.insertBefore(playButton, thumbnail); 
6070                    iframe.classList.add("hide"); 
6071                    iframeParent.classList.add("embed-responsive-youtube"); 
6072
6073 
6074                playButton.addEventListener("click", () => { 
6075                    thumbnail.click(); 
6076                }); 
6077 
6078                thumbnail.addEventListener("click", () => { 
6079                    thumbnail.classList.add("hide"); 
6080                    playButton.classList.add("hide"); 
6081                    iframe.classList.remove("hide"); 
6082                    iframeParent.classList.remove("embed-responsive-youtube"); 
6083                    const url = new URL(src); 
6084                    const searchParams = url.searchParams; 
6085                    searchParams.set("rel", "0"); 
6086                    //searchParams.set("modestbranding", "0"); 
6087                    //searchParams.set("mute", "0"); 
6088                    //searchParams.set("color", "white"); 
6089                    searchParams.set("controls", "1"); 
6090                    //searchParams.set("playsinline", "1"); 
6091                    //searchParams.set("enablejsapi", "1"); 
6092                    searchParams.set("autoplay", "1"); 
6093                    //searchParams.set("logo", "0"); 
6094                    iframeParent.setAttribute("data-embed-id", url.toString()); 
6095                    iframe.setAttribute("src", url.toString()); 
6096                }); 
6097        }); 
6098  
6099
6100		 
6101	${createYoutubeThumbnails}(); 
6102		 
6103    <#assign createLRThumbnails = "createLRThumbnails"+ randomNumber(5952) />  
6104	 
6105	function ${createLRThumbnails}(){ 
6106 
6107        const newsContent = document.querySelector(".news-content"); 
6108        const iframeList = newsContent.querySelectorAll("iframe[data-video-liferay]"); 
6109 
6110        iframeList.forEach(iframe => {                       
6111 
6112            const playButton = document.createElement("div"); 
6113            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")'; 
6114            playButton.classList.add("thumnail-play-button-liferay"); 
6115            const children = iframe.parentNode.children; 
6116            if (children.length > 0) {                
6117                iframe.parentNode.insertBefore(playButton, children.firstChild);                 
6118
6119 
6120            iframe.addEventListener("load", () => { 
6121                if (iframe.contentDocument){ 
6122                    const video = iframe.contentDocument.body.querySelector("video"); 
6123                    video.removeAttribute("controls"); 
6124
6125            }); 
6126					 
6127					iframe.parentNode.classList.add("embed-responsive-liferay"); 
6128             
6129 
6130            playButton.addEventListener("click", () => { 
6131                playButton.classList.add("hide"); 
6132                playButton.classList.remove("thumnail-play-button-liferay");     
6133							iframe.parentNode.classList.remove("embed-responsive-liferay"); 
6134                if (iframe.contentDocument){ 
6135                    const video = iframe.contentDocument.body.querySelector("video"); 
6136                    video.setAttribute("controls", ""); 
6137                    video.play(); 
6138
6139            }); 
6140        }); 
6141
6142 
6143    ${createLRThumbnails}(); 
6144	 
6145    document.querySelectorAll(".news-content img").forEach(img => img.loading = "lazy"); 
6146 
6147  </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: