Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> tagCategoryList  [in template "20099#20135#14588694" at line 782, column 33]

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #list tagCategoryList as tag  [in template "20099#20135#14588694" in macro "addSchemaMarkup" at line 782, column 26]
	- Reached through: @liferay_util["html-top"]  [in template "20099#20135#14588694" in macro "addSchemaMarkup" at line 757, column 7]
	- Reached through: @addSchemaMarkup newsInfo  [in template "20099#20135#14588694" at line 882, column 5]
----
1<#-- Conteúdo Web -> Templates: Site de Crise - Funções gerais--> 
2<#include "${templatesPath}/1975398" /> 
3 
4<#function getNodesByLabel fieldList parentNode label> 
5    <#assign result = []/> 
6    <#attempt> 
7        <#assign groupId =  getIdFromFieldName(fieldList, label) /> 
8        <#assign xSeletorCaminho = saxReaderUtil.createXPath("dynamic-element[@name='${groupId}' ]") /> 
9        <#assign result = xSeletorCaminho.selectNodes(parentNode) /> 
10        <#return result /> 
11        <#recover> 
12            <#return result /> 
13    </#attempt> 
14</#function> 
15 
16<#function findVocabulary vocabularyName vocabularies> 
17    <#assign vocabularyNameLowerCase = vocabularyName?lower_case> 
18    <#list vocabularies as vocabulary> 
19        <#if vocabulary.name?lower_case == vocabularyNameLowerCase> 
20            <#return vocabulary> 
21        </#if> 
22    </#list> 
23    <#return {}> 
24</#function> 
25 
26<#-- ############# Conteúdo Web -> Templates: Site de Crise - Include de templates #################################### --> 
27<#function getSiteUrl> 
28    <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]> 
29    <#if layout?? && layout?has_content> 
30        <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)?replace(layout.getFriendlyURL(), "")> 
31    </#if> 
32    <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)> 
33</#function> 
34 
35<#function getSiteName> 
36    <#return layout.getGroup().getDescriptiveName(locale)> 
37</#function> 
38 
39<#function mountUrlToPage targetPage> 
40    <#return getSiteUrl()+ "/" + targetPage> 
41</#function> 
42<#-- ################################################################################################################## --> 
43 
44 
45<#assign 
46journalArticleService  = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
47assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") 
48categoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
49vocabularies = assetVocabularyService.getGroupVocabularies(groupId) 
50tagsLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService") 
51tagVocabulary = findVocabulary("Tag", vocabularies) 
52flagVocabulary = findVocabulary("Flag", vocabularies) 
53tagCategoryTitles = extractVocabularyTitles(tagVocabulary) 
54flagCategoryTitles = extractVocabularyTitles(flagVocabulary) 
55assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
56fileEntryService = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"] 
57layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
58assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") 
59/> 
60 
61	 
62	<#function getAssetEntryFromRequest assetEntryLocalService> 
63    <#assign assetEntry = ""> 
64    <#attempt > 
65        <#assign infoItemReference = Request.INFO_ITEM_DETAILS.getInfoItemReference() /> 
66        <#assign className = infoItemReference.getClassName() /> 
67        <#assign infoItem = Request.INFO_ITEM /> 
68        <#assign resourcePrimKey = infoItem.resourcePrimKey /> 
69        <#assign assetEntry = assetEntryLocalService.getEntry(className, resourcePrimKey) /> 
70        <#return assetEntry> 
71        <#recover > 
72            <#return ""> 
73    </#attempt> 
74    <#return ""> 
75</#function> 
76	 
77<#assign newsJournalArticle = ""> 
78<#assign assetEntry = getAssetEntryFromRequest(assetEntryLocalService)> 
79<#if assetEntry?? && assetEntry?has_content> 
80    <#assign newsJournalArticle = journalArticleService.fetchLatestArticle(assetEntry.classPK)/> 
81</#if> 
82 
83<#function getSingleNode name root> 
84    <#attempt> 
85        <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']/dynamic-content[@language-id='${locale}']") /> 
86        <#return xPathSelector.selectSingleNode( root ) /> 
87        <#recover> 
88            <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']") /> 
89            <#return xPathSelector.selectSingleNode( root ) /> 
90    </#attempt> 
91</#function> 
92 
93 
94<#function getFileFromXML fieldId parentNode fileEntryService> 
95 
96    <#assign info = {"url": "", "alt": "", "mimeType" :"", "name": "", "fileEntryId": "", "title": ""}> 
97 
98    <#assign jsonString = getSingleNodeString(fieldId, parentNode)/> 
99    <#if !jsonString?? || !jsonString?has_content> 
100        <#return info/> 
101    </#if> 
102 
103    <#assign json = jsonFactoryUtil.createJSONObject(jsonString) /> 
104    <#if !json?? || !json?has_content> 
105        <#return info/> 
106    </#if> 
107 
108    <#attempt > 
109        <#assign fileId = ""> 
110        <#if json.fileEntryId??> 
111            <#assign fileId = json.fileEntryId> 
112        <#else > 
113            <#if json.classPK??> 
114                <#assign fileId = json.classPK> 
115            </#if> 
116        </#if> 
117        <#if !fileId?has_content> 
118            <#return info> 
119        </#if> 
120        <#assign fileEntry = fileEntryService.fetchDLFileEntry(fileId?number) /> 
121        <#if !fileEntry?? > 
122            <#return info/> 
123        </#if> 
124        <#recover > 
125            <#return info/> 
126    </#attempt> 
127 
128    <#assign alt = ""> 
129    <#if json.description??> 
130        <#assign alt = json.description?trim> 
131    </#if> 
132 
133    <#assign info = {"url": "/documents/" + json.groupId + "/0/" + fileEntry.getTitle() + "/" + json.uuid, 
134          "alt": alt, 
135					"mimeType" : fileEntry.getMimeType(), 
136          "fileEntryId": fileId, 
137					"name" : (json.name)!"", 
138          "title" : (json.title)!"" 
139    }> 
140    <#return info/> 
141</#function> 
142	 
143<#assign editorialVocabulary = findVocabulary("Editorial", vocabularies)/> 
144 
145 
146<#assign EMPTY_FILE_INFO = {"url": "", 
147"alt": "", 
148"fileEntryId": "", 
149"mimetype": "", 
150"fileExtension": "", 
151"restResponse": {}, 
152"dateCreated": "", 
153"dateModified": "", 
154"adaptedImages" : ""} /> 
155 
156<#function extractFileInfoFromJsonResponse jsonResponse> 
157    <#assign info = EMPTY_FILE_INFO /> 
158    <#if !jsonResponse?? || !jsonResponse?has_content || !jsonResponse.fileName??> 
159        <#return info/> 
160    </#if> 
161 
162    <#assign fileUrl = themeDisplay.getPortalURL() + jsonResponse.contentUrl/> 
163    <#assign adaptedImages = [] /> 
164    <#if jsonResponse["adaptedImages"]??> 
165        <#assign adaptedImages = jsonResponse.adaptedImages /> 
166    </#if> 
167 
168    <#assign info = {"url": fileUrl, 
169    "alt": jsonResponse.description, 
170    "fileEntryId": jsonResponse.id, 
171    "mimetype": jsonResponse.encodingFormat, 
172    "fileExtension": jsonResponse.fileExtension, 
173    "restResponse": jsonResponse, 
174    "dateCreated": jsonResponse.dateCreated, 
175    "dateModified": jsonResponse.dateModified, 
176    "adaptedImages": adaptedImages 
177    }> 
178    <#return info/> 
179</#function> 
180 
181<#function getFileFromRest fileEntryId> 
182    <#return restClient.get("/headless-delivery/v1.0/documents/${fileEntryId}") /> 
183</#function> 
184 
185<#function getSmallestAdaptedMedia imageJson> 
186    <#if !imageJson?? || !imageJson["adaptedImageList"]?? || !imageJson.adaptedImageList?is_sequence> 
187        <#return ""/> 
188    </#if> 
189 
190    <#assign mediaWidth = 300 /> 
191    <#list adaptedImageList.adaptedImageList?filter(f -> f.width == mediaWidth)  as adaptedImage> 
192        <#return themeDisplay.getPortalURL() + "/documents/" + groupId + "/" + adaptedImage.externalReferenceCode + "?t=" + .now?string["HHmmssSSS"] /> 
193    </#list> 
194 
195    <#return "" /> 
196</#function> 
197 
198<#function getBiggestAdaptedMedia adaptedImageList> 
199    <#if !adaptedImageList?? || !adaptedImageList?is_sequence> 
200        <#return ""/> 
201    </#if> 
202 
203    <#assign mediaWidth = -1 /> 
204    <#assign url = "" /> 
205    <#list adaptedImageList as adaptedImage> 
206        <#if adaptedImage.width?? && adaptedImage.width?number gt mediaWidth && adaptedImage.contentUrl??> 
207            <#assign mediaWidth = adaptedImage.width?number /> 
208            <#assign url = adaptedImage.contentUrl /> 
209        </#if> 
210    </#list> 
211    <#return url /> 
212</#function> 
213 
214<#function getFileFromJsonItem fileJson> 
215    <#assign info = EMPTY_FILE_INFO /> 
216    <#if !fileJson?has_content> 
217        <#return info/> 
218    </#if> 
219 
220    <#assign fileData = ""/> 
221    <#if fileJson.document??> 
222        <#assign fileData = fileJson.document /> 
223    <#elseif fileJson.image??> 
224        <#assign fileData = fileJson.image /> 
225    </#if> 
226 
227    <#if !fileData?has_content > 
228        <#return info/> 
229    </#if> 
230 
231    <#assign fileEntryId = fileData.id /> 
232    <#return getFileFromRest(fileEntryId)/> 
233</#function> 
234 
235<#function formatDate date> 
236    <#if !date ?? || !date?has_content> 
237        <#return ""> 
238    </#if> 
239    <#if locale == "pt_BR"> 
240        <#return date?datetime?string("dd/MM/yyyy")> 
241    <#else> 
242        <#return date?datetime?string("yyyy.MM.dd")> 
243    </#if> 
244</#function> 
245 
246<#if newsJournalArticle?? && newsJournalArticle?has_content> 
247 
248    <div class="breadcrumb-breakpoint breakpoint"> 
249        <div class="breadcrumb-col col-3-11 md-col-1-8 sm-col-1-4"> 
250            <#assign homeURL = "/" /> 
251 
252            <#if currentURL?contains('webserver')> 
253                <#assign homeURL = "/web/agencia/" /> 
254            </#if> 
255 
256            <a href="${homeURL}" class="breadcrumb-page text previous-page paragraph-micro-regular" tabindex="0"> 
257                <span class="breadcrumb-text-truncate" original-text="Home">Home</span> 
258                <div class="icon"></div> 
259            </a> 
260 
261            <#assign breadcrumbEditorialCategory = getFirstCategoryObjectOfVocabulary(assetEntry, editorialVocabulary) /> 
262            <#if breadcrumbEditorialCategory?? && breadcrumbEditorialCategory?has_content> 
263                 
264							 
265							<#if assetCategoryPropService.fetchCategoryProperty(breadcrumbEditorialCategory.getCategoryId(),"url_amigavel_pagina_publica")??> 
266                    <#assign property = assetCategoryPropService.fetchCategoryProperty(breadcrumbEditorialCategory.getCategoryId(),"url_amigavel_pagina_publica") /> 
267                    <#assign propertyValue = property.getValue() /> 
268                    <#assign categoryURL = homeURL + propertyValue /> 
269                <#else> 
270                    <#assign categoryURL = homeURL + "listar-editoria?category=" + breadcrumbEditorialCategory.getCategoryId()/> 
271                </#if> 
272							 
273                <a href="${categoryURL}" class="breadcrumb-page text previous-page paragraph-micro-regular" 
274                   tabindex="0"> 
275                    <span class="breadcrumb-text-truncate" 
276                          original-text="${breadcrumbEditorialCategory.getTitle(locale)}">${breadcrumbEditorialCategory.getTitle(locale)}</span> 
277                    <div class="icon"></div> 
278                </a> 
279            </#if> 
280 
281            <span original-text="${newsJournalArticle.getTitle(locale)}" 
282                  class="breadcrumb-page text active-page active paragraph-micro-bold">${newsJournalArticle.getTitle(locale)}</span> 
283        </div> 
284    </div> 
285 
286    <div class="ptb-news__read-news"> 
287        <div class="ptb-news__read-news-post "> 
288            <div class="ptb-news__read-content"> 
289                <#assign 
290                ddmStructure = newsJournalArticle.getDDMStructure() 
291                fieldList = getFieldListByStructure(ddmStructure) 
292                xmlArticle = newsJournalArticle.getDocument().getRootElement() 
293
294 
295                <#assign 
296                <#-- Título principal da notícia --> 
297                mainHeadlineOfTheNews = newsJournalArticle.getTitle(locale, true) 
298                <#-- Título de destaque da notícia --> 
299                featuredNewsHeadline = extractFeaturedNewsHeadline(fieldList, xmlArticle) 
300                <#-- Sumário da notícia --> 
301                newsSummary = extractNewsSummary(fieldList, xmlArticle) 
302                <#-- Data de criação da notícia --> 
303                createDate = newsJournalArticle.getCreateDate() 
304
305                <#-- Data de publicação da notícia --> 
306								<#if extractPublishDate(newsJournalArticle)?has_content > 
307										<#assign lastPublishDate = extractPublishDate(newsJournalArticle) > 
308								<#else> 
309								 <#assign lastPublishDate = newsJournalArticle.getCreateDate() > 
310								</#if > 
311 
312                <#-- Flag da notícia ----------------------------------------------------------------------------------> 
313                <#assign flag = getFirstCategoryTitle(newsJournalArticle, flagCategoryTitles, categoryLocalService)> 
314 
315                <#-- Url amigável da notícia para visualização em DisplayPage -----------------------------------------> 
316                <#assign newsJournalArticleFriendlyUrl = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + newsJournalArticle.getUrlTitle()> 
317                <#assign newsJournalArticleFriendlyUrl = "/"> 
318                <#if themeDisplay.getPortalURL()?contains("webserver")> 
319                    <#assign newsJournalArticleFriendlyUrl = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + newsJournalArticle.getUrlTitle()> 
320                <#else> 
321                    <#assign newsJournalArticleFriendlyUrl = themeDisplay.getPortalURL() + "/w/" + newsJournalArticle.getUrlTitle()> 
322                </#if> 
323 
324                <#-- Conteúdo da notícia ------------------------------------------------------------------------------> 
325                <#assign newsContent = getFieldValue(fieldList, xmlArticle, "Corpo da notícia")> 
326 
327                <#-- Início Vídeo do youtube no corpo da notícia  --> 
328                <#--  structuredContentId refente ao webcontent da display page  --> 
329                <#assign structuredContentId =  newsJournalArticle.getResourcePrimKey()/> 
330 
331                <#assign ytVideoId = ""/> 
332                <#assign ytVideoIdentificador = ""/> 
333                <#assign ytVideoTitle = ""/> 
334                <#assign ytVideoDescription = ""/> 
335                <#assign ytVideoUploadDate = ""/> 
336                <#assign ytVideoDuration = ""/> 
337 
338                <#assign videoSchemaMarkupList = []/> 
339 
340                <#--  Obtém os dados do webcontent via rest api  --> 
341                <#assign newsStructuredContent = restClient.get("/headless-delivery/v1.0/structured-contents/${structuredContentId}")/> 
342                <#if newsStructuredContent?has_content && newsStructuredContent.contentFields??> 
343                  <#if newsStructuredContent.contentFields?size gt 0> 
344                    <#list newsStructuredContent.contentFields as field> 
345                      <#if field.label == "Gestão de vídeos do Youtube"> 
346                        <#if field.nestedContentFields?size gt 0> 
347                          <#list field.nestedContentFields as ytVideoField> 
348                            <#if ytVideoField.label == "Id do vídeo do Youtube"> 
349                              <#assign ytVideoId = ytVideoField.contentFieldValue.data/> 
350                            </#if> 
351                            <#if ytVideoField.label == "Identificador do vídeo no corpo da notícia"> 
352                              <#assign ytVideoIdentificador = ytVideoField.contentFieldValue.data/> 
353                            </#if> 
354                            <#assign ytIframe = ' 
355                              <div class="yt-video-container" onclick="loadVideo(this, \'${ytVideoId}\')"> 
356                                <img class="yt-thumb-img" alt="Thumbnail do vídeo do youtube" src="https://img.youtube.com/vi/${ytVideoId}/hqdefault.jpg"/> 
357                                <div class="thumb-play-button"> 
358                                  <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
359                                    <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"/> 
360                                    <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"/> 
361                                  </svg> 
362                                </div> 
363                              </div> 
364                            '/> 
365                            <#assign newsContent = newsContent?replace("<p>#[${ytVideoIdentificador}]</p>", ytIframe) /> 
366 
367                            <#if ytVideoField.label == "Título do vídeo"> 
368                              <#assign ytVideoTitle = ytVideoField.contentFieldValue.data/> 
369                            </#if> 
370                            <#if ytVideoField.label == "Descrição do vídeo"> 
371                              <#assign ytVideoDescription = ytVideoField.contentFieldValue.data/> 
372                            </#if> 
373                            <#if ytVideoField.label == "Data de publicação/upload do vídeo"> 
374                              <#assign ytVideoUploadDate = ytVideoField.contentFieldValue.data/> 
375                            </#if> 
376                            <#if ytVideoField.label == "Duração do vídeo"> 
377                              <#assign ytVideoDuration = ytVideoField.contentFieldValue.data/> 
378                            </#if> 
379                          </#list> 
380                          <#assign videoSchemaMarkupList += [{ 
381                            "id": ytVideoId, 
382                            "name": ytVideoTitle, 
383                            "description": ytVideoDescription, 
384                            "uploadDate": (ytVideoUploadDate!)?has_content?then(ytVideoUploadDate, ""), 
385                            "thumbnailUrl": "https://img.youtube.com/vi/${ytVideoId}/hqdefault.jpg", 
386                            "contentUrl": "https://www.youtube.com/watch?v=${ytVideoId}", 
387                            "embedUrl": "https://www.youtube.com/embed/${ytVideoId}", 
388                            "duration": ytVideoDuration 
389                          }] /> 
390                        </#if> 
391                      </#if> 
392                    </#list> 
393                  </#if> 
394                </#if> 
395 
396                <script> 
397                  function loadVideo(container, ytVideoId) { 
398                    const iframe = document.createElement("iframe"); 
399                    iframe.src = "https://www.youtube.com/embed/" + ytVideoId + "?rel=0&modestbranding=1&showinfo=0&autoplay=1"; 
400                    iframe.frameBorder = "0"; 
401                    iframe.allow = "autoplay; encrypted-media"; 
402                    iframe.style = "position:absolute; top:0; left:0; width:100%; height:100%;"; 
403 
404                    container.innerHTML = ""; // Remove imagem e botão 
405                    container.appendChild(iframe); // Insere o iframe 
406
407                </script>  
408                <style> 
409                  .yt-video-container { 
410                    position: relative; 
411                    padding-top: 56.25%; 
412                    overflow: hidden; 
413                    cursor: pointer; 
414                    border-radius: var(--border-radius-lg, 16px); 
415                    margin: var(--space-md, 24px) 0; 
416
417 
418                  .yt-video-container img { 
419                    position: absolute; 
420                    top: 0px; 
421                    left: 0px; 
422                    object-fit: cover; 
423                    max-width: none !important; 
424                    max-height: none !important; 
425
426 
427                  .yt-video-container .thumb-play-button { 
428                    position: absolute; 
429                    top: 50%; 
430                    left: 50%; 
431                    transform: translate(-50%, -50%); 
432                    border-radius: 50%; 
433
434                </style> 
435                <#-- Fim Vídeo do youtube no corpo da notícia  --> 
436 
437                <#-- Seção do áudio para o conteúdo da notícia --------------------------------------------------------> 
438                <#assign audios = [] 
439                audioIdentifierFieldSetList = getNodes("Fieldset65862311", xmlArticle) 
440
441                <#list audioIdentifierFieldSetList as audioIdentifierFieldSet> 
442                    <#assign 
443                    <#-- Grupo com as informações de url e legenda do áudio --> 
444                    audioInfoFieldSet = getGroupNode("Fieldset24035689",audioIdentifierFieldSet)> 
445                    <#assign 
446                    externalAudioUrl = getFieldValue(fieldList, audioInfoFieldSet, "URL externa do áudio") 
447                    internalAudioUrl = getFileFromXML("DocumentLibrary24170668", audioInfoFieldSet, fileEntryService) 
448                    audioLegend = getFieldValue(fieldList, audioInfoFieldSet, "Legenda do áudio")> 
449 
450                    <#if externalAudioUrl?has_content || internalAudioUrl.url?has_content > 
451                        <#assign audios += [{ 
452                        "id": getFieldValue(fieldList, audioIdentifierFieldSet, "Identificador de Áudio"), 
453                        "externalUrl" : externalAudioUrl, 
454                        "internalUrl" : internalAudioUrl, 
455                        "legend" : audioLegend 
456                        }]> 
457                    </#if> 
458                </#list> 
459 
460 
461                <#-- Seção de vídeo para o conteúdo da notícia --------------------------------------------------------> 
462                <#assign videos = [] 
463                videoIdentifierFieldSetList = getNodes("Fieldset24460782", xmlArticle) 
464
465                <#list videoIdentifierFieldSetList as videoIdentifierFieldSet> 
466                    <#assign 
467                    <#-- Grupo com as informações de url e legenda do áudio --> 
468                    videoInfoFieldSet = getGroupNode("Fieldset51040010",videoIdentifierFieldSet) 
469 
470                    videos += [{ 
471                    "id": getFieldValue(fieldList,videoIdentifierFieldSet, "Identificador de Vídeo"), 
472                    "youtubeID" : getFieldValue(fieldList, videoInfoFieldSet, "ID do vídeo do YouTube"), 
473                    "internalUrl" : getFileFromXML("DocumentLibrary15265409", videoInfoFieldSet, fileEntryService), 
474                    "legend" : getFieldValue(fieldList, videoInfoFieldSet, "Legenda do vídeo") 
475                    }] 
476
477                </#list> 
478 
479 
480                <#-- Seção de links para o conteúdo da notícia --------------------------------------------------------> 
481                <#assign 
482                links = [] 
483                linksFieldSetList = getNodes("Fieldset37770113", xmlArticle) 
484
485                <#list linksFieldSetList as linksFieldSet> 
486                    <#assign linkFieldSetList = getNodes("Fieldset10524367", linksFieldSet)> 
487 
488                    <#list linkFieldSetList as linkFieldSet> 
489                        <#assign 
490                        linkId = getFieldValue(fieldList, linkFieldSet, "Identificador do link") 
491 
492                        <#-- Grupo com as informações de url e legenda do áudio --> 
493                        linkInfoFieldSeet = getGroupNode("Fieldset86037074", linkFieldSet) 
494 
495                        iconType = getFieldValue(fieldList, linkInfoFieldSeet, "Ícone do link") 
496                        links += [{ 
497                        "id": linkId, 
498                        "externalLink" : getFieldValue(fieldList, linkInfoFieldSeet, "Link externo"), 
499                        "pageLink" : getPageLayoutLinkFromXML("LinkToLayout77941175", linkInfoFieldSeet, layoutLocalService), 
500                        "file" : getFileFromXML("DocumentLibrary34820760", linkInfoFieldSeet, fileEntryService), 
501                        "title" : getFieldValue(fieldList, linkInfoFieldSeet, "Título do link"), 
502                        "iconType" : iconType 
503                        }] 
504
505                    </#list> 
506                </#list> 
507 
508 
509                <#assign mediaGroupList = getNodes(getIdFromFieldName(fieldList, "Galeria de multimídia"), xmlArticle) /> 
510                <#assign galleryItems = []/> 
511 
512 
513                <#list mediaGroupList as mediaGroup > 
514                    <#assign nodes = getNodes(getIdFromFieldName(fieldList, "Selecione uma imagem") , mediaGroup) /> 
515                    <#list nodes as node> 
516                        <#assign medJson = jsonFactoryUtil.createJSONObject(node.getStringValue()) /> 
517                        <#if medJson?has_content && medJson["fileEntryId"]??> 
518                            <#assign cardTitle = ""/> 
519                            <#assign subtitle = ""/> 
520                            <#assign author = ""/> 
521                            <#assign thumbnailImage = {}/> 
522                            <#assign originalFile = {} /> 
523 
524                            <#assign restResponse = restClient.get("/headless-delivery/v1.0/documents/${medJson.fileEntryId}") /> 
525                            <#if restResponse?has_content> 
526                                <#assign originalFile = restResponse /> 
527 
528                                <#if  restResponse.documentType?? && restResponse.documentType.contentFields?size gt 0> 
529                                    <#list restResponse.documentType.contentFields as item > 
530                                        <#if item.label == "Legenda" && item.dataType == "string" && item.contentFieldValue?? && item.contentFieldValue.data??> 
531                                            <#assign subtitle = item.contentFieldValue.data /> 
532                                            <#assign cardTitle = item.contentFieldValue.data /> 
533                                        </#if> 
534                                        <#if item.label == "Autor" && item.dataType == "string" && item.contentFieldValue?? && item.contentFieldValue.data??> 
535                                            <#assign author = item.contentFieldValue.data /> 
536                                        </#if> 
537                                        <#if item.label == "Imagem de thumbnail" && item.dataType == "image" && item.contentFieldValue?? && item.contentFieldValue.image??> 
538                                            <#assign thumbnailImage = restClient.get("/headless-delivery/v1.0/documents/${item.contentFieldValue.image.id}") /> 
539                                        </#if> 
540                                    </#list> 
541                                </#if> 
542                            </#if> 
543 
544                            <#if originalFile["contentUrl"]??> 
545                                <#setting datetime_format="iso"> 
546                                <#assign galleryItems += [{"cardTitle": cardTitle, 
547                                "displayDate" : formatDate(originalFile.dateCreated?datetime), 
548                                "createDate": originalFile.dateCreated?datetime, 
549                                "subtitle" : subtitle, 
550                                "author": author, 
551                                "thumbnailImage": thumbnailImage, 
552                                "originalFile": originalFile 
553                                }]  > 
554                            </#if> 
555                        </#if> 
556                    </#list> 
557 
558 
559                    <#assign nodes = getNodes(getIdFromFieldName(fieldList, "Selecione o Conteúdo Web da mídia") , mediaGroup) /> 
560                    <#list nodes as node> 
561                        <#attempt> 
562                            <#assign medJson = jsonFactoryUtil.createJSONObject(node.getStringValue()) /> 
563                            <#if medJson.classPK??> 
564                                <#assign medianewsJournalArticle = journalArticleService.fetchLatestArticle(medJson.classPK?number)/> 
565                                <#assign mediaDdmStructure = medianewsJournalArticle.getDDMStructure()/> 
566                                <#assign fieldListMedia = getFieldListByStructure(mediaDdmStructure)/> 
567                                <#assign xmlArticleMedia = medianewsJournalArticle.getDocument().getRootElement() /> 
568 
569                                <#assign cardTitle = getFieldValue(fieldListMedia, xmlArticleMedia, "Título Home")/> 
570                                <#assign subtitle = getFieldValue(fieldListMedia, xmlArticleMedia, "Legenda")/> 
571                                <#assign author = getFieldValue(fieldListMedia, xmlArticleMedia, "Autor")/> 
572 
573                                <#if getGroupNode(getIdFromFieldName(fieldListMedia, "Arquivo original"), xmlArticleMedia) ?? > 
574                                    <#assign originalFileGroup = getGroupNode(getIdFromFieldName(fieldListMedia, "Arquivo original"), xmlArticleMedia) /> 
575                                    <#assign originalFileExternalUrl = getFieldValue(fieldListMedia, originalFileGroup, "URL externa") /> 
576 
577                                <#-- Original file --> 
578                                    <#assign originalFile = {} /> 
579                                    <#assign originalFileJsonString = getSingleNodeString(getIdFromFieldName(fieldListMedia, "Arquivo selecionado"), originalFileGroup)/> 
580 
581                                    <#if originalFileJsonString?? && originalFileJsonString?has_content> 
582                                        <#assign originalFileJson = jsonFactoryUtil.createJSONObject(originalFileJsonString) /> 
583                                        <#if originalFileJson?? && originalFileJson["fileEntryId"]??> 
584                                            <#assign restResponse = restClient.get("/headless-delivery/v1.0/documents/${originalFileJson.fileEntryId}") /> 
585                                            <#if restResponse?has_content && restResponse["encodingFormat"]?? && restResponse.encodingFormat?index_of("image") gt -1> 
586                                                <#assign originalFile = restResponse /> 
587                                            </#if> 
588                                        </#if> 
589                                    </#if> 
590 
591 
592                                <#-- Thumbnail file --> 
593                                    <#assign thumbnailImage = {}/> 
594                                    <#assign thumbnailImageJsonString = getSingleNodeString(getIdFromFieldName(fieldListMedia, "Imagem de thumbnail"), xmlArticleMedia)/> 
595                                    <#if !thumbnailImageJsonString?? || !thumbnailImageJsonString?has_content> 
596                                        <#assign thumbnailImageJson = jsonFactoryUtil.createJSONObject(thumbnailImageJsonString) /> 
597                                        <#if thumbnailImageJson?? && thumbnailImageJson?has_content && thumbnailImageJson.fileEntryId??> 
598                                            <#assign restResponse = restClient.get("/headless-delivery/v1.0/documents/${thumbnailImageJson.fileEntryId?number}") /> 
599                                            <#if restResponse?has_content && restResponse["encodingFormat"]?? && restResponse.encodingFormat?index_of("image") gt -1> 
600                                                <#assign thumbnailImage = restResponse /> 
601                                            </#if> 
602                                        </#if> 
603                                    </#if> 
604 
605                                    <#assign mediaCreateDate = medianewsJournalArticle.getCreateDate() /> 
606                                    <#assign mediaLastPublishDate = extractPublishDate(medianewsJournalArticle) /> 
607 
608                                    <#if originalFile["contentUrl"]??> 
609                                        <#assign galleryItems += [{"cardTitle": cardTitle, 
610                                        "displayDate" : formatDate(mediaLastPublishDate), 
611                                        "createDate": newsJournalArticle.getDisplayDate(), 
612                                        "subtitle" : subtitle, 
613                                        "author": author, 
614                                        "thumbnailImage": thumbnailImage, 
615                                        "originalFile": originalFile, 
616                                        "originalFileExternalUrl": originalFileExternalUrl 
617                                        }] /> 
618                                    </#if> 
619                                </#if> 
620 
621                            </#if> 
622                            <#recover> 
623                        </#attempt> 
624                    </#list> 
625                </#list> 
626 
627                <#assign newsImageFieldSet = extractNewsImage(fieldList, xmlArticle, fileEntryService) /> 
628 
629                <#assign newsInfo = { 
630                "mainHeadlineOfTheNews": mainHeadlineOfTheNews, 
631                "featuredNewsHeadline" : featuredNewsHeadline, 
632                "displayDate" : formatDate(createDate), 
633                "createDate": createDate, 
634                "newsSummary" : newsSummary, 
635                "legend": newsImageFieldSet.legend, 
636                "newsImageFieldSet":  extractNewsImage(fieldList, xmlArticle, fileEntryService), 
637                "featureNewsVideo" : featureNewsVideo(xmlArticle, fileEntryService), 
638                "lastPublishDate": lastPublishDate, 
639                "flag": flag, 
640                "url": newsJournalArticleFriendlyUrl, 
641                "newsContent": newsContent, 
642                "audios": audios, 
643                "videos": videos, 
644                "galleryItems": galleryItems, 
645                "links": links 
646                }> 
647 
648 
649 
650 
651                <#-- Renderizar o título principal da notícia --> 
652                <#-- Conteúdo-> Conteúdo Web -> Templates: Site de Crise - Notícia - Título --> 
653                <@renderHeadLine newsInfo = newsInfo/> 
654 
655                <#-- Renderizar o subtítulo da notícia --> 
656                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Subtítulo --> 
657                <@renderReview newsInfo = newsInfo/> 
658 
659                <#--  Link para a página do autor  --> 
660                <@renderAuthor/> 
661 
662                <#-- Renderizar a data de publicação/edição da notícia e redes sociais --> 
663                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação --> 
664                <@renderPublishAndSocialMediasInfos newsJournalArticle newsInfo/> 
665 
666                <#-- Renderizar as tags da notícia --> 
667                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render Tags --> 
668                <#--assign tagCategoryList = getCategoriesNamesAndIds("Tags") /> 
669                <#assign tagCategoryList = getCategoryIdsFromEntry(assetEntry,tagCategoryList, categoryLocalService)> 
670                <#assign removeStartParameterWhenTagIsClicked = true> 
671                <#assign includeRequestParams = false> 
672                <#assign NEWS_PAGE_NAME= "busca"/> 
673                <@renderNewsTags tagCategoryList NEWS_PAGE_NAME removeStartParameterWhenTagIsClicked includeRequestParams --> 
674 
675                <#assign categoriesAsssetEntryResponse = restClient.get("/headless-delivery/v1.0/structured-contents/${assetEntry.getClassPK()}?nestedFields=embeddedTaxonomyCategory&fields=taxonomyCategoryBriefs") /> 
676               
677                <#if categoriesAsssetEntryResponse?? && categoriesAsssetEntryResponse?has_content && categoriesAsssetEntryResponse.taxonomyCategoryBriefs??> 
678                    <#assign tagCategoryList = getCategoriesNamesAndIds("Tags", categoriesAsssetEntryResponse.taxonomyCategoryBriefs) /> 
679                    <#assign removeStartParameterWhenTagIsClicked = true /> 
680                    <#assign includeRequestParams = false /> 
681                    <#assign NEWS_PAGE_NAME= "busca"/> 
682                    <@renderNewsTags tagCategoryList NEWS_PAGE_NAME removeStartParameterWhenTagIsClicked includeRequestParams /> 
683                </#if> 
684 
685                <#-- Renderizar a imagem de destaque da notícia --> 
686                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Imagem de destaque --> 
687                <@renderNewsFeaturedImage newsInfo = newsInfo/> 
688 
689                <#-- Renderizar o conteúdo da notícia --> 
690                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia --> 
691                <@renderNewsContent newsInfo = newsInfo/> 
692 
693                <#-- Renderizar links da notícia --> 
694                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Links do conteúdo da notícia --> 
695                <@renderLinks newsInfo /> 
696 
697                <@renderCite /> 
698                <#-- Renderizar áudios da notícia --> 
699                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia --> 
700 
701                <#-- Renderizar galeria de imagens notícia --> 
702                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render galeria --> 
703                <@renderGallery newsInfo /> 
704 
705                <#-- Renderizar seção de download e mídias e texto --> 
706                <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render seção download --> 
707                <@renderDownloadSection newsInfo /> 
708 
709            </div> 
710        </div> 
711    </div> 
712		 
713    <#function normalizeRichText richText> 
714      <#return richText 
715        ?replace('&[a-z]+;', ' ', 'r') <#--  Remove entidades HTML  --> 
716        ?replace('<[^>]+>', '', 'r')   <#--  Remove tags HTML  --> 
717        ?replace('[\n\r]+', ' ', 'r')  <#--  Normaliza quebras de linha  --> 
718        ?replace('[“”‘’]', '"', 'r')   <#--  Escapa espas curvas  --> 
719        ?replace('\\\\', '\\\\', 'r')  <#--  Escapa barras invertidas  --> 
720        ?trim                          <#--  Remove espaços no ínicio/fim  --> 
721        ?json_string                   <#--  Escapa o rstante da string para um JSON válido  --> 
722
723    </#function> 
724 
725    <#macro addSchemaMarkup newsInfo> 
726      <#assign image = ""/> 
727      <#assign datePublished = newsInfo.createDate?string('yyyy-MM-ddHH:mm:ss-03:00')/> 
728      <#assign datePublishedISOFormat = datePublished?substring(0, 10) + "T" + datePublished?substring(10)/> 
729      <#assign dateModified = newsInfo.lastPublishDate?string('yyyy-MM-ddHH:mm:ss-03:00')/> 
730      <#assign dateModifiedISOFormat = dateModified?substring(0, 10) + "T" + dateModified?substring(10)/> 
731 
732      <#if newsInfo.newsImageFieldSet.newsImage?? && newsInfo.newsImageFieldSet.newsImage.fileEntryId?has_content> 
733        <#assign image = "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsImageFieldSet.newsImage.fileEntryId}/Thumbnail-300x300/image"/> 
734      </#if> 
735 
736      <#--  Busca informações do cadastro Organization do institucional  do ambiente de produção  --> 
737      <#--  35467409 é o id da estrutura de webcontent "Dados Estruturados - Organização"  --> 
738      <#assign organizationName = "" /> 
739      <#assign logoImgSrc = "" /> 
740 
741      <#assign structuredContents = restClient.get("/headless-delivery/v1.0/content-structures/35467409/structured-contents")/> 
742      <#if structuredContents?has_content && structuredContents.items?has_content> 
743        <#assign structuredContentData  = structuredContents.items[0]/> 
744        <#if structuredContentData?has_content && structuredContentData.contentFields?has_content> 
745          <#list structuredContentData.contentFields as item> 
746            <#if item.label == "Nome legal da organização"> 
747              <#assign organizationName = item.contentFieldValue.data!""> 
748            </#if> 
749            <#if item.label == "Logotipo" && item.contentFieldValue?has_content && item.contentFieldValue.image??> 
750              <#assign logoImgSrc = themeDisplay.getURLPortal() + item.contentFieldValue.image.contentUrl!""> 
751            </#if> 
752          </#list> 
753        </#if> 
754      </#if> 
755 
756      <#-- add Schema Markup (NewsArticle) to head --> 
757      <@liferay_util["html-top"]> 
758        <script type="application/ld+json"> 
759
760            "@context": "https://schema.org", 
761            "@type": "NewsArticle", 
762            "headline": "${normalizeRichText(newsInfo.mainHeadlineOfTheNews)}", 
763            "alternativeHeadline": "${normalizeRichText(newsInfo.featuredNewsHeadline)}", 
764            "image": "${image}", 
765            "author": { 
766              "@type": "Person", 
767              "name": "Agência Petrobras", 
768              "url": "${themeDisplay.getPortalURL()}/autor" 
769            }, 
770            "publisher": { 
771              "@type": "Organization", 
772              "name": "${organizationName}", 
773              "logo": { 
774              "@type": "ImageObject", 
775              "url": "${logoImgSrc}" 
776
777            }, 
778            "datePublished": "${datePublishedISOFormat}", 
779            "dateModified": "${dateModifiedISOFormat}", 
780            "mainEntityOfPage": "${newsInfo.url}", 
781            "description": "${normalizeRichText(newsInfo.newsSummary)}", 
782            "keywords": [<#list tagCategoryList as tag>"${tag[0]}"<#sep>, </#list>], 
783            "articleBody": "${normalizeRichText(newsInfo.newsContent)}" 
784
785        </script> 
786      </@> 
787 
788    <@liferay_util["html-top"]> 
789        <script type="application/ld+json"> 
790
791                "@context": "https://schema.org", 
792                "@type": "BreadcrumbList", 
793                "itemListElement": [ 
794
795                        "@type": "ListItem", 
796                        "position": 1, 
797                        "name": "Home", 
798                        "item": "${themeDisplay.getPortalURL() + homeURL}" 
799
800                    <#if breadcrumbEditorialCategory?? && breadcrumbEditorialCategory?has_content> 
801                    , { 
802                        "@type": "ListItem", 
803                        "position": 2, 
804                        "name": "${breadcrumbEditorialCategory.getTitle(locale)?js_string}", 
805                        "item": "${themeDisplay.getPortalURL() + categoryURL}" 
806
807                    </#if> 
808                    , { 
809                        "@type": "ListItem", 
810                        "position": 3, 
811                        "name": "${newsJournalArticle.getTitle(locale)?js_string}", 
812                        "item": "${themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()?split('?')[0]}" 
813
814
815
816        </script> 
817    </@> 
818 
819    <@liferay_util["html-top"]> 
820        <script type="application/ld+json"> 
821
822
823                    "@context": "https://schema.org", 
824                    "@type": "ImageObject", 
825                    "url": "${themeDisplay.getPortalURL()}${(newsInfo.newsImageFieldSet.newsImage.url!'')}", 
826                    "contentUrl": "${themeDisplay.getPortalURL()}${(newsInfo.newsImageFieldSet.newsImage.url!'')}", 
827                    "name": "${newsInfo.newsImageFieldSet.newsImage.title?json_string}", 
828                    <#if newsInfo.legend?? && newsInfo.legend?has_content> 
829                    "caption": "${(newsInfo.legend)?js_string}", 
830                    </#if> 
831                    <#if newsInfo.newsImageFieldSet.newsImage.alt?? && newsInfo.newsImageFieldSet.newsImage.alt?has_content> 
832                    "description": "${newsInfo.newsImageFieldSet.newsImage.alt?js_string}", 
833                    </#if> 
834                    "encodingFormat": "${(newsInfo.newsImageFieldSet.newsImage.mimeType!'')}" 
835                }, 
836
837                    "@context": "https://schema.org", 
838                    "@type": "ImageObject", 
839                    "url": "${themeDisplay.getPortalURL()}${(newsInfo.newsImageFieldSet.newsImage.url!'')}", 
840                    "contentUrl": "${themeDisplay.getPortalURL()}${(newsInfo.newsImageFieldSet.newsImage.url!'')}", 
841                    "name": "${(newsInfo.mainHeadlineOfTheNews!'')?json_string}", 
842                    "description": "${normalizeRichText(newsInfo.newsContent)}" 
843
844
845        </script> 
846    </@>			 
847<#if videoSchemaMarkupList?size gt 0> 
848					<#assign videoStructuredData = [] /> 
849				  <#list videoSchemaMarkupList as videoInfo> 
850            <#if videoInfo.id?has_content> 
851              <#assign videoStructuredData += [ { 
852                "@context": "https://schema.org", 
853                "@type": "VideoObject", 
854                "name": "${normalizeRichText(videoInfo.name)}", 
855                "description": "${normalizeRichText(videoInfo.description)}", 
856                "uploadDate": "${videoInfo.uploadDate}", 
857                "thumbnailUrl": "${videoInfo.thumbnailUrl}", 
858                "contentUrl": "${videoInfo.contentUrl}", 
859                "embedUrl": "${videoInfo.embedUrl}", 
860                "duration": "${videoInfo.duration}", 
861                "publisher": { 
862                  "@type": "Organization", 
863                  "name": "Petrobras", 
864                  "logo": { 
865                    "@type": "ImageObject", 
866                    "url": "${logoImgSrc}" 
867
868
869              }] /> 
870            </#if> 
871         </#list> 
872				 <#if videoStructuredData?size gt 0> 
873				 <@liferay_util["html-top"]> 
874					 <script type="application/ld+json"> 
875				 ${jsonFactoryUtil.looseSerialize(videoStructuredData)} 
876				 </script> 
877				 </@> 
878				 </#if> 
879				</#if> 
880    </#macro> 
881 
882    <@addSchemaMarkup newsInfo/> 
883 
884    <script> 
885        AUI().ready(function () { 
886            const newsContent = document.querySelector(".ptb-news__read-content"); 
887            newsContent.querySelectorAll("p").forEach((item) => { 
888                if (item.innerHTML.trim() == "") { 
889                    item.parentNode.removeChild(item); 
890
891            }); 
892					 
893					 
894            const newsContentLinks = newsContent.querySelectorAll("a"); 
895							newsContentLinks.forEach((link) => { 
896							link.classList.add('ptb-news__news-link'); 
897						}); 
898					 
899					console.log('tsts', newsContent, newsContentLinks) 
900        }); 
901					 
902    </script> 
903 
904    <style> 
905 
906        .breadcrumb-breakpoint { 
907            padding-top: var(--space-xxl); 
908            padding-bottom: var(--space-xl); 
909
910 
911        body.high-contrast-active .breadcrumb-breakpoint { 
912            background: var(--background-surface-level-01, #010101); 
913
914 
915        .breadcrumb-breakpoint .breadcrumb-col { 
916            display: flex; 
917            width: max-content; 
918            gap: var(--space-xxs); 
919            height: fit-content; 
920            overflow-x: hidden; 
921
922 
923        .breadcrumb-breakpoint #liferay-breadcrumb { 
924            display: none; 
925
926 
927        .breadcrumb-breakpoint .breadcrumb-page { 
928            display: flex; 
929            gap: var(--space-micro); 
930            height: var(--size-md); 
931            size: var(--size-md); 
932            border: 1px solid rgba(0, 0, 0, 0); 
933            box-sizing: border-box; 
934            border-radius: var(--border-radius-sm); 
935
936 
937        .breadcrumb-breakpoint a.breadcrumb-page.text span, 
938        .breadcrumb-breakpoint span.breadcrumb-page.text { 
939            white-space: nowrap; 
940
941 
942        .breadcrumb-breakpoint .breadcrumb-page a:focus { 
943            outline: none; 
944
945 
946        .breadcrumb-breakpoint .breadcrumb-page.active-page { 
947            color: var(--color-text-primary-default); 
948            background-color: var(--color-background-default-level-02); 
949            border-radius: var(--border-radius-sm); 
950
951 
952        body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.active-page { 
953            background: var(--background-surface-level-02, #373737); 
954            color: var(--text-primary-default, #FFF); 
955
956 
957        .breadcrumb-breakpoint .breadcrumb-page.previous-page { 
958            transition: 300ms ease-in-out; 
959
960 
961        .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
962            text-decoration: var(--text-decoration-none); 
963            color: var(--color-text-primary-default); 
964            text-transform: capitalize; 
965            padding-left: var(--space-xxs); 
966            padding-right: var(--space-xxs); 
967
968 
969        body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
970            color: var(--text-primary-default, #FFF); 
971
972 
973        .breadcrumb-breakpoint .breadcrumb-page.active-page.text { 
974            color: var(--color-text-primary-default); 
975            text-decoration: var(--text-decoration-none); 
976            background-color: var(--color-background-default-level-02); 
977            text-transform: capitalize; 
978            padding-left: var(--space-xxs); 
979            padding-right: var(--space-xxs); 
980
981 
982        body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text { 
983            color: var(--text-primary-default, #FFF); 
984
985 
986        .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover { 
987            background-color: var(--color-background-default-level-01); 
988            border-color: var(--border-color-dark); 
989            border-radius: var(--border-radius-sm); 
990            border: 1px solid; 
991            transition: all 300ms ease-in-out; 
992
993 
994        body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover { 
995            background-color: transparent; 
996
997 
998        .breadcrumb-breakpoint .breadcrumb-page:focus-visible { 
999            margin: var(--space-micro); 
1000            border-radius: var(--space-micro); 
1001            outline: none; 
1002            border: 1px solid var(--color-primary-medium); 
1003            box-sizing: border-box; 
1004            transition: 300ms ease-in-out; 
1005
1006 
1007        body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page:focus-visible { 
1008            border: 1px solid rgba(228, 247, 232, 1); 
1009
1010 
1011        .breadcrumb-breakpoint .breadcrumb-page .icon { 
1012            width: var(--size-xxs); 
1013            height: var(--size-xxs); 
1014            border-color: var(--border-color-darkest); 
1015            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'); 
1016            background-size: cover; 
1017            margin-top: auto; 
1018            margin-bottom: auto; 
1019
1020 
1021        body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page .icon { 
1022            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>'); 
1023
1024 
1025        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1026            header.cadmin.portlet-topper { 
1027                display: none !important; 
1028
1029
1030 
1031        @media screen and (min-width: ${MIN_TABLET_WIDTH}px) and (max-width: ${MAX_TABLET_WIDTH}px) { 
1032
1033    </style> 
1034<#else > 
1035    <@printNewsNotFound /> 
1036</#if> 
1037 
1038 
1039 
1040 
1041<#macro printNewsNotFound> 
1042    <div class="ptb-news__read-news"> 
1043        <#if locale == "pt_BR"> 
1044            <p>Nenhuma notícia</p> 
1045        <#else > 
1046            <p>There are no news</p> 
1047        </#if> 
1048    </div> 
1049 
1050    <style> 
1051        .ptb-news__read-news p { 
1052            font-family: var(--font-family-base); 
1053            font-style: var(--font-style-normal, normal); 
1054            font-weight: var(--font-weight-regular, 400); 
1055            font-size: var(--font-size-xxs, 16px); 
1056            line-height: var(--line-height-xl, 160%); 
1057            color: var(--color-neutral-700, #515867); 
1058
1059    </style> 
1060</#macro> 
1061 
1062<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
1063<#-- 
1064Add elements from the sidebar to define your template. Type "${" to use the 
1065autocomplete feature. 
1066--> 
1067 
1068<#macro renderHeadLine newsInfo> 
1069    <div class="breakpoint"> 
1070        <div class="col-3-10 md-col-1-12 sm-col-1-4"> 
1071            <div class="main-headline-container"> 
1072                <h1 class="main-headline">${newsInfo.mainHeadlineOfTheNews}</h1> 
1073                <div class="bar"></div> 
1074            </div> 
1075        </div> 
1076    </div> 
1077    <style> 
1078        .ptb-news__read-news .main-headline-container { 
1079            display: flex; 
1080            flex-direction: column; 
1081            gap: var(--space-sm); 
1082            padding-bottom: var(--space-lg); 
1083
1084 
1085        .ptb-news__read-news .main-headline-container * { 
1086            margin: 0; 
1087            padding: 0; 
1088
1089 
1090        .ptb-news__read-news .main-headline-container .main-headline { 
1091            font-family: var(--font-family-base); 
1092            font-style: var(--font-style-normal, normal); 
1093            font-weight: var(--font-weight-bold); 
1094            font-size: var(--font-size-xl); 
1095            line-height: var(--line-height-sm); 
1096            color: var(--color-neutral-800); 
1097
1098 
1099        .ptb-news__read-news .main-headline-container .bar { 
1100            width: var(--size-lg, 32px); 
1101            height: var(--size-micro); 
1102            background: var(--color-secondary-medium); 
1103
1104 
1105        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1106            .ptb-news__read-news .main-headline-container { 
1107                gap: var(--size-xxs); 
1108
1109
1110    </style> 
1111</#macro> 
1112<#-- ################################################################################################################## --> 
1113 
1114<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
1115<#macro renderReview newsInfo> 
1116    <#assign summaryCssRoot = "summary-container" /> 
1117 
1118    <div class="breakpoint"> 
1119        <div class="col-3-10 md-col-1-12 sm-col-1-4"> 
1120            <div class="${summaryCssRoot}"> 
1121                <h2 class="summary"> 
1122                    ${newsInfo.newsSummary} 
1123                </h2> 
1124            </div> 
1125        </div> 
1126    </div> 
1127 
1128    <style> 
1129        .${summaryCssRoot} .summary { 
1130            padding-bottom: var(--space-lg); 
1131
1132 
1133        .${summaryCssRoot} .summary, 
1134        .${summaryCssRoot} .summary * { 
1135            color: var(--color-neutral-800, #373737); 
1136            font-family: var(--font-family-base); 
1137            font-size: var(--font-size-sm); 
1138            font-style: var(--font-style-italic); 
1139            font-weight: var(--font-weight-regular); 
1140            line-height: var(--line-height-xl); 
1141            margin: var(--space-none); 
1142
1143 
1144        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1145            .${summaryCssRoot} .summary, 
1146            .${summaryCssRoot} .summary * { 
1147                font-size: var(--font-size-xs); 
1148
1149
1150    </style> 
1151 
1152</#macro> 
1153 
1154<#macro renderAuthor> 
1155  <#assign authorPageUrl = "" /> 
1156 
1157  <#if themeDisplay.getPortalURL()?contains("webserver")> 
1158    <#assign authorPageUrl = "${themeDisplay.getPortalURL()}/web/agencia/autor" /> 
1159  <#else> 
1160    <#assign authorPageUrl = "${themeDisplay.getPortalURL()}/autor" /> 
1161  </#if> 
1162 
1163  <div class="breakpoint"> 
1164    <div class="col-3-10 md-col-1-12 sm-col-1-4"> 
1165      <p class="article-author">Autor: <a class="link-sm" href=${authorPageUrl}>Agência Petrobras</a></p> 
1166    </div> 
1167  </div> 
1168 
1169  <style> 
1170    .article-author { 
1171      margin-bottom: var(--space-lg, 32px); 
1172      font-weight: 400; 
1173      font-size: 16px; 
1174      line-height: 160%; 
1175      letter-spacing: 0%; 
1176      color: var(--color-neutral-800, #373737); 
1177
1178 
1179    .article-author a { 
1180      font-weight: 700; 
1181      font-size: 14px; 
1182      line-height: 144%; 
1183      text-decoration: underline; 
1184      text-decoration-style: solid; 
1185      text-decoration-thickness: 0%; 
1186      color: var(--color-primary-medium, #008542); 
1187
1188  </style> 
1189</#macro> 
1190<#-- ################################################################################################################## --> 
1191 
1192<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### --> 
1193<#macro renderPublishAndSocialMediasInfos journalArticle newsInfo> 
1194 
1195    <div class="breakpoint"> 
1196        <div class="col-3-10 md-col-1-12 sm-col-1-4"> 
1197            <div class="publish_and_social_medias_infos_desk"> 
1198                   <div class="publish_and_update_date"> 
1199                        <#-- display_date: prioriza displayDate (data de publicação/agendamento); fallback para createDate --> 
1200                        <#assign display_date = (journalArticle.getDisplayDate())!journalArticle.getCreateDate() /> 
1201 
1202                        <#if locale == "pt_BR"> 
1203                            <p class="published">Postado em ${formatDate(display_date)}</p> 
1204                        <#else> 
1205                            <p class="published">Posted on ${formatDate(display_date)}</p> 
1206                        </#if> 
1207                   </div> 
1208 
1209                <#--        <div class="share_news_container">--> 
1210                <div class="social-media-container"> 
1211 
1212                    <#assign emailMsg = "Veja o conteúdo do post no link "> 
1213                    <#if locale == "en_US"> 
1214                        <#assign emailMsg = "See the content of the post in the link "> 
1215                    </#if> 
1216                    <a class="share-news-social-media news-gallery-share-news-email" href="mailto:?subject=${newsInfo.mainHeadlineOfTheNews}&amp;body=${emailMsg}${newsInfo.url}" 
1217                       target="_blank"> 
1218                        <svg class="email" width="37" height="36" viewBox="0 0 37 36" fill="none" 
1219                             xmlns="http://www.w3.org/2000/svg"> 
1220                            <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
1221                            <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" 
1222                                  fill="#008542"/> 
1223                        </svg> 
1224                        <span>send e-mail</span> 
1225                    </a> 
1226 
1227                    <a class="share-news-social-media news-gallery-share-news-facebook" href="https://www.facebook.com/sharer/sharer.php?u=${newsInfo.url}" target="_blank"> 
1228                        <svg class="facebook" width="37" height="36" viewBox="0 0 37 36" fill="none" 
1229                             xmlns="http://www.w3.org/2000/svg"> 
1230                            <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
1231                            <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" 
1232                                  fill="#008542"/> 
1233                        </svg> 
1234                        <span>Share Facebook </span> 
1235                    </a> 
1236 
1237                    <#assign mobileShareButtonId = "mobile-share-" + randomNumber(5)> 
1238                    <div class="mobile-share" id="${mobileShareButtonId}"> 
1239                        <svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1240                            <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
1241                            <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" 
1242                                  fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
1243                            <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" 
1244                                  fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
1245                            <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" 
1246                                  fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/> 
1247                            <path d="M20.2546 14.0784L15.9036 16.8879" stroke="#008542" stroke-linecap="round" 
1248                                  stroke-linejoin="round"/> 
1249                            <path d="M15.9036 19.4871L20.2546 22.2966" stroke="#008542" stroke-linecap="round" 
1250                                  stroke-linejoin="round"/> 
1251                        </svg> 
1252                    </div> 
1253 
1254                    <a class="share-news-social-media news-gallery-share-news-twitter" href="https://twitter.com/intent/tweet?url=${newsInfo.url}" target="_blank" data-size="large"> 
1255                        <svg class="twitter" width="37" height="36" viewBox="0 0 37 36" fill="none" 
1256                             xmlns="http://www.w3.org/2000/svg"> 
1257                            <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
1258                            <path d="M23.1771 14.7301C23.6859 14.3325 24.1438 13.8554 24.5 13.2988C24.0421 13.5108 23.5078 13.6699 22.9736 13.7229C23.5333 13.3783 23.9403 12.8482 24.1438 12.1855C23.635 12.5036 23.0499 12.7422 22.4648 12.8747C21.956 12.3181 21.2691 12 20.5059 12C19.0303 12 17.8346 13.2458 17.8346 14.7831C17.8346 14.9952 17.8601 15.2072 17.911 15.4193C15.6977 15.2867 13.7133 14.1735 12.3904 12.5036C12.1614 12.9012 12.0342 13.3783 12.0342 13.9084C12.0342 14.8627 12.4922 15.7108 13.2299 16.2145C12.7975 16.188 12.365 16.0819 12.0088 15.8699V15.8964C12.0088 17.2482 12.9247 18.3614 14.1458 18.6265C13.9423 18.6795 13.6879 18.7325 13.4589 18.7325C13.2808 18.7325 13.1282 18.706 12.9501 18.6795C13.2808 19.7928 14.273 20.588 15.4432 20.6145C14.5274 21.3566 13.3826 21.8072 12.136 21.8072C11.907 21.8072 11.7035 21.7807 11.5 21.7542C12.6703 22.5494 14.0695 23 15.5959 23C20.5059 23 23.1771 18.7855 23.1771 15.1012C23.1771 14.9687 23.1771 14.8627 23.1771 14.7301Z" 
1259                                  fill="#008542"/> 
1260                        </svg> 
1261                        <span>Share Twitter </span> 
1262                    </a> 
1263 
1264                    <a class="share-news-social-media news-gallery-share-news-whatsapp" href="https://api.whatsapp.com/send?text=${newsInfo.url}" data-action="share/whatsapp" 
1265                       target="_blank"> 
1266                        <svg class="whatsapp" width="37" height="36" viewBox="0 0 37 36" fill="none" 
1267                             xmlns="http://www.w3.org/2000/svg"> 
1268                            <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/> 
1269                            <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" 
1270                                  fill="#008542"/> 
1271                            <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" 
1272                                  fill="white"/> 
1273                        </svg> 
1274                        <span>Share to WhatsApp </span> 
1275                    </a> 
1276 
1277                    <div class="copy-text-container news-copy-text"> 
1278                        <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1279                            <path d="M10.5 10.5H13.5V2.5H5.5V5.5" stroke="#008542" stroke-linecap="round" 
1280                                  stroke-linejoin="round"/> 
1281                            <path d="M10.5 5.5H2.5V13.5H10.5V5.5Z" stroke="#008542" stroke-linecap="round" 
1282                                  stroke-linejoin="round"/> 
1283                        </svg> 
1284 
1285                        <#if locale == "pt_BR"> 
1286                            <p class="text">Copiar texto 
1287                                <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> 
1288                            </p> 
1289                        <#else > 
1290                            <p class="text">Copy text 
1291                                <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> 
1292                            </p> 
1293                        </#if> 
1294                    </div> 
1295 
1296                </div> 
1297 
1298                <#if locale == "pt_BR"> 
1299                    <span class="copy-message">Texto copiado!</span> 
1300                <#else > 
1301                    <span class="copy-message">Text copied!</span> 
1302                </#if> 
1303                <#--        </div>--> 
1304            </div> 
1305        </div> 
1306    </div> 
1307 
1308    <style> 
1309        /*Data de publicação e redes sociais */ 
1310 
1311        /* Desktop */ 
1312        .ptb-news__read-news .publish_and_social_medias_infos_desk { 
1313            position: relative; 
1314            display: grid; 
1315            grid-template-columns: auto 1fr auto; 
1316
1317 
1318        .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
1319            padding: var(--space-none, 0); 
1320            margin: var(--space-none, 0); 
1321            font-family: var(--font-family-base); 
1322            font-style: var(--font-style-normal, normal); 
1323            font-weight: var(--font-weight-regular, 400); 
1324            font-size: var(--font-size-xxs, 16px); 
1325            line-height: var(--line-height-xl, 160%); 
1326            color: var(--color-neutral-800, #373737); 
1327
1328 
1329        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk * { 
1330            color: var(--text-secondary-default, #F8F8F8); 
1331
1332 
1333        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg path, 
1334        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg path { 
1335            stroke: var(--color-neutral-500, #D7D7D7); 
1336            fill: rgba(255, 255, 255, 0.32); 
1337
1338 
1339        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg circle, 
1340        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg circle { 
1341            fill: rgba(255, 255, 255, 0.32); 
1342 
1343
1344 
1345        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date { 
1346            display: flex; 
1347            flex-direction: column; 
1348            gap: var(--space-none, 0);; 
1349
1350 
1351        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated { 
1352            font-weight: var(--font-weight-bold, 700); 
1353
1354 
1355        .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published { 
1356            font-weight: var(--font-weight-normal, 400); 
1357
1358 
1359        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
1360            display: flex; 
1361            width: 100%; 
1362            justify-content: flex-end; 
1363            align-items: center; 
1364            gap: var(--space-sm, 16px); 
1365
1366 
1367        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share { 
1368            display: none; 
1369            cursor: pointer; 
1370
1371			 
1372			 
1373        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share svg { 
1374					pointer-events: none; 
1375
1376 
1377        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .share-news-social-media * { 
1378            pointer-events: none; 
1379
1380 
1381        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .share-news-social-media { 
1382            position: relative; 
1383
1384 
1385        .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .share-news-social-media span { 
1386            position: absolute; 
1387            top: 0; 
1388            left: 0; 
1389            width: 100%; 
1390            height: 100%; 
1391            opacity: 0; 
1392            overflow: hidden; 
1393            pointer-events: none; 
1394        }         
1395 
1396        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
1397            background: #FFFFFF; 
1398            border: var(--border-width-hairline, 1px) solid var(--color-opacity-dark-level-01, #CCCCCC); 
1399            border-radius: var(--border-radius-xl, 32px); 
1400            display: flex; 
1401            align-items: center; 
1402            gap: var(--space-sm, 16px); 
1403            padding: 6px var(--space-xxs, 8px); 
1404            height: 36px; 
1405            margin: 0; 
1406            cursor: pointer; 
1407
1408 
1409        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container * { 
1410          pointer-events: none; 
1411
1412 
1413        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
1414            background: rgba(255, 255, 255, 0.32); 
1415            border: var(--border-width-hairline, 1px) solid rgba(255, 255, 255, 0.32); 
1416
1417 
1418        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container svg { 
1419            width: 18px; 
1420
1421 
1422        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk svg path { 
1423            stroke: var(--color-neutral-500, #D7D7D7); 
1424
1425 
1426        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
1427            background: #FFFFFF; 
1428            border: var(--border-width-hairline, 1px) solid var(--color-opacity-dark-level-01, #CCCCCC); 
1429            border-radius: var(--border-radius-xl, 32px); 
1430            display: flex; 
1431            align-items: center; 
1432            gap: var(--space-sm, 16px); 
1433            padding: 6px var(--space-sm, 16px); 
1434            height: 36px; 
1435            margin: 0; 
1436            cursor: pointer; 
1437            position: relative; 
1438
1439 
1440 
1441        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
1442            font-family: var(--font-family-base); 
1443            font-style: var(--font-weight-regular, normal); 
1444            margin: 0; 
1445            height: 100%; 
1446            display: flex; 
1447            align-items: center; 
1448            color: var(--color-primary-brand, #008542); 
1449            font-size: var(--font-size-micro, 12px); 
1450            font-weight: var(--font-weight-bold, 700); 
1451            line-height: var(--line-height-lg, 144%); 
1452
1453 
1454        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text .copy-text-title-news { 
1455            position: absolute; 
1456            top: 0; 
1457            left: 0; 
1458            width: 100%; 
1459            height: 100%; 
1460            opacity: 0; 
1461            overflow: hidden; 
1462
1463 
1464        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
1465            color: var(--text-primary-accent, #E4F7E8); 
1466
1467 
1468        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
1469            display: none; 
1470            position: absolute; 
1471            bottom: -43px; 
1472            right: -15px; 
1473            padding: var(--space-xxxs, 4px) var(--space-sm, 15px); 
1474            margin: var(--space-micro, 2px) 10px; 
1475            width: 110px; 
1476            font-family: var(--font-family-base); 
1477            font-size: var(--font-size-micro, 12px); 
1478            color: var(--color-primary-brand, #008542); 
1479            background: #FFFFFF; 
1480            border-radius: var(--border-radius-md, 8px); 
1481 
1482            filter: drop-shadow(0px 4px 16px rgba(0, 0, 0, 0.16)); 
1483 
1484            cursor: pointer; 
1485
1486 
1487        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
1488            background: rgba(255, 255, 255, 0.32); 
1489            color: var(--text-primary-accent, #E4F7E8); 
1490
1491 
1492        .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message-active { 
1493            display: block; 
1494
1495 
1496        /* Mobile */ 
1497 
1498        .ptb-news__read-news .publish_and_social_medias_infos_mobile { 
1499            display: flex; 
1500            flex-direction: column; 
1501            gap: 19px; 
1502
1503 
1504        .ptb-news__read-news .publish_and_social_medias_infos_mobile { 
1505            display: none; 
1506
1507 
1508        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text { 
1509            display: flex; 
1510            justify-content: space-between; 
1511            align-items: center; 
1512            margin-bottom: var(--space-lg, 32px); 
1513
1514 
1515        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date * { 
1516            padding: 0; 
1517            margin: 0; 
1518            font-family: var(--font-family-base); 
1519            font-style: var(--font-style-normal, normal); 
1520            font-size: var(--font-size-micro, 12px); 
1521            line-height: var(--line-height-md, 136%); 
1522            color: var(--color-neutral-800, #373737); 
1523
1524 
1525        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date { 
1526            display: flex; 
1527            flex-direction: column; 
1528            gap: 0; 
1529
1530 
1531        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 * { 
1532            color: var(--text-primary-accent, #E4F7E8); 
1533
1534 
1535        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .updated { 
1536            font-weight: var(--font-weight-bold, 700); 
1537
1538 
1539        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .published { 
1540            font-weight: var(--font-weight-regular, 400); 
1541
1542 
1543        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container { 
1544            background: #FFFFFF; 
1545            border: var(--border-width-hairline, 1px) solid var(--color-opacity-dark-level-01, #CCCCCC); 
1546            border-radius: var(--border-radius-xl, 32px); 
1547            display: flex; 
1548            align-items: center; 
1549            gap: var(--space-sm, 16px); 
1550            padding: 6px var(--space-xxxs, 8px); 
1551            width: 112px; 
1552            height: 36px; 
1553
1554 
1555        body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container { 
1556            background: rgba(255, 255, 255, 0.32); 
1557            color: var(--text-primary-accent, #E4F7E8); 
1558
1559 
1560        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container p.text { 
1561            margin: 0; 
1562
1563 
1564        .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container .text { 
1565            font-family: var(--font-family-base); 
1566            font-style: var(--font-style-normal, normal); 
1567            font-weight: var(--font-weight-regular, 400); 
1568            font-size: var(--font-size-micro, 13px); 
1569            line-height: 14px; 
1570            color: var(--color-primary-medium, #008542); 
1571
1572 
1573        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 { 
1574            background: rgba(255, 255, 255, 0.32); 
1575            color: var(--text-primary-accent, #E4F7E8); 
1576
1577 
1578        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1579            .ptb-news__read-news .publish_and_social_medias_infos_desk { 
1580                display: grid; 
1581                grid-template-columns: 100%; 
1582                grid-template-rows: 1fr 100%; 
1583                gap: var(--space-md); 
1584
1585 
1586            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date { 
1587                grid-column-start: 1; 
1588                grid-column-end: 1; 
1589                grid-row-start: 1; 
1590                grid-row-end: 1; 
1591                gap: var(--space-xxs, 8px); 
1592
1593 
1594            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * { 
1595                padding: 0; 
1596                margin: 0; 
1597                font-family: var(--font-family-base); 
1598                font-style: var(--font-style-normal); 
1599                color: var(--color-neutral-800, #373737); 
1600                font-weight: var(--font-weight-bold); 
1601                font-size: var(--font-size-xxxs, 14px); 
1602                line-height: var(--line-height-md, 132%); 
1603
1604 
1605            body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * { 
1606                color: var(--text-primary-accent, #E4F7E8); 
1607
1608 
1609            .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published { 
1610                font-weight: 400; 
1611
1612 
1613            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
1614                grid-column-start: 1; 
1615                grid-column-end: 2; 
1616                grid-row-start: 2; 
1617                grid-row-end: 2; 
1618                justify-content: flex-end; 
1619                height: 36px; 
1620
1621 
1622            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container { 
1623                grid-column-start: 1; 
1624                grid-column-end: 2; 
1625                grid-row-start: 2; 
1626                grid-row-end: 2; 
1627                max-width: 112px; 
1628                place-self: end; 
1629
1630 
1631            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text { 
1632                display: none; 
1633
1634 
1635            .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message { 
1636                bottom: 0; 
1637                right: -9px; 
1638
1639 
1640            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share { 
1641                display: initial; 
1642
1643
1644 
1645        @media screen and (min-width: ${MIN_TABLET_WIDTH}px) and (max-width: ${MAX_TABLET_WIDTH}px) { 
1646            .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container { 
1647                padding-right: 0; 
1648
1649
1650 
1651 
1652    </style> 
1653 
1654    <script> 
1655        AUI().ready(function () { 
1656 
1657            function copyOnClick(text) { 
1658 
1659                const strWithoutHtmlTags = text.replace(/(<([^>]+)>)/gi, ""); 
1660                const strWithoutMarcationBrackets = strWithoutHtmlTags.replace(/ *#\[[^\]]*]/g, ""); 
1661                const strWithoutNextPrevious = strWithoutMarcationBrackets.replace(/Previous    Next/g, ""); 
1662                const strWithoutBlankEnters = strWithoutNextPrevious.replace(/^\s*$(?:\r\n?|\n)/gm, ""); 
1663                const tempInput = document.createElement("textarea"); 
1664                tempInput.value = strWithoutBlankEnters; 
1665 
1666                document.body.appendChild(tempInput); 
1667                tempInput.select(); 
1668                document.execCommand("copy"); 
1669 
1670                if (tempInput.value.length > 0) { 
1671                    copyMessage.classList.add('copy-message-active'); 
1672 
1673                    timerToMessage() 
1674
1675 
1676                document.body.removeChild(tempInput); 
1677
1678 
1679            const root = document.querySelector(".publish_and_social_medias_infos_desk"); 
1680            const copyTextContainer = root.querySelector(".copy-text-container"); 
1681            copyTextContainer.addEventListener("click", (event) => { 
1682                event.preventDefault(); 
1683                const titleText = document.querySelector(".main-headline-container .main-headline").innerHTML; 
1684                const publishSocialMediaText = document.querySelector(".publish_and_social_medias_infos_desk .publish_and_update_date").innerHTML; 
1685                const tagsText = document.querySelector(".tags").innerHTML; 
1686                const newsContentText = document.querySelector(".news-content").innerHTML; 
1687                const text = titleText + publishSocialMediaText + tagsText + newsContentText; 
1688                copyOnClick(text) 
1689            }); 
1690 
1691            const mobileShare = async () => { 
1692                try { 
1693                    const shareData = { 
1694                        title: '${newsInfo.mainHeadlineOfTheNews}', 
1695                        text: '', 
1696                        url: '${newsInfo.url}' 
1697                    }; 
1698                    await navigator.share(shareData); 
1699                } catch (err) { 
1700 
1701
1702            }; 
1703 
1704            const mobileShareButton = document.querySelector("#${mobileShareButtonId}"); 
1705            mobileShareButton.addEventListener("click", (event) => { 
1706                event.preventDefault(); 
1707                mobileShare(); 
1708            }); 
1709 
1710            const copyMessage = document.querySelector('.copy-message'); 
1711            const timerToMessage = () => { 
1712                setTimeout(() => { 
1713                    removeMessage(); 
1714                }, 2500); 
1715 
1716
1717 
1718            const removeMessage = () => { 
1719                copyMessage.classList.remove('copy-message-active'); 
1720
1721 
1722        }); 
1723    </script> 
1724 
1725</#macro> 
1726 
1727<#-- ################################################################################################################## --> 
1728 
1729<#-- ############# Site de Crise - Notícia - Render Tags ############################################################## --> 
1730 
1731<#function getCategoriesNamesAndIds vocabularyName categoriesList> 
1732    <#assign tagCategoryList = [] /> 
1733 
1734    <#assign tagsVocabulary = assetVocabularyService.fetchGroupVocabulary(groupId, vocabularyName) /> 
1735    <#list categoriesList as cat> 
1736        <#if tagsVocabulary.getVocabularyId() == cat.embeddedTaxonomyCategory.taxonomyVocabularyId > 
1737            <#assign tagCategoryList += [[cat.taxonomyCategoryName, cat.taxonomyCategoryId]] /> 
1738        </#if> 
1739    </#list> 
1740    <#return tagCategoryList> 
1741</#function> 
1742 
1743<#function filterCategories allCategoryInfoList> 
1744    <#assign filteredCategoryInfo = []> 
1745    <#assign assetEntryQueryService = objectUtil("com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil").getService()> 
1746    <#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')> 
1747 
1748    <#list allCategoryInfoList as catInfo> 
1749        <#assign catId = catInfo[1]> 
1750        <#assign search = assetEntryQuery.setAllCategoryIds([catId])> 
1751        <#assign foundEntries = assetEntryQueryService.getEntries(assetEntryQuery)> 
1752        <#if foundEntries?size gt 0> 
1753            <#assign filteredCategoryInfo += [catInfo]> 
1754        </#if> 
1755    </#list> 
1756 
1757    <#return filteredCategoryInfo> 
1758</#function> 
1759 
1760<#assign 
1761vocabularies = assetVocabularyService.getGroupVocabularies(groupId) 
1762flagVocabulary = findVocabulary("Flag", vocabularies) 
1763assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") 
1764/> 
1765 
1766<#function getCategoryIdsFromEntry entry categoriesToFilter assetCategoryLocalService> 
1767    <#if !entry??> 
1768        <#return []> 
1769    </#if> 
1770 
1771    <#assign categoriesFromEntry = []> 
1772 
1773    <#assign ids = assetCategoryLocalService.getCategoryIds("com.liferay.journal.model.JournalArticle", entry.getClassPK()) /> 
1774    <#list categoriesToFilter as catToFilter> 
1775        <#assign catIdFromEntry =  catToFilter[1] /> 
1776        <#assign index = ids?seq_index_of(catIdFromEntry)/> 
1777        <#if index != -1> 
1778            <#assign categoriesFromEntry += [catToFilter]/> 
1779        </#if> 
1780    </#list> 
1781 
1782    <#return categoriesFromEntry> 
1783</#function> 
1784 
1785<#macro renderNewsTags categoryList targetPageWhenClickTag removeStartParameterWhenTagIsClicked updateTagParamsWhenClicked> 
1786    <#assign tagPrefix = "tags-" + randomNumber(groupId?number)> 
1787    <div class="breakpoint"> 
1788        <div class="col-3-10 md-col-1-12 sm-col-1-4"> 
1789            <div class="${tagPrefix} "> 
1790 
1791                <#assign siteUrl = "" /> 
1792                <#if themeDisplay.getPortalURL()?contains("webserver")> 
1793                    <#assign siteUrl = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL /> 
1794                </#if> 
1795 
1796                <div class="tags"> 
1797                    <#list categoryList as cat> 
1798                        <a href="${siteUrl}/busca?q=&category=${cat[1]}" 
1799                           class="category news-tag-item" cetegoryid="${cat[1]}"># ${cat[0]}</a> 
1800                    </#list> 
1801                </div> 
1802            </div> 
1803        </div> 
1804    </div> 
1805 
1806    <style> 
1807        .${tagPrefix} { 
1808            display: flex; 
1809            flex-direction: column; 
1810            padding: 0; 
1811            gap: var(--space-sm); 
1812
1813 
1814        .${tagPrefix} * { 
1815            margin: 0; 
1816            padding: 0; 
1817
1818 
1819        .${tagPrefix} .tags { 
1820            display: flex; 
1821            flex-wrap: wrap; 
1822            gap: var(--space-xxs, 8px); 
1823            padding: var(--space-lg) 0 var(--space-xl); 
1824
1825 
1826        .${tagPrefix} .tags .category { 
1827            padding: var(--space-xxxs) var(--space-xxs); 
1828            background: var(--color-neutral-100); 
1829            border: 1px solid var(--color-neutral-500); 
1830            border-radius: var(--border-radius-xl, 32px); 
1831 
1832            font-family: var(--font-family-base); 
1833            font-style: var(--font-style-normal); 
1834            font-weight: var(--font-weight-regular); 
1835            font-size: var(--font-size-xxxs); 
1836            line-height: var(--line-height-xl); 
1837            color: var(--color-neutral-800, #373737); 
1838            cursor: pointer; 
1839
1840 
1841        body.high-contrast-active .${tagPrefix} .tags .category { 
1842            background: rgba(255, 255, 255, 0.32); 
1843            border: 1px solid rgba(255, 255, 255, 0.32); 
1844            color: var(--text-secondary-default, #F8F8F8); 
1845
1846 
1847        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
1848            .${tagPrefix} .tags { 
1849                display: flex; 
1850                flex-wrap: wrap; 
1851                gap: var(--space-xxs, 8px); 
1852                padding: var(--space-sm) 0 var(--space-lg); 
1853
1854 
1855            .${tagPrefix} { 
1856                margin-top: var(--space-sm); 
1857
1858
1859    </style> 
1860 
1861    <script> 
1862        AUI().ready(function () { 
1863 
1864            const urlParams = new URLSearchParams(window.location.search); 
1865            const categories = urlParams.getAll("category").sort(); 
1866 
1867            const root = document.querySelector(".${tagPrefix}"); 
1868            const tags = root.querySelectorAll(".category"); 
1869            tags.forEach((tag, index) => { 
1870 
1871                const categoryId = tag.getAttribute("cetegoryid"); 
1872                if (categories.indexOf(categoryId) != -1) { 
1873                    tag.classList.add("active"); 
1874
1875 
1876                <#if updateTagParamsWhenClicked> 
1877                tag.addEventListener("click", (e) => { 
1878                    e.preventDefault(); 
1879                    const clickedTag = e.target; 
1880                    const urlParams = new URLSearchParams(window.location.search); 
1881                    urlParams.delete("tag"); 
1882                    urlParams.delete("category"); 
1883 
1884                    const categoryId = clickedTag.getAttribute("cetegoryid"); 
1885                    urlParams.append("category", categoryId); 
1886 
1887                    <#if removeStartParameterWhenTagIsClicked> 
1888                    urlParams.delete("start"); 
1889                    </#if> 
1890 
1891                    const href = "${themeDisplay.getPortalURL() + mountUrlToPage(targetPageWhenClickTag)}?" + urlParams.toString(); 
1892                    window.location.href = href; 
1893                }); 
1894                </#if> 
1895            }); 
1896        }); 
1897    </script> 
1898 
1899</#macro> 
1900 
1901<#-- ################################################################################################################## --> 
1902 
1903<#-- ############# Site de Crise - Notícia - Imagem de destaque ####################################################### --> 
1904<#macro renderNewsFeaturedImage newsInfo> 
1905<#--if newsInfo.newsImageFieldSet.newsImage.url != ""--> 
1906 
1907    <#if !newsInfo.newsImageFieldSet.newsImage.url?has_content> 
1908        <#return /> 
1909    </#if> 
1910	 
1911    <div class="news-featured-image"> 
1912        <div class="breakpoint"> 
1913            <div class="col-3-10 md-col-1-12 sm-col-1-4"> 
1914                <#if newsInfo.newsImageFieldSet.credits != ""> 
1915                    <p class="credits"> 
1916                        ${newsInfo.newsImageFieldSet.credits} 
1917                    </p> 
1918                </#if> 
1919            </div> 
1920        </div> 
1921        <div class="breakpoint"> 
1922            <div class="col-2-11 md-col-1-12 sm-col-1-4"> 
1923                <img alt="${newsInfo.newsImageFieldSet.newsImage.alt}" 
1924                     src="${newsInfo.newsImageFieldSet.newsImage.url}" 
1925                     alt="${newsInfo.newsImageFieldSet.newsImage.alt}"/> 
1926            </div> 
1927        </div> 
1928        <#if newsInfo.newsImageFieldSet.legend != ""> 
1929					 
1930					 
1931			 <@liferay_util["html-top"]> 
1932				 <meta name="title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1933				 <meta name="description" content="${newsInfo.newsSummary}"> 
1934							 
1935					<meta property="og:type" content="website" > 
1936					<meta property="og:url" content="${currentURL}" > 
1937					<meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1938				  <meta property="og:description" content="${newsInfo.newsSummary}" /> 
1939					<meta property="og:image" content= "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsImageFieldSet.newsImage.fileEntryId}/Thumbnail-300x300/image" > 
1940				 <meta property="og:image:alt" content="${newsInfo.newsImageFieldSet.newsImage.alt}"> 
1941                             
1942				 <meta name="twitter:card" content="summary_large_image"> 
1943				 <meta name="twitter:url" content="${currentURL}" /> 
1944				 <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}"> 
1945				 <meta name="twitter:description" content="${newsInfo.newsSummary}" /> 
1946				 <meta name="twitter:image" content= "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsImageFieldSet.newsImage.fileEntryId}/Thumbnail-300x300/image" > 
1947				 <meta name="twitter:image:alt" content="${newsInfo.newsImageFieldSet.newsImage.alt}"> 
1948				  
1949			 </@> 
1950    
1951					 
1952            <div class="breakpoint"> 
1953                <div class="col-3-10 md-col-1-12 sm-col-1-4"> 
1954                    <div class="legend"> 
1955                        <p>${newsInfo.newsImageFieldSet.legend}</p> 
1956                        <a class="download download-news-image" href="${newsInfo.newsImageFieldSet.newsImage.url}?download=true" 
1957                           alt="${newsInfo.newsImageFieldSet.newsImage.alt}"> 
1958                            Download 
1959                            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" 
1960                                 xmlns="http://www.w3.org/2000/svg"> 
1961                                <path d="M5.375 6.875L8 9.5M8 9.5L10.625 6.875M8 9.5V2.5M13.5 9.5V13C13.5 13.1326 13.4473 13.2598 13.3536 13.3536C13.2598 13.4473 13.1326 13.5 13 13.5H3C2.86739 13.5 2.74021 13.4473 2.64645 13.3536C2.55268 13.2598 2.5 13.1326 2.5 13V9.5" 
1962                                      stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
1963                                      stroke-linejoin="round"/> 
1964                            </svg> 
1965                            <span>${newsInfo.newsImageFieldSet.legend}</span> 
1966                        </a> 
1967                    </div> 
1968                </div> 
1969            </div> 
1970        </#if> 
1971    </div> 
1972    <style> 
1973        .ptb-news__read-news .news-featured-image { 
1974            padding: 0 0 var(--space-xl) 0; 
1975
1976 
1977        .ptb-news__read-news .news-featured-image img { 
1978            width: 100%; 
1979            height: 470px; 
1980            object-fit: cover; 
1981            border-radius: var(--border-radius-lg, 16px); 
1982
1983 
1984        .ptb-news__read-news .news-featured-image * { 
1985            font-family: var(--font-family-base); 
1986            line-height: var(--line-height-xl); 
1987
1988 
1989        .ptb-news__read-news .news-featured-image .credits { 
1990            font-style: var(--font-style-normal); 
1991            font-weight: var(--font-weight-bold, 700); 
1992            font-size: var(--font-size-micro, 12px); 
1993            text-align: right; 
1994            color: var(--color-neutral-600, #959595); 
1995            margin-bottom: var(--space-xxxs, 4px); 
1996
1997 
1998        body.high-contrast-active .ptb-news__read-news .news-featured-image .credits { 
1999            color: var(--text-secondary-default, #F8F8F8); 
2000
2001 
2002        .ptb-news__read-news .news-featured-image .legend { 
2003            margin-top: var(--space-xxxs, 4px); 
2004            display: flex; 
2005            justify-content: space-between; 
2006
2007 
2008        .ptb-news__read-news .news-featured-image .legend .download-news-image { 
2009            position: relative; 
2010
2011 
2012        .ptb-news__read-news .news-featured-image .legend .download-news-image span { 
2013           position: absolute; 
2014           top: 0; 
2015           left: 0; 
2016           opacity: 0; 
2017           width: 100%; 
2018           height: 100%; 
2019
2020 
2021        .ptb-news__read-news .news-featured-image .legend, 
2022        .ptb-news__read-news .news-featured-image .legend * { 
2023            font-style: var(--font-style-italic, italic); 
2024            font-weight: var(--font-weight-regular, 400); 
2025            font-size: var(--font-size-xxs, 16px); 
2026            color: var(--color-neutral-700, #515867); 
2027
2028 
2029        .ptb-news__read-news .news-featured-image .legend a { 
2030            display: flex; 
2031            align-items: center; 
2032            gap: var(--space-sm, 16px); 
2033            color: var(--color-primary-brand, #008542); 
2034            font-family: var(--font-family-base); 
2035            font-size: var(--font-size-xxxs, 14px); 
2036            font-style: var(--font-style-normal, normal); 
2037            font-weight: var(--font-weight-bold, 700); 
2038            line-height: var(--line-height-lg, 144%); 
2039            text-decoration-line: var(--text-decoration-underline, underline); 
2040
2041 
2042        body.high-contrast-active .ptb-news__read-news .news-featured-image .legend, 
2043        body.high-contrast-active .ptb-news__read-news .news-featured-image .legend * { 
2044            color: var(--text-secondary-default, #F8F8F8); 
2045
2046 
2047        body.high-contrast-active .ptb-news__read-news .news-featured-image .legend .download svg path { 
2048            stroke: var(--color-primary-solid-to-bright-200, var(--color-primary-medium)); 
2049
2050 
2051        .ptb-news__read-news .news-featured-image .legend .download * { 
2052          pointer-events: none; 
2053
2054 
2055        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
2056            .ptb-news__read-news .news-featured-image .legend, 
2057            .ptb-news__read-news .news-featured-image .legend * { 
2058                font-size: var(--font-size-xxs, 14px); 
2059                line-height: var(--line-height-xl, 160%); 
2060
2061 
2062            .ptb-news__read-news .news-featured-image img { 
2063                height: 163px; 
2064
2065
2066    </style> 
2067 
2068<#--/#if --> 
2069</#macro> 
2070<#-- ################################################################################################################## --> 
2071 
2072<#-- ############# Site de Crise - Notícia - Conteúdo da notícia ###################################################### --> 
2073 
2074<#macro renderNewsContent newsInfo> 
2075 
2076    <#assign targetStr = "<div class='paragraph_separator'><span class='dot'></span><span class='dot'></span><span class='dot'></span><span class='dot'></span></div>"> 
2077    <#assign content = newsInfo.newsContent?replace("<p></p>", targetStr, 'r')> 
2078    <#assign content = content?replace("<p> </p>", targetStr, 'r')> 
2079    <#assign content = content?replace("<p></p>", targetStr, 'r')> 
2080    <#assign content = content?replace("<p>&nbsp;</p>", targetStr, 'r')> 
2081 
2082    <div class="news-content breakpoint"> 
2083        ${content} 
2084 
2085        <div class="audio-template audio-pause audio-unmuted" style="display:none"> 
2086            <div class="audio-button-play"> 
2087                <svg class="audio-play-icon" width="100%" height="100%" viewBox="0 0 91 90" fill="#008542" 
2088                     xmlns="http://www.w3.org/2000/svg"> 
2089                    <circle cx="45.2903" cy="45" r="44.5" stroke="#008542"></circle> 
2090                    <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" 
2091                          fill="white"></path> 
2092                </svg> 
2093 
2094                <svg class="audio-pause-icon" width="100%" height="100%" viewBox="0 0 91 90" fill="#008542" 
2095                     xmlns="http://www.w3.org/2000/svg"> 
2096                    <circle cx="45.2903" cy="45" r="44.5" stroke="#008542"></circle> 
2097                    <path d="M42.3736 30.4167H33.6236V59.5834H42.3736V30.4167Z" fill="white"></path> 
2098                    <path d="M48.2069 59.5834H56.9569V30.4167H48.2069V59.5834Z" fill="white"></path> 
2099                </svg> 
2100            </div> 
2101            <div class="audio-sondwave"> 
2102                <svg class="audio-sondwave-desktop" width="100%" height="100%" viewBox="0 0 590 30" fill="none" 
2103                     xmlns="http://www.w3.org/2000/svg"> 
2104                    <g clip-path="url(#clip0_2625_8152)"> 
2105                        <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" 
2106                              stroke-linecap="round"/> 
2107                        <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" 
2108                              stroke-linecap="round"/> 
2109                        <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" 
2110                              stroke-linecap="round"/> 
2111                        <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" 
2112                              stroke-linecap="round"/> 
2113                        <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" 
2114                              stroke-linecap="round"/> 
2115                        <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" 
2116                              stroke-linecap="round"/> 
2117                        <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" 
2118                              stroke-linecap="round"/> 
2119                        <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" 
2120                              stroke-linecap="round"/> 
2121                        <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" 
2122                              stroke-linecap="round"/> 
2123                        <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" 
2124                              stroke-linecap="round"/> 
2125                        <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" 
2126                              stroke-linecap="round"/> 
2127                        <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" 
2128                              stroke-linecap="round"/> 
2129                        <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" 
2130                              stroke-linecap="round"/> 
2131                        <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" 
2132                              stroke-linecap="round"/> 
2133                        <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" 
2134                              stroke-linecap="round"/> 
2135                        <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" 
2136                              stroke-linecap="round"/> 
2137                        <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" 
2138                              stroke-linecap="round"/> 
2139                        <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" 
2140                              stroke-linecap="round"/> 
2141                        <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" 
2142                              stroke-linecap="round"/> 
2143                        <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" 
2144                              stroke-linecap="round"/> 
2145                        <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" 
2146                              stroke-linecap="round"/> 
2147                        <line x1="107.072" y1="8.75" x2="107.072" y2="20.25" stroke="#008542" stroke-width="1.5" 
2148                              stroke-linecap="round"/> 
2149                        <line x1="112.234" y1="0.75" x2="112.234" y2="29.25" stroke="#008542" stroke-width="1.5" 
2150                              stroke-linecap="round"/> 
2151                        <line x1="117.395" y1="7.75" x2="117.395" y2="21.25" stroke="#008542" stroke-width="1.5" 
2152                              stroke-linecap="round"/> 
2153                        <line x1="122.557" y1="5.75" x2="122.557" y2="24.25" stroke="#008542" stroke-width="1.5" 
2154                              stroke-linecap="round"/> 
2155                        <line x1="127.717" y1="11.75" x2="127.717" y2="18.25" stroke="#008542" stroke-width="1.5" 
2156                              stroke-linecap="round"/> 
2157                        <line x1="132.879" y1="9.75" x2="132.879" y2="20.25" stroke="#008542" stroke-width="1.5" 
2158                              stroke-linecap="round"/> 
2159                        <line x1="138.041" y1="9.75" x2="138.041" y2="19.25" stroke="#008542" stroke-width="1.5" 
2160                              stroke-linecap="round"/> 
2161                        <line x1="142.17" y1="1.75" x2="142.17" y2="28.25" stroke="#008542" stroke-width="1.5" 
2162                              stroke-linecap="round"/> 
2163                        <line x1="147.33" y1="12.75" x2="147.33" y2="17.25" stroke="#008542" stroke-width="1.5" 
2164                              stroke-linecap="round"/> 
2165                        <line x1="151.75" y1="0.75" x2="151.75" y2="29.25" stroke="#008542" stroke-width="1.5" 
2166                              stroke-linecap="round"/> 
2167                        <line x1="156.91" y1="7.75" x2="156.91" y2="21.25" stroke="#008542" stroke-width="1.5" 
2168                              stroke-linecap="round"/> 
2169                        <line x1="162.072" y1="5.75" x2="162.072" y2="24.25" stroke="#008542" stroke-width="1.5" 
2170                              stroke-linecap="round"/> 
2171                        <line x1="167.234" y1="11.75" x2="167.234" y2="18.25" stroke="#008542" stroke-width="1.5" 
2172                              stroke-linecap="round"/> 
2173                        <line x1="172.395" y1="9.75" x2="172.395" y2="20.25" stroke="#008542" stroke-width="1.5" 
2174                              stroke-linecap="round"/> 
2175                        <line x1="177.557" y1="9.75" x2="177.557" y2="19.25" stroke="#008542" stroke-width="1.5" 
2176                              stroke-linecap="round"/> 
2177                        <line x1="181.686" y1="1.75" x2="181.686" y2="28.25" stroke="#008542" stroke-width="1.5" 
2178                              stroke-linecap="round"/> 
2179                        <line x1="186.848" y1="12.75" x2="186.848" y2="17.25" stroke="#008542" stroke-width="1.5" 
2180                              stroke-linecap="round"/> 
2181                        <line x1="192.008" y1="13.75" x2="192.008" y2="16.25" stroke="#008542" stroke-width="1.5" 
2182                              stroke-linecap="round"/> 
2183                        <line x1="197.17" y1="10.75" x2="197.17" y2="19.25" stroke="#008542" stroke-width="1.5" 
2184                              stroke-linecap="round"/> 
2185                        <line x1="202.33" y1="8.75" x2="202.33" y2="20.25" stroke="#008542" stroke-width="1.5" 
2186                              stroke-linecap="round"/> 
2187                        <line x1="207.492" y1="0.75" x2="207.492" y2="29.25" stroke="#008542" stroke-width="1.5" 
2188                              stroke-linecap="round"/> 
2189                        <line x1="212.652" y1="7.75" x2="212.652" y2="21.25" stroke="#008542" stroke-width="1.5" 
2190                              stroke-linecap="round"/> 
2191                        <line x1="217.814" y1="5.75" x2="217.814" y2="24.25" stroke="#008542" stroke-width="1.5" 
2192                              stroke-linecap="round"/> 
2193                        <line x1="222.977" y1="11.75" x2="222.977" y2="18.25" stroke="#008542" stroke-width="1.5" 
2194                              stroke-linecap="round"/> 
2195                        <line x1="228.137" y1="9.75" x2="228.137" y2="20.25" stroke="#008542" stroke-width="1.5" 
2196                              stroke-linecap="round"/> 
2197                        <line x1="233.299" y1="9.75" x2="233.299" y2="19.25" stroke="#008542" stroke-width="1.5" 
2198                              stroke-linecap="round"/> 
2199                        <line x1="237.428" y1="1.75" x2="237.428" y2="28.25" stroke="#008542" stroke-width="1.5" 
2200                              stroke-linecap="round"/> 
2201                        <line x1="242.588" y1="12.75" x2="242.588" y2="17.25" stroke="#008542" stroke-width="1.5" 
2202                              stroke-linecap="round"/> 
2203                        <line x1="247.75" y1="13.75" x2="247.75" y2="16.25" stroke="#008542" stroke-width="1.5" 
2204                              stroke-linecap="round"/> 
2205                        <line x1="252.91" y1="10.75" x2="252.91" y2="19.25" stroke="#008542" stroke-width="1.5" 
2206                              stroke-linecap="round"/> 
2207                        <line x1="258.072" y1="8.75" x2="258.072" y2="20.25" stroke="#008542" stroke-width="1.5" 
2208                              stroke-linecap="round"/> 
2209                        <line x1="263.234" y1="0.75" x2="263.234" y2="29.25" stroke="#008542" stroke-width="1.5" 
2210                              stroke-linecap="round"/> 
2211                        <line x1="268.395" y1="7.75" x2="268.395" y2="21.25" stroke="#008542" stroke-width="1.5" 
2212                              stroke-linecap="round"/> 
2213                        <line x1="273.557" y1="5.75" x2="273.557" y2="24.25" stroke="#008542" stroke-width="1.5" 
2214                              stroke-linecap="round"/> 
2215                        <line x1="278.717" y1="11.75" x2="278.717" y2="18.25" stroke="#008542" stroke-width="1.5" 
2216                              stroke-linecap="round"/> 
2217                        <line x1="283.879" y1="9.75" x2="283.879" y2="20.25" stroke="#008542" stroke-width="1.5" 
2218                              stroke-linecap="round"/> 
2219                        <line x1="289.041" y1="9.75" x2="289.041" y2="19.25" stroke="#008542" stroke-width="1.5" 
2220                              stroke-linecap="round"/> 
2221                        <line x1="293.17" y1="1.75" x2="293.17" y2="28.25" stroke="#008542" stroke-width="1.5" 
2222                              stroke-linecap="round"/> 
2223                        <line x1="298.33" y1="12.75" x2="298.33" y2="17.25" stroke="#008542" stroke-width="1.5" 
2224                              stroke-linecap="round"/> 
2225                        <line x1="302.75" y1="10.75" x2="302.75" y2="19.25" stroke="#008542" stroke-width="1.5" 
2226                              stroke-linecap="round"/> 
2227                        <line x1="307.912" y1="8.75" x2="307.912" y2="20.25" stroke="#008542" stroke-width="1.5" 
2228                              stroke-linecap="round"/> 
2229                        <line x1="313.072" y1="0.75" x2="313.072" y2="29.25" stroke="#008542" stroke-width="1.5" 
2230                              stroke-linecap="round"/> 
2231                        <line x1="318.234" y1="7.75" x2="318.234" y2="21.25" stroke="#008542" stroke-width="1.5" 
2232                              stroke-linecap="round"/> 
2233                        <line x1="323.395" y1="5.75" x2="323.395" y2="24.25" stroke="#008542" stroke-width="1.5" 
2234                              stroke-linecap="round"/> 
2235                        <line x1="328.557" y1="11.75" x2="328.557" y2="18.25" stroke="#008542" stroke-width="1.5" 
2236                              stroke-linecap="round"/> 
2237                        <line x1="333.719" y1="9.75" x2="333.719" y2="20.25" stroke="#008542" stroke-width="1.5" 
2238                              stroke-linecap="round"/> 
2239                        <line x1="338.879" y1="9.75" x2="338.879" y2="19.25" stroke="#008542" stroke-width="1.5" 
2240                              stroke-linecap="round"/> 
2241                        <line x1="343.008" y1="1.75" x2="343.008" y2="28.25" stroke="#008542" stroke-width="1.5" 
2242                              stroke-linecap="round"/> 
2243                        <line x1="348.17" y1="12.75" x2="348.17" y2="17.25" stroke="#008542" stroke-width="1.5" 
2244                              stroke-linecap="round"/> 
2245                        <line x1="353.33" y1="13.75" x2="353.33" y2="16.25" stroke="#008542" stroke-width="1.5" 
2246                              stroke-linecap="round"/> 
2247                        <line x1="358.492" y1="10.75" x2="358.492" y2="19.25" stroke="#008542" stroke-width="1.5" 
2248                              stroke-linecap="round"/> 
2249                        <line x1="363.652" y1="8.75" x2="363.652" y2="20.25" stroke="#008542" stroke-width="1.5" 
2250                              stroke-linecap="round"/> 
2251                        <line x1="368.814" y1="0.75" x2="368.814" y2="29.25" stroke="#008542" stroke-width="1.5" 
2252                              stroke-linecap="round"/> 
2253                        <line x1="373.977" y1="7.75" x2="373.977" y2="21.25" stroke="#008542" stroke-width="1.5" 
2254                              stroke-linecap="round"/> 
2255                        <line x1="379.137" y1="5.75" x2="379.137" y2="24.25" stroke="#008542" stroke-width="1.5" 
2256                              stroke-linecap="round"/> 
2257                        <line x1="384.299" y1="11.75" x2="384.299" y2="18.25" stroke="#008542" stroke-width="1.5" 
2258                              stroke-linecap="round"/> 
2259                        <line x1="389.459" y1="9.75" x2="389.459" y2="20.25" stroke="#008542" stroke-width="1.5" 
2260                              stroke-linecap="round"/> 
2261                        <line x1="394.621" y1="9.75" x2="394.621" y2="19.25" stroke="#008542" stroke-width="1.5" 
2262                              stroke-linecap="round"/> 
2263                        <line x1="398.75" y1="1.75" x2="398.75" y2="28.25" stroke="#008542" stroke-width="1.5" 
2264                              stroke-linecap="round"/> 
2265                        <line x1="403.912" y1="12.75" x2="403.912" y2="17.25" stroke="#008542" stroke-width="1.5" 
2266                              stroke-linecap="round"/> 
2267                        <line x1="408.33" y1="10.75" x2="408.33" y2="19.25" stroke="#008542" stroke-width="1.5" 
2268                              stroke-linecap="round"/> 
2269                        <line x1="413.492" y1="8.75" x2="413.492" y2="20.25" stroke="#008542" stroke-width="1.5" 
2270                              stroke-linecap="round"/> 
2271                        <line x1="418.654" y1="0.75" x2="418.654" y2="29.25" stroke="#008542" stroke-width="1.5" 
2272                              stroke-linecap="round"/> 
2273                        <line x1="423.814" y1="7.75" x2="423.814" y2="21.25" stroke="#008542" stroke-width="1.5" 
2274                              stroke-linecap="round"/> 
2275                        <line x1="428.977" y1="5.75" x2="428.977" y2="24.25" stroke="#008542" stroke-width="1.5" 
2276                              stroke-linecap="round"/> 
2277                        <line x1="434.137" y1="11.75" x2="434.137" y2="18.25" stroke="#008542" stroke-width="1.5" 
2278                              stroke-linecap="round"/> 
2279                        <line x1="439.299" y1="9.75" x2="439.299" y2="20.25" stroke="#008542" stroke-width="1.5" 
2280                              stroke-linecap="round"/> 
2281                        <line x1="444.461" y1="9.75" x2="444.461" y2="19.25" stroke="#008542" stroke-width="1.5" 
2282                              stroke-linecap="round"/> 
2283                        <line x1="448.59" y1="1.75" x2="448.59" y2="28.25" stroke="#008542" stroke-width="1.5" 
2284                              stroke-linecap="round"/> 
2285                        <line x1="453.75" y1="12.75" x2="453.75" y2="17.25" stroke="#008542" stroke-width="1.5" 
2286                              stroke-linecap="round"/> 
2287                        <line x1="458.912" y1="13.75" x2="458.912" y2="16.25" stroke="#008542" stroke-width="1.5" 
2288                              stroke-linecap="round"/> 
2289                        <line x1="464.072" y1="10.75" x2="464.072" y2="19.25" stroke="#008542" stroke-width="1.5" 
2290                              stroke-linecap="round"/> 
2291                        <line x1="469.234" y1="8.75" x2="469.234" y2="20.25" stroke="#008542" stroke-width="1.5" 
2292                              stroke-linecap="round"/> 
2293                        <line x1="474.395" y1="0.75" x2="474.395" y2="29.25" stroke="#008542" stroke-width="1.5" 
2294                              stroke-linecap="round"/> 
2295                        <line x1="479.557" y1="7.75" x2="479.557" y2="21.25" stroke="#008542" stroke-width="1.5" 
2296                              stroke-linecap="round"/> 
2297                        <line x1="484.719" y1="5.75" x2="484.719" y2="24.25" stroke="#008542" stroke-width="1.5" 
2298                              stroke-linecap="round"/> 
2299                        <line x1="489.879" y1="11.75" x2="489.879" y2="18.25" stroke="#008542" stroke-width="1.5" 
2300                              stroke-linecap="round"/> 
2301                        <line x1="495.041" y1="9.75" x2="495.041" y2="20.25" stroke="#008542" stroke-width="1.5" 
2302                              stroke-linecap="round"/> 
2303                        <line x1="500.201" y1="9.75" x2="500.201" y2="19.25" stroke="#008542" stroke-width="1.5" 
2304                              stroke-linecap="round"/> 
2305                        <line x1="504.33" y1="1.75" x2="504.33" y2="28.25" stroke="#008542" stroke-width="1.5" 
2306                              stroke-linecap="round"/> 
2307                        <line x1="509.492" y1="12.75" x2="509.492" y2="17.25" stroke="#008542" stroke-width="1.5" 
2308                              stroke-linecap="round"/> 
2309                        <line x1="513.912" y1="10.75" x2="513.912" y2="19.25" stroke="#008542" stroke-width="1.5" 
2310                              stroke-linecap="round"/> 
2311                        <line x1="519.072" y1="8.75" x2="519.072" y2="20.25" stroke="#008542" stroke-width="1.5" 
2312                              stroke-linecap="round"/> 
2313                        <line x1="524.234" y1="0.75" x2="524.234" y2="29.25" stroke="#008542" stroke-width="1.5" 
2314                              stroke-linecap="round"/> 
2315                        <line x1="529.395" y1="7.75" x2="529.395" y2="21.25" stroke="#008542" stroke-width="1.5" 
2316                              stroke-linecap="round"/> 
2317                        <line x1="534.557" y1="5.75" x2="534.557" y2="24.25" stroke="#008542" stroke-width="1.5" 
2318                              stroke-linecap="round"/> 
2319                        <line x1="539.719" y1="11.75" x2="539.719" y2="18.25" stroke="#008542" stroke-width="1.5" 
2320                              stroke-linecap="round"/> 
2321                        <line x1="544.879" y1="9.75" x2="544.879" y2="20.25" stroke="#008542" stroke-width="1.5" 
2322                              stroke-linecap="round"/> 
2323                        <line x1="550.041" y1="9.75" x2="550.041" y2="19.25" stroke="#008542" stroke-width="1.5" 
2324                              stroke-linecap="round"/> 
2325                        <line x1="554.17" y1="1.75" x2="554.17" y2="28.25" stroke="#008542" stroke-width="1.5" 
2326                              stroke-linecap="round"/> 
2327                        <line x1="559.332" y1="12.75" x2="559.332" y2="17.25" stroke="#008542" stroke-width="1.5" 
2328                              stroke-linecap="round"/> 
2329                        <line x1="564.492" y1="13.75" x2="564.492" y2="16.25" stroke="#008542" stroke-width="1.5" 
2330                              stroke-linecap="round"/> 
2331                        <line x1="569.654" y1="10.75" x2="569.654" y2="19.25" stroke="#008542" stroke-width="1.5" 
2332                              stroke-linecap="round"/> 
2333                        <line x1="574.814" y1="8.75" x2="574.814" y2="20.25" stroke="#008542" stroke-width="1.5" 
2334                              stroke-linecap="round"/> 
2335                        <line x1="579.977" y1="0.75" x2="579.977" y2="29.25" stroke="#008542" stroke-width="1.5" 
2336                              stroke-linecap="round"/> 
2337                        <line x1="585.137" y1="7.75" x2="585.137" y2="21.25" stroke="#008542" stroke-width="1.5" 
2338                              stroke-linecap="round"/> 
2339                        <line x1="590.299" y1="5.75" x2="590.299" y2="24.25" stroke="#008542" stroke-width="1.5" 
2340                              stroke-linecap="round"/> 
2341                    </g> 
2342                    <defs> 
2343                        <clipPath id="clip0_2625_8152"> 
2344                            <rect width="590" height="30" fill="white"/> 
2345                        </clipPath> 
2346                    </defs> 
2347                </svg> 
2348                <svg class="audio-sondwave-mobile" width="100%" height="100%" viewBox="0 0 102 30" fill="none" 
2349                     xmlns="http://www.w3.org/2000/svg"> 
2350                    <g clip-path="url(#clip0_2625_8922)"> 
2351                        <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" 
2352                              stroke-linecap="round"/> 
2353                        <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" 
2354                              stroke-linecap="round"/> 
2355                        <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" 
2356                              stroke-linecap="round"/> 
2357                        <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" 
2358                              stroke-linecap="round"/> 
2359                        <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" 
2360                              stroke-linecap="round"/> 
2361                        <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" 
2362                              stroke-linecap="round"/> 
2363                        <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" 
2364                              stroke-linecap="round"/> 
2365                        <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" 
2366                              stroke-linecap="round"/> 
2367                        <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" 
2368                              stroke-linecap="round"/> 
2369                        <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" 
2370                              stroke-linecap="round"/> 
2371                        <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" 
2372                              stroke-linecap="round"/> 
2373                        <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" 
2374                              stroke-linecap="round"/> 
2375                        <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" 
2376                              stroke-linecap="round"/> 
2377                        <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" 
2378                              stroke-linecap="round"/> 
2379                        <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" 
2380                              stroke-linecap="round"/> 
2381                        <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" 
2382                              stroke-linecap="round"/> 
2383                        <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" 
2384                              stroke-linecap="round"/> 
2385                        <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" 
2386                              stroke-linecap="round"/> 
2387                        <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" 
2388                              stroke-linecap="round"/> 
2389                        <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" 
2390                              stroke-linecap="round"/> 
2391                        <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" 
2392                              stroke-linecap="round"/> 
2393                    </g> 
2394                    <defs> 
2395                        <clipPath id="clip0_2625_8922"> 
2396                            <rect width="102" height="30" fill="white"/> 
2397                        </clipPath> 
2398                    </defs> 
2399                </svg> 
2400            </div> 
2401            <div class="audio-time paragraph-micro-bold"> 00:00</div> 
2402            <div class="audio-button-mute"> 
2403                <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none"> 
2404                    <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" 
2405                          stroke="#525252" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
2406                </svg> 
2407            </div> 
2408        </div> 
2409    </div> 
2410 
2411    <style> 
2412        .ptb-news__read-news .news-content { 
2413            gap: var(--space-xl, 44px); 
2414            padding-bottom: var(--space-giant, 80px); 
2415
2416 
2417        .ptb-news__read-news .news-content strong { 
2418            font-weight: var(--font-weight-bold); 
2419
2420 
2421        .ptb-news__read-news .news-content em { 
2422            font-style: var(--font-style-italic); 
2423
2424 
2425        .ptb-news__read-news .news-content a { 
2426            font-family: var(--font-family-base); 
2427            font-style: var(--font-style-normal, normal); 
2428            font-weight: var(--font-weight-bold, 700); 
2429            font-size: var(--font-size-xs, 18px); 
2430            line-height: var(--line-height-xl, 160%); 
2431 
2432            text-decoration-line: var(--text-decoration-underline, underline); 
2433            color: #008542; 
2434
2435 
2436        body.high-contrast-active .ptb-news__read-news .news-content a { 
2437            color: #E4F7E8; 
2438
2439 
2440        .ptb-news__read-news cite a { 
2441            font-family: var(--font-family-base); 
2442            font-style: var(--font-style-normal, normal); 
2443            font-weight: var(--font-weight-bold, 700); 
2444            font-size: var(--font-size-xs, 18px); 
2445            line-height: var(--line-height-xl, 160%); 
2446 
2447            text-decoration-line: var(--text-decoration-underline, underline); 
2448            color: #008542; 
2449
2450 
2451        body.high-contrast-active .cite a { 
2452            color: #E4F7E8; 
2453
2454 
2455        .ptb-news__read-news .news-content ul { 
2456            padding-left: 27px; 
2457            margin-top: -16px; 
2458
2459 
2460        .ptb-news__read-news .news-content ul li::marker { 
2461            content: "■" !important; 
2462            color: var(--color-secondary-medium) !important; 
2463            font-size: var(--size-xxs); 
2464
2465 
2466        .ptb-news__read-news .news-content ul li { 
2467            color: var(--color-text-primary-default); 
2468            padding: 8px 0; 
2469 
2470            /*paragraph-sm-regular*/ 
2471            font-size: var(--font-size-xxs); 
2472            line-height: var(--line-height-xl); 
2473            font-weight: var(--font-weight-regular); 
2474            font-style: var(--font-style-normal); 
2475            text-decoration: var(--text-decoration-none); 
2476 
2477            margin-left: calc(-1 * var(--space-sm)); 
2478            padding-left: var(--space-sm); 
2479
2480 
2481        .ptb-news__read-news .news-content ul li * { 
2482            color: var(--color-text-primary-default); 
2483            padding: 8px 0; 
2484 
2485            /*paragraph-sm-regular*/ 
2486            font-size: var(--font-size-xxs); 
2487            line-height: var(--line-height-xl); 
2488            font-weight: var(--font-weight-regular); 
2489            font-style: var(--font-style-normal); 
2490            text-decoration: var(--text-decoration-none); 
2491
2492 
2493        .ptb-news__read-news .news-content > * { 
2494            grid-column-start: 3; 
2495            grid-column-end: 11; 
2496
2497 
2498        .ptb-news__read-news .news-content figure figcaption { 
2499            display: flex; 
2500            justify-content: space-between; 
2501            align-items: flex-start; 
2502            align-self: stretch; 
2503            margin-top: var(--space-xxs, 8px); 
2504            text-align: justify; 
2505
2506 
2507        .ptb-news__read-news .news-content figure figcaption, 
2508        .ptb-news__read-news .news-content figure figcaption * { 
2509            color: var(--color-neutral-700, #525252); 
2510            font-family: var(--font-family-base); 
2511            font-size: var(--font-size-xxxs, 14px); 
2512            font-style: var(--font-style-italic, italic); 
2513            font-weight: var(--font-weight-regular, 400); 
2514            line-height: var(--line-height-xl, 160%); 
2515
2516 
2517        body.high-contrast-active .ptb-news__read-news .news-content figure figcaption, 
2518        body.high-contrast-active .ptb-news__read-news .news-content figure figcaption * { 
2519            color: var(--text-secondary-default, #F8F8F8); 
2520
2521 
2522        .ptb-news__read-news .news-content figure figcaption br { 
2523            display: none; 
2524
2525 
2526        .ptb-news__read-news .news-content .embed-responsive { 
2527            width: 100% !important; 
2528            border-radius: var(--border-radius-md, 16px); 
2529
2530 
2531        .ptb-news__read-news .news-content img, 
2532        .ptb-news__read-news .news-content figure { 
2533            width: 100%; 
2534            object-fit: cover; 
2535            border-radius: var(--border-radius-md, 16px); 
2536
2537 
2538 
2539        .ptb-news__read-news .news-content p img { 
2540            width: 100%; 
2541            object-fit: cover; 
2542            border-radius: var(--border-radius-md, 16px); 
2543
2544 
2545        .ptb-news__read-news .news-content p, 
2546        .ptb-news__read-news .news-content span { 
2547            margin: 0; 
2548            padding: 0; 
2549
2550 
2551        .ptb-news__read-news .news-content p { 
2552            margin: -var(--space-xxs, 8px) 0; 
2553
2554 
2555        .ptb-news__read-news .news-content .carousel p { 
2556            margin: 0; 
2557
2558 
2559        .ptb-news__read-news .news-content .paragraph_separator { 
2560            display: flex; 
2561            width: 100%; 
2562            height: fit-content; 
2563            justify-content: center; 
2564            gap: 6px; 
2565
2566 
2567        .ptb-news__read-news .news-content .paragraph_separator .dot { 
2568            height: 4px; 
2569            width: 4px; 
2570            background-color: var(--color-neutral-600, #959595); 
2571            border-radius: 100%; 
2572            display: inline-block; 
2573
2574 
2575        .ptb-news__read-news .news-content * { 
2576            font-family: var(--font-family-base); 
2577            font-style: var(--font-style-normal, normal); 
2578            font-weight: var(--font-weight-regular, 400); 
2579            font-size: var(--font-size-xs, 18px); 
2580            line-height: var(--line-height-xl, 160%); 
2581            color: var(--color-neutral-800, #373737); 
2582
2583 
2584        body.high-contrast-active .ptb-news__read-news .news-content * { 
2585            color: var(--text-primary-default, var(--color-neutral-100)); 
2586
2587 
2588        .ptb-news__read-news .news-content p { 
2589            font-style: var(--font-style-normal, normal); 
2590            font-weight: var(--font-weight-regular, 400); 
2591            font-size: var(--font-size-xs, 16px); 
2592            line-height: var(--line-height-xl, 160%); 
2593            color: var(--color-neutral-700, #515867); 
2594
2595 
2596 
2597        .ptb-news__read-news .news-content h1, 
2598        .ptb-news__read-news .news-content h1 *, 
2599        .ptb-news__read-news .news-content h2, 
2600        .ptb-news__read-news .news-content h2 *, 
2601        .ptb-news__read-news .news-content h3, 
2602        .ptb-news__read-news .news-content h3 *, 
2603        .ptb-news__read-news .news-content h4, 
2604        .ptb-news__read-news .news-content h4 *, 
2605        .ptb-news__read-news .news-content h5, 
2606        .ptb-news__read-news .news-content h5 *, 
2607        .ptb-news__read-news .news-content h6, 
2608        .ptb-news__read-news .news-content h6 * { 
2609            color: var(--color-neutral-800, #373737) !important; 
2610
2611 
2612        body.high-contrast-active .ptb-news__read-news .news-content h1, 
2613        body.high-contrast-active .ptb-news__read-news .news-content h1 *, 
2614        body.high-contrast-active .ptb-news__read-news .news-content h2, 
2615        body.high-contrast-active .ptb-news__read-news .news-content h2 *, 
2616        body.high-contrast-active .ptb-news__read-news .news-content h3, 
2617        body.high-contrast-active .ptb-news__read-news .news-content h3 *, 
2618        body.high-contrast-active .ptb-news__read-news .news-content h4, 
2619        body.high-contrast-active .ptb-news__read-news .news-content h4 *, 
2620        body.high-contrast-active .ptb-news__read-news .news-content h5, 
2621        body.high-contrast-active .ptb-news__read-news .news-content h5 *, 
2622        body.high-contrast-active .ptb-news__read-news .news-content h6, 
2623        body.high-contrast-active .ptb-news__read-news .news-content h6 * { 
2624            color: var(--text-primary-default, var(--color-neutral-100)) !important; 
2625
2626 
2627        .ptb-news__read-news .news-content h1:last-child, 
2628        .ptb-news__read-news .news-content h2:last-child, 
2629        .ptb-news__read-news .news-content h3:last-child, 
2630        .ptb-news__read-news .news-content h4:last-child, 
2631        .ptb-news__read-news .news-content h5:last-child, 
2632        .ptb-news__read-news .news-content h5:last-child, 
2633        .ptb-news__read-news .news-content h6:last-child, 
2634        .ptb-news__read-news .news-content p:last-child { 
2635            padding-bottom: 0 !important; 
2636
2637 
2638        .ptb-news__read-news .news-content h1, 
2639        .ptb-news__read-news .news-content h1 * { 
2640            font-size: var(--font-size-xxl) !important; 
2641            line-height: var(--line-height-sm) !important; 
2642            font-weight: var(--font-weight-bold) !important; 
2643            font-style: var(--font-style-normal) !important; 
2644            text-decoration: var(--text-decoration-none) !important; 
2645
2646 
2647        .ptb-news__read-news .news-content h2, 
2648        .ptb-news__read-news .news-content h2 * { 
2649            font-size: var(--font-size-xl) !important; 
2650            line-height: var(--line-height-sm) !important; 
2651            font-weight: var(--font-weight-bold) !important; 
2652            font-style: var(--font-style-normal) !important; 
2653            text-decoration: var(--text-decoration-none) !important; 
2654 
2655
2656 
2657        .ptb-news__read-news .news-content h3, 
2658        .ptb-news__read-news .news-content h3 * { 
2659            font-size: var(--font-size-lg) !important; 
2660            line-height: var(--line-height-sm) !important; 
2661            font-weight: var(--font-weight-bold) !important; 
2662            font-style: var(--font-style-normal) !important; 
2663            text-decoration: var(--text-decoration-none) !important; 
2664
2665 
2666        .ptb-news__read-news .news-content h4, 
2667        .ptb-news__read-news .news-content h4 * { 
2668            font-size: var(--font-size-md) !important; 
2669            line-height: var(--line-height-md) !important; 
2670            font-weight: var(--font-weight-bold) !important; 
2671            font-style: var(--font-style-normal) !important; 
2672            text-decoration: var(--text-decoration-none) !important; 
2673
2674 
2675        .ptb-news__read-news .news-content h5, 
2676        .ptb-news__read-news .news-content h5 * { 
2677            font-size: var(--font-size-sm) !important; 
2678            line-height: var(--line-height-md) !important; 
2679            font-weight: var(--font-weight-bold) !important; 
2680            font-style: var(--font-style-normal) !important; 
2681            text-decoration: var(--text-decoration-none) !important; 
2682
2683 
2684        .ptb-news__read-news .news-content table { 
2685            border-collapse: collapse; 
2686            border: none; 
2687            width: 100% !important; 
2688            margin: var(--space-sm, 16px) 0; 
2689
2690 
2691        .ptb-news__read-news .news-content table * { 
2692            font-size: var(--font-size-xxs, 16px); 
2693            font-style: var(--font-style-normal, normal); 
2694            font-weight: var(--font-weight-regular, 400); 
2695            line-height: var(--line-height-xl, 160%); 
2696            color: var(--color-neutral-800, #373737); 
2697            border: 0; 
2698
2699 
2700        body.high-contrast-active .ptb-news__read-news .news-content table * { 
2701            color: var(--text-primary-default, var(--color-neutral-100)); 
2702
2703 
2704        .ptb-news__read-news .news-content table tbody > :first-child, 
2705        .ptb-news__read-news .news-content table tbody > :first-child * { 
2706            font-weight: var(--font-weight-bold, 700); 
2707            flex: 1 0 0; 
2708            background: var(--background-Surface-level-02, #F8F8F8); 
2709
2710 
2711        body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child, 
2712        body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child * { 
2713            background: #373737; 
2714
2715 
2716        .ptb-news__read-news .news-content table tbody { 
2717            display: flex; 
2718            flex-direction: column; 
2719
2720 
2721        .ptb-news__read-news .news-content table tbody * { 
2722            display: flex; 
2723					  height: 100%; 
2724            align-items: center; 
2725            flex: 1 0 0; 
2726
2727 
2728        .ptb-news__read-news .news-content table tbody tr * {          
2729           padding: 23px var(--space-lg, 32px); 
2730
2731 
2732        .ptb-news__read-news .news-content table tbody tr { 
2733            border-radius: var(--border-radius-md); 
2734            border: var(--border-width-hairline, 1px) solid #EEEEEE; 
2735
2736 
2737        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr { 
2738            border: var(--border-width-hairline, 1px) solid #525252; 
2739
2740 
2741        .ptb-news__read-news .news-content table tbody tr:not(:last-child) { 
2742            border-bottom-left-radius: 0; 
2743            border-bottom-right-radius: 0; 
2744
2745 
2746        .ptb-news__read-news .news-content table tbody tr:not(:first-child) { 
2747            border-top-left-radius: 0; 
2748            border-top-right-radius: 0; 
2749            border-top: none; 
2750
2751 
2752        .ptb-news__read-news .news-content table tbody tr td:not(:last-child) { 
2753            border-right: var(--border-width-hairline, 1px) solid #EEEEEE; 
2754
2755 
2756        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr td:not(:last-child) { 
2757            border-right: var(--border-width-hairline, 1px) solid #525252; 
2758
2759 
2760        .ptb-news__read-news .news-content table tbody tr:first-child td { 
2761            border-top: var(--border-width-hairline, 1px) solid #EEEEEE; 
2762            border-bottom: var(--border-width-hairline, 1px) solid #EEEEEE; 
2763
2764 
2765        body.high-contrast-active .ptb-news__read-news .news-content table tbody tr:first-child td { 
2766            border-top: var(--border-width-hairline, 1px) solid #525252; 
2767            border-bottom: var(--border-width-hairline, 1px) solid #525252; 
2768
2769 
2770        .ptb-news__read-news .news-content audio { 
2771            display: none; 
2772
2773 
2774        .ptb-news__read-news .news-content .audio-template { 
2775            display: flex; 
2776            padding: var(--space-sm, 16px); 
2777            align-items: center; 
2778            gap: var(--space-md, 24px); 
2779            align-self: stretch; 
2780            border-radius: var(--border-radius-lg, 16px); 
2781            border: var(--border-width-hairline, 1px) solid var(--border-color-mid); 
2782            background: var(--background-card-default, #FFF); 
2783            max-height: var(--size-giant, 72px); 
2784
2785 
2786        body.high-contrast-active .ptb-news__read-news .news-content .audio-template { 
2787            background: var(--background-card-default, #010101); 
2788            border: var(--border-width-hairline, 1px) solid #525252; 
2789
2790 
2791        .ptb-news__read-news .news-content .audio-template .audio-button-play { 
2792            display: flex; 
2793            width: var(--size-xl, 40px); 
2794            height: var(--size-xl, 40px); 
2795            justify-content: center; 
2796            align-items: center; 
2797            flex-grow: 0; 
2798            flex-shrink: 0; 
2799            cursor: pointer; 
2800
2801 
2802        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon, 
2803        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon { 
2804            fill: #FFFFFF; 
2805
2806 
2807        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon path, 
2808        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon path { 
2809            fill: #010101; 
2810
2811 
2812        .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-play-icon { 
2813            display: block; 
2814
2815 
2816        .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-pause-icon { 
2817            display: none; 
2818
2819 
2820        .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-play-icon { 
2821            display: none; 
2822
2823 
2824        .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-pause-icon { 
2825            display: block; 
2826
2827 
2828        .ptb-news__read-news .news-content .audio-template .audio-sondwave { 
2829            display: flex; 
2830            flex-direction: column; 
2831            align-items: flex-start; 
2832            gap: var(--space-xxs, 8px); 
2833            flex: 1 0 0; 
2834            height: 100%; 
2835            flex-grow: 1; 
2836            flex-shrink: 1; 
2837
2838 
2839        .ptb-news__read-news .news-content .audio-template .audio-sondwave line { 
2840            stroke: #008542; 
2841
2842 
2843        .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active { 
2844            stroke: #90EE90; 
2845
2846 
2847        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line { 
2848            stroke: #E4F7E8; 
2849
2850 
2851        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active { 
2852            stroke: #666666; 
2853
2854 
2855        .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile { 
2856            display: none; 
2857
2858 
2859        .ptb-news__read-news .news-content .audio-template .audio-time { 
2860            display: flex; 
2861            flex-direction: column; 
2862            align-items: flex-start; 
2863            gap: var(--space-xxs, 8px); 
2864            flex: 1 0 0; 
2865            color: var(--text-primary-accent, #008542); 
2866            text-align: center; 
2867            font-family: var(--font-family-base); 
2868            line-height: 124% !important; 
2869            flex-grow: 0; 
2870            flex-shrink: 0; 
2871
2872 
2873        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-time { 
2874            color: var(--text-primary-accent, #E4F7E8); 
2875
2876 
2877        .ptb-news__read-news .news-content .audio-template .audio-button-mute { 
2878            width: var(--size-lg, 32px); 
2879            height: var(--size-lg, 32px); 
2880            flex-grow: 0; 
2881            flex-shrink: 0; 
2882            cursor: pointer; 
2883
2884 
2885        body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-mute svg path { 
2886            stroke: white; 
2887            fill: none; 
2888
2889 
2890        .ptb-news__read-news .news-content .audio-template.audio-muted .audio-button-mute { 
2891            opacity: 0.6; 
2892
2893 
2894        @media screen and (max-width: 1024px) { 
2895            .ptb-news__read-news .news-content > * { 
2896                grid-column-start: 1; 
2897                grid-column-end: 9; 
2898
2899
2900 
2901        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
2902 
2903            .ptb-news__read-news .news-content * { 
2904                font-size: var(--font-size-xxs, 16px); 
2905
2906 
2907            .ptb-news__read-news .news-content > * { 
2908                grid-column-start: 1; 
2909                grid-column-end: 5; 
2910
2911 
2912            .ptb-news__read-news .news-content h1, 
2913            .ptb-news__read-news .news-content h1 * { 
2914                font-size: var(--font-size-xl) !important; 
2915                line-height: var(--line-height-sm) !important; 
2916                font-weight: var(--font-weight-bold) !important; 
2917                font-style: var(--font-style-normal) !important; 
2918                text-decoration: var(--text-decoration-none) !important; 
2919 
2920
2921 
2922            .ptb-news__read-news .news-content h2, 
2923            .ptb-news__read-news .news-content h2 * { 
2924                font-size: var(--font-size-lg) !important; 
2925                line-height: var(--line-height-sm) !important; 
2926                font-weight: var(--font-weight-bold) !important; 
2927                font-style: var(--font-style-normal) !important; 
2928                text-decoration: var(--text-decoration-none) !important; 
2929
2930 
2931            .ptb-news__read-news .news-content h3, 
2932            .ptb-news__read-news .news-content h3 * { 
2933                font-size: var(--font-size-md) !important; 
2934                line-height: var(--line-height-sm) !important; 
2935                font-weight: var(--font-weight-bold) !important; 
2936                font-style: var(--font-style-normal) !important; 
2937                text-decoration: var(--text-decoration-none) !important; 
2938
2939 
2940            .ptb-news__read-news .news-content h4, 
2941            .ptb-news__read-news .news-content h4 * { 
2942                font-size: var(--font-size-sm) !important; 
2943                line-height: var(--line-height-md) !important; 
2944                font-weight: var(--font-weight-bold) !important; 
2945                font-style: var(--font-style-normal) !important; 
2946                text-decoration: var(--text-decoration-none) !important; 
2947
2948 
2949            .ptb-news__read-news .news-content h5, 
2950            .ptb-news__read-news .news-content h5 * { 
2951                font-size: var(--font-size-xs) !important; 
2952                line-height: var(--line-height-md) !important; 
2953                font-weight: var(--font-weight-bold) !important; 
2954                font-style: var(--font-style-normal) !important; 
2955                text-decoration: var(--text-decoration-none) !important; 
2956
2957 
2958            .ptb-news__read-news .news-content figure figcaption { 
2959                flex-direction: column; 
2960                gap: var(--space-xxs, 8px); 
2961
2962 
2963            .ptb-news__read-news .news-content figure figcaption, 
2964            .ptb-news__read-news .news-content figure figcaption * { 
2965                font-size: var(--font-size-micro, 12px); 
2966
2967 
2968            .ptb-news__read-news .news-content table { 
2969                margin-top: var(--space-xxs, 8px); 
2970                margin-bottom: var(--space-lg, 32px); 
2971
2972 
2973            .ptb-news__read-news .news-content table * { 
2974                font-size: var(--font-size-micro, 12px); 
2975                line-height: 19.2px; 
2976
2977					 
2978            .ptb-news__read-news .news-content table tbody tr * { 
2979                padding: var(--space-xs, 12px); 
2980
2981
2982 
2983        @media screen and (max-width: 500px) { 
2984            .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-desktop { 
2985                display: none; 
2986
2987 
2988            .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile { 
2989                display: block; 
2990
2991
2992    </style> 
2993 
2994    <script> 
2995        <#assign configureLinkTab = "configureLinkTab_" + randomNumber(5)> 
2996 
2997        function ${configureLinkTab}() { 
2998            const root = document.querySelector(".ptb-news__read-news"); 
2999            const newsContentElement = root.querySelector(".news-content"); 
3000            const pList = newsContentElement.querySelectorAll("p"); 
3001            pList.forEach((pElement) => { 
3002                const cont = pElement.innerHTML.trim(); 
3003                if (cont == "" || cont == "&nbsp;") { 
3004                    newsContentElement.removeChild(pElement); 
3005
3006            }); 
3007
3008 
3009        ${configureLinkTab}(); 
3010 
3011        document.addEventListener("DOMContentLoaded", () => { 
3012            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"); 
3013 
3014            headers.forEach((header) => { 
3015 
3016                const currentLevel = parseInt(header.tagName.charAt(1)); 
3017 
3018                if (currentLevel >= 1 && currentLevel <= 5) { 
3019 
3020                    const newLevel = currentLevel + 1; 
3021                    const newTagName = "h" + newLevel; 
3022 
3023                    // Criar a nova tag e transferir o conteúdo 
3024                    const newHeader = document.createElement(newTagName); 
3025                    newHeader.innerHTML = header.innerHTML; 
3026 
3027                    // Substituir a tag antiga pela nova 
3028                    header.parentNode.replaceChild(newHeader, header); 
3029
3030            }); 
3031        }); 
3032 
3033        AUI().ready(() => { 
3034            const audiosContainer = document.querySelectorAll(".ptb-news__read-news .news-content .audio-content"); 
3035            const audioTemplate = document.querySelector(".ptb-news__read-news .news-content .audio-template"); 
3036 
3037            audiosContainer.forEach((audioContainer) => { 
3038 
3039                const audio = audioContainer.querySelector("audio"); 
3040                const audioInterface = audioTemplate.cloneNode(true); 
3041 
3042                const sondwave = audioInterface.querySelector(".audio-sondwave"); 
3043                const linesDesktop = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-desktop line"); 
3044                const linesMobile = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-mobile line"); 
3045 
3046                const playPauseButtonAudioInterface = audioInterface.querySelector(".audio-button-play"); 
3047 
3048                playPauseButtonAudioInterface.addEventListener("click", () => { 
3049                    if (audioInterface.classList.contains("audio-play")) { 
3050                        audioInterface.classList.replace("audio-play", "audio-pause"); 
3051                        audio.pause(); 
3052                    } else { 
3053 
3054                        audiosContainer.forEach((audioContainer) => { 
3055                            const otherAudio = audioContainer.querySelector("audio"); 
3056                            const otherAudioInterface = audioContainer.querySelector(".audio-button-play"); 
3057                            !otherAudio.paused && otherAudioInterface.click(); 
3058                        }); 
3059 
3060                        audioInterface.classList.replace("audio-pause", "audio-play"); 
3061                        audio.play(); 
3062
3063                }); 
3064 
3065                const audioMuteButton = audioInterface.querySelector(".audio-button-mute"); 
3066 
3067                audioMuteButton.addEventListener("click", () => { 
3068                    if (audioInterface.classList.contains("audio-unmuted")) { 
3069                        audioInterface.classList.replace("audio-unmuted", "audio-muted"); 
3070                        audio.muted = true; 
3071                    } else { 
3072                        audioInterface.classList.replace("audio-muted", "audio-unmuted"); 
3073                        audio.muted = false; 
3074
3075                }); 
3076 
3077                const audioTime = audioInterface.querySelector(".audio-time"); 
3078                audioTime.textContent = Math.floor(audio.duration / 60) + ":" + Math.floor(audio.duration % 60); 
3079 
3080 
3081                audio.addEventListener("timeupdate", () => { 
3082                    let minutes = Math.floor((audio.duration - audio.currentTime) / 60); 
3083                    let seconds = Math.floor((audio.duration - audio.currentTime) % 60); 
3084 
3085                    minutes = minutes < 10 ? "0" + minutes : minutes; 
3086                    seconds = seconds < 10 ? "0" + seconds : seconds; 
3087 
3088                    audioTime.textContent = minutes + ":" + seconds; 
3089 
3090                    const progress = (audio.currentTime / audio.duration) * 100; 
3091 
3092                    linesDesktop.forEach(function (line, index) { 
3093                        const lineProgress = (index / linesDesktop.length) * 100; 
3094                        if (progress >= lineProgress) { 
3095                            !line.classList.contains("line-active") && line.classList.add("line-active"); 
3096                        } else { 
3097                            line.classList.contains("line-active") && line.classList.remove("line-active"); 
3098
3099                    }); 
3100 
3101                    linesMobile.forEach(function (line, index) { 
3102                        const lineProgress = (index / linesMobile.length) * 100; 
3103                        if (progress >= lineProgress) { 
3104                            !line.classList.contains("line-active") && line.classList.add("line-active"); 
3105                        } else { 
3106                            line.classList.contains("line-active") && line.classList.remove("line-active"); 
3107
3108                    }); 
3109                }); 
3110 
3111 
3112                sondwave.addEventListener("click", (event) => { 
3113                    const distanceLeft = (event.clientX - sondwave.getBoundingClientRect().left) / sondwave.offsetWidth; 
3114                    audio.currentTime = audio.duration * distanceLeft; 
3115                }); 
3116 
3117                audioInterface.style.display = ""; 
3118                audioContainer.appendChild(audioInterface); 
3119            }); 
3120 
3121        }); 
3122    </script> 
3123</#macro> 
3124 
3125 
3126<#-- ################################################################################################################## --> 
3127 
3128<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# --> 
3129<#macro renderLinks newsInfo> 
3130    <#if newsInfo.links?size != 0> 
3131    <#--videos "escondidos" que serão unidos a .ptb-news__read-content --> 
3132 
3133        <div class="ptb-news__links-container d-none "> 
3134            <div id="ptb-news__links-identifiers"> 
3135                <#assign separator = ""> 
3136                <#list newsInfo.links as link> 
3137                    ${link.id}; 
3138                    <#assign separator = ";"> 
3139                </#list> 
3140            </div> 
3141            <#list newsInfo.links as link> 
3142                <#assign link_index = link?index> 
3143                <#assign linkUrl = "#"> 
3144                <#assign target = "_blank"> 
3145                <#assign linkClass = ""> 
3146 
3147                <div id="ptb-news__link-container-${link_index}"> 
3148                    <#if link.externalLink?has_content> 
3149                        <#assign linkUrl = link.externalLink> 
3150                        <#assign target = "_blank"> 
3151                        <#assign linkClass = "external-link"> 
3152                    <#elseif link.pageLink?has_content> 
3153                        <#assign linkUrl = link.pageLink> 
3154                        <#assign target = "_self"> 
3155                        <#assign linkClass = "internal-page-link"> 
3156                    <#elseif link.file.mimeType?has_content> 
3157                        <#assign linkUrl = link.file.url> 
3158                        <#assign target = "_blank"> 
3159                        <#assign linkClass = "file-link"> 
3160                    </#if> 
3161 
3162                    <#-- PDF icon --> 
3163                    <#if link.iconType == "Opção78730408" > 
3164                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
3165                             xmlns="http://www.w3.org/2000/svg"> 
3166                            <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" 
3167                                  fill="#008542"/> 
3168                            <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" 
3169                                  fill="#008542"/> 
3170                            <path d="M17.2695 20.654V11.894H22.2735V13.358H18.9735V15.59H21.9015V17.054H18.9735V20.654H17.2695Z" 
3171                                  fill="#008542"/> 
3172                            <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" 
3173                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
3174                                  stroke-linejoin="round"/> 
3175                        </svg> 
3176 
3177                    <#-- JPG icon --> 
3178                    <#elseif link.iconType == "Opção89889679" > 
3179                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
3180                             xmlns="http://www.w3.org/2000/svg"> 
3181                            <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" 
3182                                  fill="#008542"/> 
3183                            <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" 
3184                                  fill="#008542"/> 
3185                            <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" 
3186                                  fill="#008542"/> 
3187                            <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" 
3188                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
3189                                  stroke-linejoin="round"/> 
3190                        </svg> 
3191                    <#-- DOC icon --> 
3192                    <#elseif link.iconType == "Opção15480314" > 
3193                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
3194                             xmlns="http://www.w3.org/2000/svg"> 
3195                            <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" 
3196                                  fill="#008542"/> 
3197                            <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" 
3198                                  fill="#008542"/> 
3199                            <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" 
3200                                  fill="#008542"/> 
3201                            <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" 
3202                                  stroke="#008542" stroke-width="1.5" stroke-linecap="round" 
3203                                  stroke-linejoin="round"/> 
3204                        </svg> 
3205                    <#-- External link icon --> 
3206                    <#elseif link.iconType == "Opção64447681" > 
3207                        <svg width="24" height="24" viewBox="0 0 32 32" fill="none" 
3208                             xmlns="http://www.w3.org/2000/svg"> 
3209                            <path opacity="0.98" 
3210                                  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" 
3211                                  stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
3212                        </svg> 
3213                    <#-- Internal page link icon --> 
3214                    <#elseif link.iconType == "Opção94185057" > 
3215                        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#008542" 
3216                             viewBox="0 0 256 256"> 
3217                            <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"> 
3218                            </path> 
3219                        </svg> 
3220                    <#-- Download link icon --> 
3221                    <#elseif link.iconType == "Opção49847593" > 
3222                        <svg width="24" height="24" viewBox="0 0 32 32" fill="none" 
3223                             xmlns="http://www.w3.org/2000/svg"> 
3224                            <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" 
3225                                  stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
3226                        </svg> 
3227                    </#if> 
3228 
3229                    <a href="${linkUrl}" class="link ${linkClass}" target="${target}">${link.title}</a> 
3230                </div> 
3231            </#list> 
3232        </div> 
3233 
3234        <script> 
3235            var newsContent_code = document.querySelector(".news-content").innerHTML; 
3236 
3237            var linksIdentifiers = document.querySelector("#ptb-news__links-identifiers").innerHTML.trim().split(";"); 
3238            linksIdentifiers.forEach((linkIdentifier, index) => { 
3239                const linkIdentifierContent = document.querySelector("#ptb-news__link-container-" + index); 
3240                if (linkIdentifierContent) { 
3241                    const tag = "#[" + linkIdentifier.trim() + "]"; 
3242                    const splitContent = newsContent_code.split(tag); 
3243                    newsContent_code = splitContent.join(linkIdentifierContent.innerHTML); 
3244                    //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent); 
3245
3246            }); 
3247 
3248 
3249            var ptb_news__read_content = document.querySelector(".news-content"); 
3250            ptb_news__read_content.innerHTML = newsContent_code; 
3251 
3252        </script> 
3253 
3254        <style> 
3255            .ptb-news__read-news .ptb-news__link a { 
3256                font-family: var(--font-family-base); 
3257                font-style: var(--font-style-normal, normal); 
3258                font-weight: var(--font-weight-bold, 700); 
3259                font-size: var(--font-size-xxs, 16px); 
3260                line-height: var(--line-height-xl, 160%); 
3261 
3262                text-decoration-line: underline; 
3263 
3264                color: var(--color-primary-brand, #008542); 
3265
3266 
3267            body.high-contrast-active .ptb-news__read-news .ptb-news__link a { 
3268                color: #E4F7E8; 
3269
3270 
3271            .ptb-news__read-news .news-content .link { 
3272                font-family: var(--font-family-base); 
3273                font-style: var(--font-style-normal, normal); 
3274                font-weight: var(--font-weight-bold, 700); 
3275                font-size: var(--font-size-xxs, 16px); 
3276                line-height: var(--line-height-xl, 160%); 
3277 
3278                text-decoration-line: underline; 
3279 
3280                color: var(--color-primary-brand, #008542); 
3281
3282 
3283            body.high-contrast-active .ptb-news__read-news .news-content .link { 
3284                color: #E4F7E8; 
3285
3286 
3287            body.high-contrast-active .ptb-news__read-news .news-content svg path { 
3288                stroke: var(--color-neutral-500, #D7D7D7); 
3289                fill: rgba(255, 255, 255, 0.32); 
3290
3291 
3292            .ptb-news__read-news .news-content .ptb-link__wrapper { 
3293                display: flex; 
3294                flex-direction: column; 
3295                gap: 0; 
3296                margin-top: -24px; 
3297
3298 
3299            .ptb-news__read-news .news-content .ptb-link__wrapper svg { 
3300                margin-right: var(--space-sm, 16px); 
3301
3302 
3303            .ptb-news__read-news .news-content .ptb-link__wrapper .first { 
3304                gap: 0 !important; 
3305
3306 
3307            @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
3308                .ptb-news__read-news .news-content .link { 
3309                    font-size: var(--font-size-xxs, 16px); 
3310
3311
3312        </style> 
3313    </#if> 
3314</#macro> 
3315 
3316<#-- ################################################################################################################## --> 
3317<#macro renderCite> 
3318    <div class="ptb-news__cite-container"> 
3319        <div class="ptb-news__cite-container-breakpoint breakpoint"> 
3320            <div class="ptb-news__cite-container-col col-1-12 md-col-1-8 sm-col-1-4"> 
3321                <div class="ptb-news__cite-title"> 
3322                    <#if locale?lower_case == "pt_br"> 
3323                        Notas 
3324                    <#else> 
3325                        Notes 
3326                    </#if> 
3327                </div> 
3328 
3329                <div class="ptb-news__cites-elements"> 
3330                </div> 
3331            </div> 
3332        </div> 
3333    </div> 
3334 
3335    <script> 
3336        function positionCitesText(parentNodeCitesText) { 
3337 
3338            parentNodeCitesText.forEach((parentNodeCiteText) => { 
3339                if (window.innerWidth > 1024) { 
3340                    parentNodeCiteText.style.display = ""; 
3341                    parentNodeCiteText.style.gridColumnStart = "11"; 
3342                    parentNodeCiteText.style.gridColumnEnd = "13"; 
3343                } else { 
3344                    parentNodeCiteText.style.display = "none"; 
3345                    parentNodeCiteText.style.gridColumnStart = ""; 
3346                    parentNodeCiteText.style.gridColumnEnd = ""; 
3347
3348            }); 
3349
3350 
3351        function addCitesTextMobile(citesText) { 
3352            const citesContainer = document.querySelector(".ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements"); 
3353 
3354            if (citesContainer.children.length === 0) { 
3355                citesContainer && citesText.forEach((citeText) => { 
3356                    citesContainer.appendChild(citeText.cloneNode(true)); 
3357                }); 
3358
3359
3360 
3361        const citesText = document.querySelectorAll(".news-content cite"); 
3362 
3363        if (citesText.length > 0) { 
3364            const parentNodeCitesText = [...citesText].map((citeText) => citeText.parentNode); 
3365            positionCitesText(parentNodeCitesText); 
3366            addCitesTextMobile(citesText); 
3367        } else { 
3368            const citesContainer = document.querySelector(".ptb-news__cite-container"); 
3369            citesContainer && (citesContainer.style.display = "none"); 
3370
3371 
3372        document.addEventListener('DOMContentLoaded', () => { 
3373 
3374            const citesText = document.querySelectorAll(".news-content cite"); 
3375 
3376            if (citesText.length > 0) { 
3377                const parentNodeCitesText = [...citesText].map((citeText) => citeText.parentNode); 
3378 
3379                positionCitesText(parentNodeCitesText); 
3380                addCitesTextMobile(citesText); 
3381 
3382                window.addEventListener('resize', () => { 
3383                    positionCitesText(parentNodeCitesText) 
3384                }); 
3385            } else { 
3386                const citesContainer = document.querySelector(".ptb-news__cite-container"); 
3387                citesContainer && (citesContainer.style.display = "none"); 
3388
3389        }); 
3390 
3391    </script> 
3392 
3393    <style> 
3394 
3395        .ptb-news__read-news-post cite { 
3396            color: var(--color-neutral-800, #373737); 
3397            font-family: var(--font-family-base); 
3398            font-size: var(--font-size-xxxs, 14px) !important; 
3399            font-style: var(--font-style-normal, normal); 
3400            font-weight: var(--font-weight-regular, 400); 
3401            line-height: var(--line-height-xl, 160%); 
3402
3403 
3404        .ptb-news__read-news-post cite a { 
3405            font-size: var(--font-size-xxxs, 14px) !important; 
3406
3407 
3408        body.high-contrast-active .ptb-news__read-news-post cite { 
3409            color: var(--text-primary-default, var(--color-neutral-100)); 
3410
3411 
3412        .ptb-news__read-news-post .news-content cite, 
3413        .ptb-news__read-news-post .ptb-news__cite-container cite { 
3414            display: block; 
3415            padding-left: var(--space-md); 
3416            border-left: var(--border-width-hairline, 1px) solid var(--color-neutral-500, #D7D7D7); 
3417
3418 
3419        @media screen and (min-width: 1025px) { 
3420            .ptb-news__read-news-post .ptb-news__cite-container { 
3421                display: none; 
3422
3423
3424 
3425        @media screen and (max-width: 1025px) { 
3426            .ptb-news__read-news .ptb-news__cite-container .link { 
3427                text-decoration-line: var(--text-decoration-underline, underline); 
3428                color: #008542; 
3429
3430 
3431            body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container .link { 
3432                color: #E4F7E8; 
3433
3434 
3435            body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container svg path { 
3436                stroke: var(--color-neutral-500, #D7D7D7); 
3437                fill: rgba(255, 255, 255, 0.32); 
3438
3439 
3440            .ptb-news__read-news-post .ptb-news__cite-container { 
3441                display: grid; 
3442                background: var(--background-surface-level-03, #EEE); 
3443
3444 
3445            body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container { 
3446                background: var(--background-surface-level-03, #525252); 
3447
3448 
3449            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col { 
3450                padding: var(--space-xxl) 0; 
3451                display: flex; 
3452                flex-direction: column; 
3453                gap: var(--space-lg, 32px); 
3454
3455 
3456            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements { 
3457                display: flex; 
3458                flex-direction: column; 
3459                gap: var(--space-lg, 32px); 
3460
3461 
3462            .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title { 
3463                color: var(--color-neutral-800, #373737); 
3464                font-size: var(--font-size-sm, 20px); 
3465                font-style: var(--font-style-normal, normal); 
3466                font-weight: var(--font-weight-bold, 700); 
3467                line-height: var(--line-height-xl, 160%); 
3468
3469 
3470            body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title { 
3471                color: var(--text-primary-default, var(--color-neutral-100)); 
3472
3473
3474    </style> 
3475 
3476</#macro> 
3477 
3478<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### --> 
3479<#function getGalleryImgDate gItem> 
3480  <#--  Data default - Criação do documento  --> 
3481  <#assign date = gItem.createDate />  
3482  <#if gItem.originalFile?? && gItem.originalFile.documentType?? && gItem.originalFile.documentType.contentFields?has_content> 
3483    <#list gItem.originalFile.documentType.contentFields as imgField> 
3484      <#if imgField.label == 'Data' && imgField.contentFieldValue?? && imgField.contentFieldValue.data??> 
3485        <#--  Data personalizada  --> 
3486        <#assign date = imgField.contentFieldValue.data /> 
3487        <#break> 
3488      </#if> 
3489    </#list> 
3490  </#if> 
3491  <#return date> 
3492</#function> 
3493 
3494<#macro renderGallery newsInfo> 
3495    <#if newsInfo.galleryItems?size == 0> 
3496        <#return /> 
3497    </#if> 
3498 
3499    <div class="breakpoint"> 
3500        <div class="col-3-10 md-col-1-12 sm-col-1-4"> 
3501            <div class="gallery"> 
3502 
3503                <div class="title-container"> 
3504                    <svg class="icon" viewBox="0 0 26 23" fill="none" xmlns="http://www.w3.org/2000/svg"> 
3505                        <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" 
3506                              stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
3507                        <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" 
3508                              stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
3509                    </svg> 
3510                    <p class="title"> 
3511                        <#if locale == "pt_BR"> Fotos <#else > Photos </#if> 
3512                    </p> 
3513                </div> 
3514 
3515 
3516                <div class="image-container"> 
3517                    <#assign itensNum = 1 /> 
3518                    <#list newsInfo.galleryItems as gItem> 
3519                        <#assign rancomCssClass = "fragment_88494_" + gItem?index /> 
3520                        <div class="fragment_88494 ${rancomCssClass}"> 
3521                            <div class="modal-image-container"> 
3522                                <span class="click-image news-gallery-image-thumb"></span> 
3523 
3524                                <div class="image-player-container"> 
3525                                    <span class="close-image news-gallery-close-modal">X</span> 
3526                                    <div class="image-player-session"> 
3527                                        <#assign largeImgUrl = ""/> 
3528                                        <#assign largeImgAlt = ""/> 
3529                                        <#if gItem.originalFile["contentUrl"]?? > 
3530                                            <#assign largeImgUrl = themeDisplay.getPortalURL() + "/documents/" + groupId + "/" +  gItem.originalFile.externalReferenceCode + "?t=" + .now?string["HHmmssSSS"] /> 
3531                                            <#assign largeImgAlt = gItem.originalFile["description"]/> 
3532                                        </#if> 
3533 
3534                                        <#assign thumbnailImageUrl = ""/> 
3535                                        <#assign thumbnailImageAlt = ""/> 
3536                                        <#if gItem.thumbnailImage?? && gItem.thumbnailImage?has_content && gItem.thumbnailImage["contentUrl"]?? && gItem.thumbnailImage["contentUrl"]??> 
3537                                            <#assign mediaWidth = 300 /> 
3538                                            <#list gItem.thumbnailImage.adaptedImages?filter(f -> f.width == mediaWidth)  as adaptedImage> 
3539                                                <#assign thumbnailImageUrl = themeDisplay.getPortalURL() + adaptedImage.contentUrl /> 
3540                                            </#list> 
3541                                            <#assign thumbnailImageAlt = gItem.thumbnailImage.description /> 
3542                                        </#if> 
3543 
3544 
3545                                        <#assign carrouselImgUrl = ""/> 
3546                                        <#assign carrouselImgAlt = ""/> 
3547                                        <#if gItem.originalFile["contentUrl"]??> 
3548                                            <#assign carrouselImgUrl = gItem.originalFile["contentUrl"] /> 
3549                                            <#assign carrouselImgAlt = gItem.originalFile.description /> 
3550                                        </#if> 
3551 
3552                                        <#if !thumbnailImageUrl?? || !thumbnailImageUrl?has_content> 
3553                                            <#assign mediaWidth = 300 /> 
3554                                            <#if gItem.originalFile["adaptedImages"]??> 
3555                                                <#list gItem.originalFile.adaptedImages?filter(f -> f.width == mediaWidth)  as adaptedImage> 
3556                                                    <#assign thumbnailImageUrl = themeDisplay.getPortalURL() + adaptedImage.contentUrl /> 
3557                                                </#list> 
3558                                            </#if> 
3559                                            <#if !thumbnailImageUrl?has_content> 
3560                                                <#assign thumbnailImageUrl = largeImgUrl/> 
3561                                            </#if> 
3562                                            <#assign thumbnailImageAlt = largeImgAlt/> 
3563                                        </#if> 
3564 
3565 
3566                                        <img class="thumbnail" src="${thumbnailImageUrl}" alt="${thumbnailImageAlt}"/> 
3567 
3568 
3569                                        <#assign urlFirst = "" > 
3570 
3571                                        <#if carrouselImgUrl?? || carrouselImgUrl?has_content> 
3572 
3573                                            <#assign urlFirst = "background-image: url('${carrouselImgUrl}');" > 
3574                                        </#if> 
3575 
3576 
3577                                        <span class="background-image" style="${urlFirst}"> 
3578 
3579                                            </span> 
3580 
3581                                        <div class="large" style="display:none;"> 
3582                                            <img class="carousel" src="${carrouselImgUrl}" alt="${carrouselImgAlt}"/> 
3583                                        </div> 
3584 
3585                                        <div class="gallery-modal-footer"> 
3586                                            <div class="carousel-info"> 
3587                                                <p class="title-image paragraph-sm-regular"> 
3588                                                    <#if locale == "pt_BR"> Foto: <#else > Picture: </#if>${itensNum} 
3589                                                    /${newsInfo.galleryItems?size} 
3590                                                </p> 
3591                                                <div class="left-arrow news-gallery-previus-img-btn"> 
3592                                                    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" 
3593                                                         xmlns="http://www.w3.org/2000/svg"> 
3594                                                        <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" 
3595                                                              fill="#008542"/> 
3596                                                        <path d="M21.5 16H10.5M10.5 16L15 11.5M10.5 16L15 20.5" 
3597                                                              stroke="white" stroke-linecap="round" 
3598                                                              stroke-linejoin="round"/> 
3599                                                    </svg> 
3600                                                </div> 
3601                                                <div class="right-arrow news-gallery-next-img-btn"> 
3602                                                    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" 
3603                                                         xmlns="http://www.w3.org/2000/svg"> 
3604                                                        <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" 
3605                                                              fill="#008542"/> 
3606                                                        <path d="M10.5 16H21.5M21.5 16L17 11.5M21.5 16L17 20.5" 
3607                                                              stroke="white" stroke-linecap="round" 
3608                                                              stroke-linejoin="round"/> 
3609                                                    </svg> 
3610                                                </div> 
3611                                            </div> 
3612                                            <div class="text-container"> 
3613                                                <p class="title-image h5">${gItem.cardTitle}</p> 
3614                                                <div class="image-info"> 
3615                                                    <p class="date-info paragraph-sm-regular">${formatDate(getGalleryImgDate(gItem))}</p> 
3616                                                    <p class="autor-info paragraph-sm-regular"><#if locale == "pt_BR"> Por: <#else > By: </#if> ${gItem.author}</p> 
3617                                                </div> 
3618                                                <div class="download-info"> 
3619                                                    <div class="download-large-image"> 
3620                                                        <div class="download-share-container"> 
3621                                                            <a class="download button donwload-button news-gallery-image-item-download" 
3622                                                               href="${largeImgUrl}?download=true"> 
3623 
3624                                                                <svg width="20" height="20" viewBox="0 0 20 20" 
3625                                                                     fill="none" xmlns="http://www.w3.org/2000/svg"> 
3626                                                                    <path d="M6.71875 8.59375L10 11.875M10 11.875L13.2812 8.59375M10 11.875V3.125M16.875 11.875V16.25C16.875 16.4158 16.8092 16.5747 16.6919 16.6919C16.5747 16.8092 16.4158 16.875 16.25 16.875H3.75C3.58424 16.875 3.42527 16.8092 3.30806 16.6919C3.19085 16.5747 3.125 16.4158 3.125 16.25V11.875" 
3627                                                                          stroke="white" stroke-linecap="round" 
3628                                                                          stroke-linejoin="round"/> 
3629                                                                </svg> 
3630                                                                <#if locale == "pt_BR"> Baixar <#else > Download </#if> 
3631 
3632                                                            </a> 
3633                                                            <div class="download-info-message"> 
3634                                                                <svg width="16" height="16" viewBox="0 0 16 16" 
3635                                                                     fill="none" xmlns="http://www.w3.org/2000/svg"> 
3636                                                                    <path d="M8 6.5V9" stroke="#FFEEB3" 
3637                                                                          stroke-linecap="round" 
3638                                                                          stroke-linejoin="round"/> 
3639                                                                    <path d="M7.1374 2.49998L1.6374 12C1.54978 12.1517 1.50357 12.3239 1.50342 12.4991C1.50326 12.6743 1.54916 12.8465 1.63651 12.9985C1.72386 13.1504 1.8496 13.2767 2.00113 13.3647C2.15266 13.4527 2.32466 13.4994 2.4999 13.5H13.4999C13.6751 13.4994 13.8471 13.4527 13.9987 13.3647C14.1502 13.2767 14.2759 13.1504 14.3633 12.9985C14.4506 12.8465 14.4965 12.6743 14.4964 12.4991C14.4962 12.3239 14.45 12.1517 14.3624 12L8.8624 2.49998C8.77543 2.34802 8.64987 2.22173 8.49841 2.1339C8.34695 2.04607 8.17498 1.99982 7.9999 1.99982C7.82481 1.99982 7.65284 2.04607 7.50138 2.1339C7.34992 2.22173 7.22436 2.34802 7.1374 2.49998V2.49998Z" 
3640                                                                          stroke="#FFEEB3" stroke-linecap="round" 
3641                                                                          stroke-linejoin="round"/> 
3642                                                                    <path d="M8 12C8.41421 12 8.75 11.6642 8.75 11.25C8.75 10.8358 8.41421 10.5 8 10.5C7.58579 10.5 7.25 10.8358 7.25 11.25C7.25 11.6642 7.58579 12 8 12Z" 
3643                                                                          fill="#FFEEB3"/> 
3644                                                                </svg> 
3645                                                                <p class="paragraph-micro-regular">O uso deste material 
3646                                                                    é autorizado apenas para fins editoriais.</p> 
3647                                                            </div> 
3648                                                        </div> 
3649                                                    </div> 
3650 
3651                                                    <div class="social-media-container"> 
3652 
3653                                                        <#assign emailMsg = "Veja o conteúdo do post no link "> 
3654                                                        <#if locale == "en_US"> 
3655                                                            <#assign emailMsg = "See the content of the post in the link "> 
3656                                                        </#if> 
3657 
3658                                                        <a class="news-gallery-share-news-email" href="mailto:?subject=${newsInfo.mainHeadlineOfTheNews}&amp;body=${emailMsg}${themeDisplay.getPortalURL() + largeImgUrl}" 
3659                                                           target="_blank"> 
3660                                                            <svg class="email" width="37" height="36" 
3661                                                                 viewBox="0 0 37 36" fill="none" 
3662                                                                 xmlns="http://www.w3.org/2000/svg"> 
3663                                                                <circle cx="18.5" cy="18" r="17.5" fill="white" 
3664                                                                        stroke="#E1E1E1"/> 
3665                                                                <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" 
3666                                                                      fill="#008542"/> 
3667                                                            </svg> 
3668                                                            <span style="display: none">send e-mail</span> 
3669                                                        </a> 
3670 
3671                                                        <a class="news-gallery-share-news-facebook" href="https://www.facebook.com/sharer/sharer.php?u=${themeDisplay.getPortalURL() + largeImgUrl}" 
3672                                                           target="_blank"> 
3673                                                            <svg class="facebook" width="37" height="36" 
3674                                                                 viewBox="0 0 37 36" fill="none" 
3675                                                                 xmlns="http://www.w3.org/2000/svg"> 
3676                                                                <circle cx="18.5" cy="18" r="17.5" fill="white" 
3677                                                                        stroke="#E1E1E1"/> 
3678                                                                <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" 
3679                                                                      fill="#008542"/> 
3680                                                            </svg> 
3681                                                        </a> 
3682 
3683 
3684                                                        <a class="news-gallery-share-news-twitter" href="https://twitter.com/intent/tweet?url=${themeDisplay.getPortalURL() + largeImgUrl}" 
3685                                                           target="_blank"> 
3686                                                            <svg class="twitter" width="37" height="36" 
3687                                                                 viewBox="0 0 37 36" fill="none" 
3688                                                                 xmlns="http://www.w3.org/2000/svg"> 
3689                                                                <circle cx="18.5" cy="18" r="17.5" fill="white" 
3690                                                                        stroke="#E1E1E1"/> 
3691                                                                <path d="M23.1771 14.7301C23.6859 14.3325 24.1438 13.8554 24.5 13.2988C24.0421 13.5108 23.5078 13.6699 22.9736 13.7229C23.5333 13.3783 23.9403 12.8482 24.1438 12.1855C23.635 12.5036 23.0499 12.7422 22.4648 12.8747C21.956 12.3181 21.2691 12 20.5059 12C19.0303 12 17.8346 13.2458 17.8346 14.7831C17.8346 14.9952 17.8601 15.2072 17.911 15.4193C15.6977 15.2867 13.7133 14.1735 12.3904 12.5036C12.1614 12.9012 12.0342 13.3783 12.0342 13.9084C12.0342 14.8627 12.4922 15.7108 13.2299 16.2145C12.7975 16.188 12.365 16.0819 12.0088 15.8699V15.8964C12.0088 17.2482 12.9247 18.3614 14.1458 18.6265C13.9423 18.6795 13.6879 18.7325 13.4589 18.7325C13.2808 18.7325 13.1282 18.706 12.9501 18.6795C13.2808 19.7928 14.273 20.588 15.4432 20.6145C14.5274 21.3566 13.3826 21.8072 12.136 21.8072C11.907 21.8072 11.7035 21.7807 11.5 21.7542C12.6703 22.5494 14.0695 23 15.5959 23C20.5059 23 23.1771 18.7855 23.1771 15.1012C23.1771 14.9687 23.1771 14.8627 23.1771 14.7301Z" 
3692                                                                      fill="#008542"/> 
3693                                                            </svg> 
3694                                                        </a> 
3695 
3696                                                        <a class="news-gallery-share-news-whatsapp" href="https://api.whatsapp.com/send?text=${themeDisplay.getPortalURL() + largeImgUrl}" 
3697                                                           data-action="share/whatsapp/share" 
3698                                                           target="_blank"> 
3699                                                            <svg class="whatsapp" width="37" height="36" 
3700                                                                 viewBox="0 0 37 36" fill="none" 
3701                                                                 xmlns="http://www.w3.org/2000/svg"> 
3702                                                                <circle cx="18.5" cy="18" r="17.5" fill="white" 
3703                                                                        stroke="#E1E1E1"/> 
3704                                                                <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" 
3705                                                                      fill="#008542"/> 
3706                                                                <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" 
3707                                                                      fill="white"/> 
3708                                                            </svg> 
3709                                                            <span style="display: none">Share to WhatsApp </span> 
3710                                                        </a> 
3711 
3712                                                    </div> 
3713                                                </div> 
3714 
3715                                            </div> 
3716                                        </div> 
3717                                    </div> 
3718                                </div> 
3719                            </div> 
3720                        </div> 
3721 
3722                        <script> 
3723                            AUI().ready(function () { 
3724                                const fragmentElement = document.querySelector(".${rancomCssClass}"); 
3725                                const getImageClick = fragmentElement.querySelector('.click-image'); 
3726                                const imageContainer = fragmentElement.querySelector('.modal-image-container'); 
3727                                const imagePlayerContainer = fragmentElement.querySelector('.image-player-container'); 
3728 
3729                                const image = imagePlayerContainer.querySelector('img'); 
3730                                const closeImage = imagePlayerContainer.querySelector('.close-image'); 
3731                                const body = document.querySelector('body'); 
3732                                const thumbnailImage = imagePlayerContainer.querySelector(".thumbnail"); 
3733                                const largeImage = imagePlayerContainer.querySelector(".large"); 
3734 
3735                                const stopImage = () => { 
3736                                    fragmentElement.classList.toggle('active'); 
3737                                    getImageClick.classList.toggle('image-playing'); 
3738                                    imagePlayerContainer.classList.toggle('image-playing'); 
3739                                    imageContainer.classList.toggle('image-playing'); 
3740                                    thumbnailImage.classList.toggle('hide'); 
3741                                    largeImage.style = "display: none"; 
3742                                    closeImage.classList.toggle('image-active'); 
3743                                    body.style.overflow = 'initial'; 
3744
3745 
3746                                const playImage = () => { 
3747                                    fragmentElement.classList.toggle('active'); 
3748                                    getImageClick.classList.toggle('image-playing'); 
3749                                    imagePlayerContainer.classList.toggle('image-playing'); 
3750                                    imageContainer.classList.toggle('image-playing'); 
3751                                    closeImage.classList.toggle('image-active') 
3752                                    thumbnailImage.classList.toggle('hide'); 
3753                                    largeImage.style = "display: flex"; 
3754                                    body.style.overflow = 'hidden'; 
3755
3756 
3757                                getImageClick.addEventListener('click', () => { 
3758                                    if (document.body.classList.contains('has-edit-mode-menu')) { 
3759                                        return; 
3760
3761 
3762                                    if (imagePlayerContainer.classList.contains('image-playing')) { 
3763                                        stopImage(); 
3764                                    } else { 
3765                                        playImage(); 
3766
3767                                }) 
3768 
3769                                closeImage.addEventListener('click', () => { 
3770                                    if (imagePlayerContainer.classList.contains('image-playing')) { 
3771                                        stopImage(); 
3772
3773                                }) 
3774                            }); 
3775                        </script> 
3776 
3777                        <#assign itensNum = itensNum + 1 /> 
3778 
3779                    </#list> 
3780 
3781                </div> 
3782 
3783                <script> 
3784                    AUI().ready(function () { 
3785                        const imageContainer = document.querySelectorAll('.image-container .modal-image-container'); 
3786                        const closeImage = document.querySelectorAll('.image-container .modal-image-container .close-image'); 
3787                        const clickContainer = document.querySelectorAll('.image-container .modal-image-container .click-image'); 
3788                        let curItem = 0; 
3789 
3790 
3791                        if (imageContainer.length > 0) { 
3792                            const allArrowsLeft = document.querySelectorAll('.fragment_88494 .modal-image-container .image-player-container .carousel-info .left-arrow'); 
3793                            const allArrowsRight = document.querySelectorAll('.fragment_88494 .modal-image-container .image-player-container .carousel-info .right-arrow'); 
3794 
3795 
3796                            allArrowsLeft.forEach((item, index) => { 
3797                                item.addEventListener('click', () => { 
3798                                    if (index - 1 >= 0) { 
3799                                        curItem = index - 1 
3800                                        closeImage[index].click(); 
3801                                        clickContainer[curItem].click(); 
3802
3803 
3804                                }) 
3805                            }); 
3806 
3807                            allArrowsRight.forEach((item, index) => { 
3808                                item.addEventListener('click', () => { 
3809                                    if (index + 1 <= (imageContainer.length - 1)) { 
3810                                        curItem = index + 1 
3811                                        closeImage[index].click(); 
3812                                        clickContainer[curItem].click(); 
3813
3814 
3815                                }) 
3816 
3817 
3818                            }); 
3819 
3820 
3821
3822                    }); 
3823                </script> 
3824 
3825            </div> 
3826        </div> 
3827    </div> 
3828 
3829    <style> 
3830        .ptb-news__read-news .gallery * { 
3831            margin: 0; 
3832            padding: 0; 
3833
3834 
3835        .ptb-news__read-news .gallery { 
3836            display: flex; 
3837            gap: var(--space-xl, 40px); 
3838            flex-direction: column; 
3839
3840 
3841        .ptb-news__read-news .gallery .title-container { 
3842            display: flex; 
3843            align-items: center; 
3844            gap: var(--space-sm, 16px); 
3845
3846 
3847        .ptb-news__read-news .gallery .title-container svg { 
3848            width: 24px; 
3849            height: 21px; 
3850
3851 
3852        .ptb-news__read-news .gallery .title-container .title { 
3853            color: var(--color-neutral-800, #373737); 
3854            font-family: var(--font-family-base); 
3855            font-size: var(--font-size-lg); 
3856            font-style: var(--font-style-normal); 
3857            font-weight: var(--font-weight-bold); 
3858            line-height: var(--line-height-md); /* 31.68px */ 
3859
3860 
3861        .ptb-news__read-news .gallery .image-container { 
3862            display: flex; 
3863            gap: var(--space-sm, 16px); 
3864            flex-wrap: wrap; 
3865
3866 
3867        .ptb-news__read-news .gallery .image-container .fragment_88494 { 
3868            width: 274px; 
3869            height: 152px; 
3870            border-radius: var(--border-radius-md, 8px); 
3871
3872 
3873        .ptb-news__read-news .gallery .large-image-download { 
3874            display: none; 
3875
3876 
3877        .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container { 
3878            display: flex; 
3879            justify-content: space-between; 
3880            gap: 12px; 
3881
3882 
3883 
3884        .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container .social-media-container { 
3885            display: flex; 
3886            gap: 8px; 
3887
3888 
3889        /* Gallery */ 
3890 
3891        .fragment_88494 { 
3892            width: inherit; 
3893            height: inherit; 
3894            max-height: calc(100vw / 2); 
3895            padding: 0; 
3896            margin: 0; 
3897            overflow: hidden; 
3898
3899 
3900        .fragment_88494 * { 
3901            box-sizing: border-box; 
3902            margin: 0; 
3903            padding: 0; 
3904
3905 
3906        .fragment_88494 .modal-image-container { 
3907            width: 100%; 
3908            height: inherit; 
3909            display: flex; 
3910            justify-content: center; 
3911            position: relative; 
3912            cursor: initial; 
3913
3914 
3915        .fragment_88494 .modal-image-container .click-image { 
3916            cursor: pointer; 
3917
3918 
3919        .fragment_88494 .modal-image-container.image-playing { 
3920            position: fixed; 
3921            top: 0; 
3922            left: 0; 
3923            width: 100vw !important; 
3924            height: 100vh !important; 
3925            z-index: 9999 !important; 
3926            background-color: rgba(0, 0, 0, 0.75); 
3927            max-height: 100vh; 
3928
3929 
3930        .page-editor .fragment_88494 .modal-image-container { 
3931            z-index: 0; 
3932
3933 
3934        .fragment_88494 .modal-image-container .click-image { 
3935            height: 100%; 
3936            width: 100%; 
3937            position: absolute; 
3938            z-index: 3; 
3939
3940 
3941        .fragment_88494 .modal-image-container .image-player-container { 
3942            width: 100%; 
3943            height: 100%; 
3944
3945 
3946 
3947        .fragment_88494 .modal-image-container .image-player-container.image-playing { 
3948            position: relative; 
3949            width: 90vw !important; 
3950            height: 90vh !important; 
3951            z-index: 9999 !important; 
3952            border-radius: var(--border-radius-card); 
3953            margin: auto; 
3954            max-width: 1440px; 
3955
3956 
3957        .fragment_88494 .modal-image-container .image-player-container .close-image { 
3958            display: none; 
3959            position: absolute; 
3960            font-size: var(--font-size-micro); 
3961            color: var(--color-primary-medium); 
3962            width: 20px; 
3963            height: 20px; 
3964            top: -6px; 
3965            right: -10px; 
3966            z-index: 99999; 
3967            background: var(--color-neutral-100); 
3968            text-align: center; 
3969            border-radius: 50%; 
3970            border: 1px solid var(--color-neutral-400); 
3971
3972 
3973        .fragment_88494 .modal-image-container .image-player-container .close-image.image-active { 
3974            display: block; 
3975
3976 
3977        .fragment_88494 .modal-image-container .image-player-container .image-player-session { 
3978            width: 100%; 
3979            height: 100%; 
3980
3981 
3982        .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session { 
3983            width: 90vw !important; 
3984            height: 65vh !important; 
3985            z-index: 9999 !important; 
3986            border-radius: var(--border-radius-card) var(--border-radius-card) 0 0; 
3987            overflow: hidden; 
3988            max-width: 1440px; 
3989
3990 
3991        .fragment_88494 .modal-image-container .image-player-container.image-playing .background-image { 
3992            display: flex; 
3993            width: 100% !important; 
3994            height: 100% !important; 
3995            margin-left: 0 !important; 
3996            max-height: 100vh; 
3997            filter: blur(8px); 
3998            overflow: hidden; 
3999            background-repeat: repeat; 
4000            background-size: 50% 700px; 
4001
4002 
4003        .fragment_88494 .modal-image-container .image-player-container .image-player-session img { 
4004            width: 120%; 
4005            height: 120%; 
4006            margin-left: -12%; 
4007            max-height: calc(100vw / 2); 
4008            object-fit: cover; 
4009
4010 
4011        .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session img { 
4012            width: 100% !important; 
4013            height: 65vh !important; 
4014            margin-left: 0 !important; 
4015            max-height: 100vh; 
4016            object-fit: contain; 
4017            position: absolute; 
4018            top: 0; 
4019            left: 0; 
4020            background: transparent; 
4021
4022 
4023        .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer { 
4024            display: flex; 
4025            flex-direction: row-reverse; 
4026            justify-content: space-between; 
4027            align-items: flex-start; 
4028            background-color: #1E1E1E; 
4029            /*max-height: 35%;*/ 
4030            padding: 8px; 
4031            border-radius: 0 0 var(--border-radius-card) var(--border-radius-card); 
4032            color: var(--color-neutral-100); 
4033            gap: 32px; 
4034            min-height: 128px; 
4035            z-index: 9999 !important; 
4036            position: absolute; 
4037            width: 90vw !important; 
4038            max-width: 1440px; 
4039
4040 
4041        .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container { 
4042            display: flex; 
4043            flex-direction: column; 
4044            gap: 8px; 
4045
4046 
4047        .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer .social-media-container { 
4048            position: absolute; 
4049            right: 5px; 
4050            bottom: 20px; 
4051            display: flex; 
4052            gap: 3px; 
4053
4054 
4055        .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer .social-media-container a { 
4056            display: block; 
4057            height: fit-content; 
4058
4059 
4060        .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .image-info { 
4061            display: flex; 
4062            gap: 24px; 
4063            color: var(--color-neutral-500); 
4064
4065 
4066 
4067        .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info { 
4068            display: flex; 
4069            gap: 16px; 
4070            margin-top: 15px; 
4071
4072 
4073        .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info .donwload-button { 
4074            display: flex; 
4075            justify-content: space-around; 
4076            align-items: center; 
4077            background-color: var(--color-primary-medium); 
4078            width: 100px; 
4079            height: 40px; 
4080            padding: 0px 16px 0px 16px; 
4081            border-radius: 100px; 
4082            gap: 8px; 
4083            color: var(--color-neutral-100); 
4084            text-decoration: none; 
4085
4086 
4087        .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info .donwload-button svg { 
4088            pointer-events: none; 
4089
4090 
4091        .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info svg { 
4092            flex-shrink: 0; 
4093            pointer-events: none; 
4094
4095 
4096        .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info-message { 
4097            display: flex; 
4098            align-items: center; 
4099            color: #FFEEB3; 
4100            gap: 8px; 
4101
4102 
4103        .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info { 
4104            display: flex; 
4105            justify-content: center; 
4106            gap: 8px; 
4107            padding: 8px; 
4108
4109 
4110        .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .left-arrow, 
4111        .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .right-arrow { 
4112            cursor: pointer; 
4113
4114 
4115        .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .left-arrow svg, 
4116        .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .right-arrow svg { 
4117            pointer-events: none; 
4118
4119 
4120        .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .title-image { 
4121            display: flex; 
4122            justify-content: center; 
4123            align-items: center; 
4124            height: 32px; 
4125            color: var(--color-neutral-500); 
4126
4127 
4128 
4129        @media (max-width: 1040px) { 
4130 
4131            .fragment_88494 .modal-image-container .image-player-container.image-playing .background-image { 
4132                background-size: 100% 100%; 
4133
4134 
4135
4136 
4137 
4138        @media (max-width: 767px) { 
4139 
4140            .fragment_88494 .modal-image-container .image-player-container.image-playing { 
4141                margin-top: 5%; 
4142
4143 
4144            .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session { 
4145                height: 50vh !important; 
4146                min-height: 234px; 
4147
4148 
4149            .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session img { 
4150                height: 50vh !important; 
4151                min-height: 234px; 
4152
4153 
4154            .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info { 
4155                align-items: center; 
4156                justify-content: flex-start; 
4157                margin-top: 12px; 
4158                width: 100%; 
4159
4160 
4161            .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer { 
4162                /*height: 40%;*/ 
4163                min-height: 280px; 
4164                flex-direction: column; 
4165                justify-content: flex-start; 
4166                align-items: center; 
4167                width: 100%; 
4168                flex-wrap: nowrap; 
4169
4170 
4171 
4172            .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .image-info { 
4173                flex-direction: column; 
4174                gap: 8px; 
4175
4176 
4177            .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info { 
4178                flex-direction: column; 
4179                justify-content: center; 
4180                align-items: center; 
4181                margin-top: 5px; 
4182
4183 
4184            .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info .donwload-button { 
4185                justify-content: center; 
4186                width: 100%; 
4187
4188 
4189            .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container { 
4190                flex-direction: column; 
4191
4192 
4193            .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer .social-media-container { 
4194                top: 25px; 
4195
4196 
4197
4198 
4199 
4200        @media (max-width: 540px) { 
4201 
4202            .fragment_88494 .modal-image-container .image-player-container.image-playing { 
4203                height: 40vh !important; 
4204                margin-top: 15%; 
4205
4206 
4207            .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session { 
4208                height: 40vh !important; 
4209                min-height: 234px; 
4210
4211 
4212            .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session img { 
4213                height: 40vh !important; 
4214                min-height: 234px; 
4215
4216 
4217            .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container { 
4218                gap: 6px; 
4219
4220 
4221            .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer { 
4222                gap: 18px; 
4223
4224 
4225            .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info { 
4226                margin-top: 2px; 
4227
4228 
4229
4230 
4231        @media (max-height: 500px) { 
4232            .fragment_88494 .modal-image-container .image-player-container.image-playing { 
4233                display: flex; 
4234
4235 
4236            .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session { 
4237                height: 60vh !important; 
4238                width: 50vw !important; 
4239                border-radius: var(--border-radius-card) 0 0 0; 
4240
4241 
4242            .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session img { 
4243                height: 60vh !important; 
4244                width: 40vw !important; 
4245
4246 
4247            .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer { 
4248                height: 75vh !important; 
4249                width: 50vw !important; 
4250                top: 0; 
4251                right: 0; 
4252                min-height: 85vh; 
4253                border-radius: 0 var(--border-radius-card) var(--border-radius-card) 0; 
4254                align-items: center; 
4255
4256 
4257            .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info { 
4258                position: absolute; 
4259                display: flex; 
4260                align-items: center; 
4261                bottom: 0; 
4262                left: -40vw; 
4263                width: 40vw !important; 
4264                background-color: #1E1E1E; 
4265                height: 120px !important; 
4266                border-radius: 0 0 0 var(--border-radius-card); 
4267
4268 
4269 
4270            .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container { 
4271                flex-direction: column; 
4272
4273 
4274 
4275            .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info .donwload-button { 
4276                width: 100%; 
4277                justify-content: center; 
4278
4279 
4280            .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container { 
4281                gap: 16px; 
4282                height: 60vh; 
4283
4284 
4285            .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer .social-media-container { 
4286                top: initial; 
4287
4288 
4289        /* *** */ 
4290 
4291 
4292    </style> 
4293 
4294</#macro> 
4295 
4296 
4297<#-- ################################################################################################################## --> 
4298 
4299 
4300<#-- ############# Site de Crise - Notícia - Render seção download #################################################### --> 
4301 
4302<#macro renderDownloadSection newsInfo> 
4303    <div class="breakpoint"> 
4304        <div class="col-3-10 md-col-1-12 sm-col-1-4"> 
4305            <div class="download-section"> 
4306                <div class="title-container"> 
4307                    <svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 
4308                        <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" 
4309                              stroke="#373737" stroke-width="2.28571" stroke-linecap="round" stroke-linejoin="round"/> 
4310                    </svg> 
4311                    <p class="title">Downloads </p> 
4312                </div> 
4313 
4314                <div class="sections"> 
4315                    <div class="section text-section"> 
4316                        <p class="title"> <#if locale == "pt_BR"> Texto desta matéria <#else > Text of this article </#if> </p> 
4317                        <a class="button download-news-text" href=""> 
4318                            <#if locale == "pt_BR"> Download do texto <#else > Text download </#if> 
4319                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
4320                                 xmlns="http://www.w3.org/2000/svg"> 
4321                                <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25" 
4322                                      stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
4323                            </svg> 
4324                        </a> 
4325                    </div> 
4326 
4327                    <div class="separator"></div> 
4328 
4329                    <div class="section photo-section"> 
4330                        <p class="title"> <#if locale == "pt_BR"> Fotos desta matéria <#else > Photos from this article </#if> </p> 
4331 
4332 
4333                        <div class="links"> 
4334                            <#list newsInfo.galleryItems as gItem> 
4335                                <#assign url = ""/> 
4336                                <#assign alt = ""/> 
4337                                <#if gItem.originalFile["contentUrl"]?? > 
4338                                    <#assign url = gItem.originalFile.contentUrl/> 
4339                                    <#assign alt = gItem.originalFile.description/> 
4340                                </#if> 
4341 
4342                            <#-- <a class="button" href="${url}"> 
4343                                ${gItem.cardTitle} 
4344                                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
4345                                     xmlns="http://www.w3.org/2000/svg"> 
4346                                    <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25" 
4347                                          stroke="#008542" stroke-width="2" stroke-linecap="round" 
4348                                          stroke-linejoin="round"/> 
4349                                </svg> 
4350                            </a> --> 
4351                            </#list> 
4352 
4353                        </div> 
4354 
4355                        <a class="button download-news-photos" href=""> 
4356                            <#if locale == "pt_BR"> Download das fotos <#else > Download photos </#if> 
4357                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
4358                                 xmlns="http://www.w3.org/2000/svg"> 
4359                                <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25" 
4360                                      stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
4361                            </svg> 
4362                        </a> 
4363                    </div> 
4364 
4365                    <div class="separator"></div> 
4366 
4367                    <div class="section video-section"> 
4368                        <p class="title"> <#if locale == "pt_BR"> Vídeos desta matéria <#else > Videos from this article </#if> </p> 
4369                        <div class="videos-container"></div> 
4370                        <#-- <a class="button" href=""> 
4371                            <#if locale == "pt_BR"> Download dos vídeos <#else > Download videos </#if> 
4372                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
4373                                 xmlns="http://www.w3.org/2000/svg"> 
4374                                <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25" 
4375                                      stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
4376                            </svg> 
4377                        </a> --> 
4378                    </div> 
4379                </div> 
4380            </div> 
4381        </div> 
4382    </div> 
4383 
4384    <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script> 
4385 
4386        <script> 
4387            AUI().ready(function () { 
4388 
4389            const externalArrow = '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M27 12.5V5H19.5"  stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M18 14L27 5"  stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M23 18V26C23 26.2652 22.8946 26.5196 22.7071 26.7071C22.5196 26.8946 22.2652 27 22 27H6C5.73478 27 5.48043 26.8946 5.29289 26.7071C5.10536 26.5196 5 26.2652 5 26V10C5 9.73478 5.10536 9.48043 5.29289 9.29289C5.48043 9.10536 5.73478 9 6 9H14"  stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>'; 
4390            const downloadArrow = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none"  xmlns="http://www.w3.org/2000/svg"> <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25" stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>'; 
4391 
4392            const newsContent = document.querySelector(".ptb-news__read-news"); 
4393            const newsContentLinks = newsContent.querySelectorAll("a"); 
4394				 
4395				newsContentLinks.forEach((link) => { 
4396					link.classList.add('ptb-news__news-link'); 
4397				}); 
4398				 
4399				 
4400				 
4401				 
4402            const downloadSection = newsContent.querySelector(".download-section"); 
4403            const videosContainer = downloadSection.querySelector(".videos-container"); 
4404 
4405            const youtubeVideoDivList = newsContent.querySelectorAll('div[data-embed-id]'); 
4406 
4407            youtubeVideoDivList.forEach((videoDiv, index) => { 
4408            const aElement = document.createElement("a"); 
4409 
4410            if (!videoDiv.getAttribute("data-embed-id").includes("youtube")) { 
4411            return; 
4412
4413 
4414            const id = videoDiv.getAttribute("data-embed-id").split("/").pop().split("?")[0]; 
4415 
4416            const linkStr = "https://www.youtube.com/watch?v=" + id; 
4417            aElement.href = linkStr; 
4418 
4419            <#assign text = ""/> 
4420            <#if locale == "pt_BR"> 
4421            <#assign text = "'Ver vídeo ' + (index +1) + ' no Youtube'"/> 
4422            <#else > 
4423            <#assign text = "'Watch video ' + (index +1) + ' on Youtube'"/> 
4424            </#if> 
4425            aElement.innerHTML = ${text} + externalArrow; 
4426            aElement.setAttribute("target", "_blank"); 
4427            aElement.classList.add("button"); 
4428            videosContainer.appendChild(aElement); 
4429        }); 
4430 
4431            const videoDivList = newsContent.querySelectorAll('iframe[data-video-liferay]'); 
4432 
4433            videoDivList.forEach((videoDiv, index) => { 
4434            const aElement = document.createElement("a"); 
4435            aElement.href = videoDiv.src; 
4436            aElement.innerHTML = "Download " + (index + 1) + downloadArrow; 
4437            aElement.setAttribute("target", "_blank"); 
4438            aElement.classList.add("button"); 
4439            videosContainer.appendChild(aElement); 
4440        }); 
4441 
4442            if (videosContainer.children.length === 0) { 
4443            videosContainer.parentNode.style.display = "none"; 
4444            videosContainer.parentNode.previousElementSibling.style.display = "none"; 
4445
4446 
4447            const photoSection = downloadSection.querySelector(".photo-section"); 
4448            const photoDownloadButton = photoSection.querySelector(".button"); 
4449            photoDownloadButton.addEventListener("click", (event) => { 
4450            event.preventDefault(); 
4451            let imageUrls = [] 
4452            let imageTitles = [] 
4453            <#list newsInfo.galleryItems as galleryItem> 
4454            <#assign url = ""/> 
4455            <#if galleryItem.originalFile["contentUrl"]?? > 
4456            <#assign url = galleryItem.originalFile["contentUrl"]/> 
4457            </#if> 
4458            imageUrls.push("${url}"); 
4459            imageTitles.push('${galleryItem.cardTitle}'.replace(/([^\w ]|_)/g, '').replaceAll(' ', '_')); 
4460            </#list> 
4461 
4462 
4463            // Instale a biblioteca jszip usando npm: 
4464            <#-- npm install jszip --> 
4465 
4466            <#-- Importe a biblioteca jszip --> 
4467            //import JSZip from 'jszip'; 
4468 
4469 
4470// Função para baixar uma imagem e adicionar ao arquivo ZIP 
4471            const downloadImage = async (zip, imageUrl, imageName) => { 
4472            const response = await fetch(imageUrl); 
4473            const arrayBuffer = await response.arrayBuffer(); 
4474            zip.file(imageName, arrayBuffer); 
4475        }; 
4476 
4477// Função principal assíncrona 
4478            const main = async () => { 
4479            // Crie uma instância do JSZip 
4480            const zip = new JSZip(); 
4481 
4482            // Baixe cada imagem e adicione ao arquivo ZIP 
4483            await Promise.all(imageUrls.map((url, index) => downloadImage(zip, url, imageTitles[index] + "_" + (index + 1) + '.jpg'))); 
4484 
4485            // Gere o conteúdo do arquivo ZIP 
4486            const zipContent = await zip.generateAsync({type: 'blob'}); 
4487 
4488            // Crie um link para o arquivo ZIP e inicie o download 
4489            const link = document.createElement('a'); 
4490					  link.classList.add('ptb-news__zip-link'); 
4491            link.href = URL.createObjectURL(zipContent); 
4492            link.download = 'imagens.zip'; 
4493            document.body.appendChild(link); 
4494            link.click(); 
4495            document.body.removeChild(link); 
4496        }; 
4497 
4498// Chame a função principal 
4499            main(); 
4500 
4501        }); 
4502 
4503            <#if newsInfo.galleryItems?size == 0> 
4504            photoSection.style.display = "none"; 
4505            photoSection.previousElementSibling.style.display = "none"; 
4506            </#if> 
4507 
4508            const textSection = downloadSection.querySelector(".text-section"); 
4509            const textDownloadButton = textSection.querySelector(".button"); 
4510            textDownloadButton.addEventListener("click", () => { 
4511 
4512            const link = document.createElement("a"); 
4513 
4514            const titleText = document.querySelector(".main-headline-container .main-headline").innerHTML; 
4515            const publishSocialMediaText = document.querySelector(".publish_and_social_medias_infos_desk .publish_and_update_date").innerHTML; 
4516            const tagsText = document.querySelector(".tags").innerHTML; 
4517            const newsContentText = document.querySelector(".news-content").innerHTML; 
4518            const text = titleText + publishSocialMediaText + tagsText + newsContentText; 
4519 
4520            const strWithoutHtmlTags = text.replace(/(<([^>]+)>)/gi, ""); 
4521            const strWithoutMarcationBrackets = strWithoutHtmlTags.replace(/ *#\[[^\]]*]/g, ""); 
4522            const strWithoutNextPrevious = strWithoutMarcationBrackets.replace(/Previous    Next/g, ""); 
4523            const strWithoutBlankEnters = strWithoutNextPrevious.replace(/^\s*$(?:\r\n?|\n)/gm, ""); 
4524            const tempInput = document.createElement("textarea"); 
4525            tempInput.value = strWithoutBlankEnters; 
4526 
4527            document.body.appendChild(tempInput); 
4528            tempInput.select(); 
4529            document.execCommand("copy"); 
4530 
4531            if (tempInput.value.length > 0) { 
4532							 
4533					  link.classList.add('ptb-news__news-link'); 
4534 
4535            const file = new Blob([tempInput.value], {type: 'text/plain'}); 
4536            link.href = URL.createObjectURL(file); 
4537            link.download = titleText.replace(/([^\w ]|_)/g, '').replaceAll(' ', '_'); 
4538            link.click(); 
4539            URL.revokeObjectURL(link.href); 
4540
4541 
4542            document.body.removeChild(tempInput); 
4543        }); 
4544 
4545 
4546        }); 
4547 
4548    </script> 
4549 
4550    <style> 
4551        .ptb-news__read-news .download-section * { 
4552            margin: 0; 
4553            padding: 0; 
4554
4555 
4556        .ptb-news__read-news .download-news-text *, 
4557        .ptb-news__read-news .download-news-photos * { 
4558          pointer-events: none; 
4559
4560         
4561 
4562        .ptb-news__read-news .download-section { 
4563            margin: 0; 
4564            padding: var(--space-giant, 80px) 0; 
4565            display: flex; 
4566            flex-direction: column; 
4567            gap: var(--space-xl, 40px); 
4568
4569 
4570        .ptb-news__read-news .download-section svg { 
4571            width: var(--size-sm, 20px); 
4572            height: var(--size-sm, 20px); 
4573
4574 
4575        .ptb-news__read-news .download-section svg path { 
4576            stroke: var(--color-primary-solid-to-bright-200, var(--color-primary-medium)); 
4577
4578 
4579        .ptb-news__read-news .download-section .title-container { 
4580            display: flex; 
4581            gap: var(--space-sm, 16px); 
4582            flex-direction: row; 
4583
4584 
4585        .ptb-news__read-news .download-section .title-container svg { 
4586            width: var(--size-lg, 32px); 
4587            height: var(--size-lg, 32px); 
4588
4589 
4590        .ptb-news__read-news .download-section .title-container svg path { 
4591            stroke: var(--color-neutral-800); 
4592
4593 
4594        .ptb-news__read-news .download-section .title-container .title { 
4595            color: var(--color-neutral-800, #373737); 
4596            font-family: var(--font-family-base); 
4597            font-size: var(--font-size-lg); 
4598            font-style: var(--font-style-normal); 
4599            font-weight: var(--font-weight-bold); 
4600            line-height: var(--line-height-md); /* 31.68px */ 
4601
4602 
4603        .ptb-news__read-news .download-section .sections { 
4604            display: flex; 
4605            flex-direction: column; 
4606            padding: var(--space-lg, 32px); 
4607            gap: var(--space-md, 24px); 
4608            border-radius: var(--border-radius-lg, 16px); 
4609            background: var(--color-neutral-300, #F8F8F8); 
4610
4611 
4612        .ptb-news__read-news .download-section .sections .separator { 
4613            background: #D7D7D7; 
4614            height: var(--size-nano, 2px); 
4615            width: 100%; 
4616
4617 
4618        .ptb-news__read-news .download-section .sections .section { 
4619            display: flex; 
4620            justify-content: space-between; 
4621            gap: var(--space-sm, 16px); 
4622            align-items: center; 
4623            height: var(--size-xxl, 48px); 
4624
4625 
4626        .ptb-news__read-news .download-section .sections .section .title { 
4627            color: var(--color-neutral-dark-to-bright-1000, #010101); 
4628 
4629            font-family: var(--font-family-base); 
4630            font-size: var(--font-size-xs); 
4631            font-style: var(--font-style-normal); 
4632            font-weight: var(--font-weight-bold); 
4633            line-height: var(--line-height-md); 
4634
4635 
4636        .ptb-news__read-news .download-section .section.video-section { 
4637            display: flex; 
4638            flex-direction: column; 
4639            height: fit-content; 
4640            align-items: flex-start; 
4641
4642 
4643        .ptb-news__read-news .download-section .section.video-section svg path { 
4644            stroke: var(--color-primary-medium, #008542); 
4645
4646 
4647        .ptb-news__read-news .download-section .section.video-section .videos-container { 
4648            display: flex; 
4649            flex-direction: column; 
4650            gap: var(--space-sm, 16px); 
4651
4652 
4653        .ptb-news__read-news .download-section .sections .section .button { 
4654            display: flex; 
4655            gap: var(--space-xxs, 8px); 
4656            color: var(--color-primary-solid-to-bright-200, var(--color-primary-medium)); 
4657            font-family: var(--font-family-base); 
4658            font-size: var(--font-size-xxs, 16px); 
4659            font-style: var(--font-style-normal, normal); 
4660            font-weight: var(--font-weight-bold, 700); 
4661            line-height: var(--line-height-lg, 144%); /* 23.04px */ 
4662            text-decoration-line: var(--text-decoration-underline, underline); 
4663
4664 
4665        .ptb-news__read-news .download-section .sections .photo-section .links { 
4666            display: flex; 
4667            flex-direction: column; 
4668            gap: var(--space-sm, 16px); 
4669
4670 
4671 
4672        @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) { 
4673
4674 
4675    </style> 
4676</#macro> 
4677<#-- ################################################################################################################## --> 
4678 
4679 
4680<#function getFirstCategoryObjectOfVocabulary journalArticle vocabulary > 
4681    <#attempt> 
4682        <#assign categories = categoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) /> 
4683        <#list categories as category> 
4684            <#if vocabulary.getVocabularyId() == category.getVocabularyId()> 
4685                <#return category> 
4686            </#if> 
4687        </#list> 
4688        <#return ""> 
4689 
4690        <#recover> 
4691            <#return "" /> 
4692    </#attempt> 
4693</#function> 
4694 
4695 
4696<#-- ############# Site de Crise - Notícia - Extrair dados de Notícias ################################################ --> 
4697<#-- 
4698Add elements from the sidebar to define your template. Type "${" to use the 
4699autocomplete feature. 
4700--> 
4701<#function extractFeaturedNewsHeadline fieldList xmlArticle> 
4702    <#return getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia")> 
4703</#function> 
4704 
4705<#function extractNewsSummary fieldList xmlArticle> 
4706    <#return getFieldValue(fieldList, xmlArticle, "Subtítulo")> 
4707</#function> 
4708 
4709<#function extractPublishDate journalArticle> 
4710<#--assign lastPublishDate = journalArticle.getModifiedDate()> 
4711<#if journalArticle.getLastPublishDate()??> 
4712    <#assign lastPublishDate = journalArticle.getLastPublishDate()> 
4713<#else> 
4714    <#assign lastPublishDate = journalArticle.getModifiedDate()> 
4715</#if> 
4716<#return lastPublishDate --> 
4717    <#return journalArticle.getDisplayDate() /> 
4718</#function> 
4719 
4720<#-- Seção da imagem de destaque ----------------------------------------------------------------------> 
4721<#function extractNewsImage fieldList xmlArticle  fileEntryService> 
4722    <#assign 
4723    <#-- Grupo da imagem de destaque --> 
4724    newsImageGroupList = getNodes("Fieldset71035101", newsJournalArticle.getDocument().getRootElement()) 
4725    <#-- Url e descrição da imagem de destaque --> 
4726    newsImage = {"url": "--", "alt": "--", "mimeType" :"image/jpg", "title": "", "name": "", "fileEntryId": ""} 
4727    <#-- Créditos da imagem de destaque --> 
4728    newsImageCredits = "" 
4729    <#-- Legenda da imagem de destaque --> 
4730    newsImageLegend = "" 
4731    <#-- Texto do link para download --> 
4732    downloadLinkTitle = "" 
4733
4734 
4735    <#list newsImageGroupList as newsImageGroup> 
4736        <#assign newsImage = getFileFromXML("Image05319221", newsImageGroup, fileEntryService) /> 
4737 
4738    <#-- Grupo com as informações de crédito e legenda da imagem de destaque --> 
4739        <#assign labelGroupList = getNodes("Fieldset43702900", newsImageGroup) /> 
4740        <#list labelGroupList as labelGroup> 
4741        <#-- Investigar do porquê não está funcionando o getFieldValue 
4742        <#assign 
4743                    newsImageCredits = getFieldValue(fieldList, labelGroup, "Crédito da imagem de destaque da notícia") 
4744                    newsImageLegend = getFieldValue(fieldList, labelGroup, "Legenda da imagem de destaque da notícia") 
4745                    downloadLinkTitle = getFieldValue(fieldList, labelGroup, "Texto do link para download") 
4746                    /> 
4747        --> 
4748            <#assign 
4749            newsImageCredits = getSingleNodeString("Text47590088", labelGroup) 
4750            newsImageLegend = getSingleNodeString("Text03239077", labelGroup) 
4751            downloadLinkTitle = getSingleNodeString("Text48804898", labelGroup) /> 
4752        </#list> 
4753    </#list> 
4754 
4755    <#return {"newsImage": newsImage, 
4756    "credits": newsImageCredits, 
4757    "legend": newsImageLegend, 
4758    "linkTitle" : downloadLinkTitle 
4759    }/> 
4760</#function> 
4761 
4762<#function featureNewsVideo xmlArticle fileEntryService> 
4763<#-- Seção do video de destaque -----------------------------------------------------------------------> 
4764    <#assign 
4765    youtubeId = "" 
4766    internalVideoUrl = "" 
4767    featureNewsVideoGroup = getNodes("Fieldset09746751", xmlArticle) 
4768
4769    <#list featureNewsVideoGroup as newsImageFieldSet> 
4770        <#assign 
4771        youtubeId = getFieldValue(fieldList,featureNewsVideoGroup, "ID do vídeo do YouTube do vídeo de destaque") 
4772        internalVideoUrl = getFileFromXML("DocumentLibrary80545771", featureNewsVideoGroup, fileEntryService) 
4773
4774    </#list> 
4775 
4776    <#return {"youtube": youtubeId, "internalVideoUrl" : internalVideoUrl}> 
4777</#function> 
4778 
4779<#-- ################################################################################################################## --> 
4780 
4781<#-- Extrair imagem de destaque --> 
4782	 
4783<#assign newsImageData = {} />  
4784<#if fieldList?? && newsJournalArticle?? && fileEntryService?? && newsJournalArticle.getDocument()?has_content>  
4785	 <#assign newsImageData = extractNewsImage(fieldList, newsJournalArticle.getDocument(), fileEntryService)!{} />  
4786</#if> 
4787 
4788 
4789 
4790<#if newsImageData.newsImage?? && newsImageData.newsImage.url?has_content && newsImageData.newsImage.url != "--"> 
4791    <#assign fullImageUrl = "${themeDisplay.getPortalURL()}${newsImageData.newsImage.url}"> 
4792 
4793    <#assign destaqueImageObject = { 
4794        "@context": "https://schema.org", 
4795        "@type": "ImageObject", 
4796        "url": fullImageUrl, 
4797        "contentUrl": fullImageUrl, 
4798        "name": (newsImageData.newsImage.title?has_content)?then(newsImageData.newsImage.title, entry.getTitle(locale)), 
4799        "caption": (newsImageData.newsImage.alt?has_content)?then(newsImageData.newsImage.alt, ""), 
4800        "description": (newsImageData.legend?has_content)?then(newsImageData.legend, ""), 
4801        "encodingFormat": newsImageData.newsImage.mimeType, 
4802        "author": { 
4803            "@type": "Organization", 
4804            "name": "Petrobras" 
4805        }, 
4806        "license": "https://creativecommons.org/licenses/by/4.0/" 
4807    } /> 
4808 
4809    <@liferay_util["html-top"]> 
4810        <script type="application/ld+json"> 
4811            ${jsonFactoryUtil.looseSerialize(destaqueImageObject)} 
4812        </script> 
4813    </@> 
4814</#if> 
4815<#-- ################################################################################################################## --> 
4816 
4817<#-- MOVIES --> 
4818 
4819<#function normalizeRichText richText> 
4820  <#return richText 
4821    ?replace('&[a-z]+;', ' ', 'r') 
4822    ?replace('<[^>]+>', '', 'r') 
4823    ?replace('[\n\r]+', ' ', 'r') 
4824    ?replace('[“”‘’]', '"', 'r') 
4825    ?replace('\\\\', '\\\\', 'r') 
4826    ?trim 
4827    ?json_string 
4828
4829</#function> 
4830 
4831<#function getAllMovies contentFields> 
4832    <#assign allMovieSections = []> 
4833 
4834    <#list contentFields as field> 
4835        <#if field.label == "DADOS ESTRUTURADOS - MOVIE"> 
4836 
4837            <#assign movieTitleList = ""> 
4838            <#assign moviesStructureList = []> 
4839 
4840            <#list field.nestedContentFields as innerField> 
4841 
4842                <#if innerField.label == "Título da lista de filmes"> 
4843                    <#assign movieTitleList = innerField.contentFieldValue.data! ""> 
4844                </#if> 
4845 
4846                <#if innerField.nestedContentFields?has_content> 
4847                    <#list field.nestedContentFields as movieItem> 
4848                        <#assign linkTitle = ""> 
4849                        <#assign linkUrl = ""> 
4850                        <#assign description = ""> 
4851                        <#assign imageUrl = ""> 
4852 
4853                        <#list movieItem.nestedContentFields as movieField> 
4854                            <#if movieField.label == "Nome do Filme"> 
4855                                <#assign linkTitle = movieField.contentFieldValue.data! ""> 
4856                            </#if> 
4857                            <#if movieField.label == "Link do Filme"> 
4858                                <#assign linkUrl = movieField.contentFieldValue.data! ""> 
4859                            </#if> 
4860                            <#if movieField.label == "Descrição do Filme"> 
4861                                <#assign description = movieField.contentFieldValue.data! ""> 
4862                            </#if> 
4863                            <#if movieField.label == "Imagem do Filme" 
4864                                && movieField.contentFieldValue??  
4865                                && movieField.contentFieldValue.image??  
4866                                && movieField.contentFieldValue.image.contentUrl??> 
4867                                <#assign imageUrl = movieField.contentFieldValue.image.contentUrl> 
4868                            </#if> 
4869                        </#list> 
4870 
4871                        <#assign hasContent = (linkTitle?has_content) || (linkUrl?has_content) || (description?has_content) || (imageUrl?has_content)> 
4872 
4873                        <#assign alreadyAdded = false> 
4874                        <#list moviesStructureList as f> 
4875                            <#if f.linkTitle == linkTitle && f.linkUrl == linkUrl> 
4876                                <#assign alreadyAdded = true> 
4877                                <#break> 
4878                            </#if> 
4879                        </#list> 
4880 
4881                        <#if hasContent && !alreadyAdded> 
4882                            <#assign moviesStructureList = moviesStructureList + [{ 
4883                                "linkTitle": linkTitle, 
4884                                "linkUrl": linkUrl, 
4885                                "description": description, 
4886                                "image": imageUrl 
4887                            }]> 
4888                        </#if> 
4889 
4890                    </#list> 
4891                </#if> 
4892 
4893            </#list> 
4894 
4895            <#if moviesStructureList?has_content> 
4896                <#assign sectionData = {"title": movieTitleList, "movies": moviesStructureList}> 
4897                <#assign allMovieSections = allMovieSections + [sectionData]> 
4898            </#if> 
4899 
4900        </#if> 
4901    </#list> 
4902 
4903    <#return allMovieSections> 
4904</#function> 
4905													 
4906													<#-- Só processa se newsJournalArticle for um objeto (não string) --> 
4907<#if newsJournalArticle?? && !newsJournalArticle?is_string> 
4908 
4909<#assign structuredContentId = newsJournalArticle.getResourcePrimKey() /> 
4910<#assign newsStructuredContent = restClient.get("/headless-delivery/v1.0/structured-contents/${structuredContentId}") /> 
4911 
4912<#assign insertMovieSchemaMarkup = false> 
4913<#list newsStructuredContent.contentFields as field> 
4914  <#if field.label == "Marque a opção abaixo para inserir dados estruturados do tipo movie na notícia"> 
4915    <#if field.contentFieldValue?? && field.contentFieldValue.data??> 
4916      <#assign insertMovieSchemaMarkup = (field.contentFieldValue.data == "true")> 
4917    </#if> 
4918  </#if> 
4919</#list> 
4920	</#if> 
4921 
4922 
4923 
4924	<#if (insertMovieSchemaMarkup!false) && newsStructuredContent?? && newsStructuredContent.contentFields??> 
4925 
4926  <#assign allMovieSections = getAllMovies(newsStructuredContent.contentFields)?default([]) /> 
4927 
4928  <#if allMovieSections?size gt 0> 
4929    <@liferay_util["html-top"]> 
4930        <#list allMovieSections as section> 
4931            <script type="application/ld+json"> 
4932
4933            "@context": "https://schema.org", 
4934            "@type": "ItemList", 
4935            "name": "${normalizeRichText(section.title)}", 
4936            "numberOfItems": ${section.movies?size}, 
4937            "itemListElement": [ 
4938                <#list section.movies as movie> 
4939
4940                        "@type": "ListItem", 
4941                        "id": "movie-${movie?index}", 
4942                        "position": ${movie?index + 1}, 
4943                        "item": { 
4944                        "@type": "Movie", 
4945                        "name": "${normalizeRichText(movie.linkTitle)}", 
4946                        "url": "${movie.linkUrl?json_string}", 
4947                        "description": "${normalizeRichText(movie.description)}" 
4948                        <#if movie.image?has_content>, 
4949                            "image": "${themeDisplay.getPortalURL()}${movie.image}" 
4950                        </#if> 
4951
4952                    }<#if movie?has_next>,</#if> 
4953                </#list> 
4954
4955
4956            </script> 
4957        </#list> 
4958    </@> 
4959  </#if> 
4960</#if> 
4961 
4962<#-- ######################################################################################################### -->