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.urlNews  [in template "20099#20135#10700480" at line 3692, column 67]

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${cardData.urlNews}  [in template "20099#20135#10700480" in macro "renderCard" at line 3692, column 65]
	- Reached through: @renderCard cardData  [in template "20099#20135#10700480" at line 3978, column 25]
----
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                <#-- Seção do áudio para o conteúdo da notícia --------------------------------------------------------> 
221                <#assign audios = [] 
222                audioIdentifierFieldSetList = getNodes("Fieldset65862311", xmlArticle) 
223
224                <#list audioIdentifierFieldSetList as audioIdentifierFieldSet> 
225                    <#assign 
226                    <#-- Grupo com as informações de url e legenda do áudio --> 
227                    audioInfoFieldSet = getGroupNode("Fieldset24035689",audioIdentifierFieldSet)> 
228                    <#assign 
229                    externalAudioUrl = getFieldValue(fieldList, audioInfoFieldSet, "URL externa do áudio") 
230                    internalAudioUrl = getFileFromXML("DocumentLibrary24170668", audioInfoFieldSet, fileEntryService) 
231                    audioLegend = getFieldValue(fieldList, audioInfoFieldSet, "Legenda do áudio")> 
232 
233                    <#if externalAudioUrl?has_content || internalAudioUrl.url?has_content > 
234                        <#assign audios += [{ 
235                        "id": getFieldValue(fieldList, audioIdentifierFieldSet, "Identificador de Áudio"), 
236                        "externalUrl" : externalAudioUrl, 
237                        "internalUrl" : internalAudioUrl, 
238                        "legend" : audioLegend 
239                        }]> 
240                    </#if> 
241                </#list> 
242 
243 
244                <#-- Seção de vídeo para o conteúdo da notícia --------------------------------------------------------> 
245                <#assign videos = [] 
246                videoIdentifierFieldSetList = getNodes("Fieldset24460782", xmlArticle) 
247
248                <#list videoIdentifierFieldSetList as videoIdentifierFieldSet> 
249                    <#assign 
250                    <#-- Grupo com as informações de url e legenda do áudio --> 
251                    videoInfoFieldSet = getGroupNode("Fieldset51040010",videoIdentifierFieldSet) 
252 
253                    videos += [{ 
254                    "id": getFieldValue(fieldList,videoIdentifierFieldSet, "Identificador de Vídeo"), 
255                    "youtubeID" : getFieldValue(fieldList, videoInfoFieldSet, "ID do vídeo do YouTube"), 
256                    "internalUrl" : getFileFromXML("DocumentLibrary15265409", videoInfoFieldSet, fileEntryService), 
257                    "legend" : getFieldValue(fieldList, videoInfoFieldSet, "Legenda do vídeo") 
258                    }] 
259
260                </#list> 
261 
262 
263                <#-- Seção de links para o conteúdo da notícia --------------------------------------------------------> 
264                <#assign 
265                links = [] 
266                linksFieldSetList = getNodes("Fieldset37770113", xmlArticle) 
267
268                <#list linksFieldSetList as linksFieldSet> 
269                    <#assign linkFieldSetList = getNodes("Fieldset10524367", linksFieldSet)> 
270 
271                    <#list linkFieldSetList as linkFieldSet> 
272                        <#assign 
273                        linkId = getFieldValue(fieldList, linkFieldSet, "Identificador do link") 
274 
275                        <#-- Grupo com as informações de url e legenda do áudio --> 
276                        linkInfoFieldSeet = getGroupNode("Fieldset86037074", linkFieldSet) 
277 
278                        iconType = getFieldValue(fieldList, linkInfoFieldSeet, "Ícone do link") 
279                        links += [{ 
280                        "id": linkId, 
281                        "externalLink" : getFieldValue(fieldList, linkInfoFieldSeet, "Link externo"), 
282                        "pageLink" : getPageLayoutLinkFromXML("LinkToLayout77941175", linkInfoFieldSeet, layoutLocalService), 
283                        "file" : getFileFromXML("DocumentLibrary34820760", linkInfoFieldSeet, fileEntryService), 
284                        "title" : getFieldValue(fieldList, linkInfoFieldSeet, "Título do link"), 
285                        "iconType" : iconType 
286                        }] 
287
288                    </#list> 
289                </#list> 
290 
291 
292                 
293                <#assign galleryItems = []/> 
294                
295                <#assign mediaGroupList = getNodes(getIdFromFieldName(fieldList, "Galeria de multimídia"), xmlArticle) /> 
296                 
297                <#list mediaGroupList as mediaGroup >       
298                    <#assign nodes = getNodes(getIdFromFieldName(fieldList, "Imagem da Galeria") , mediaGroup) /> 
299                    <#list nodes as node>                   
300                        <#assign image = getMediaInfo(fieldList, node, "Imagem", fileEntryService) /> 
301                        <#if image?? && image?has_content && image.url?has_content> 
302                            <#assign galleryItems += [{"image": image}] /> 
303                        </#if>   
304                    </#list> 
305                </#list> 
306 
307                 
308				        <#-- Seção de Quotes para o conteúdo da notícia --------------------------------------------------------> 
309                <#assign quotes = [] /> 
310                <#assign quotesRootFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quotes da notícia"), xmlArticle) /> 
311                <#list quotesRootFieldSetList as quotesFieldSetList> 
312                     <#assign quoteFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quote"), quotesFieldSetList) /> 
313						         <#list quoteFieldSetList as quoteFieldSet> 
314                                        <#assign imageJsonString  = getSingleNodeString("Image94530628", quoteFieldSet)   />                                                                       
315                                        <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} /> 
316                                        <#attempt> 
317                                            <#if imageJsonString ?? && imageJsonString?has_content>  
318                                                <#assign imageJson = jsonFactoryUtil.createJSONObject(imageJsonString) /> 
319                                            </#if> 
320 
321                                            <#if !imageJson.url?? || !imageJson.url?has_content> 
322                                                <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} /> 
323                                            </#if> 
324                                        <#recover>                                             
325                                        </#attempt> 
326 
327                                         <#if !imageJson.url?? || !imageJson.url?has_content> 
328                                                <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} /> 
329                                            </#if> 
330                                 					       
331                                    <#assign quotes += [{ 
332                                    "id": getFieldValue(fieldList, quoteFieldSet, "Identificador do Quote"), 
333                                    "content" : getFieldValue(fieldList, quoteFieldSet, "Texto do Quote"), 
334                                    "author" : getFieldValue(fieldList, quoteFieldSet, "Nome do autor"), 
335                                    "image" : {"url": imageJson.url, "alt": imageJson.alt, "fileEntryId" : imageJson.fileEntryId, "title" : imageJson.title}  
336                                    }] /> 
337						          </#list>                    
338                </#list> 
339 
340                <#assign newsInfo = { 
341                "mainHeadlineOfTheNews": mainHeadlineOfTheNews, 
342                "featuredNewsHeadline" : featuredNewsHeadline, 
343                "displayDate" : formatDate(createDate), 
344                "createDate": createDate, 
345                "newsSummary" : newsSummary, 
346                "newsMedia":  extractNewsMedia(fieldList, xmlArticle, fileEntryService), 
347                "lastPublishDate": lastPublishDate, 
348                "flag": flag, 
349                "url": newsJournalArticleFriendlyUrl, 
350                "newsContent": newsContent, 
351                "audios": audios, 
352                "videos": videos, 
353                "galleryItems": galleryItems, 
354                "links": links, 
355								"quotes": quotes 
356                }/> 
357 
358                <#-- Renderizar o título principal da notícia --> 
359                <#-- Conteúdo-> Conteúdo Web -> Templates: Site de Crise - Notícia - Título --> 
360                <@renderHeadLine newsInfo = newsInfo/> 
361 
362                <#-- Renderizar o resumo da notícia --> 
363                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Resumo --> 
364                <@renderReview newsInfo = newsInfo/> 
365 
366                <#-- Renderizar a data de publicação/edição da notícia e redes sociais --> 
367                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação --> 
368                <@renderPublishAndSocialMediasInfos newsJournalArticle newsInfo/> 
369 
370                <#-- Renderizar as tags da notícia --> 
371                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render Tags --> 
372                <#assign categoriesAsssetEntryResponse = restClient.get("/headless-delivery/v1.0/structured-contents/${assetEntry.getClassPK()}?nestedFields=embeddedTaxonomyCategory&fields=taxonomyCategoryBriefs") /> 
373               
374                <#if categoriesAsssetEntryResponse?? && categoriesAsssetEntryResponse?has_content && categoriesAsssetEntryResponse.taxonomyCategoryBriefs??> 
375                    <#assign tagCategoryList = getCategoriesNamesAndIds("Tags", categoriesAsssetEntryResponse.taxonomyCategoryBriefs) /> 
376                    <#assign removeStartParameterWhenTagIsClicked = true /> 
377                    <#assign includeRequestParams = false /> 
378                    <#assign NEWS_PAGE_NAME= "categorias"/> 
379                    <@renderNewsTags tagCategoryList NEWS_PAGE_NAME removeStartParameterWhenTagIsClicked includeRequestParams /> 
380                </#if> 
381                 
382 
383                <#-- Renderizar a imagem de destaque da notícia --> 
384                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Imagem de destaque --> 
385                <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) /> 
386                 
387                <#if !typeOfNews?? || !typeOfNews?has_content || typeOfNews != "Infográfico" >                
388                    <@renderNewsFeaturedMedia newsInfo = newsInfo/> 
389                </#if> 
390 
391                <#-- Renderizar o conteúdo da notícia --> 
392                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia --> 
393                <@renderNewsContent newsInfo = newsInfo/> 
394 
395                <#-- Renderiza botoes de compartilhamento na versao mobile --> 
396                <div class="render-share-news-container publish_and_social_medias_infos_desk mobile"> 
397                    <@renderShareAndCopyNews/> 
398                </div> 
399 
400                <#-- Renderizar links da notícia --> 
401                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Links do conteúdo da notícia --> 
402                <@renderLinks newsInfo /> 
403 
404                <@renderCite /> 
405 
406                <#-- Renderizar áudios da notícia --> 
407                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia --> 
408 
409                <#-- Renderizar galeria de imagens notícia --> 
410                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render galeria --> 
411                <@renderGallery newsInfo /> 
412									 
413									 
414                <#-- Renderizar quotes da notícia --> 
415                <@renderQuotes newsInfo /> 
416 
417            </div> 
418        </div> 
419    </div> 
420<#else > 
421    <div class="ptb-news__read-news paragraph-sm-regular">      
422        <p> <#if locale == "pt_BR"> Nenhuma notícia <#else> There are no news </#if></p> 
423    </div> 
424 
425    <style> 
426        .ptb-news__read-news p { 
427            color: #515867; 
428
429 
430        body.high-contrast-active .ptb-news__read-news p { 
431            color: var(--color-neutral-100); 
432
433    </style> 
434</#if> 
435 
436<style> 
437    .breadcrumb-breakpoint { 
438        padding-top: var(--space-xxl); 
439        padding-bottom: var(--space-xl); 
440
441 
442    body.high-contrast-active .breadcrumb-breakpoint { 
443        background: var(--background-surface-level-01, #010101); 
444
445 
446    .breadcrumb-breakpoint .breadcrumb-col { 
447        display: flex; 
448        width: max-content; 
449        gap: var(--space-xxs); 
450        height: fit-content; 
451        overflow-x: hidden; 
452
453 
454    .breadcrumb-breakpoint #liferay-breadcrumb { 
455        display: none; 
456
457 
458    .breadcrumb-breakpoint .breadcrumb-page { 
459        display: flex; 
460        gap: var(--space-micro); 
461        height: var(--size-md); 
462        size: var(--size-md); 
463        border: 1px solid rgba(0, 0, 0, 0); 
464        box-sizing: border-box; 
465        border-radius: var(--border-radius-sm); 
466
467 
468    .breadcrumb-breakpoint a.breadcrumb-page.text span, 
469    .breadcrumb-breakpoint span.breadcrumb-page.text { 
470        white-space: nowrap; 
471
472 
473    .breadcrumb-breakpoint .breadcrumb-page a:focus { 
474        outline: none; 
475
476 
477    .breadcrumb-breakpoint .breadcrumb-page.active-page { 
478        color: var(--color-text-primary-default); 
479        background-color: var(--color-background-default-level-02); 
480        border-radius: var(--border-radius-sm); 
481
482 
483    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.active-page { 
484        background: var(--background-surface-level-02, #373737); 
485        color: var(--text-primary-default, #FFF); 
486
487 
488    .breadcrumb-breakpoint .breadcrumb-page.previous-page { 
489        transition: 300ms ease-in-out; 
490
491 
492    .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
493        text-decoration: var(--text-decoration-none); 
494        color: var(--color-text-primary-default); 
495        text-transform: capitalize; 
496        padding-left: var(--space-xxs); 
497        padding-right: var(--space-xxs); 
498
499 
500    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
501        color: var(--text-primary-default, #FFF); 
502
503 
504    .breadcrumb-breakpoint .breadcrumb-page.active-page.text { 
505        color: var(--color-text-primary-default); 
506        text-decoration: var(--text-decoration-none); 
507        background-color: var(--color-background-default-level-02); 
508        text-transform: capitalize; 
509        padding-left: var(--space-xxs); 
510        padding-right: var(--space-xxs); 
511
512 
513    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
514        color: var(--text-primary-default, #FFF); 
515
516 
517    .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover { 
518        background-color: var(--color-background-default-level-01); 
519        border-color: var(--border-color-dark); 
520        border-radius: var(--border-radius-sm); 
521        border: 1px solid; 
522        transition: all 300ms ease-in-out; 
523
524 
525    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover { 
526        background-color: transparent; 
527
528 
529    .breadcrumb-breakpoint .breadcrumb-page:focus-visible { 
530        margin: var(--space-micro); 
531        border-radius: var(--space-micro); 
532        outline: none; 
533        border: 1px solid var(--color-primary-medium); 
534        box-sizing: border-box; 
535        transition: 300ms ease-in-out; 
536
537 
538    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page:focus-visible { 
539        border: 1px solid rgba(228, 247, 232, 1); 
540
541 
542    .breadcrumb-breakpoint .breadcrumb-page .icon { 
543        width: var(--size-xxs); 
544        height: var(--size-xxs); 
545        border-color: var(--border-color-darkest); 
546        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'); 
547        background-size: cover; 
548        margin-top: auto; 
549        margin-bottom: auto; 
550
551 
552    body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page .icon { 
553        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>'); 
554
555 
556    .ptb-news__read-news { 
557        padding-bottom: var(--space-xl, 40px); 
558        overflow: hidden; 
559
560 
561    body.high-contrast-active .ptb-news__read-news { 
562        background: var(--background-surface-level-01, #010101); 
563
564</style> 
565 
566 
567<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
568<#-- 
569Add elements from the sidebar to define your template. Type "${" to use the 
570autocomplete feature. 
571--> 
572 
573<#macro renderHeadLine newsInfo> 
574     
575    <div class="main-headline-container breakpoint"> 
576        <div class="main-headline-container-col col-2-11 md-col-1-8 sm-col-1-4"> 
577            <h1 class="main-headline display-sm">${newsInfo.featuredNewsHeadline}</h1> 
578            <div class="bar"></div> 
579        </div> 
580    </div> 
581 
582    <style> 
583        .ptb-news__read-news .main-headline-container .main-headline-container-col { 
584            display: flex; 
585            flex-direction: column; 
586            gap: var(--space-sm); 
587            padding-bottom: var(--space-lg); 
588
589 
590        .ptb-news__read-news .main-headline-container .main-headline-container-col * { 
591            margin: 0; 
592            padding: 0; 
593
594 
595        .ptb-news__read-news .main-headline-container .main-headline { 
596            font-family: var(--font-family-base); 
597            color: var(--color-neutral-800); 
598
599 
600        body.high-contrast-active .ptb-news__read-news .main-headline-container .main-headline { 
601            color: var(--text-primary-default, var(--color-neutral-100)); 
602
603 
604        .ptb-news__read-news .main-headline-container .bar { 
605            width: 32px; 
606            height: var(--size-micro); 
607            background: var(--color-secondary-medium); 
608
609 
610        body.high-contrast-active .ptb-news__read-news .main-headline-container .bar{ 
611            background: var(--text-secondary-accent, #FFEEB3); 
612
613 
614        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
615            .ptb-news__read-news .main-headline-container .main-headline-container-col { 
616                gap: var(--space-xs, 12px); 
617
618
619    </style> 
620</#macro> 
621<#-- ################################################################################################################## --> 
622 
623<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
624<#macro renderReview newsInfo> 
625    <#assign summaryCssRoot = "summary-container" /> 
626 
627    <div class="${summaryCssRoot}-breakpoint breakpoint"> 
628        <div class="${summaryCssRoot} col-2-11 md-col-1-8 sm-col-1-4"> 
629            <p class="summary paragraph-lg-regular"> 
630                ${newsInfo.newsSummary} 
631            </p> 
632        </div> 
633        
634    </div> 
635 
636    <style> 
637        .${summaryCssRoot} .summary { 
638            padding-bottom: var(--space-lg); 
639
640 
641        .${summaryCssRoot} .summary, 
642        .${summaryCssRoot} .summary * { 
643            color: var(--color-neutral-800, #373737); 
644            font-family: var(--font-family-base); 
645            font-style: var(--font-style-italic); 
646            margin: var(--space-none); 
647
648 
649        body.high-contrast-active .summary, 
650        body.high-contrast-active .summary * { 
651            color: var(--text-secondary-default, #F8F8F8); 
652
653    </style> 
654</#macro> 
655<#-- ################################################################################################################## --> 
656 
657<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
658<#macro renderPublishAndSocialMediasInfos journalArticle newsInfo> 
659 
660    <div class="publish_and_social_medias_infos_desk-breakpoint breakpoint"> 
661        <div class="publish_and_social_medias_infos_desk col-2-11 md-col-1-8 sm-col-1-4"> 
662            <div class="publish_and_update_date"> 
663                <#assign lastPublishDate = journalArticle.getModifiedDate()> 
664                <#assign createDate = journalArticle.getCreateDate()> 
665                <#if journalArticle.getLastPublishDate()??> 
666                    <#assign lastPublishDate = journalArticle.getLastPublishDate()> 
667                </#if> 
668 
669                <#if locale == "pt_BR"> 
670                    <p class="updated">Atualizado em ${formatDate(lastPublishDate)}</p> 
671                    <p class="published">Postado em ${formatDate(createDate)}</p> 
672                <#else > 
673                    <p class="updated">Updated on ${formatDate(lastPublishDate)}</p> 
674                    <p class="published">Posted on ${formatDate(createDate)}</p> 
675                </#if> 
676            </div> 
677            <div class="render-share-news-container desktop"> 
678                <@renderShareAndCopyNews/> 
679            </div> 
680        </div> 
681    </div> 
682 
683    <style> 
684			.ptb-news__read-news .hidden { 
685			     display: none; 
686
687        /*Data de publicação e redes sociais */ 
688 
689        /* Desktop */ 
690        .ptb-news__read-news .publish_and_social_medias_infos_desk { 
691            position: relative; 
692            display: grid; 
693            grid-template-columns: auto 1fr auto; 
694
695 
696        .ptb-news__read-news .render-share-news-container.mobile { 
697            display: none; 
698
699 
700        .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
701            padding: var(--space-none, 0); 
702            margin: var(--space-none, 0); 
703            font-family: var(--font-family-base); 
704            font-style: var(--font-style-normal, normal); 
705            font-weight: var(--font-weight-regular, 400); 
706            font-size: var(--font-size-xxs, 16px); 
707            line-height: var(--line-height-xl, 160%); 
708            color: var(--color-neutral-800, #373737); 
709
710 
711        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
712            color: var(--text-secondary-default, #F8F8F8); 
713
714 
715        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg path, 
716        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg path { 
717            stroke: var(--color-neutral-500, #D7D7D7); 
718            fill: rgba(255, 255, 255, 0.32); 
719
720 
721        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg circle, 
722        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg circle { 
723            fill: rgba(255, 255, 255, 0.32); 
724
725 
726        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date { 
727            display: flex; 
728            align-items: center; 
729            gap: var(--space-sm, 16px); 
730
731 
732        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated { 
733            font-weight: var(--font-weight-bold, 700); 
734
735 
736        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated { 
737            color: var(--text-primary-default, var(--color-neutral-100)); 
738
739 
740        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published { 
741            font-weight: var(--font-weight-normal, 400); 
742
743 
744        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
745            display: flex; 
746            width: 100%; 
747            justify-content: flex-end; 
748            align-items: center; 
749            gap: var(--space-sm, 16px); 
750
751   
752        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share { 
753            position: relative; 
754
755	 
756        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share span { 
757            position: absolute; 
758            width: 100%; 
759            height: 100%; 
760            opacity: 0; 
761            overflow: hidden; 
762            pointer-events: none; 
763
764 
765        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share { 
766            display: none; 
767
768 
769        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
770            background: var(--color-neutral-100); 
771            border: var(--border-width-hairline, 1px) solid #CCCCCC; 
772            border-radius: 32px; 
773            display: flex; 
774            align-items: center; 
775            gap: var(--space-sm, 16px); 
776            padding: 6px var(--space-xxs, 8px); 
777            height: 36px; 
778            margin: 0; 
779            cursor: pointer; 
780
781 
782        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
783            background: rgba(255, 255, 255, 0.32); 
784            border: var(--border-width-hairline, 1px) solid rgba(255, 255, 255, 0.32); 
785
786 
787        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container svg { 
788            width: 18px; 
789
790 
791        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk  svg path { 
792            stroke: var(--color-neutral-500, #D7D7D7); 
793
794 
795        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
796            font-family: var(--font-family-base); 
797            font-style: normal; 
798            margin: 0; 
799            height: 100%; 
800            display: flex; 
801            align-items: center; 
802            color: var(--color-primary-medium, #008542); 
803            font-size: var(--font-size-micro, 12px); 
804            font-weight: var(--font-weight-bold, 700); 
805            line-height: var(--line-height-lg, 144%); 
806            pointer-events: none; 
807
808	             
809        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text .copy-text-title-news { 
810            position: absolute; 
811            width: 100%; 
812            height: 100%; 
813            opacity: 0; 
814            overflow: hidden; 
815
816 
817        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
818            color: var(--text-primary-accent, #E4F7E8); 
819
820 
821        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
822            display: none; 
823            position: absolute; 
824            bottom: -43px; 
825            right: -15px; 
826            padding: var(--space-xxxs, 4px) 15px; 
827            margin: var(--space-micro, 2px) 10px; 
828            width: 110px; 
829            font-family: var(--font-family-base); 
830            font-size: var(--font-size-micro, 12px); 
831 
832            color: #008542; 
833            background: var(--color-neutral-100); 
834            border-radius: var(--border-radius-md, 8px); 
835 
836            filter: drop-shadow(0px 4px 16px rgba(0, 0, 0, 0.16)); 
837 
838            cursor: pointer; 
839
840 
841        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
842            background: rgba(255, 255, 255, 0.32); 
843            color: var(--text-primary-accent, #E4F7E8); 
844
845 
846        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message-active { 
847            display: block; 
848
849 
850        /* Mobile */ 
851 
852        .ptb-news__read-news .publish_and_social_medias_infos_mobile { 
853            display: flex; 
854            flex-direction: column; 
855            gap: 19px; 
856
857 
858        .ptb-news__read-news .publish_and_social_medias_infos_mobile { 
859            display: none; 
860
861 
862        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text { 
863            display: flex; 
864            justify-content: space-between; 
865            align-items: center; 
866            margin-bottom: var(--space-lg, 32px); 
867
868 
869        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date * { 
870            padding: 0; 
871            margin: 0; 
872            font-family: var(--font-family-base); 
873            font-style: var(--font-style-normal, normal); 
874            font-size: var(--font-size-micro, 12px); 
875            line-height: 136%; 
876            color: var(--color-neutral-800, #373737); 
877
878 
879        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 * { 
880            color: var(--text-primary-accent, #E4F7E8); 
881
882 
883        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date { 
884            display: flex; 
885            flex-direction: column; 
886            gap: 0; 
887
888 
889        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .updated { 
890            font-weight: var(--font-weight-bold, 700); 
891
892 
893        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .published { 
894            font-weight: var(--font-weight-regular, 400); 
895
896 
897        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container { 
898            background: var(--color-neutral-100); 
899            border: var(--border-width-hairline, 1px) solid #CCCCCC; 
900            border-radius: 32px; 
901            display: flex; 
902            align-items: center; 
903            gap: var(--space-sm, 16px); 
904            padding: 6px var(--space-xxs, 8px); 
905            width: 112px; 
906            height: 36px; 
907
908 
909        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container { 
910            background: rgba(255, 255, 255, 0.32); 
911            color: var(--text-primary-accent, #E4F7E8); 
912
913 
914        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container p.text { 
915            margin: 0; 
916
917 
918        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container .text { 
919            font-family: var(--font-family-base); 
920            font-style: var(--font-style-normal, normal); 
921            font-weight: var(--font-weight-regular, 400); 
922            font-size: 13px; 
923            line-height: 14px; 
924            color: #008542; 
925
926 
927        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 { 
928            background: rgba(255, 255, 255, 0.32); 
929            color: var(--text-primary-accent, #E4F7E8); 
930
931 
932        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
933 
934            .ptb-news__read-news .publish_and_social_medias_infos_desk .render-share-news-container.desktop { 
935                display: none; 
936
937 
938            .ptb-news__read-news .render-share-news-container.mobile { 
939                display: block; 
940                margin: 0 var(--space-lg); 
941
942 
943            .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
944                font-size: var(--font-size-micro, 12px); 
945
946             
947            .ptb-news__read-news .publish_and_social_medias_infos_desk { 
948                display: grid; 
949                grid-template-columns: 100%; 
950                grid-template-rows: 1fr 100%; 
951
952 
953            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date { 
954                grid-column-start: 1; 
955                grid-column-end: 1; 
956                grid-row-start: 1; 
957                grid-row-end: 1; 
958                gap: var(--space-xxs, 8px); 
959
960 
961            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * { 
962                padding: 0; 
963                margin: 0; 
964                font-family: var(--font-family-base); 
965                font-style: var(--font-style-normal); 
966                color: var(--color-neutral-800, #373737); 
967                font-weight: var(--font-weight-bold); 
968                font-size: var(--font-size-xxxs, 14px); 
969                line-height: var(--line-height-md, 132%); 
970
971 
972            body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * { 
973                color: var(--text-primary-accent, #E4F7E8); 
974
975 
976            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published { 
977                font-weight: var(--font-weight-regular, 400); 
978
979 
980            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
981                grid-column-start: 1; 
982                grid-column-end: 2; 
983                grid-row-start: 2; 
984                grid-row-end: 2; 
985                justify-content: flex-end; 
986                height: 36px; 
987
988 
989            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
990                grid-column-start: 1; 
991                grid-column-end: 2; 
992                grid-row-start: 2; 
993                grid-row-end: 2; 
994                max-width: 112px; 
995                place-self: end; 
996
997 
998            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
999                display: none; 
1000
1001 
1002            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
1003                bottom: 0; 
1004                right: -9px; 
1005
1006 
1007            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share { 
1008                display: initial; 
1009
1010
1011 
1012        @media screen and (min-width: ${MIN_TABLET_WIDTH}px) and (max-width: ${MAX_TABLET_WIDTH}px) { 
1013            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
1014                padding-right: 0; 
1015
1016
1017 
1018 
1019    </style> 
1020 
1021    <script> 
1022        AUI().ready(function () { 
1023 
1024            function copyOnClick(text) { 
1025 
1026                const strWithoutHtmlTags = text.replace(/(<([^>]+)>)/gi, ""); 
1027                const strWithoutMarcationBrackets = strWithoutHtmlTags.replace(/ *#\[[^\]]*]/g, ""); 
1028                const strWithoutNextPrevious = strWithoutMarcationBrackets.replace(/Previous    Next/g, ""); 
1029                const strWithoutBlankEnters = strWithoutNextPrevious.replace(/^\s*$(?:\r\n?|\n)/gm, ""); 
1030                const strWithoutBlankLines = strWithoutBlankEnters.replace(/&nbsp;/g, ''); 
1031                const tempInput = document.createElement("textarea"); 
1032                tempInput.value = strWithoutBlankLines; 
1033 
1034                document.body.appendChild(tempInput); 
1035                tempInput.select(); 
1036                document.execCommand("copy"); 
1037 
1038                if (tempInput.value.length > 0) { 
1039                    copyMessages.forEach(copyMessage => copyMessage.classList.add('copy-message-active')); 
1040 
1041                    timerToMessage() 
1042
1043 
1044                document.body.removeChild(tempInput); 
1045
1046 
1047            const copyTextContainers = document.querySelectorAll(".publish_and_social_medias_infos_desk .copy-text-container"); 
1048            copyTextContainers.forEach(copyTextContainer => { 
1049                copyTextContainer.addEventListener("click", (event) => { 
1050                    event.preventDefault(); 
1051                    const titleText = document.querySelector(".main-headline-container .main-headline").innerHTML; 
1052                    const publishSocialMediaText = document.querySelector(".publish_and_social_medias_infos_desk .publish_and_update_date").innerHTML; 
1053                    const tagsText = document.querySelector(".tags").innerHTML; 
1054                    const newsContentText = document.querySelector(".news-content").innerHTML; 
1055                    const text = titleText + publishSocialMediaText + tagsText + newsContentText; 
1056                    copyOnClick(text) 
1057                }); 
1058            }); 
1059 
1060            const mobileShare = async () => { 
1061                try { 
1062                    const shareData = { 
1063                        title: '${newsInfo.mainHeadlineOfTheNews}', 
1064                        text: '', 
1065                        url: '${newsInfo.url}' 
1066                    }; 
1067                    await navigator.share(shareData); 
1068                } catch (err) { 
1069 
1070
1071            }; 
1072 
1073            const mobileShareButtons = document.querySelectorAll(".publish_and_social_medias_infos_desk .mobile-share"); 
1074            mobileShareButtons.forEach(mobileShareButton => { 
1075                mobileShareButton.addEventListener("click", (event) => { 
1076                    event.preventDefault(); 
1077                    mobileShare(); 
1078                }); 
1079            }); 
1080 
1081            const copyMessages = document.querySelectorAll('.copy-message'); 
1082            const timerToMessage = () => { 
1083                setTimeout(() => { 
1084                    removeMessage(); 
1085                }, 2500); 
1086 
1087
1088 
1089            const removeMessage = () => { 
1090                copyMessages.forEach(copyMessage => copyMessage.classList.remove('copy-message-active')); 
1091
1092 
1093        }); 
1094    </script> 
1095 
1096</#macro> 
1097 
1098<#-- ################################################################################################################## --> 
1099 
1100<#-- ############# Site de Crise - Notícia - Render Tags ############################################################## --> 
1101 
1102<#function getCategoriesNamesAndIds vocabularyName categoriesList> 
1103    <#assign tagCategoryList = [] /> 
1104 
1105    <#assign tagsVocabulary = assetVocabularyService.fetchGroupVocabulary(groupId, vocabularyName) /> 
1106    <#list categoriesList as cat> 
1107        <#if tagsVocabulary.getVocabularyId() == cat.embeddedTaxonomyCategory.taxonomyVocabularyId > 
1108            <#assign tagCategoryList += [[cat.taxonomyCategoryName, cat.taxonomyCategoryId]] /> 
1109        </#if> 
1110    </#list> 
1111    <#return tagCategoryList> 
1112</#function> 
1113 
1114<#assign 
1115flagVocabulary = findVocabulary("Flag", vocabularies) 
1116assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") 
1117/> 
1118 
1119<#macro renderNewsTags categoryList targetPageWhenClickTag removeStartParameterWhenTagIsClicked updateTagParamsWhenClicked> 
1120    <#assign tagPrefix = "tags-" + randomNumber(groupId?number)> 
1121    <div class="${tagPrefix}-breakpoint breakpoint"> 
1122        <div class="${tagPrefix} col-2-11 md-col-1-8 sm-col-1-4"> 
1123 
1124            <div class="tags"> 
1125                <#list categoryList as cat> 
1126                    <#assign tagLink = mountUrlToPage("") /> 
1127                    <#assign urlWithoutTrailingSlash = tagLink?substring(0, tagLink?length - 1)> 
1128                    <#assign lastSlashIndex = urlWithoutTrailingSlash?last_index_of("/")> 
1129                    <#assign newUrl = urlWithoutTrailingSlash?substring(0, lastSlashIndex + 1)> 
1130                    <#assign tagLink = newUrl + "categorias?category=" + cat[1] /> 
1131                    <a href="${tagLink}" 
1132                        class="category" cetegoryid="${cat[1]}"># ${cat[0]}</a> 
1133                </#list> 
1134            </div> 
1135        </div>    
1136    </div> 
1137 
1138    <style> 
1139        .${tagPrefix} { 
1140            display: flex; 
1141            flex-direction: column; 
1142            padding: 0; 
1143            gap: var(--space-sm); 
1144
1145 
1146        .${tagPrefix} * { 
1147            margin: 0; 
1148            padding: 0; 
1149
1150 
1151        .${tagPrefix} .tags { 
1152            display: flex; 
1153            flex-wrap: wrap; 
1154            gap: var(--space-xxs, 8px); 
1155            padding: var(--space-lg) 0 var(--space-xl); 
1156
1157 
1158        .${tagPrefix} .tags .category { 
1159            padding: var(--space-xxxs) var(--space-xxs); 
1160            background: var(--color-neutral-100); 
1161            border: var(--border-width-hairline, 1px) solid var(--color-neutral-500); 
1162            border-radius: var(--border-radius-xl); 
1163 
1164            font-family: var(--font-family-base); 
1165            font-style: var(--font-style-normal); 
1166            font-weight: var(--font-weight-regular); 
1167            font-size: var(--font-size-xxxs); 
1168            line-height: var(--line-height-xl); 
1169            color: var(--color-neutral-800, #373737); 
1170            cursor: pointer; 
1171
1172 
1173        body.high-contrast-active .${tagPrefix} .tags .category { 
1174            background: rgba(255, 255, 255, 0.32); 
1175            border: 1px solid rgba(255, 255, 255, 0.32); 
1176            color: var(--text-secondary-default, #F8F8F8); 
1177
1178 
1179        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1180            .${tagPrefix} .tags { 
1181                display: flex; 
1182                flex-wrap: wrap; 
1183                gap: 8px; 
1184                padding: var(--space-sm) 0 var(--space-lg); 
1185
1186 
1187            .${tagPrefix} { 
1188                margin-top: var(--space-sm); 
1189
1190
1191    </style> 
1192 
1193    <script> 
1194        AUI().ready(function () { 
1195 
1196            const urlParams = new URLSearchParams(window.location.search); 
1197            const categories = urlParams.getAll("category").sort(); 
1198 
1199            const root = document.querySelector(".${tagPrefix}"); 
1200            const tags = root.querySelectorAll(".category"); 
1201            tags.forEach((tag, index) => { 
1202 
1203                const categoryId = tag.getAttribute("cetegoryid"); 
1204                if (categories.indexOf(categoryId) != -1) { 
1205                    tag.classList.add("active"); 
1206
1207 
1208                <#if updateTagParamsWhenClicked> 
1209                tag.addEventListener("click", (e) => { 
1210                    e.preventDefault(); 
1211                    const clickedTag = e.target; 
1212                    const urlParams = new URLSearchParams(window.location.search); 
1213                    urlParams.delete("tag"); 
1214                    urlParams.delete("category"); 
1215 
1216                    const categoryId = clickedTag.getAttribute("cetegoryid"); 
1217                    urlParams.append("category", categoryId); 
1218 
1219                    <#if removeStartParameterWhenTagIsClicked> 
1220                    urlParams.delete("start"); 
1221                    </#if> 
1222 
1223                    const href = "${themeDisplay.getPortalURL() + mountUrlToPage(targetPageWhenClickTag)}?" + urlParams.toString(); 
1224                    window.location.href = href; 
1225                }); 
1226                </#if> 
1227            }); 
1228        }); 
1229    </script> 
1230 
1231</#macro> 
1232 
1233<#-- ################################################################################################################## --> 
1234 
1235<#-- ############# Site de Crise - Notícia - Imagem de destaque ####################################################### --> 
1236<#macro renderNewsFeaturedMedia newsInfo> 
1237    <#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)> 
1238        <div class="news-featured-media"> 
1239             
1240            <div class="media-breakpoint breakpoint"> 
1241                <div class="media-col col-2-11 md-col-1-8 sm-col-1-4"> 
1242                    <#if newsInfo.newsMedia.imageSrc?? && newsInfo.newsMedia.imageSrc?has_content> 
1243                        <#-- Midias adaptativas de imagem para desktop e mobile --> 
1244                        <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${newsInfo.newsMedia.fileEntryId}") /> 
1245                        <#assign urlAdaptativeMediaMobile = newsInfo.newsMedia.imageSrc/> 
1246                        <#assign urlAdaptativeMediaDesktop = newsInfo.newsMedia.imageSrc/> 
1247                         
1248                        <#if fileDataRequest?? && fileDataRequest.adaptedImages?? > 
1249                            <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
1250                            <#list dataAdaptativeMedia as data> 
1251                                <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
1252                                    <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
1253                                </#if> 
1254                                <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
1255                                    <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
1256                                </#if>      
1257                            </#list> 
1258                        </#if> 
1259 
1260                        <picture > 
1261                            <source media="(max-width:767px)" srcset="${urlAdaptativeMediaMobile}"> 
1262                            <img src="${urlAdaptativeMediaDesktop}" loading="lazy" alt="${newsInfo.newsMedia.imageAlt}"/> 
1263                        </picture> 
1264												<@liferay_util["html-top"]> 
1265                            <meta name="title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1266                            <meta name="description" content="${newsInfo.newsSummary}"> 
1267 
1268                            <meta property="og:url" content="${currentURL}"> 
1269                            <meta property="og:type" content="website"> 
1270                            <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1271				            				<meta property="og:description" content="${newsInfo.newsSummary}" /> 
1272                            <meta property="og:image" content="${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image"> 
1273                            <meta property="og:image:alt" content="${newsInfo.newsMedia.imageAlt}"> 
1274 
1275                            <meta name="twitter:card" content="summary_large_image"> 
1276                            <meta name="twitter:url" content="${currentURL}" /> 
1277                            <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1278                            <meta name="twitter:description" content="${newsInfo.newsSummary}" /> 
1279                            <meta name="twitter:image" content= "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image" > 
1280							 							<meta name="twitter:image:alt" content="${newsInfo.newsMedia.imageAlt}"> 
1281                        </@> 
1282                    <#else> 
1283                        <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content> 
1284                            <iframe loading="lazy" src="https://www.youtube-nocookie.com/embed/${newsInfo.newsMedia.videoYotubeID}?si=PDNu4EIwtCuSHC1S&amp;controls=0&enablejsapi=1&rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> 
1285                            <@liferay_util["html-top"]>       
1286                            		<meta name="title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1287                            		<meta name="description" content="${newsInfo.newsSummary}"> 
1288							 
1289							    							<meta property="og:url" content="${currentURL}"> 
1290                                <meta property="og:type" content="website"> 
1291                                <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1292				                				<meta property="og:description" content="${newsInfo.newsSummary}" /> 
1293                                <meta property="og:image" content="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg"> 
1294															  <meta property="og:image:alt" content="Youtube Video Thumbnail"> 
1295 
1296                                <meta name="twitter:card" content="summary_large_image"> 
1297                                <meta name="twitter:url" content="${currentURL}" /> 
1298                                <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1299                                <meta name="twitter:description" content="${newsInfo.newsSummary}" /> 
1300                                <meta name="twitter:image" content= "https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" > 
1301															  <meta name="twitter:image:alt" content="Youtube Video Thumbnail"> 
1302                            </@> 
1303														<#else> 
1304                            <video loading="lazy"> 
1305                                <source src="${newsInfo.newsMedia.internalVideo.url}"> 
1306                                Your browser does not support the video tag. 
1307                            </video> 
1308                        </#if> 
1309 
1310                         <div class="banner-video-icons"> 
1311                            <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content> 
1312                                <picture > 
1313                                    <source media="(max-width:767px)" srcset="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/mqdefault.jpg"> 
1314                                    <img class="banner-video-thumb-iframe" loading="lazy" src="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" alt="YouTube Thumbnail"/> 
1315                                </picture> 
1316                            </#if> 
1317                            <svg class="banner-video-icon-play" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1318                                <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"/> 
1319                                <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"/> 
1320                            </svg> 
1321                        </div> 
1322                    </#if> 
1323                </div> 
1324            </div> 
1325             
1326            <div class="credit-legend breakpoint"> 
1327							 
1328                    <div class="credit-legend-container col-2-11 md-col-1-8 sm-col-1-4"> 
1329											<#if newsInfo.newsMedia.legend != ""> 
1330															<div class="legend paragraph-micro-regular"> 
1331																	<p>${newsInfo.newsMedia.legend}</p> 
1332															</div> 
1333											</#if> 
1334											<#if newsInfo.newsMedia.credits != ""> 
1335															<p class="credits paragraph-micro-regular"> 
1336																	${newsInfo.newsMedia.credits} 
1337															</p>     
1338											</#if> 
1339 
1340                    </div> 
1341            </div> 
1342        </div> 
1343    </#if> 
1344    <style> 
1345        .ptb-news__read-news .news-featured-media { 
1346            padding: 0 0 var(--space-xl) 0; 
1347
1348 
1349        .ptb-news__read-news .news-featured-media .media-col { 
1350            position: relative; 
1351
1352 
1353        .ptb-news__read-news .news-featured-media img, 
1354        .ptb-news__read-news .news-featured-media video, 
1355        .ptb-news__read-news .news-featured-media iframe { 
1356            width: 100%; 
1357            max-height: 567px; 
1358            aspect-ratio: 16/9; 
1359            object-fit: cover; 
1360            border-radius: var(--border-radius-lg, 16px); 
1361
1362 
1363        .ptb-news__read-news .news-featured-media .banner-video-icons { 
1364            width: 100%; 
1365            height: 100%; 
1366            position: absolute; 
1367            top: 50%; 
1368            left: 50%; 
1369            transform: translate(-50%,-50%); 
1370            cursor: pointer; 
1371
1372 
1373        .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-thumb-iframe { 
1374            position: absolute; 
1375            width: 100%; 
1376            height: 100%; 
1377            object-fit: cover; 
1378
1379 
1380        .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play { 
1381            position: absolute; 
1382            top: 50%; 
1383            left: 50%; 
1384            transform: translate(-50%,-50%); 
1385
1386 
1387        body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(1) { 
1388            fill: black;   
1389
1390 
1391        body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(2) { 
1392            fill: white;   
1393
1394 
1395        .ptb-news__read-news .news-featured-media *:not(.breakpoint) { 
1396          margin: 0; 
1397
1398        .ptb-news__read-news .news-featured-media * { 
1399            padding: 0; 
1400            font-family: var(--font-family-base); 
1401            line-height: var(--line-height-xl); 
1402
1403 
1404        .ptb-news__read-news .news-featured-media .credits { 
1405            text-align: right; 
1406            color: var(--collor-neutral-dark-to-bright-200, #525252); 
1407            margin-bottom: var(--space-xxxs, 4px); 
1408            font-style: var(--font-style-italic, italic); 
1409            margin-top: var(--space-xxs, 8px); 
1410            margin-bottom: 0; 
1411
1412 
1413        body.high-contrast-active .ptb-news__read-news .news-featured-media .credits { 
1414            color: var(--text-secondary-default, #F8F8F8); 
1415
1416 
1417        .ptb-news__read-news .news-featured-media .legend { 
1418            margin-top: var(--space-xxs, 8px); 
1419            display: flex; 
1420            justify-content: space-between; 
1421
1422 
1423        .ptb-news__read-news .news-featured-media .legend, 
1424        .ptb-news__read-news .news-featured-media .legend * { 
1425            font-style: var(--font-style-italic, italic); 
1426            color: var(--collor-neutral-dark-to-bright-200, #525252); 
1427
1428			 
1429				.ptb-news__read-news .credit-legend .credit-legend-container { 
1430						display: flex; 
1431						justify-content: space-between; 
1432						flex-wrap: wrap; 
1433						gap: 8px; 
1434				}	 
1435 
1436        body.high-contrast-active .ptb-news__read-news .news-featured-media .legend, 
1437        body.high-contrast-active .ptb-news__read-news .news-featured-media .legend * { 
1438            color: var(--text-secondary-default, #F8F8F8); 
1439
1440 
1441        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1442            .ptb-news__read-news .news-featured-media .credits { 
1443                text-align: left; 
1444
1445
1446    </style> 
1447 
1448    <script> 
1449        /* Manipulation video*/ 
1450        let videoIsPlaying = false; 
1451 
1452        const modalForClick = document.querySelector(".ptb-news__read-news .news-featured-media .banner-video-icons"); 
1453        const video = document.querySelector(".ptb-news__read-news .news-featured-media .media-col > :first-child"); 
1454        
1455        const playIcon = modalForClick && modalForClick.querySelector(".banner-video-icon-play"); 
1456        modalForClick && modalForClick.addEventListener("click", ()=>{ 
1457            if(video.tagName === "VIDEO") { 
1458                if(videoIsPlaying) { 
1459                    video.pause(); 
1460                    playIcon.style.display = ""; 
1461                    videoIsPlaying = false; 
1462                }  
1463                else { 
1464                    video.play(); 
1465                    playIcon.style.display = "none"; 
1466                    videoIsPlaying = true; 
1467
1468            }   
1469            else if(video.tagName === "IFRAME") { 
1470                const thumbYoutube = modalForClick.querySelector(".banner-video-thumb-iframe"); 
1471                if(videoIsPlaying) { 
1472                    video.contentWindow.postMessage('{"event":"command","func":"pauseVideo"}', '*'); 
1473                    playIcon.style.display = ""; 
1474                    videoIsPlaying = false; 
1475                }  
1476                else { 
1477                    thumbYoutube && (thumbYoutube.style.display = "none"); 
1478                    video.contentWindow.postMessage('{"event":"command","func":"playVideo"}', '*'); 
1479                    playIcon.style.display = "none"; 
1480                    videoIsPlaying = true; 
1481
1482            }       
1483        }); 
1484    </script> 
1485<#--/#if --> 
1486</#macro> 
1487<#-- ################################################################################################################## --> 
1488 
1489<#-- ############# Site de Crise - Notícia - Conteúdo da notícia ###################################################### --> 
1490 
1491<#macro renderNewsContent newsInfo> 
1492 
1493    <#assign targetStr = "<div class='paragraph_separator'><span class='dot'></span><span class='dot'></span><span class='dot'></span><span class='dot'></span></div>"> 
1494    <#assign content = newsInfo.newsContent?replace("<p></p>", targetStr, 'r')> 
1495    <#assign content = content?replace("<p> </p>", targetStr, 'r')> 
1496    <#assign content = content?replace("<p></p>", targetStr, 'r')> 
1497    <#assign content = content?replace("<p>&nbsp;</p>", targetStr, 'r')> 
1498  
1499     
1500    <div class="news-content breakpoint"> 
1501				<div class="col-1-12 md-col-1-8 sm-col-1-4"> 
1502					 ${content} 
1503				</div> 
1504 
1505        <div class="audio-template audio-pause audio-unmuted" style="display:none"> 
1506            <div class="audio-button-play">  
1507                <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> 
1508                </svg> 
1509 
1510                <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> 
1511                </svg> 
1512            </div> 
1513            <div class="audio-sondwave">  
1514                <svg class="audio-sondwave-desktop" width="100%" height="100%" viewBox="0 0 590 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1515                    <g clip-path="url(#clip0_2625_8152)"> 
1516                    <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1517                    <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1518                    <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1519                    <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1520                    <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1521                    <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1522                    <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1523                    <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1524                    <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1525                    <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1526                    <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1527                    <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1528                    <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1529                    <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1530                    <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1531                    <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1532                    <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1533                    <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1534                    <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1535                    <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1536                    <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1537                    <line x1="107.072" y1="8.75" x2="107.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1538                    <line x1="112.234" y1="0.75" x2="112.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1539                    <line x1="117.395" y1="7.75" x2="117.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1540                    <line x1="122.557" y1="5.75" x2="122.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1541                    <line x1="127.717" y1="11.75" x2="127.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1542                    <line x1="132.879" y1="9.75" x2="132.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1543                    <line x1="138.041" y1="9.75" x2="138.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1544                    <line x1="142.17" y1="1.75" x2="142.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1545                    <line x1="147.33" y1="12.75" x2="147.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1546                    <line x1="151.75" y1="0.75" x2="151.75" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1547                    <line x1="156.91" y1="7.75" x2="156.91" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1548                    <line x1="162.072" y1="5.75" x2="162.072" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1549                    <line x1="167.234" y1="11.75" x2="167.234" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1550                    <line x1="172.395" y1="9.75" x2="172.395" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1551                    <line x1="177.557" y1="9.75" x2="177.557" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1552                    <line x1="181.686" y1="1.75" x2="181.686" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1553                    <line x1="186.848" y1="12.75" x2="186.848" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1554                    <line x1="192.008" y1="13.75" x2="192.008" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1555                    <line x1="197.17" y1="10.75" x2="197.17" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1556                    <line x1="202.33" y1="8.75" x2="202.33" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1557                    <line x1="207.492" y1="0.75" x2="207.492" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1558                    <line x1="212.652" y1="7.75" x2="212.652" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1559                    <line x1="217.814" y1="5.75" x2="217.814" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1560                    <line x1="222.977" y1="11.75" x2="222.977" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1561                    <line x1="228.137" y1="9.75" x2="228.137" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1562                    <line x1="233.299" y1="9.75" x2="233.299" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1563                    <line x1="237.428" y1="1.75" x2="237.428" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1564                    <line x1="242.588" y1="12.75" x2="242.588" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1565                    <line x1="247.75" y1="13.75" x2="247.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1566                    <line x1="252.91" y1="10.75" x2="252.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1567                    <line x1="258.072" y1="8.75" x2="258.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1568                    <line x1="263.234" y1="0.75" x2="263.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1569                    <line x1="268.395" y1="7.75" x2="268.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1570                    <line x1="273.557" y1="5.75" x2="273.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1571                    <line x1="278.717" y1="11.75" x2="278.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1572                    <line x1="283.879" y1="9.75" x2="283.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1573                    <line x1="289.041" y1="9.75" x2="289.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1574                    <line x1="293.17" y1="1.75" x2="293.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1575                    <line x1="298.33" y1="12.75" x2="298.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1576                    <line x1="302.75" y1="10.75" x2="302.75" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1577                    <line x1="307.912" y1="8.75" x2="307.912" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1578                    <line x1="313.072" y1="0.75" x2="313.072" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1579                    <line x1="318.234" y1="7.75" x2="318.234" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1580                    <line x1="323.395" y1="5.75" x2="323.395" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1581                    <line x1="328.557" y1="11.75" x2="328.557" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1582                    <line x1="333.719" y1="9.75" x2="333.719" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1583                    <line x1="338.879" y1="9.75" x2="338.879" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1584                    <line x1="343.008" y1="1.75" x2="343.008" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1585                    <line x1="348.17" y1="12.75" x2="348.17" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1586                    <line x1="353.33" y1="13.75" x2="353.33" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1587                    <line x1="358.492" y1="10.75" x2="358.492" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1588                    <line x1="363.652" y1="8.75" x2="363.652" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1589                    <line x1="368.814" y1="0.75" x2="368.814" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1590                    <line x1="373.977" y1="7.75" x2="373.977" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1591                    <line x1="379.137" y1="5.75" x2="379.137" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1592                    <line x1="384.299" y1="11.75" x2="384.299" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1593                    <line x1="389.459" y1="9.75" x2="389.459" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1594                    <line x1="394.621" y1="9.75" x2="394.621" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1595                    <line x1="398.75" y1="1.75" x2="398.75" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1596                    <line x1="403.912" y1="12.75" x2="403.912" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1597                    <line x1="408.33" y1="10.75" x2="408.33" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1598                    <line x1="413.492" y1="8.75" x2="413.492" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1599                    <line x1="418.654" y1="0.75" x2="418.654" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1600                    <line x1="423.814" y1="7.75" x2="423.814" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1601                    <line x1="428.977" y1="5.75" x2="428.977" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1602                    <line x1="434.137" y1="11.75" x2="434.137" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1603                    <line x1="439.299" y1="9.75" x2="439.299" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1604                    <line x1="444.461" y1="9.75" x2="444.461" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1605                    <line x1="448.59" y1="1.75" x2="448.59" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1606                    <line x1="453.75" y1="12.75" x2="453.75" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1607                    <line x1="458.912" y1="13.75" x2="458.912" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1608                    <line x1="464.072" y1="10.75" x2="464.072" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1609                    <line x1="469.234" y1="8.75" x2="469.234" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1610                    <line x1="474.395" y1="0.75" x2="474.395" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1611                    <line x1="479.557" y1="7.75" x2="479.557" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1612                    <line x1="484.719" y1="5.75" x2="484.719" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1613                    <line x1="489.879" y1="11.75" x2="489.879" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1614                    <line x1="495.041" y1="9.75" x2="495.041" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1615                    <line x1="500.201" y1="9.75" x2="500.201" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1616                    <line x1="504.33" y1="1.75" x2="504.33" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1617                    <line x1="509.492" y1="12.75" x2="509.492" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1618                    <line x1="513.912" y1="10.75" x2="513.912" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1619                    <line x1="519.072" y1="8.75" x2="519.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1620                    <line x1="524.234" y1="0.75" x2="524.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1621                    <line x1="529.395" y1="7.75" x2="529.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1622                    <line x1="534.557" y1="5.75" x2="534.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1623                    <line x1="539.719" y1="11.75" x2="539.719" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1624                    <line x1="544.879" y1="9.75" x2="544.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1625                    <line x1="550.041" y1="9.75" x2="550.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1626                    <line x1="554.17" y1="1.75" x2="554.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1627                    <line x1="559.332" y1="12.75" x2="559.332" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1628                    <line x1="564.492" y1="13.75" x2="564.492" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1629                    <line x1="569.654" y1="10.75" x2="569.654" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1630                    <line x1="574.814" y1="8.75" x2="574.814" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1631                    <line x1="579.977" y1="0.75" x2="579.977" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1632                    <line x1="585.137" y1="7.75" x2="585.137" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1633                    <line x1="590.299" y1="5.75" x2="590.299" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1634                    </g> 
1635                    <defs> 
1636                    <clipPath id="clip0_2625_8152"> 
1637                    <rect width="590" height="30" fill="white"/> 
1638                    </clipPath> 
1639                    </defs> 
1640                </svg> 
1641                <svg class="audio-sondwave-mobile" width="100%" height="100%" viewBox="0 0 102 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1642                    <g clip-path="url(#clip0_2625_8922)"> 
1643                    <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1644                    <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1645                    <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1646                    <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1647                    <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1648                    <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1649                    <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1650                    <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1651                    <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1652                    <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1653                    <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1654                    <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1655                    <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1656                    <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1657                    <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1658                    <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1659                    <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1660                    <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1661                    <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1662                    <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1663                    <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/> 
1664                    </g> 
1665                    <defs> 
1666                    <clipPath id="clip0_2625_8922"> 
1667                    <rect width="102" height="30" fill="white"/> 
1668                    </clipPath> 
1669                    </defs> 
1670                </svg> 
1671            </div> 
1672            <div class="audio-time paragraph-micro-bold">  </div> 
1673            <div class="audio-button-mute"> 
1674                <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none"> 
1675                    <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"/> 
1676                </svg> 
1677            </div> 
1678        </div> 
1679    </div> 
1680      
1681     
1682    <style> 
1683 
1684        .ptb-news__read-news .news-content p { 
1685            margin-bottom: var(--space-md, 24px); 
1686
1687 
1688        .ptb-news__read-news .news-content strong { 
1689            font-weight: var(--font-weight-bold); 
1690
1691 
1692        .ptb-news__read-news .news-content em { 
1693            font-style: var(--font-style-italic); 
1694
1695 
1696        .ptb-news__read-news .news-content a { 
1697            font-family: var(--font-family-base); 
1698            font-style: var(--font-style-normal, normal); 
1699            font-weight: var(--font-weight-bold, 700); 
1700            font-size: var(--font-size-xs, 18px); 
1701            line-height: var(--line-height-xl, 160%); 
1702 
1703            text-decoration-line: var(--text-decoration-underline, underline); 
1704            color: #008542; 
1705
1706 
1707        body.high-contrast-active .ptb-news__read-news .news-content a { 
1708            color: #E4F7E8; 
1709
1710 
1711        .ptb-news__read-news .news-content ul { 
1712            padding-left: 27px; 
1713            margin-top: -16px; 
1714
1715 
1716        .ptb-news__read-news .news-content ul li::marker { 
1717            content: "■" !important; 
1718            color: var(--color-secondary-medium) !important; 
1719            font-size: var(--size-xxs); 
1720
1721 
1722        .ptb-news__read-news .news-content ul li { 
1723            color: var(--color-text-primary-default); 
1724            padding: 8px 0; 
1725 
1726            /*paragraph-sm-regular*/ 
1727            font-size: var(--font-size-xxs); 
1728            line-height: var(--line-height-xl); 
1729            font-weight: var(--font-weight-regular); 
1730            font-style: var(--font-style-normal); 
1731            text-decoration: var(--text-decoration-none); 
1732 
1733            margin-left: calc(-1* var(--space-sm)); 
1734            padding-left: var(--space-sm); 
1735
1736 
1737        .ptb-news__read-news .news-content ul li * { 
1738            color: var(--color-text-primary-default); 
1739            padding: 8px 0; 
1740 
1741            /*paragraph-sm-regular*/ 
1742            font-size: var(--font-size-xxs); 
1743            line-height: var(--line-height-xl); 
1744            font-weight: var(--font-weight-regular); 
1745            font-style: var(--font-style-normal); 
1746            text-decoration: var(--text-decoration-none); 
1747        }      
1748 
1749				@media screen and (min-width: 1024px) { 
1750						.ptb-news__read-news .news-content > * { 
1751								grid-column-start: 3; 
1752								grid-column-end: 11; 
1753
1754 
1755						<#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" > 
1756									.ptb-news__read-news .news-content > *:has(img) { 
1757											grid-column-start: 2; 
1758											grid-column-end: 12; 
1759
1760
1761 
1762						</#if> 
1763
1764			 
1765        .ptb-news__read-news .news-content figure { 
1766            margin-bottom: var(--space-sm, 16px); 
1767
1768 
1769        .ptb-news__read-news .news-content figure figcaption { 
1770            display: flex; 
1771            justify-content: space-between; 
1772            align-items: flex-start; 
1773            align-self: stretch; 
1774            margin-top: var(--space-xxs, 8px); 
1775            text-align: justify; 
1776
1777 
1778        .ptb-news__read-news .news-content figure figcaption, 
1779        .ptb-news__read-news .news-content figure figcaption * { 
1780            color: var(--color-neutral-700, #525252); 
1781            font-family: var(--font-family-base); 
1782            font-size: var(--font-size-xxxs, 14px); 
1783            font-style: var(--font-style-italic, italic); 
1784            font-weight: var(--font-weight-regular, 400); 
1785            line-height: var(--line-height-xl, 160%); 
1786
1787 
1788        body.high-contrast-active .ptb-news__read-news .news-content figure figcaption, 
1789        body.high-contrast-active .ptb-news__read-news .news-content figure figcaption * { 
1790            color: var(--text-secondary-default, #F8F8F8); 
1791
1792         
1793        .ptb-news__read-news .news-content figure figcaption br { 
1794            display: none; 
1795
1796 
1797        .ptb-news__read-news .news-content .embed-responsive { 
1798            width: 100% !important; 
1799            border-radius: var(--border-radius-md, 16px); 
1800            margin-bottom: var(--space-md, 16px); 
1801
1802 
1803        .ptb-news__read-news .news-content img { 
1804            width: 100%; 
1805					  height: auto; 
1806            object-fit: cover; 
1807            border-radius: var(--border-radius-md, 16px); 
1808
1809 
1810        <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Artigo" > 
1811            .ptb-news__read-news .news-content img  { 
1812                aspect-ratio: 16/9; 
1813
1814        </#if> 
1815 
1816        .ptb-news__read-news .news-content .paragraph_separator { 
1817            display: flex; 
1818            width: 100%; 
1819            height: fit-content; 
1820            justify-content: center; 
1821            gap: 6px; 
1822
1823 
1824        .ptb-news__read-news .news-content .paragraph_separator .dot { 
1825            height: var(--size-micro, 4px); 
1826            width: var(--size-micro, 4px); 
1827            background-color: #959595; 
1828            border-radius: 100%; 
1829            display: inline-block; 
1830
1831 
1832        .ptb-news__read-news .news-content * { 
1833            font-family: var(--font-family-base); 
1834            font-style: var(--font-style-normal, normal); 
1835            font-weight: var(--font-weight-regular, 400); 
1836            font-size: var(--font-size-xs, 18px); 
1837            line-height: var(--line-height-xl, 160%); 
1838            color: var(--color-neutral-800, #373737); 
1839
1840 
1841        body.high-contrast-active .ptb-news__read-news .news-content * { 
1842            color: var(--text-primary-default, var(--color-neutral-100)); 
1843
1844 
1845        .ptb-news__read-news .news-content h1, 
1846        .ptb-news__read-news .news-content h1 *, 
1847        .ptb-news__read-news .news-content h2, 
1848        .ptb-news__read-news .news-content h2 *, 
1849        .ptb-news__read-news .news-content h3, 
1850        .ptb-news__read-news .news-content h3 *, 
1851        .ptb-news__read-news .news-content h4, 
1852        .ptb-news__read-news .news-content h4 *, 
1853        .ptb-news__read-news .news-content h5, 
1854        .ptb-news__read-news .news-content h5 *, 
1855        .ptb-news__read-news .news-content h6, 
1856        .ptb-news__read-news .news-content h6 * { 
1857            color: var(--color-neutral-800, #373737) !important; 
1858
1859 
1860        body.high-contrast-active .ptb-news__read-news .news-content h1, 
1861        body.high-contrast-active .ptb-news__read-news .news-content h1 *, 
1862        body.high-contrast-active .ptb-news__read-news .news-content h2, 
1863        body.high-contrast-active .ptb-news__read-news .news-content h2 *, 
1864        body.high-contrast-active .ptb-news__read-news .news-content h3, 
1865        body.high-contrast-active .ptb-news__read-news .news-content h3 *, 
1866        body.high-contrast-active .ptb-news__read-news .news-content h4, 
1867        body.high-contrast-active .ptb-news__read-news .news-content h4 *, 
1868        body.high-contrast-active .ptb-news__read-news .news-content h5, 
1869        body.high-contrast-active .ptb-news__read-news .news-content h5 *, 
1870        body.high-contrast-active .ptb-news__read-news .news-content h6, 
1871        body.high-contrast-active .ptb-news__read-news .news-content h6 * { 
1872            color: var(--text-primary-default, var(--color-neutral-100)) !important; 
1873
1874 
1875        .ptb-news__read-news .news-content h1:last-child, 
1876        .ptb-news__read-news .news-content h2:last-child, 
1877        .ptb-news__read-news .news-content h3:last-child, 
1878        .ptb-news__read-news .news-content h4:last-child, 
1879        .ptb-news__read-news .news-content h5:last-child, 
1880        .ptb-news__read-news .news-content h5:last-child, 
1881        .ptb-news__read-news .news-content h6:last-child, 
1882        .ptb-news__read-news .news-content p:last-child { 
1883            padding-bottom: 0 !important; 
1884
1885 
1886        .ptb-news__read-news .news-content h1, 
1887        .ptb-news__read-news .news-content h1 * { 
1888            font-size: var(--font-size-xxl) !important; 
1889            line-height: var(--line-height-sm) !important; 
1890            font-weight: var(--font-weight-bold) !important; 
1891            font-style: var(--font-style-normal) !important; 
1892            text-decoration: var(--text-decoration-none) !important; 
1893
1894 
1895        .ptb-news__read-news .news-content h2, 
1896        .ptb-news__read-news .news-content h2 * { 
1897             
1898            font-size: var(--font-size-xl) !important; 
1899            line-height: var(--line-height-sm) !important; 
1900            font-weight: var(--font-weight-bold) !important; 
1901            font-style: var(--font-style-normal) !important; 
1902            text-decoration: var(--text-decoration-none) !important; 
1903 
1904
1905 
1906        .ptb-news__read-news .news-content h2 { 
1907            margin-top: 48px !important; 
1908           margin-bottom: var(--space-xl, 40px) !important; 
1909 
1910
1911 
1912        .ptb-news__read-news .news-content h3, 
1913        .ptb-news__read-news .news-content h3 * { 
1914            font-size: var(--font-size-lg) !important; 
1915            line-height: var(--line-height-sm) !important; 
1916            font-weight: var(--font-weight-bold) !important; 
1917            font-style: var(--font-style-normal) !important; 
1918            text-decoration: var(--text-decoration-none) !important; 
1919
1920 
1921        .ptb-news__read-news .news-content h3 { 
1922            margin-bottom: var(--space-sm, 16px) !important; 
1923            margin-top: 48px !important; 
1924
1925 
1926        .ptb-news__read-news .news-content h4, 
1927        .ptb-news__read-news .news-content h4 * { 
1928            font-size: var(--font-size-md) !important; 
1929            line-height: var(--line-height-md) !important; 
1930            font-weight: var(--font-weight-bold) !important; 
1931            font-style: var(--font-style-normal) !important; 
1932            text-decoration: var(--text-decoration-none) !important; 
1933
1934 
1935        .ptb-news__read-news .news-content h4 { 
1936            margin-top: 48px !important; 
1937            margin-bottom: var(--space-sm, 16px) !important; 
1938
1939 
1940        .ptb-news__read-news .news-content h5, 
1941        .ptb-news__read-news .news-content h5 * { 
1942            font-size: var(--font-size-sm) !important; 
1943            line-height: var(--line-height-md) !important; 
1944            font-weight: var(--font-weight-bold) !important; 
1945            font-style: var(--font-style-normal) !important; 
1946            text-decoration: var(--text-decoration-none) !important; 
1947
1948 
1949        .ptb-news__read-news .news-content h5 { 
1950            margin-top: 48px !important; 
1951            margin-bottom: var(--space-sm, 16px) !important; 
1952
1953 
1954        .ptb-news__read-news .news-content table { 
1955            border-collapse: collapse; 
1956            border: none; 
1957            width: 100% !important; 
1958            margin: 24px 0; 
1959
1960 
1961        .ptb-news__read-news .news-content table * { 
1962            font-size: var(--font-size-xxs, 16px); 
1963            font-style: var(--font-style-normal, normal); 
1964            font-weight: var(--font-weight-regular, 400); 
1965            line-height: var(--line-height-xl, 160%); 
1966            color: var(--color-neutral-800, #373737); 
1967            border: 0; 
1968
1969 
1970        body.high-contrast-active .ptb-news__read-news .news-content table * { 
1971            color: var(--text-primary-default, var(--color-neutral-100)); 
1972
1973 
1974        .ptb-news__read-news .news-content table tbody > :first-child, 
1975        .ptb-news__read-news .news-content table tbody > :first-child * { 
1976            font-weight: var(--font-weight-bold, 700); 
1977            flex: 1 0 0; 
1978            background: var(--background-Surface-level-02, #F8F8F8); 
1979
1980 
1981        body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child, 
1982        body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child * { 
1983            background: #373737; 
1984
1985         
1986        .ptb-news__read-news .news-content table tbody { 
1987            display: flex; 
1988            flex-direction: column; 
1989
1990 
1991        .ptb-news__read-news .news-content table tbody * { 
1992            display: flex; 
1993            height: 100%; 
1994            align-items: center; 
1995            flex: 1 0 0; 
1996
1997	             
1998        .ptb-news__read-news .news-content table tbody tr * {          
1999            padding: 23px var(--space-lg, 32px); 
2000        }	 
2001             
2002 
2003        .ptb-news__read-news .news-content table tbody tr { 
2004            border-radius: var(--border-radius-md); 
2005            border: var(--border-width-hairline, 1px) solid #EEEEEE; 
2006
2007 
2008        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr { 
2009            border: var(--border-width-hairline, 1px) solid #525252; 
2010
2011 
2012        .ptb-news__read-news .news-content table tbody tr:not(:last-child) { 
2013            border-bottom-left-radius: 0; 
2014            border-bottom-right-radius: 0; 
2015
2016 
2017        .ptb-news__read-news .news-content table tbody tr:not(:first-child) { 
2018            border-top-left-radius: 0; 
2019            border-top-right-radius: 0; 
2020            border-top: none; 
2021
2022 
2023        .ptb-news__read-news .news-content table tbody tr td:not(:last-child) { 
2024            border-right: var(--border-width-hairline, 1px) solid #EEEEEE; 
2025
2026 
2027        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr td:not(:last-child) { 
2028            border-right: var(--border-width-hairline, 1px) solid #525252; 
2029
2030 
2031        .ptb-news__read-news .news-content table tbody tr:first-child td { 
2032            border-top: var(--border-width-hairline, 1px) solid #EEEEEE; 
2033            border-bottom: var(--border-width-hairline, 1px) solid #EEEEEE; 
2034
2035 
2036        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr:first-child td { 
2037            border-top: var(--border-width-hairline, 1px) solid #525252; 
2038            border-bottom: var(--border-width-hairline, 1px) solid #525252; 
2039
2040 
2041        .ptb-news__read-news .news-content table tbody tr td:first-child { 
2042            padding-left: 0; 
2043
2044 
2045        .ptb-news__read-news .news-content table tbody tr td:last-child{ 
2046            padding-right: 0; 
2047
2048 
2049        .ptb-news__read-news .news-content audio { 
2050            display: none; 
2051
2052 
2053        .ptb-news__read-news .news-content .audio-template { 
2054            display: flex; 
2055            padding: var(--space-sm, 16px); 
2056            align-items: center; 
2057            gap: var(--space-md, 24px); 
2058            align-self: stretch; 
2059            border-radius: var(--border-radius-lg, 16px); 
2060            border: var(--border-width-hairline, 1px) solid var(--border-color-mid); 
2061            background: var(--background-card-default, #FFF); 
2062            max-height: var(--size-giant, 72px); 
2063            margin: 48px 0; 
2064
2065 
2066        body.high-contrast-active .ptb-news__read-news .news-content .audio-template { 
2067            background: var(--background-card-default, #010101); 
2068            border: var(--border-width-hairline, 1px) solid #525252; 
2069
2070 
2071        .ptb-news__read-news .news-content .audio-template .audio-button-play { 
2072            display: flex; 
2073            width: var(--size-xl, 40px); 
2074            height: var(--size-xl, 40px); 
2075            justify-content: center; 
2076            align-items: center; 
2077            flex-grow: 0; 
2078            flex-shrink: 0; 
2079            cursor: pointer; 
2080
2081 
2082        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon, 
2083        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon { 
2084            fill: #FFFFFF; 
2085
2086 
2087        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon path, 
2088        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon path { 
2089            fill: #010101; 
2090
2091 
2092        .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-play-icon { 
2093            display: block; 
2094
2095 
2096        .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-pause-icon { 
2097            display: none; 
2098
2099 
2100        .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-play-icon { 
2101            display: none; 
2102
2103 
2104        .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-pause-icon { 
2105            display: block; 
2106
2107 
2108        .ptb-news__read-news .news-content .audio-template .audio-sondwave { 
2109            display: flex; 
2110            flex-direction: column; 
2111            align-items: flex-start; 
2112            gap: var(--space-xxs, 8px); 
2113            flex: 1 0 0; 
2114            height: 100%; 
2115            flex-grow: 1; 
2116            flex-shrink: 1; 
2117
2118 
2119        .ptb-news__read-news .news-content .audio-template .audio-sondwave line { 
2120            stroke: #008542; 
2121
2122 
2123        .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active { 
2124            stroke: #90EE90; 
2125
2126 
2127        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line { 
2128            stroke: #E4F7E8; 
2129
2130 
2131        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active { 
2132            stroke: #666666; 
2133
2134 
2135        .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile { 
2136            display: none; 
2137
2138 
2139        .ptb-news__read-news .news-content .audio-template .audio-time { 
2140            display: flex; 
2141            flex-direction: column; 
2142            align-items: flex-start; 
2143            gap: var(--space-xxs, 8px); 
2144            flex: 1 0 0; 
2145            color: var(--text-primary-accent, #008542); 
2146            text-align: center; 
2147            font-family: var(--font-family-base); 
2148            line-height: 124% !important;  
2149            flex-grow: 0; 
2150            flex-shrink: 0; 
2151
2152 
2153        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-time {     
2154            color: var(--text-primary-accent, #E4F7E8); 
2155
2156 
2157        .ptb-news__read-news .news-content .audio-template .audio-button-mute { 
2158            width: var(--size-lg, 32px); 
2159            height: var(--size-lg, 32px); 
2160            flex-grow: 0; 
2161            flex-shrink: 0; 
2162            cursor: pointer; 
2163
2164 
2165        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-mute svg path { 
2166            stroke: white; 
2167            fill: none; 
2168
2169 
2170        .ptb-news__read-news .news-content .audio-template.audio-muted .audio-button-mute { 
2171            opacity: 0.6; 
2172
2173 
2174         
2175        @media screen and (max-width: 1023px) and (min-width: ${MAX_MOBILE_WIDTH}px) { 
2176            .ptb-news__read-news .news-content > * { 
2177                grid-column-start: 1; 
2178                grid-column-end: 9; 
2179            }        
2180
2181         
2182 
2183        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
2184 
2185            .ptb-news__read-news .news-content * { 
2186                font-size: var(--font-size-xxs, 16px); 
2187
2188 
2189             
2190            .ptb-news__read-news .news-content > * { 
2191                grid-column-start: 1; 
2192                grid-column-end: 5; 
2193
2194             
2195 
2196            .ptb-news__read-news .news-content h1, 
2197            .ptb-news__read-news .news-content h1 * { 
2198                font-size: var(--font-size-xl) !important; 
2199                line-height: var(--line-height-sm) !important; 
2200                font-weight: var(--font-weight-bold) !important; 
2201                font-style: var(--font-style-normal) !important; 
2202                text-decoration: var(--text-decoration-none) !important; 
2203 
2204
2205 
2206            .ptb-news__read-news .news-content h2, 
2207            .ptb-news__read-news .news-content h2 * { 
2208                font-size: var(--font-size-lg) !important; 
2209                line-height: var(--line-height-sm) !important; 
2210                font-weight: var(--font-weight-bold) !important; 
2211                font-style: var(--font-style-normal) !important; 
2212                text-decoration: var(--text-decoration-none) !important; 
2213
2214 
2215            .ptb-news__read-news .news-content h2 { 
2216                margin-bottom: var(--space-md, 24px) !important; 
2217
2218 
2219            .ptb-news__read-news .news-content h3, 
2220            .ptb-news__read-news .news-content h3 * { 
2221                font-size: var(--font-size-md) !important; 
2222                line-height: var(--line-height-sm) !important; 
2223                font-weight: var(--font-weight-bold) !important; 
2224                font-style: var(--font-style-normal) !important; 
2225                text-decoration: var(--text-decoration-none) !important; 
2226
2227 
2228            .ptb-news__read-news .news-content h3 { 
2229                margin-top: var(--space-xxs, 8px) !important; 
2230
2231 
2232            .ptb-news__read-news .news-content h4,  
2233            .ptb-news__read-news .news-content h4 * { 
2234                font-size: var(--font-size-sm) !important; 
2235                line-height: var(--line-height-md) !important; 
2236                font-weight: var(--font-weight-bold) !important; 
2237                font-style: var(--font-style-normal) !important; 
2238                text-decoration: var(--text-decoration-none) !important; 
2239
2240 
2241            .ptb-news__read-news .news-content h5, 
2242            .ptb-news__read-news .news-content h5 * { 
2243                font-size: var(--font-size-xs) !important; 
2244                line-height: var(--line-height-md) !important; 
2245                font-weight: var(--font-weight-bold) !important; 
2246                font-style: var(--font-style-normal) !important; 
2247                text-decoration: var(--text-decoration-none) !important; 
2248
2249 
2250            .ptb-news__read-news .news-content figure figcaption { 
2251                flex-direction: column; 
2252                gap: var(--space-xxs, 8px); 
2253
2254 
2255            .ptb-news__read-news .news-content figure figcaption, 
2256            .ptb-news__read-news .news-content figure figcaption * { 
2257                font-size: var(--font-size-micro, 12px); 
2258
2259 
2260            .ptb-news__read-news .news-content table { 
2261                margin-top: var(--space-xxs, 8px); 
2262                margin-bottom: var(--space-lg, 32px); 
2263
2264 
2265            .ptb-news__read-news .news-content table * { 
2266                font-size: var(--font-size-micro, 12px); 
2267                line-height: 19.2%; 
2268
2269 
2270            .ptb-news__read-news .news-content table tbody * { 
2271                height: 43px; 
2272                padding: var(--space-xs, 12px); 
2273
2274 
2275            .ptb-news__read-news .news-content .audio-template { 
2276                margin-top: var(--space-xxs, 8px); 
2277                margin-bottom: var(--space-lg, 32px); 
2278            }            
2279
2280 
2281        @media screen and (max-width: 500px) { 
2282             .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-desktop { 
2283                display: none; 
2284
2285 
2286            .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile { 
2287                display: block; 
2288
2289
2290    </style> 
2291 
2292    <script> 
2293        <#assign configureLinkTab = "configureLinkTab_" + randomNumber(5)> 
2294 
2295        function ${configureLinkTab}() { 
2296            const root = document.querySelector(".ptb-news__read-news"); 
2297            const newsContentElement = root.querySelector(".news-content"); 
2298            const pList = newsContentElement.querySelectorAll("p"); 
2299            pList.forEach((pElement) => { 
2300                const cont = pElement.innerHTML.trim(); 
2301                if (cont == "" || cont == "&nbsp;") { 
2302                    newsContentElement.removeChild(pElement); 
2303
2304            }); 
2305
2306 
2307        ${configureLinkTab}(); 
2308 
2309        <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" > 
2310 
2311            function resizeMediaInfographic() { 
2312                if (window.innerWidth > 1024) { 
2313                    const contents = document.querySelectorAll(".ptb-news__read-news .news-content p"); 
2314                    contents.forEach((content) => {        
2315                        content.querySelector("img") && (content.style.gridColumn = "2 / 12"); 
2316                    }); 
2317
2318                else { 
2319                    const contents = document.querySelectorAll(".ptb-news__read-news .news-content p"); 
2320                    contents.forEach((content) => {        
2321                        content.querySelector("img") && (content.style.gridColumn = ""); 
2322                    }); 
2323 
2324                }           
2325
2326            resizeMediaInfographic(); 
2327        </#if> 
2328 
2329         
2330 
2331        document.addEventListener("DOMContentLoaded", () => { 
2332            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"); 
2333 
2334            headers.forEach((header) => { 
2335                 
2336                const currentLevel = parseInt(header.tagName.charAt(1)); 
2337 
2338                if (currentLevel >= 1 && currentLevel <= 5) { 
2339                     
2340                    const newLevel = currentLevel + 1; 
2341                    const newTagName = "h" + newLevel; 
2342 
2343                    // Criar a nova tag e transferir o conteúdo 
2344                    const newHeader = document.createElement(newTagName); 
2345                    newHeader.innerHTML = header.innerHTML; 
2346 
2347                    // Substituir a tag antiga pela nova 
2348                    header.parentNode.replaceChild(newHeader, header); 
2349
2350            }); 
2351             
2352            <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) /> 
2353                 
2354            <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" > 
2355                resizeMediaInfographic(); 
2356                window.addEventListener("resize", resizeMediaInfographic); 
2357            </#if>           
2358        }); 
2359 
2360        AUI().ready(()=>{ 
2361            const audiosContainer = document.querySelectorAll(".ptb-news__read-news .news-content .audio-content"); 
2362            const audioTemplate = document.querySelector(".ptb-news__read-news .news-content .audio-template"); 
2363 
2364            audiosContainer.forEach((audioContainer)=>{ 
2365                 
2366                const audio = audioContainer.querySelector("audio"); 
2367                const audioInterface = audioTemplate.cloneNode(true); 
2368 
2369                const sondwave = audioInterface.querySelector(".audio-sondwave"); 
2370                const linesDesktop = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-desktop line"); 
2371                const linesMobile = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-mobile line"); 
2372                 
2373                const playPauseButtonAudioInterface = audioInterface.querySelector(".audio-button-play"); 
2374 
2375                playPauseButtonAudioInterface.addEventListener("click", ()=>{ 
2376                    if(audioInterface.classList.contains("audio-play")) { 
2377                        audioInterface.classList.replace("audio-play", "audio-pause"); 
2378                        audio.pause(); 
2379
2380                    else { 
2381 
2382                        audiosContainer.forEach((audioContainer)=>{ 
2383                            const otherAudio = audioContainer.querySelector("audio"); 
2384                            const otherAudioInterface = audioContainer.querySelector(".audio-button-play"); 
2385                            !otherAudio.paused && otherAudioInterface.click(); 
2386                        }); 
2387 
2388                        audioInterface.classList.replace("audio-pause", "audio-play"); 
2389                        audio.play(); 
2390
2391                }); 
2392 
2393                const audioMuteButton = audioInterface.querySelector(".audio-button-mute"); 
2394 
2395                audioMuteButton.addEventListener("click", ()=>{ 
2396                    if(audioInterface.classList.contains("audio-unmuted")) { 
2397                        audioInterface.classList.replace("audio-unmuted", "audio-muted"); 
2398                        audio.muted = true; 
2399
2400                    else { 
2401                        audioInterface.classList.replace("audio-muted", "audio-unmuted"); 
2402                        audio.muted = false; 
2403
2404                }); 
2405 
2406                const audioTime = audioInterface.querySelector(".audio-time"); 
2407                audioTime.textContent = Math.floor(audio.duration / 60) + ":" + Math.floor(audio.duration % 60); 
2408 
2409 
2410                audio.addEventListener("timeupdate", ()=>{ 
2411                    let minutes = Math.floor((audio.duration - audio.currentTime) / 60);  
2412                    let seconds = Math.floor((audio.duration - audio.currentTime) % 60); 
2413 
2414                    minutes = minutes < 10? "0" + minutes : minutes; 
2415                    seconds = seconds < 10? "0" + seconds : seconds; 
2416                     
2417                    audioTime.textContent = minutes + ":" + seconds; 
2418 
2419                    const progress = (audio.currentTime / audio.duration) * 100; 
2420 
2421                    linesDesktop.forEach(function(line, index) { 
2422                        const lineProgress = (index / linesDesktop.length) * 100; 
2423                        if (progress >= lineProgress) { 
2424                            !line.classList.contains("line-active") && line.classList.add("line-active"); 
2425                        } else { 
2426                            line.classList.contains("line-active") && line.classList.remove("line-active"); 
2427
2428                    }); 
2429 
2430                    linesMobile.forEach(function(line, index) { 
2431                        const lineProgress = (index / linesMobile.length) * 100; 
2432                        if (progress >= lineProgress) { 
2433                            !line.classList.contains("line-active") && line.classList.add("line-active"); 
2434                        } else { 
2435                            line.classList.contains("line-active") && line.classList.remove("line-active"); 
2436
2437                    });                    
2438                }); 
2439 
2440                
2441                sondwave.addEventListener("click", (event)=>{                     
2442                    const distanceLeft = (event.clientX - sondwave.getBoundingClientRect().left)/sondwave.offsetWidth; 
2443                    audio.currentTime = audio.duration * distanceLeft; 
2444                }); 
2445                
2446                audioInterface.style.display = ""; 
2447                audioContainer.appendChild(audioInterface); 
2448            }); 
2449 
2450        }); 
2451    </script> 
2452</#macro> 
2453 
2454<#macro renderShareAndCopyNews> 
2455    <#--        <div class="share_news_container">--> 
2456        <div class="social-media-container"> 
2457 
2458            <#assign emailMsg = "Veja o conteúdo do post no link "> 
2459            <#if locale == "en_US"> 
2460                <#assign emailMsg = "See the content of the post in the link "> 
2461            </#if> 
2462            <a class="social-media-share" href="mailto:?subject=${newsInfo.mainHeadlineOfTheNews}&amp;body=${emailMsg}${newsInfo.url}" 
2463                target="_blank"> 
2464                <svg class="email" width="37" height="36" viewBox="0 0 37 36" fill="none" 
2465                        xmlns="http://www.w3.org/2000/svg"> 
2466                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
2467                    <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" 
2468                            fill="#008542"/> 
2469                </svg> 
2470                <span >send e-mail</span> 
2471            </a> 
2472 
2473            <a class="social-media-share"  href="https://www.facebook.com/sharer/sharer.php?u=${newsInfo.url}" target="_blank"> 
2474                <svg class="facebook" width="37" height="36" viewBox="0 0 37 36" fill="none" 
2475                        xmlns="http://www.w3.org/2000/svg"> 
2476                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
2477                    <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" 
2478                            fill="#008542"/> 
2479                </svg> 
2480                    <span >Facebook</span> 
2481            </a> 
2482 
2483            <#assign mobileShareButtonId = "mobile-share-" + randomNumber(5)> 
2484            <div class="mobile-share" id="${mobileShareButtonId}"> 
2485                <svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg"> 
2486                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
2487                    <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" 
2488                            fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
2489                    <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" 
2490                            fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
2491                    <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" 
2492                            fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
2493                    <path d="M20.2546 14.0784L15.9036 16.8879" stroke="#008542" stroke-linecap="round" 
2494                            stroke-linejoin="round"/> 
2495                    <path d="M15.9036 19.4871L20.2546 22.2966" stroke="#008542" stroke-linecap="round" 
2496                            stroke-linejoin="round"/> 
2497                </svg> 
2498            </div> 
2499 
2500            <a class="social-media-share"  href="https://twitter.com/intent/tweet?url=${newsInfo.url}" target="_blank" data-size="large"> 
2501                <svg class="twitter" width="37" height="36" viewBox="0 0 37 36" fill="none" 
2502                        xmlns="http://www.w3.org/2000/svg"> 
2503                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
2504                    <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"/> 
2505                </svg> 
2506                        <span >twitter</span> 
2507            </a> 
2508 
2509            <a class="social-media-share"  href="https://api.whatsapp.com/send?text=${newsInfo.url}" data-action="share/whatsapp/share" 
2510                target="_blank"> 
2511                <svg class="whatsapp" width="37" height="36" viewBox="0 0 37 36" fill="none" 
2512                        xmlns="http://www.w3.org/2000/svg"> 
2513                    <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
2514                    <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" 
2515                            fill="#008542"/> 
2516                    <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" 
2517                            fill="white"/> 
2518                </svg> 
2519                <span >Share to WhatsApp </span> 
2520            </a> 
2521 
2522            <div class="copy-text-container"> 
2523                <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 
2524                    <path d="M10.5 10.5H13.5V2.5H5.5V5.5" stroke="#008542" stroke-linecap="round" 
2525                            stroke-linejoin="round"/> 
2526                    <path d="M10.5 5.5H2.5V13.5H10.5V5.5Z" stroke="#008542" stroke-linecap="round" 
2527                            stroke-linejoin="round"/> 
2528                </svg> 
2529 
2530                <#if locale == "pt_BR"> 
2531                    <p class="text">Copiar texto <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p> 
2532                <#else > 
2533                    <p class="text">Copy text <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p> 
2534                </#if> 
2535            </div> 
2536 
2537        </div> 
2538 
2539        <#if locale == "pt_BR"> 
2540            <span class="copy-message">Texto copiado!</span> 
2541        <#else > 
2542            <span class="copy-message">Text copied!</span> 
2543        </#if> 
2544    <#--        </div>--> 
2545</#macro> 
2546 
2547<#-- ################################################################################################################## --> 
2548 
2549<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# --> 
2550<#macro renderLinks newsInfo> 
2551    <#if newsInfo.links?size != 0> 
2552    <#--videos "escondidos" que serão unidos a .ptb-news__read-content --> 
2553 
2554        <div class="ptb-news__links-container d-none "> 
2555            <div id="ptb-news__links-identifiers"> 
2556                <#assign separator = ""> 
2557                <#list newsInfo.links as link> 
2558                    ${link.id}; 
2559                    <#assign separator = ";"> 
2560                </#list> 
2561            </div> 
2562            <#list newsInfo.links as link> 
2563                <#assign link_index = link?index> 
2564                <#assign linkUrl = "#"> 
2565                <#assign target = "_blank"> 
2566                <#assign linkClass = ""> 
2567 
2568                <div id="ptb-news__link-container-${link_index}"> 
2569                    <#if link.externalLink?has_content> 
2570                        <#assign linkUrl = link.externalLink> 
2571                        <#assign target = "_blank"> 
2572                        <#assign linkClass = "external-link"> 
2573                    <#elseif link.pageLink?has_content> 
2574                        <#assign linkUrl = link.pageLink> 
2575                        <#assign target = "_self"> 
2576                        <#assign linkClass = "internal-page-link"> 
2577                    <#elseif link.file.mimeType?has_content> 
2578                        <#assign linkUrl = link.file.url> 
2579                        <#assign target = "_blank"> 
2580                        <#assign linkClass = "file-link"> 
2581                    </#if> 
2582 
2583                    <#-- PDF icon --> 
2584                    <#if link.iconType == "Opção78730408" > 
2585                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
2586                             xmlns="http://www.w3.org/2000/svg"> 
2587                            <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" 
2588                                  fill="#008542"/> 
2589                            <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" 
2590                                  fill="#008542"/> 
2591                            <path d="M17.2695 20.654V11.894H22.2735V13.358H18.9735V15.59H21.9015V17.054H18.9735V20.654H17.2695Z" 
2592                                  fill="#008542"/> 
2593                            <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" 
2594                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
2595                                  stroke-linejoin="round"/> 
2596                        </svg> 
2597 
2598                    <#-- JPG icon --> 
2599                    <#elseif link.iconType == "Opção89889679" > 
2600                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
2601                             xmlns="http://www.w3.org/2000/svg"> 
2602                            <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" 
2603                                  fill="#008542"/> 
2604                            <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" 
2605                                  fill="#008542"/> 
2606                            <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" 
2607                                  fill="#008542"/> 
2608                            <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" 
2609                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
2610                                  stroke-linejoin="round"/> 
2611                        </svg> 
2612                    <#-- DOC icon --> 
2613                    <#elseif link.iconType == "Opção15480314" > 
2614                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
2615                             xmlns="http://www.w3.org/2000/svg"> 
2616                            <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" 
2617                                  fill="#008542"/> 
2618                            <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" 
2619                                  fill="#008542"/> 
2620                            <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" 
2621                                  fill="#008542"/> 
2622                            <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" 
2623                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
2624                                  stroke-linejoin="round"/> 
2625                        </svg> 
2626                    <#-- External link icon --> 
2627                    <#elseif link.iconType == "Opção43823553" > 
2628                        <svg width="24" height="24" viewBox="0 0 32 32" fill="none" 
2629                             xmlns="http://www.w3.org/2000/svg"> 
2630                            <path opacity="0.98" 
2631                                  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" 
2632                                  stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
2633                        </svg> 
2634                    <#-- Internal page link icon --> 
2635                    <#elseif link.iconType == "Opção64212757" > 
2636                    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#008542" viewBox="0 0 256 256"> 
2637                        <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"> 
2638                        </path> 
2639                    </svg> 
2640                    <#-- Download link icon --> 
2641                    <#elseif link.iconType == "Opção20766606" > 
2642                        <svg width="24" height="24" viewBox="0 0 32 32" fill="none" 
2643                             xmlns="http://www.w3.org/2000/svg"> 
2644                            <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" 
2645                                  stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
2646                        </svg> 
2647                    </#if> 
2648<#if link.title?? && link.title?has_content> 
2649                    <a href="${linkUrl}" class="link ${linkClass}" target="${target}">${link.title}</a> 
2650	</#if> 
2651                </div> 
2652            </#list> 
2653        </div> 
2654 
2655        <script> 
2656            var newsContent_code = document.querySelector(".news-content").innerHTML; 
2657 
2658            var linksIdentifiers = document.querySelector("#ptb-news__links-identifiers").innerHTML.trim().split(";"); 
2659            linksIdentifiers.forEach((linkIdentifier, index) => { 
2660                const linkIdentifierContent = document.querySelector("#ptb-news__link-container-" + index); 
2661                if (linkIdentifierContent) { 
2662                    const tag = "#[" + linkIdentifier.trim() + "]"; 
2663                    const splitContent = newsContent_code.split(tag); 
2664                    newsContent_code = splitContent.join(linkIdentifierContent.innerHTML); 
2665                    //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent); 
2666
2667            }); 
2668 
2669 
2670            var ptb_news__read_content = document.querySelector(".news-content"); 
2671            ptb_news__read_content.innerHTML = newsContent_code; 
2672             
2673            const links_ptb_news = document.querySelectorAll(".news-content a"); 
2674            links_ptb_news.forEach((link) => { 
2675                link.classList.add("link-ptb-news"); 
2676            }); 
2677 
2678        </script> 
2679 
2680        <style> 
2681            .ptb-news__read-news .ptb-news__link a { 
2682                font-family: var(--font-family-base); 
2683                font-style: var(--font-style-normal, normal); 
2684                font-weight: var(--font-weight-bold, 700); 
2685                font-size: var(--font-size-xxs, 16px); 
2686                line-height: var(--line-height-xl, 160%); 
2687                text-decoration-line: var(--text-decoration-underline, underline); 
2688                color: #008542; 
2689
2690 
2691            body.high-contrast-active .ptb-news__read-news .ptb-news__link a { 
2692                color: #E4F7E8; 
2693            }           
2694 
2695            .ptb-news__read-news .news-content .link { 
2696                font-family: var(--font-family-base); 
2697                font-style: var(--font-style-normal, normal); 
2698                font-weight: var(--font-weight-bold, 700); 
2699                font-size: var(--font-size-xs, 18px); 
2700                line-height: var(--line-height-xl, 160%); 
2701 
2702                text-decoration-line: var(--text-decoration-underline, underline); 
2703                color: #008542; 
2704
2705 
2706            body.high-contrast-active .ptb-news__read-news .news-content .link { 
2707                color: #E4F7E8; 
2708
2709 
2710            body.high-contrast-active .ptb-news__read-news .news-content svg path { 
2711                stroke: var(--color-neutral-500, #D7D7D7); 
2712                fill: rgba(255, 255, 255, 0.32); 
2713
2714 
2715            .ptb-news__read-news .news-content .ptb-link__wrapper { 
2716                display: flex; 
2717                flex-direction: column; 
2718                gap: 0; 
2719                margin-top: -24px; 
2720
2721 
2722            .ptb-news__read-news .news-content .ptb-link__wrapper svg { 
2723                margin-right: var(--space-sm, 16px); 
2724
2725 
2726            .ptb-news__read-news .news-content .ptb-link__wrapper .first { 
2727                gap: 0 !important; 
2728
2729 
2730            @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
2731                .ptb-news__read-news .news-content .link { 
2732                    font-size: var(--font-size-xxs, 16px); 
2733
2734
2735        </style> 
2736    </#if> 
2737</#macro> 
2738 
2739<#-- ################################################################################################################## --> 
2740 
2741<#-- ################################################################################################################## --> 
2742 
2743<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# --> 
2744<#macro renderCite> 
2745    <div class="ptb-news__cite-container"> 
2746        <div class="ptb-news__cite-container-breakpoint breakpoint"> 
2747            <div class="ptb-news__cite-container-col col-1-12 md-col-1-8 sm-col-1-4"> 
2748                <div class="ptb-news__cite-title"> 
2749                    <#if locale?lower_case == "pt_br"> 
2750                        Notas 
2751                    <#else> 
2752                        Notes 
2753                    </#if> 
2754                </div> 
2755 
2756                <div class="ptb-news__cites-elements"> 
2757                </div> 
2758            </div> 
2759        </div> 
2760    </div> 
2761 
2762    <script> 
2763        function positionCitesText(parentNodeCitesText) { 
2764             
2765            parentNodeCitesText.forEach((parentNodeCiteText)=>{ 
2766                if(window.innerWidth > 1024) { 
2767                    parentNodeCiteText.style.display=""; 
2768                    parentNodeCiteText.style.gridColumnStart = "11"; 
2769                    parentNodeCiteText.style.gridColumnEnd = "13"; 
2770                }  
2771                else { 
2772                    parentNodeCiteText.style.display="none"; 
2773                    parentNodeCiteText.style.gridColumnStart = ""; 
2774                    parentNodeCiteText.style.gridColumnEnd = "";                  
2775
2776            }); 
2777
2778 
2779        function addCitesTextMobile(citesText) { 
2780            const citesContainer = document.querySelector(".ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements"); 
2781 
2782            if(citesContainer.children.length === 0) { 
2783                citesContainer && citesText.forEach((citeText)=>{                         
2784                    citesContainer.appendChild(citeText.cloneNode(true)); 
2785                }); 
2786            }         
2787
2788 
2789        const citesText = document.querySelectorAll(".news-content cite"); 
2790         
2791        if (citesText.length > 0) { 
2792            const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode); 
2793            positionCitesText(parentNodeCitesText); 
2794            addCitesTextMobile(citesText);     
2795
2796        else { 
2797            const citesContainer = document.querySelector(".ptb-news__cite-container"); 
2798            citesContainer && (citesContainer.style.display="none"); 
2799
2800         
2801        document.addEventListener('DOMContentLoaded', ()=>{ 
2802             
2803            const citesText = document.querySelectorAll(".news-content cite"); 
2804             
2805            if (citesText.length > 0) { 
2806                const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode);            
2807 
2808                positionCitesText(parentNodeCitesText); 
2809                addCitesTextMobile(citesText); 
2810 
2811                window.addEventListener('resize', ()=>{positionCitesText(parentNodeCitesText)}); 
2812
2813            else { 
2814                const citesContainer = document.querySelector(".ptb-news__cite-container"); 
2815                citesContainer && (citesContainer.style.display="none"); 
2816
2817        }); 
2818 
2819    </script> 
2820 
2821    <style> 
2822     
2823        .ptb-news__read-news-post cite { 
2824            color: var(--color-neutral-800, #373737); 
2825            font-family: var(--font-family-base); 
2826            font-size: var(--font-size-xxxs, 14px) !important; 
2827            font-style: var(--font-style-normal, normal); 
2828            font-weight: var(--font-weight-regular, 400); 
2829            line-height: var(--line-height-xl, 160%); 
2830
2831 
2832        .ptb-news__read-news-post cite  a{ 
2833            font-size: var(--font-size-xxxs, 14px) !important; 
2834
2835 
2836        body.high-contrast-active .ptb-news__read-news-post cite { 
2837        color: var(--text-primary-default, var(--color-neutral-100)); 
2838        }  
2839 
2840        .ptb-news__read-news-post .news-content cite, 
2841        .ptb-news__read-news-post .ptb-news__cite-container cite { 
2842            display: block; 
2843            padding-left: var(--space-md); 
2844            border-left: var(--border-width-hairline, 1px) solid var(--color-neutral-500, #D7D7D7); 
2845
2846 
2847        @media screen and (min-width: 1025px) { 
2848            .ptb-news__read-news-post .ptb-news__cite-container { 
2849                display: none;                
2850            }         
2851
2852 
2853        @media screen and (max-width: 1025px) { 
2854            .ptb-news__read-news .ptb-news__cite-container .link { 
2855                text-decoration-line: var(--text-decoration-underline, underline); 
2856                color: #008542; 
2857
2858 
2859            body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container .link { 
2860                color: #E4F7E8; 
2861
2862 
2863            body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container svg path { 
2864                stroke: var(--color-neutral-500, #D7D7D7); 
2865                fill: rgba(255, 255, 255, 0.32); 
2866
2867             
2868            .ptb-news__read-news-post .ptb-news__cite-container { 
2869                display: grid; 
2870                background: var(--background-surface-level-03, #EEE); 
2871
2872 
2873            body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container { 
2874                background: var(--background-surface-level-03, #525252); 
2875
2876 
2877            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col { 
2878                padding: var(--space-xxl) 0; 
2879                display: flex; 
2880                flex-direction: column; 
2881                gap: var(--space-lg, 32px); 
2882
2883 
2884            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements { 
2885                display: flex; 
2886                flex-direction: column; 
2887                gap: var(--space-lg, 32px);  
2888            }       
2889 
2890            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title { 
2891                color: var(--color-neutral-800, #373737); 
2892                font-size: var(--font-size-sm, 20px); 
2893                font-style: var(--font-style-normal, normal); 
2894                font-weight: var(--font-weight-bold, 700); 
2895                line-height: var(--line-height-xl, 160%); 
2896
2897 
2898            body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title { 
2899                color: var(--text-primary-default, var(--color-neutral-100)); 
2900
2901        }         
2902    </style> 
2903     
2904</#macro> 
2905 
2906<#-- ################################################################################################################## --> 
2907 
2908 
2909<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### --> 
2910<#macro renderGallery newsInfo> 
2911    <#if newsInfo.galleryItems?size == 0> 
2912        <#return /> 
2913    </#if> 
2914 
2915    <div class="gallery-breakpoint breakpoint"> 
2916        <div class="gallery col-3-11 md-col-1-8 sm-col-1-4"> 
2917 
2918            <div class="title-container"> 
2919                <svg class="icon" viewBox="0 0 26 23" fill="none" xmlns="http://www.w3.org/2000/svg"> 
2920                    <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" 
2921                            stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
2922                    <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" 
2923                            stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
2924                </svg> 
2925                <p class="title"> 
2926                    <#if locale == "pt_BR"> Galeria de Imagens <#else > Image gallery </#if> 
2927                </p> 
2928            </div> 
2929 
2930            <div class="image-container"> 
2931                <#list newsInfo.galleryItems as gItem> 
2932                    <div class="modal-image-fragment"> 
2933                        <div class="modal-image-container"> 
2934                            <span class="click-image" ></span> 
2935 
2936                            <div class="image-player-container"> 
2937                                <span class="close-image"> 
2938                                    <svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> 
2939                                        <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"/> 
2940                                        <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"/> 
2941                                    </svg> 
2942                                </span> 
2943                                <div class="image-player-session"> 
2944                                    <#-- Midias adaptativas de imagem para desktop e mobile --> 
2945                                    <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${gItem.image.fileEntryId}") /> 
2946                                    <#assign urlAdaptativeMediaMobile = gItem.image.url/> 
2947                                    <#assign urlAdaptativeMediaDesktop = gItem.image.url/> 
2948                                     
2949                                    <#if fileDataRequest?? && fileDataRequest.adaptedImages?? > 
2950                                        <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
2951                                        <#list dataAdaptativeMedia as data> 
2952                                            <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
2953                                                <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
2954                                            </#if> 
2955                                            <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
2956                                                <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
2957                                            </#if>      
2958                                        </#list> 
2959                                    </#if> 
2960 
2961                                    <picture > 
2962                                        <source media="(max-width:767px)" srcset="${urlAdaptativeMediaMobile}"> 
2963                                        <img width="274px" height="152px" loading="lazy" src="${urlAdaptativeMediaDesktop}" alt="${gItem.image.alt}"/> 
2964                                    </picture>		 
2965                                </div> 
2966                            </div> 
2967                        </div> 
2968                    </div> 
2969                     
2970                </#list> 
2971            </div> 
2972        </div> 
2973    </div> 
2974 
2975    <style> 
2976 
2977        .ptb-news__read-news .gallery { 
2978            padding-top: 42px; 
2979
2980 
2981        .ptb-news__read-news .gallery * { 
2982            margin: 0; 
2983            padding: 0; 
2984
2985 
2986        .ptb-news__read-news .gallery { 
2987            display: flex; 
2988            gap: var(--space-xl, 40px); 
2989            flex-direction: column; 
2990
2991 
2992        .ptb-news__read-news .gallery .title-container { 
2993            display: flex; 
2994            align-items: center; 
2995            gap: var(--space-sm, 16px); 
2996
2997 
2998        .ptb-news__read-news .gallery .title-container svg { 
2999            width: var(--size-md, 24px); 
3000            height: 21px; 
3001
3002 
3003        .ptb-news__read-news .gallery .title-container .title { 
3004            color: var(--color-neutral-800, #373737); 
3005            font-family: var(--font-family-base); 
3006            font-size: var(--font-size-lg); 
3007            font-style: var(--font-style-normal); 
3008            font-weight: var(--font-weight-bold); 
3009            line-height: var(--line-height-md); 
3010
3011 
3012        body.high-contrast-active .ptb-news__read-news .gallery .title-container .title { 
3013            color: var(--color-neutral-100); 
3014
3015 
3016        .ptb-news__read-news .gallery .image-container { 
3017            display: flex; 
3018            gap: var(--space-sm, 16px); 
3019            flex-wrap: wrap; 
3020
3021 
3022         .ptb-news__read-news .gallery .image-container .modal-image-fragment { 
3023            width: inherit; 
3024            height: inherit; 
3025            max-height: calc(100vw/2); 
3026            padding: 0; 
3027            margin: 0; 
3028            overflow: hidden; 
3029
3030 
3031        .ptb-news__read-news .gallery .image-container .modal-image-fragment * { 
3032            box-sizing: border-box; 
3033            margin: 0; 
3034            padding: 0; 
3035
3036 
3037        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container { 
3038            width: 100%; 
3039            height: inherit; 
3040            display: flex; 
3041            justify-content: center; 
3042            align-items: center; 
3043            cursor: pointer; 
3044            position: relative; 
3045
3046 
3047        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing {     
3048            position: fixed; 
3049            top: 0; 
3050            left: 0; 
3051            width: 100vw !important; 
3052            height: 100vh !important; 
3053            z-index: 9999 !important; 
3054            background-color: rgba(0, 0, 0, 0.75); 
3055            max-height: 100vh; 
3056
3057 
3058        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .click-image { 
3059            height: 100%; 
3060            width: 100%; 
3061            position: absolute; 
3062            z-index: 3; 
3063
3064 
3065        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container { 
3066            width: 100%; 
3067            height: 100%; 
3068
3069 
3070        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing { 
3071            position: relative; 
3072            width: 90vw !important; 
3073            height: 80vh !important; 
3074            z-index: 9999 !important; 
3075            background-color: rgba(0, 0, 0, 0.75); 
3076            border-radius: var(--border-radius-card); 
3077
3078 
3079        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image { 
3080            display: none; 
3081            position: absolute; 
3082            top: 0; 
3083	        right: 0; 
3084            transform: translate(100%, -100%); 
3085            z-index: 99999; 
3086
3087 
3088        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) { 
3089           fill: var(--background-Surface-level-01, #010101); 
3090
3091 
3092        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) { 
3093           stroke: #E4F7E8; 
3094
3095 
3096        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image.image-active { 
3097            display: block; 
3098
3099 
3100        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session { 
3101            width: 100%; 
3102            height: 100%; 
3103
3104 
3105        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session { 
3106            width: 90vw !important; 
3107            height: 80vh !important; 
3108            z-index: 9999 !important; 
3109            background-color: rgba(0, 0, 0, 0.75); 
3110            border-radius: var(--border-radius-card); 
3111            overflow: hidden; 
3112
3113 
3114        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session img { 
3115            object-fit: cover; 
3116
3117 
3118        .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session img { 
3119            width: 100%; 
3120            height: 100%; 
3121            margin-left: 0 !important; 
3122            max-height: 100vh; 
3123
3124 
3125        .ptb-news__read-news .gallery .image-container img { 
3126            width: 274px; 
3127            height: 152px; 
3128            border-radius: var(--border-radius-md, 8px); 
3129            cursor: pointer; 
3130
3131 
3132        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
3133 
3134            .ptb-news__read-news .gallery { 
3135                padding-top: var(--space-xl, 40px); 
3136
3137 
3138            .ptb-news__read-news .gallery .image-container { 
3139                gap: var(--space-xxs, 8px); 
3140
3141 
3142            .ptb-news__read-news .gallery .image-container img { 
3143                width: 296px; 
3144                height: 180px; 
3145
3146 
3147            .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing { 
3148                transform: rotate(90deg); 
3149                transform-origin: center; 
3150                width: 80vh !important; 
3151                height: 90vw !important; 
3152
3153 
3154            .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing img{ 
3155                cursor: pointer; 
3156
3157 
3158            .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session { 
3159                width: 80vh !important; 
3160                height: 90vw !important; 
3161
3162
3163 
3164    </style> 
3165 
3166    <script> 
3167        const allModalImagesFragment = document.querySelectorAll(".ptb-news__read-news .gallery .modal-image-fragment"); 
3168        allModalImagesFragment.forEach((modalImageFragment)=>{ 
3169            const getImageClick = modalImageFragment.querySelector('.click-image'); 
3170            const imageContainer = modalImageFragment.querySelector('.modal-image-container'); 
3171            const imagePlayerContainer = modalImageFragment.querySelector('.image-player-container'); 
3172 
3173            const image = imagePlayerContainer.querySelector('img'); 
3174            const closeImage = imagePlayerContainer.querySelector('.close-image'); 
3175            const body = document.body; 
3176 
3177            const toTopButton = document.querySelector(".fragment_88038 .petro-button"); 
3178 
3179            const stopImage= () => { 
3180                getImageClick.classList.toggle('image-playing'); 
3181                imagePlayerContainer.classList.toggle('image-playing'); 
3182                imageContainer.classList.toggle('image-playing'); 
3183                closeImage.classList.toggle('image-active'); 
3184                body.style.overflow = 'initial'; 
3185
3186 
3187            const playImage = () => { 
3188                getImageClick.classList.toggle('image-playing'); 
3189                imagePlayerContainer.classList.toggle('image-playing'); 
3190                imageContainer.classList.toggle('image-playing'); 
3191                closeImage.classList.toggle('image-active') 
3192                 
3193                body.style.overflow = 'hidden'; 
3194
3195 
3196            getImageClick.addEventListener('click', () => { 
3197                if (document.body.classList.contains('has-edit-mode-menu')) { 
3198                    return; 
3199
3200                if (imagePlayerContainer.classList.contains('image-playing')) { 
3201                    toTopButton && (toTopButton.style.zIndex = ""); 
3202                    stopImage(); 
3203                } else { 
3204                    playImage(); 
3205                    toTopButton && (toTopButton.style.zIndex = "1"); 
3206
3207            }) 
3208 
3209            closeImage.addEventListener('click', () => { 
3210                if (imagePlayerContainer.classList.contains('image-playing')) { 
3211                    toTopButton && (toTopButton.style.zIndex = ""); 
3212                    stopImage(); 
3213                }  
3214            }) 
3215        });             
3216    </script> 
3217 
3218</#macro> 
3219 
3220 
3221<#-- ################################################################################################################## --> 
3222	 
3223	 
3224	 
3225	 
3226	 
3227	 
3228	 
3229	 
3230	 
3231	 
3232	 
3233	 
3234	 
3235	<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### --> 
3236<#macro renderQuotes newsInfo> 
3237    <#if newsInfo.quotes?size != 0> 
3238    <#--quotes "escondidas" que serão unidas a .ptb-news__read-content --> 
3239 
3240        <div class="ptb-news__quotes-container d-none "> 
3241            <div id="ptb-news__quotes-identifiers"> 
3242                <#assign separator = ""> 
3243                <#list newsInfo.quotes as quote> 
3244                    ${quote.id}; 
3245                    <#assign separator = ";"> 
3246                </#list> 
3247            </div> 
3248            <#list newsInfo.quotes as quote> 
3249                <#assign quotes_index = quote?index> 
3250                <div id="ptb-news__quotes-container-${quote_index}"> 
3251                    <#assign noAuthorWrapper = !((quote.image.url?? && quote.image.url?has_content) || (quote.author?has_content)) /> 
3252                    <div class="quote <#if noAuthorWrapper>no-author-wrapper</#if>"> 
3253                        <div class="text-wrapper"> 
3254                            <blockquote class="text">${quote.content}</blockquote > 
3255                        </div> 
3256                        <#if !noAuthorWrapper>   
3257                            <div class="author-wrapper"> 
3258                                <#if quote.image.url?? && quote.image.url?has_content> 
3259                                    <#assign imageUrl = "/o/adaptive-media/image/" + quote.image.fileEntryId +"/Thumbnail-300x300/image"/> 
3260                                    <img src="${imageUrl}" loading="lazy" alt="${quote.image.alt}">		 
3261                                </#if> 
3262                                <#if quote.author?? && quote?has_content>                             
3263                                    <p class="author">${quote.author}</p> 
3264                                </#if> 
3265                            </div> 
3266                        </#if> 
3267                    </div> 
3268                </div> 
3269            </#list> 
3270        </div> 
3271 
3272        <script> 
3273            var newsContent_code = document.querySelector(".news-content").innerHTML; 
3274 
3275            var quotesIdentifiers = document.querySelector("#ptb-news__quotes-identifiers").innerHTML.trim().split(";"); 
3276            quotesIdentifiers.forEach((quoteIdentifier, index) => { 
3277                const quoteIdentifierContent = document.querySelector("#ptb-news__quotes-container-" + index); 
3278                if (quoteIdentifierContent) { 
3279                    const tag = "#[" + quoteIdentifier.trim() + "]"; 
3280                    const splitContent = newsContent_code.split(tag); 
3281                    newsContent_code = splitContent.join(quoteIdentifierContent.innerHTML); 
3282                    //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent); 
3283
3284            }); 
3285 
3286 
3287            var ptb_news__read_content = document.querySelector(".news-content"); 
3288            ptb_news__read_content.innerHTML = newsContent_code; 
3289 
3290        </script> 
3291 
3292        <style> 
3293            
3294            .ptb-news__read-news .quote { 
3295                display: flex; 
3296                flex-direction: column; 
3297                gap: var(--space-md, 24px); 
3298
3299 
3300            .ptb-news__read-news .quote.no-author-wrapper{ 
3301                gap: 0; 
3302
3303 
3304            .ptb-news__read-news .quote .text-wrapper { 
3305                padding-left: var(--space-xl, 40px); 
3306
3307 
3308            .ptb-news__read-news .quote .text-wrapper .text { 
3309                font-style: var(--font-style-italic) !important; 
3310                padding-left: var(--space-md, 24px); 
3311                margin-bottom: 0; 
3312                border-left: 1px solid var(--border-color-mid, #d7d7d7); 
3313							  font-size: var(--font-size-xxs, 16px); 
3314
3315 
3316            .ptb-news__read-news .quote .author-wrapper {  
3317                display: flex; 
3318                flex-direction: row; 
3319                gap: var(--space-md, 24px); 
3320
3321 
3322            .ptb-news__read-news .news-content .quote .author-wrapper img { 
3323                height: var(--size-xxxl, 56px); 
3324                width: var(--size-xxxl, 56px); 
3325                border-radius: 100px; 
3326                border: var(--size-nano, 2px) solid var(--border-color-mid) !important; 
3327
3328 
3329            .ptb-news__read-news .news-content .quote .author-wrapper p { 
3330                margin: 0; 
3331                align-self: center; 
3332                font-size: var(--font-size-xs, 18px); 
3333                font-style: var(--font-style-normal, normal); 
3334                font-weight: var(--font-weight-bold, 700); 
3335                line-height: var(--line-height-xs, 100%); 
3336
3337 
3338            @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
3339                .ptb-news__read-news .quote .text-wrapper { 
3340                    padding-left: 0; 
3341
3342							 
3343							  .ptb-news__read-news .quote .text-wrapper .text { 
3344							      font-size: var(--font-size-xxxs, 14px); 
3345
3346 
3347                .ptb-news__read-news .news-content .quote .author-wrapper p { 
3348                    font-size: var(--font-size-xxs, 16px); 
3349
3350
3351        </style> 
3352    </#if> 
3353</#macro> 
3354 
3355 
3356					 
3357					 
3358<#-- ################################################################################################################## --> 
3359	 
3360	 
3361	 
3362	 
3363	 
3364	 
3365 
3366 
3367<#-- ############# Site de Crise - Notícia - Extrair dados de Notícias ################################################ --> 
3368<#-- 
3369Add elements from the sidebar to define your template. Type "${" to use the 
3370autocomplete feature. 
3371--> 
3372<#function extractFeaturedNewsHeadline fieldList xmlArticle> 
3373    <#return getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia")> 
3374</#function> 
3375 
3376<#function extractNewsSummary fieldList xmlArticle> 
3377    <#return getFieldValue(fieldList, xmlArticle, "Resumo da notícia")> 
3378</#function> 
3379 
3380<#function extractPublishDate journalArticle> 
3381    <#assign lastPublishDate = journalArticle.getModifiedDate()> 
3382    <#if journalArticle.getLastPublishDate()??> 
3383        <#assign lastPublishDate = journalArticle.getLastPublishDate()> 
3384    <#else> 
3385        <#assign lastPublishDate = journalArticle.getModifiedDate()> 
3386    </#if> 
3387    <#return lastPublishDate /> 
3388</#function> 
3389 
3390 
3391 
3392<#-- Seção da imagem de destaque ----------------------------------------------------------------------> 
3393<#function extractNewsMedia fieldList xmlArticle  fileEntryService> 
3394    <#-- Tentando pegar Imagem --> 
3395    <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) /> 
3396    <#assign media = {} /> 
3397    <#list mediasGroup as mediaGroup > 
3398        <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) />  
3399        <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "fileEntryId" : media.fileEntryId} /> 
3400 
3401        <#-- Se não tiver imagem, tentar pegar vídeo --> 
3402        <#if !media.imageSrc?has_content>               
3403            <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") /> 
3404            <#if youtubeID?? && youtubeID?has_content>  
3405                <#assign media = {"videoYotubeID": youtubeID} /> 
3406            <#else> 
3407                <#-- Tentar pegar vídeo Interno --> 
3408                <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) /> 
3409                <#if internalVideo?? && internalVideo?has_content> 
3410                    <#assign media = {"internalVideo": internalVideo} /> 
3411                </#if> 
3412            </#if>          
3413        </#if> 
3414 
3415        <#assign referenceMediasGroup = getNodes(getIdFromFieldName(fieldList, "Referências"), mediaGroup) /> 
3416        <#list referenceMediasGroup as referenciaMediaGroup > 
3417            <#assign credits = getFieldValue(fieldList, referenceMediasGroup, "Crédito da mídia de destaque da notícia") /> 
3418            <#assign legend = getFieldValue(fieldList, referenceMediasGroup, "Legenda da mídia de destaque da notícia") /> 
3419        </#list> 
3420 
3421        <#assign media = media + {"credits": credits, "legend": legend} /> 
3422         
3423    </#list> 
3424 
3425    <#return media> 
3426</#function> 
3427 
3428 
3429<#--------------------- Renderização de Lista de Cards -----------------------------------------------> 
3430 
3431<#-- Root Css -> Para poder instanciar dois elementos e não dar confusão no JS --> 
3432<#assign rootCss = "card-news-list-container_" + randomNumber(4586) /> 
3433 
3434<#attempt> 
3435    <#assign ourEnergyStyles = [] /> 
3436    <#list ourEnergyVocabulary.getCategories() as ourEnergyCategory > 
3437        <#assign shadowColorCategory = "" /> 
3438        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra")??)> 
3439            <#assign categoryShadowColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra") /> 
3440            <#assign shadowColorCategory = categoryShadowColorByService.value /> 
3441        </#if> 
3442 
3443        <#assign backgroundColorCategory = "" /> 
3444        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo")??)> 
3445            <#assign categoryBackgroundColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo") /> 
3446            <#assign backgroundColorCategory = categoryBackgroundColorByService.value /> 
3447        </#if> 
3448 
3449        <#assign textColorCategory = "" /> 
3450        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto")??)> 
3451            <#assign categoryTextColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto") /> 
3452            <#assign textColorCategory = categoryTextColorByService.value /> 
3453        </#if> 
3454 
3455        <#assign textColorHighContrastCategory = "" /> 
3456        <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste")??)> 
3457            <#assign categoryTextColorHighContrastByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste") /> 
3458            <#assign textColorHighContrastCategory = categoryTextColorHighContrastByService.value /> 
3459        </#if> 
3460 
3461        <#assign ourEnergyStyles += [{"titleLocale": ourEnergyCategory.getTitle(locale),"shadowColor": shadowColorCategory, "backgroundColor": backgroundColorCategory, "textColor": textColorCategory, "textColorHighContrast": textColorHighContrastCategory}] /> 
3462    </#list> 
3463 
3464    <#recover> 
3465        <#assign ourEnergyStyles = [] /> 
3466     
3467</#attempt> 
3468 
3469<#-- Função para obter a primeira categoria associonada a um Vocabulário o qual está associado a um Jornal Article --> 
3470<#function getFirstCategoryTitleLocaleOfVocabulary journalArticle vocabulary > 
3471    <#attempt> 
3472        <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) /> 
3473         
3474        <#list categories as category> 
3475            <#if vocabulary.getVocabularyId() == category.getVocabularyId()> 
3476                <#return category.getTitle(locale)> 
3477            </#if> 
3478        </#list> 
3479 
3480        <#return ""> 
3481 
3482        <#recover> 
3483            <#return "" /> 
3484 
3485    </#attempt> 
3486</#function> 
3487 
3488<#-- Função para obter os dados de um card no Web Content (Journal Article) --> 
3489<#function getDataForCard entry > 
3490    <#attempt> 
3491        <#assign journalArticle = journalArticleLocalService.getLatestArticle(entry.getClassPK()) /> 
3492        <#assign ddmStructure = journalArticle.getDDMStructure() /> 
3493        <#assign fieldList = getFieldListByStructure(ddmStructure) /> 
3494        <#assign xmlArticle = journalArticle.getDocument().getRootElement() /> 
3495 
3496        <#-- Tentando pegar Imagem --> 
3497        <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) /> 
3498        <#assign media = "" /> 
3499        <#list mediasGroup as mediaGroup > 
3500            <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) /> 
3501 
3502            <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${media.fileEntryId}") /> 
3503 
3504            <#assign urlAdaptativeMediaDesktop = ""/> 
3505            <#assign urlAdaptativeMediaMobile = ""/> 
3506            <#if media.url?? && media.url?has_content && fileDataRequest?? && fileDataRequest.adaptedImages?? > 
3507                <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
3508                <#list dataAdaptativeMedia as data> 
3509                    <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
3510                        <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
3511                    </#if> 
3512                    <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
3513                        <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
3514                    </#if>      
3515                </#list> 
3516            </#if> 
3517            <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "imageFileEntryId": media.fileEntryId, "urlAdaptativeMedia": {"mobile": urlAdaptativeMediaMobile, "desktop": urlAdaptativeMediaDesktop}} />  
3518             
3519            <#-- Se não tiver imagem, tentar pegar vídeo --> 
3520            <#if !media.imageSrc?? || !media.imageSrc?has_content>               
3521                <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") /> 
3522                <#if youtubeID?? && youtubeID?has_content>  
3523                    <#assign media = {"videoYotubeID": youtubeID} /> 
3524                <#else> 
3525                    <#-- Tentar pegar vídeo Interno --> 
3526                    <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) /> 
3527                    <#if internalVideo?? && internalVideo?has_content> 
3528                        <#assign media = {"internalVideo": internalVideo} /> 
3529                    </#if> 
3530                </#if>          
3531            </#if> 
3532        </#list> 
3533 
3534        <#assign title = getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia") /> 
3535 
3536        <#assign timeRead = getFieldValue(fieldList, xmlArticle, "Tempo de Leitura") /> 
3537 
3538        <#assign ourEnergyCategory = getFirstCategoryTitleLocaleOfVocabulary(entry, ourEnergyVocabulary) /> 
3539 
3540        <#assign typeOfNews = getFirstCategoryTitleLocaleOfVocabulary(entry, typeOfNewsVocabulary) /> 
3541 
3542        <#if themeDisplay.getPortalURL()?contains("webserver")> 
3543					<#assign urlNews = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + journalArticle.getUrlTitle()> 
3544				<#else> 
3545						<#assign urlNews = themeDisplay.getPortalURL() + "/w/" + journalArticle.getUrlTitle()> 
3546				</#if> 
3547         
3548        <#assign cardData = {"media": media, "title": title, "timeRead": timeRead, "ourEnergyCategory": ourEnergyCategory, "typeOfNews": typeOfNews, "urlNews": urlNews} /> 
3549         
3550        <#return cardData> 
3551 
3552        <#recover> 
3553            <#return {} /> 
3554    </#attempt> 
3555 
3556    <#-- cardData ->    image: url, alt 
3557                        title 
3558                        timeRead 
3559                        ourEnergyCategory 
3560                        typeOfNews 
3561                        urlNews 
3562    --> 
3563</#function> 
3564 
3565 
3566<#-- Macro para renderizar os arrows--> 
3567<#macro renderArrows> 
3568    <div class="card-news-list-arrows-breakpoint breakpoint"> 
3569        <div class="card-news-list-arrows col-11-12 md-col-7-8 sm-col-1-4"> 
3570            <div class="card-news-arrow-left arrow-disable">  
3571                <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3572                    <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"/> 
3573                    <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"/> 
3574                </svg> 
3575            </div> 
3576            <div class="card-news-arrow-right">  
3577                <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3578                    <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"/> 
3579                    <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"/> 
3580                </svg> 
3581 
3582            </div> 
3583        </div> 
3584    </div> 
3585 
3586    <style> 
3587 
3588        .${rootCss} .card-news-list-arrows-breakpoint { 
3589            position: relative; 
3590            z-index: 1; 
3591
3592 
3593        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows { 
3594            display: flex; 
3595            align-items: flex-start; 
3596            justify-self: flex-end; 
3597            gap: var(--space-xxs, 8px); 
3598
3599         
3600        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left, 
3601        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right { 
3602            cursor: pointer; 
3603
3604 
3605        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(1), 
3606        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(1) { 
3607            fill: rgb(0, 133, 66); 
3608
3609 
3610        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), 
3611        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) { 
3612            fill: white; 
3613
3614 
3615        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(2), 
3616        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(2) { 
3617            stroke: #fff; 
3618
3619 
3620        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), 
3621        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) { 
3622            stroke: #010101; 
3623
3624 
3625        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable, 
3626        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable { 
3627            opacity: 0.4; 
3628            cursor: auto; 
3629
3630 
3631        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path, 
3632        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path { 
3633            stroke: rgb(0, 133, 66); 
3634            transition: all 300ms ease-in-out; 
3635
3636 
3637        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path, 
3638        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path { 
3639            stroke: rgba(228, 247, 232, 1); 
3640
3641 
3642        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1), 
3643        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) { 
3644            stroke: rgb(149, 149, 149); 
3645
3646 
3647        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1), 
3648        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) { 
3649            stroke: rgba(215, 215, 215, 1); 
3650
3651 
3652        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2), 
3653        .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) { 
3654            stroke: rgb(82, 82, 82); 
3655
3656 
3657        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2), 
3658        body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) { 
3659            stroke: rgba(149, 149, 149, 1); 
3660
3661 
3662        @media screen and (min-width: 1440px) { 
3663            .${rootCss} .card-news-list-arrows-breakpoint { 
3664                width: 100%; 
3665
3666
3667 
3668        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
3669 
3670            .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows { 
3671                justify-self: flex-start; 
3672                margin-top: var(--space-lg); 
3673
3674
3675 
3676    </style> 
3677 
3678</#macro> 
3679 
3680 
3681<#-- Macro para renderizar um Card --> 
3682<#macro renderCard cardData> 
3683    <#-- cardData ->    image: url, alt 
3684                        title 
3685                        timeRead 
3686                        ourEnergyCategory 
3687                        typeOfNews 
3688                        urlNews 
3689    --> 
3690 
3691    <div class="card-news-container"> 
3692        <a class="news-page-see-more-link card-news-link" href="${cardData.urlNews}">  Link da Notícia ${cardData.title}  </a> 
3693        <div class="card-news-thumb"> 
3694            <#assign noImage = "" /> 
3695            <#if cardData.media.imageSrc?? && cardData.media.imageSrc?has_content> 
3696                <#assign imageSrcDesktop = cardData.media.imageSrc /> 
3697                <#assign imageSrcMobile = cardData.media.imageSrc /> 
3698                <#if cardData.media.urlAdaptativeMedia?? && cardData.media.urlAdaptativeMedia?has_content> 
3699                    <#assign imageSrcDesktop = cardData.media.urlAdaptativeMedia.desktop /> 
3700                    <#assign imageSrcMobile = cardData.media.urlAdaptativeMedia.mobile /> 
3701                </#if> 
3702                <picture > 
3703                    <source media="(max-width:767px)" srcset="${imageSrcMobile}"> 
3704                    <img class="card-news-image" loading="lazy" src="${imageSrcDesktop}" alt="${cardData.media.imageAlt}"/> 
3705                </picture>		 
3706            <#else> 
3707                <#if cardData.media.videoYotubeID?? && cardData.media.videoYotubeID?has_content> 
3708                <picture > 
3709                    <source media="(max-width:767px)" srcset="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/mqdefault.jpg"> 
3710                    <img class="card-news-image" loading="lazy" src="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/maxresdefault.jpg" alt="YouTube Thumbnail"/> 
3711                </picture>  
3712                <#else> 
3713                    <#if (cardData.media.internalVideo?? && cardData.media.internalVideo.url?has_content) > 
3714                        <video class="card-news-image" loading="lazy"> 
3715                            <source src="${cardData.media.internalVideo.url}"> 
3716                            Your browser does not support the video tag. 
3717                        </video> 
3718                    <#else> 
3719                        <#assign noImage = "no-image" /> 
3720                    </#if> 
3721                </#if> 
3722                <svg class="thumb-play-icon" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3723                    <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"/> 
3724                    <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"/> 
3725                </svg>        
3726            </#if>         
3727        </div> 
3728         
3729        <div class="card-news-category-container ${noImage}">  
3730            <div data-category="${cardData.ourEnergyCategory}" class="card-news-category paragraph-micro-regular"> ${cardData.ourEnergyCategory} </div> 
3731        </div>  
3732 
3733        <div class="card-news-text-content ${noImage}">  
3734            <div class="card-news-title h5"> ${cardData.title} </div> 
3735 
3736             <div class="card-news-info">  
3737                <div class="card-news-type">  
3738                    <#if getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default(""))?? > 
3739												<#assign postTypeIconUrl = getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default("")) /> 
3740												<img src="${postTypeIconUrl}" loading="lazy" alt="post type icon" /> 
3741                        <div class="card-news-type-text paragraph-micro-regular">${cardData.typeOfNews}</div> 
3742												<#else/> 
3743                            <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3744                                <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"/> 
3745                            </svg>										 
3746                            <div class="card-news-type-text paragraph-micro-regular">Artigo</div> 
3747										</#if> 
3748                </div> 
3749 
3750								<#if cardData.timeRead?? && cardData.timeRead?has_content> 
3751									<div class="card-news-time-read">  
3752											<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"> 
3753													<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"/> 
3754											</svg> 
3755 
3756											<div class="card-news-time-read-text paragraph-micro-regular">${cardData.timeRead} min</div> 
3757									</div> 
3758								</#if> 
3759            </div> 
3760        </div> 
3761    </div> 
3762</#macro> 
3763 
3764<style> 
3765    .${rootCss} .card-news-container { 
3766        width: 300px; 
3767        height: 370px; 
3768        display: flex; 
3769        flex-direction: column; 
3770        flex-shrink: 0; 
3771        align-items: flex-start; 
3772        border-radius: var(--border-radius-lg); 
3773        border: var(--border-width-hairline) solid var(--border-card-default, #EEE); 
3774        background: var(--background-surface-level-01, #FFF); 
3775        box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
3776        overflow: hidden; 
3777        scroll-snap-align: start; 
3778        cursor: pointer; 
3779        transition: border 300ms ease-in-out; 
3780        text-decoration: none; 
3781        position: relative; 
3782
3783 
3784    body.high-contrast-active .${rootCss} .card-news-container {      
3785        border: var(--border-width-hairline) solid var(--border-card-default, #525252); 
3786        background: var(--background-surface-level-01, #010101); 
3787
3788 
3789    .${rootCss} .card-news-container:hover { 
3790        border: var(--border-width-hairline) solid rgb(0, 133, 66); 
3791
3792 
3793    body.high-contrast-active .${rootCss} .card-news-container:hover { 
3794        border: var(--border-width-hairline) solid var(--border-card-default, #E4F7E8); 
3795
3796 
3797    .${rootCss} .card-news-container .card-news-link { 
3798        position: absolute; 
3799        top: 0; 
3800        width: 100%; 
3801        height: 100%; 
3802        z-index: 1; 
3803        opacity: 0; 
3804
3805 
3806    .${rootCss} .card-news-container .card-news-thumb { 
3807        position: relative; 
3808
3809 
3810    .${rootCss} .card-news-container .card-news-image { 
3811        width: 298px; 
3812        height: 168px; 
3813        object-fit: cover; 
3814
3815 
3816 
3817    .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon { 
3818        position: absolute; 
3819        left: 50%; 
3820        top: 50%; 
3821        transform: translate(-50%, -50%); 
3822
3823 
3824    body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(1) { 
3825        fill: black;   
3826
3827 
3828    body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(2) { 
3829        fill: white;   
3830
3831 
3832    .${rootCss} .card-news-container .card-news-category-container { 
3833        position: relative; 
3834
3835 
3836    .${rootCss} .card-news-container .card-news-category-container .card-news-category { 
3837        display: flex; 
3838        justify-content: center; 
3839        align-items: center;  
3840        padding: var(--space-micro) var(--space-xs); 
3841        position: absolute; 
3842        z-index: 2; 
3843        left: var(--space-md); 
3844        top: -13px; 
3845        border-radius: var(--border-radius-pill); 
3846        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); 
3847        box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10); 
3848        line-height: var(--line-height-lg, 144%); 
3849        color: var(--default-sup-green-water, #006B65); 
3850			  white-space: nowrap; 
3851
3852 
3853    body.high-contrast-active .${rootCss} .card-news-container .card-news-category-container .card-news-category { 
3854        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); 
3855        color: var(--default-sup-green-water, #99E0DD);  
3856
3857 
3858    .${rootCss} .card-news-container .card-news-category-container.no-image .card-news-category { 
3859        position: relative; 
3860        top: 0; 
3861        left: 0; 
3862        margin-left: var(--space-md); 
3863        margin-top: var(--space-md); 
3864
3865 
3866    .${rootCss} .card-news-container .card-news-text-content { 
3867        display: flex; 
3868        padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px); 
3869        flex-direction: column; 
3870        justify-content: space-between; 
3871        align-items: flex-start; 
3872        flex: 1 0 0; 
3873        align-self: stretch; 
3874
3875 
3876    .${rootCss} .card-news-container .card-news-text-content.no-image { 
3877        padding-top: var(--space-sm); 
3878
3879 
3880    .${rootCss} .card-news-container .card-news-text-content .card-news-title { 
3881        display: -webkit-box; 
3882        -webkit-box-orient: vertical; 
3883        -webkit-line-clamp: 4; 
3884        align-self: stretch; 
3885        overflow: hidden; 
3886        color: var(--text-primary-default, #373737); 
3887        text-overflow: ellipsis; 
3888        margin: 0; 
3889
3890 
3891    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-title { 
3892        color: var(--text-primary-default, #FFF); 
3893
3894 
3895    .${rootCss} .card-news-container .card-news-text-content .card-news-info { 
3896        display: flex; 
3897        align-items: center; 
3898        align-content: center; 
3899        gap: var(--space-sm, 16px); 
3900        align-self: stretch; 
3901        flex-wrap: wrap; 
3902
3903 
3904    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type, 
3905    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read { 
3906        display: flex; 
3907        align-items: center; 
3908        gap: var(--space-xxs, 8px); 
3909
3910 
3911    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type path { 
3912        stroke: #D7D7D7; 
3913
3914 
3915    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text, 
3916    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
3917        color: var(--text-tertiary-default, #959595); 
3918        line-height: var(--line-height-lg, 144%); 
3919
3920 
3921    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text, 
3922    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
3923        color: var(--text-tertiary-default, #EEE); 
3924
3925 
3926    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-icon-time-read { 
3927        transform: translateY(-0.5px); 
3928
3929 
3930    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 { 
3931        fill: #D7D7D7; 
3932
3933</style> 
3934 
3935<#assign maxNumberOfCards = 9/> 
3936<#assign className = "com.liferay.journal.model.JournalArticle" /> 
3937<#assign classNameId = PortalUtil.getClassNameId(className) /> 
3938${AssetEntryQuery.setClassNameIds([classNameId]) } 
3939${AssetEntryQuery.setEnd(maxNumberOfCards)} 
3940 
3941<#assign entries = []/> 
3942<#assign ourEnergyCategoriesIds = getAllCategoryIdOfVocabulary(assetEntry, ourEnergyVocabulary) /> 
3943<#list ourEnergyCategoriesIds as ourEnergyCategoryId> 
3944    ${AssetEntryQuery.setAllCategoryIds([ourEnergyCategoryId])} 
3945    <#assign ents = AssetEntryQueryService.getEntries(AssetEntryQuery) /> 
3946    <#assign entries = entries + ents /> 
3947</#list> 
3948 
3949 
3950<#-- Renderizar Lista de cards --> 
3951<#if entries?has_content> 
3952    <div class="${rootCss}"> 
3953        <div class="list-of-news-title breakpoint"> 
3954            <div class="list-of-news-title-col col-1-12 md-col-1-8 sm-col-1-4"> 
3955                <div class="list-title fragment_85017"> 
3956                    <div class="petro-title"> 
3957                        <h2 id="title" class="display-sm" style="color: var(--color-neutral-800)"> 
3958                            <#if locale?lower_case == "pt_br"> Leia também <#else> Read also </#if> 
3959                        </h2> 
3960                             
3961                        <div class="yellow-bar bar-display-sm" style="background-color: var(--color-secondary-medium)"></div> 
3962                     
3963                    </div> 
3964                </div> 
3965            </div>  
3966        </div> 
3967 
3968        <@renderArrows /> 
3969         
3970        <div class="card-news-list-breakpoint breakpoint"> 
3971            <div class="card-news-list col-1-12 md-col-1-8 sm-col-1-4">  
3972                <#if entries?size gt maxNumberOfCards> 
3973                    <#assign entries = entries[0..maxNumberOfCards] /> 
3974                </#if> 
3975                <#list entries as entry> 
3976                    <#if assetEntry.getClassPK() != entry.getClassPK() > 
3977                        <#assign cardData = getDataForCard(entry) /> 
3978                        <@renderCard cardData/> 
3979                    </#if> 
3980                </#list> 
3981            </div> 
3982        </div>   
3983    </div> 
3984</#if> 
3985 
3986 
3987<style> 
3988 
3989    .portlet { 
3990        margin: 0; 
3991
3992     
3993    .${rootCss} { 
3994        padding: var(--space-giant, 80px) 0; 
3995        background: var(--background-surface-level-01, #FFF); 
3996        width: 100%; 
3997        position: relative; 
3998        font-family: var(--font-family-base, "Petrobras Sans"); 
3999        display: flex; 
4000        flex-direction: column; 
4001        gap: var(--space-lg); 
4002
4003 
4004    body.high-contrast-active .${rootCss} { 
4005        background: var(--background-surface-level-01, #010101); 
4006
4007 
4008    .${rootCss} .list-of-news-title { 
4009        position: relative; 
4010        z-index: 1; 
4011
4012 
4013    .${rootCss} body.high-contrast-active .fragment_614685 .petro-title .yellow-bar { 
4014        background-color: #FFEEB3 !important; 
4015
4016 
4017    .${rootCss} .card-news-list { 
4018        display: flex; 
4019        gap: var(--space-lg); 
4020        overflow: auto; 
4021        position: relative; 
4022        z-index: 1; 
4023        scroll-snap-type: x mandatory; 
4024        scrollbar-width: none; 
4025
4026 
4027    .${rootCss} .card-news-list::-webkit-scrollbar { 
4028        display: none; 
4029
4030 
4031    @media screen and (min-width: 1440px) { 
4032        .${rootCss} .card-news-list-breakpoint { 
4033            width: 100%;            
4034
4035 
4036        .${rootCss} .list-of-news-title { 
4037            width: 100%; 
4038
4039
4040 
4041    @media screen and (max-width: 1024px) { 
4042        .${rootCss} .fragment_614685 { 
4043            padding: var(--space-xxl, 56px) 0; 
4044
4045
4046    
4047</style> 
4048 
4049<#list ourEnergyStyles as ourEnergyStyle> 
4050    <style> 
4051        .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] { 
4052            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; 
4053            box-shadow: 0px 2px 6px 0px #${ourEnergyStyle.shadowColor} !important; 
4054            color: #${ourEnergyStyle.textColor} !important; 
4055
4056 
4057        body.high-contrast-active .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] { 
4058             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; 
4059            color: #${ourEnergyStyle.textColorHighContrast} !important; 
4060
4061 
4062    </style> 
4063</#list> 
4064 
4065<script> 
4066 
4067    function disableEnableArrow(arrow, scrollBar, maxDistance, direction) 
4068
4069        if(direction === "left") { 
4070            if (scrollBar.scrollLeft > 0) { 
4071                arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable"); 
4072
4073            else { 
4074                !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable"); 
4075
4076        }  
4077        else if(direction === "right") { 
4078            if (Math.ceil(scrollBar.scrollLeft + scrollBar.clientWidth) < maxDistance) { 
4079                arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable"); 
4080
4081            else { 
4082                !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable"); 
4083
4084
4085
4086 
4087    function scrollCarousel() 
4088
4089        const root = document.querySelector(".${rootCss}"); 
4090        if(root) { 
4091            const scrollBar = root.querySelector(".${rootCss} .card-news-list"); 
4092            const gap = 32;// var(--space-lg); 
4093            const stepLength = scrollBar.querySelector(".card-news-container").offsetWidth + gap; 
4094            const arrowLeftBtn = root.querySelector(".card-news-arrow-left") 
4095            const arrowRightBtn = root.querySelector(".card-news-arrow-right") 
4096 
4097            let maxDistance = scrollBar.scrollWidth; 
4098 
4099            arrowLeftBtn.addEventListener('click', () => { 
4100                if (scrollBar.scrollLeft > 0) { 
4101                    scrollBar.scroll({ 
4102                        left: scrollBar.scrollLeft - stepLength, 
4103                        behavior: "smooth", 
4104                    });	 
4105
4106            }); 
4107 
4108            arrowRightBtn.addEventListener('click', () => { 
4109                if (scrollBar.scrollLeft < maxDistance) { 
4110                    scrollBar.scroll({ 
4111                        left: scrollBar.scrollLeft + stepLength, 
4112                        behavior: "smooth", 
4113                    }); 
4114
4115            }); 
4116             
4117            scrollBar.addEventListener("scroll", ()=>{ 
4118                disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left"); 
4119                disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right"); 
4120            }); 
4121 
4122            disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left"); 
4123            disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right"); 
4124 
4125        }        
4126
4127 
4128    document.addEventListener('DOMContentLoaded', scrollCarousel); 
4129 
4130</script> 
4131	 
4132<style> 
4133 
4134 
4135.ptb-news__read-news .news-content .embed-responsive-youtube::before { 
4136    padding-top: 0; 
4137
4138	 
4139.ptb-news__read-news .news-content .embed-responsive-liferay::before { 
4140    padding-top: calc(9/16 *100% - 64px); 
4141
4142 
4143.ptb-news__read-news .news-content .thumnail-play-button { 
4144
4145 
4146.ptb-news__read-news .news-content .thumnail-play-button { 
4147    position: relative; 
4148    z-index: 100; 
4149    height: 64px; 
4150    width: 64px; 
4151    background-repeat: no-repeat; 
4152    top: calc(50%); 
4153    left: calc(50% - 32px); 
4154
4155	 
4156	 
4157.ptb-news__read-news .news-content .thumnail-play-button-youtube { 
4158    position: absolute; 
4159    z-index: 100; 
4160    height: 64px; 
4161    width: 64px; 
4162    background-repeat: no-repeat; 
4163    top: calc(50% - 64px); 
4164    left: calc(50% - 32px); 
4165
4166 
4167.ptb-news__read-news .news-content .thumnail-play-button-liferay { 
4168    position: relative; 
4169    z-index: 100; 
4170    height: 64px; 
4171    width: 64px; 
4172    top: calc(-50% + 32px); 
4173    left: calc(50% - 32px); 
4174    background-repeat: no-repeat; 
4175
4176 
4177	 
4178	.ptb-news__read-news .news-content .embed-responsive-youtube img { 
4179	width: 100%; 
4180		height: 100%; 
4181
4182	 
4183</style> 
4184 
4185	<script> 
4186	<#assign createYoutubeThumbnails = "createYoutubeThumbnails_"+ randomNumber(5952) />  
4187	 
4188	function ${createYoutubeThumbnails}(){ 
4189 
4190        const newsContent = document.querySelector(".news-content"); 
4191 
4192        const getYoutubeId = (youtubeUrl) => { 
4193 
4194            const url = new URL(youtubeUrl); 
4195            const splittedPathName = url.pathname.split("/"); 
4196 
4197            if (splittedPathName.length <= 0){ 
4198                return ""; 
4199
4200 
4201            return splittedPathName[splittedPathName.length-1]; 
4202        }; 
4203		 
4204		    window.addEventListener("resize", (event) => { 
4205				const iframeList = newsContent.querySelectorAll('iframe'); 
4206           iframeList.forEach((iframe) => { 
4207                const src = iframe.src; 
4208                if (!src){ 
4209                    return; 
4210
4211 
4212                const isYoutube = src.toLowerCase().includes("youtube"); 
4213                if (!isYoutube){ 
4214                    return; 
4215
4216						  
4217						    const iframeParent = iframe.parentNode; 
4218						  
4219						    const thumbnail = iframeParent.querySelector("img"); 
4220                if (thumbnail){ 
4221					         // thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px"; 
4222
4223				   }); 
4224				 
4225				}); 
4226         
4227        const iframeList = newsContent.querySelectorAll('iframe'); 
4228        iframeList.forEach((iframe) => { 
4229                const src = iframe.src; 
4230                if (!src){ 
4231                    return; 
4232
4233 
4234                const isYoutube = src.toLowerCase().includes("youtube"); 
4235                if (!isYoutube){ 
4236                    return; 
4237
4238 
4239                const iframeParent = iframe.parentNode; 
4240 
4241                const thumbnail = document.createElement("img"); 
4242                thumbnail.src = 'https://img.youtube.com/vi/' + getYoutubeId(src) +'/hqdefault.jpg'; 
4243                thumbnail.alt = "Youtube"; 
4244					      //thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px"; 
4245 
4246                const playButton = document.createElement("div"); 
4247                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")'; 
4248                playButton.classList.add("thumnail-play-button-youtube"); 
4249                const children = iframeParent.children; 
4250 
4251                if (children.length > 0) { 
4252                    iframeParent.insertBefore(thumbnail, children.firstChild); 
4253                    iframeParent.insertBefore(playButton, thumbnail); 
4254                    iframe.classList.add("hide"); 
4255                    iframeParent.classList.add("embed-responsive-youtube"); 
4256
4257 
4258                playButton.addEventListener("click", () => { 
4259                    thumbnail.click(); 
4260                }); 
4261 
4262                thumbnail.addEventListener("click", () => { 
4263                    thumbnail.classList.add("hide"); 
4264                    playButton.classList.add("hide"); 
4265                    iframe.classList.remove("hide"); 
4266                    iframeParent.classList.remove("embed-responsive-youtube"); 
4267                    const url = new URL(src); 
4268                    const searchParams = url.searchParams; 
4269                    searchParams.set("rel", "0"); 
4270                    //searchParams.set("modestbranding", "0"); 
4271                    //searchParams.set("mute", "0"); 
4272                    //searchParams.set("color", "white"); 
4273                    searchParams.set("controls", "1"); 
4274                    //searchParams.set("playsinline", "1"); 
4275                    //searchParams.set("enablejsapi", "1"); 
4276                    searchParams.set("autoplay", "1"); 
4277                    //searchParams.set("logo", "0"); 
4278                 
4279                    console.log(url.toString()); 
4280 
4281                    iframeParent.setAttribute("data-embed-id", url.toString()); 
4282                    iframe.setAttribute("src", url.toString()); 
4283                }); 
4284        }); 
4285  
4286
4287		 
4288	${createYoutubeThumbnails}(); 
4289		 
4290    <#assign createLRThumbnails = "createLRThumbnails"+ randomNumber(5952) />  
4291	 
4292	function ${createLRThumbnails}(){ 
4293 
4294        const newsContent = document.querySelector(".news-content"); 
4295        const iframeList = newsContent.querySelectorAll("iframe[data-video-liferay]"); 
4296 
4297        iframeList.forEach(iframe => {                       
4298 
4299            const playButton = document.createElement("div"); 
4300            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")'; 
4301            playButton.classList.add("thumnail-play-button-liferay"); 
4302            const children = iframe.parentNode.children; 
4303            if (children.length > 0) {                
4304                iframe.parentNode.insertBefore(playButton, children.firstChild);                 
4305
4306 
4307            iframe.addEventListener("load", () => { 
4308                if (iframe.contentDocument){ 
4309                    const video = iframe.contentDocument.body.querySelector("video"); 
4310                    video.removeAttribute("controls"); 
4311
4312            }); 
4313					 
4314					iframe.parentNode.classList.add("embed-responsive-liferay"); 
4315             
4316 
4317            playButton.addEventListener("click", () => { 
4318                playButton.classList.add("hide"); 
4319                playButton.classList.remove("thumnail-play-button-liferay");     
4320							iframe.parentNode.classList.remove("embed-responsive-liferay"); 
4321                if (iframe.contentDocument){ 
4322                    const video = iframe.contentDocument.body.querySelector("video"); 
4323                    video.setAttribute("controls", ""); 
4324                    video.play(); 
4325
4326            }); 
4327        }); 
4328
4329 
4330    ${createLRThumbnails}(); 
4331	</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:

Acessibilidade

Alto-Contraste

Desligado

Ligado

Texto Grande

Desligado

Ligado

Idioma:

Selecione um idioma: